搭建DHCP服务
DHCP服务流程
1、DHCP客户端初次接入网络时,会发送DHCP发现报文(DHCP Discover),用于查找和定位DHCP服务器。
2、DHCP服务器在接收到DHCP发现报文后,发送DHCP提供报文(DHCP Offer),此报文中包含ID地址等配置信息。
3、在DHCP客户端接收到服务器发送的DHCP提供报文后,会发送DHCP请求报文(DHCP Request),另外在DHCP客户端获取IP地址并重启后,同样会发送DHCP请求报文,用于确认分配的IP地址等配置信息。DHCP客户端获取的IP地址租期快要到期时,也发送DHCP请求报文向服务器申请延长IP地址租期。
4、收到DHCP客户端发送的DHCP请求报文后,DHCP服务器会回复DHCP确认报文(DHCP ACK)。客户端接收到DHCP确认报文后,会将获取的IP地址等信息进行配置和使用。
5、如果DHCP服务器收到DHCP-REQUEST报文后,没有找到相应的租约记录,则发送DHCP-NAK报文作为应答,告知DHCP客户端无法配合使用IP地址。
6、DHCP客户端通过发送DHCP释放报文(DHCP Release)来释放IP地址。收到DHCP释放报文后,DHCP服务器可以把该IP地址分配给其他DHCP客户端。
Linux部署DHCP服务
一、部署环境:
1、CentOS Linux release 7.5.1804 (Core)
2、dhcp-4.2.5-77.el7.centos.x86_64
二、安装dhcp服务端
# yum -y install dhcp
三、修改配置文件
默认的配置文件/etc/dhcp/dhcpd.conf为空,可参考安装dhcp包时的模板文件
/usr/share/doc/dhcp-4.2.5/dhcpd.conf.example
dhcpd.conf大致可以分为3段
1、全局地址分配属性:
option router X.X.X.X;
option domain-name-servers 202.106.0.20,8.8.8.8; #全局DNS服务器
default-lease-time 86400; #默认租期,单位为秒
2、子网配置:
通常每个作用域通过一个subnet定义,此处以10.10.10.0/24网段为例
subnet 10.10.10.0 netmask 255.255.255.0 {
range 10.10.10.100 10.10.10.150; #可分配出去的IP地址池
option routers 10.10.10.1; #网关,此处配置的优先级比全局的高
}
3、主机配置:
通常为某特定MAC地址固定分配一个地址,
host 'host222' { # host222自定义的名字
hardware ethernet 08:00:07:26:c0:05; # 绑定主机的MAC地址
fixed-address 10.10.10.222; # 绑定主机可分配的IP地址
}
四、启动服务
# systemctl start dhcpd
五、查看ip分配情况
# cat /var/lib/dhcpd/dhcpd.leases