Linux ❀ RHCE自研教学笔记 - Redhat 8.2 DHCP服务教研笔记

Posted 国家级干饭型选手°

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Linux ❀ RHCE自研教学笔记 - Redhat 8.2 DHCP服务教研笔记相关的知识,希望对你有一定的参考价值。

DHCP - Dynamic Host Configuration Protocol 动态主机配置协议:由服务器控制一段IP地址范围,客户机登录服务器时就可以自动获得服务器分配的IP地址和子网掩码;
服务端口:UDP 67-响应 68-请求;
该协议通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配IP地址,使网络环境中的主机动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率;

工作过程

  • 发现阶段:DHCP客户端通过发送DHCP Discover报文来寻找DHCP服务器,由于DHCP服务器的IP地址对于客户端来说是未知的,所以DHCP客户端以广播方式发送DHCP Discover报文,所有收到DHCP Discover报文的DHCP服务器都会发送回应报文,DHCP客户端根据此报文可以知道网络中存在的DHCP服务器的位置;

  • 提供阶段:网络中接收到DHCP Discover报文的DHCP服务器, 会从地址池中选择一个合适的IP地址,连通IP地址租约时间和其他配置信息通过DHCP Offer报文发送给DHCP客户端;

  • 选择阶段:如果有多台DHCP服务器向DHCP客户端回应DHCP Offer报文,则DHCP客户端只接收第一个收到的DHCP Offer报文,然后广播方式发送DHCP Request请求报文,该报文中包含Option 54,即它选择的DHCP服务器的IP地址信息;
    以广播方式发送DHCP Request请求报文,是为了通知所有的DHCP服务器,它选择Option 54中标识的DHCP服务器提供的IP地址,其他DHCP服务器可以重新使用提供的IP地址进行分片;

  • 确认阶段:当DHCP服务器收到DHCP客户端回答的DHCP Request报文后,DHCP服务器会根据DHCP Request报文中携带的MAC地址来查找有没有相应的租约记录,如果有,则向客户端发送包含它所提供的IP地址和其他设置的DHCP ACK报文,探测是否有主机使用服务器分配的IP地址,如果在规定的时间内没有收到回应,客户端才使用此地址;
    如果DHCP服务器收到DHCP Request报文后,没有找到相应的租约记录,或者由于某些原因无法正常分配IP地址,则发送DHCP NACK报文作为应答,通知DHCP客户端无法分配IP地址,DHCP客户端需要重新发送DHCP Discover报文来申请新的IP地址;

DHCP客户端发送数据包特殊点:

  • SIP:0.0.0.0
  • DIP:255.255.255.255
  • 广播报文

1、安装服务


[root@localhost ~]# dnf install -y dhcp-server
Complete!

[root@localhost ~]# rpm -qc dhcp-server
/etc/dhcp/dhcpd.conf			/主配置文件
/etc/dhcp/dhcpd6.conf			/IPv6配置文件
/etc/openldap/schema/dhcp.schema
/etc/sysconfig/dhcpd
/var/lib/dhcpd/dhcpd.leases
/var/lib/dhcpd/dhcpd6.leases

[root@localhost ~]# rpm -qa dhcp-server
dhcp-server-4.3.6-40.el8.x86_64

2、配置文件


[root@localhost ~]# cat /etc/dhcp/dhcpd.conf
#   see /usr/share/doc/dhcp-server/dhcpd.conf.example
#   see dhcpd.conf(5) man page

[root@localhost ~]# cat /usr/share/doc/dhcp-server/dhcpd.conf.example
#ddns-update-style none;					/DNS互动更新模式
option domain-name "example.org";
option domain-name-servers ns1.example.org, ns2.example.org;

default-lease-time 600;						/默认租约时间600s;
max-lease-time 7200;						/最大租约时间7200s;

subnet 10.152.187.0 netmask 255.255.255.0 {
}

subnet 10.254.239.0 netmask 255.255.255.224 {
  range 10.254.239.10 10.254.239.20;
  option routers rtr-239-0-1.example.org, rtr-239-0-2.example.org;
}

subnet 10.254.239.32 netmask 255.255.255.224 {
  range dynamic-bootp 10.254.239.40 10.254.239.60;
  option broadcast-address 10.254.239.31;
  option routers rtr-239-32-1.example.org;
}

subnet 10.5.5.0 netmask 255.255.255.224 {		/声明网段与掩码;
  range 10.5.5.26 10.5.5.30;					/声明地址池;
  option domain-name-servers ns1.internal.example.org;	/声明DNS IP地址;
  option domain-name "internal.example.org";	/声明DNS;
  option routers 10.5.5.1;						/声明网关地址;
  option broadcast-address 10.5.5.31;			/声明广播地址;
  default-lease-time 600;						/默认租约时间600s;
  max-lease-time 7200;						/最大租约时间7200s;
}

host passacaglia {							/固定IP地址配置;
  hardware ethernet 0:0:c0:5d:bd:95;			/物理地址;
  filename "vmunix.passacaglia";				/文件名称;
  server-name "toccata.example.com";			/服务器名称;
}

host fantasia {								/固定IP地址配置;
  hardware ethernet 08:00:07:26:c0:a5;			/物理地址;
  fixed-address fantasia.example.com;			/分配的固定IP地址;
}

class "foo" {
  match if substring (option vendor-class-identifier, 0, 4) = "SUNW";
}

shared-network 224-29 {
  subnet 10.17.224.0 netmask 255.255.255.0 {
    option routers rtr-224.example.org;
  }
  subnet 10.0.29.0 netmask 255.255.255.0 {
    option routers rtr-29.example.org;
  }
  pool {
    allow members of "foo";
    range 10.17.224.10 10.17.224.250;
  }
  pool {
    deny members of "foo";
    range 10.0.29.10 10.0.29.230;
  }
}
ignore client-updates;						/忽略客户端更新

3、服务配置


(1)单网段dhcp服务

[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
ddns-update-style none;
ignore client-updates;
default-lease-time 2000;
max-lease-time 5000;
option routers 192.168.14.2;
option domain-name "example.org";
option domain-name-servers 114.114.114.114,8.8.8.8;
subnet 192.168.14.0 netmask 255.255.255.0{
        range 192.168.14.20 192.168.14.30;
}
[root@localhost ~]# systemctl restart dhcpd

(2)多网段dhcp服务

[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
ddns-update-style none;
ignore client-updates;
default-lease-time 2000;
max-lease-time 5000;
option domain-name "example.org";
option domain-name-servers 114.114.114.114,8.8.8.8;
subnet 192.168.14.0 netmask 255.255.255.0{
        range 192.168.14.20 192.168.14.30;
option routers 192.168.14.2;
}
subnet 192.168.15.0 netmask 255.255.255.0{
        range 192.168.15.20 192.168.15.30;
option routers 192.168.15.2;
}
[root@localhost ~]# systemctl restart dhcpd

(3)固定IP地址配置

[root@localhost ~]# vim /etc/dhcp/dhcpd.conf
host xxx {								/红色位置可随意不配置,不重复即可;
    hardware ethernet 00:0C:29:7F:32:06;
    fixed-address 192.168.40.250;
 }
[root@localhost ~]# systemctl restart dhcpd

以上是关于Linux ❀ RHCE自研教学笔记 - Redhat 8.2 DHCP服务教研笔记的主要内容,如果未能解决你的问题,请参考以下文章

Linux ❀ RHCE自研教学笔记 - Redhat 8.2 SFTP服务教研笔记

Linux ❀ RHCE自研教学笔记 - Redhat 8.2 SFTP服务教研笔记

Linux ❀ RHCE自研教学笔记 - Redhat 8.2 Nmcli服务教研笔记

Linux ❀ RHCE自研教学笔记 - Redhat 8.2 Nmcli服务教研笔记

Linux ❀ RHCE自研教学笔记 - Redhat 8.2 HTTP服务教研笔记

Linux ❀ RHCE自研教学笔记 - Redhat 8.2 FTP服务教研笔记