dhcp原理:租约四部曲与续租三部曲
租约四部曲:客户端向所在局域网内发送广播(广播信息包含自己的mac地址),看是否有DHCP服务器,
如果没有,则从TCP/IP中挑选一个B类网段的IP作为自己的IP地址,知道有DHCP服务器相应;
如果有一个,则DHCP服务器会先查看资源池中是否有多余的IP,有则标记,然后以广播的方式发送出去,广播信息中包含客户端的mac地址,IP地址子网掩码,服务器的IP地址,mac地址等信息;当其他的客户端收到广播发现不是自己的mac地址后,将此广播丢弃;
如果有多个DHCP服务器,以先到先得为原则,客户端认为先到的网络链路更加通畅。
客户端收到DHCP的广播,给所有给自己的DHCP服务器回复信息,确定要用哪个DHCP服务器;没有被使用的DHCP服务器会将标记的IP资源释放掉,被使用的DHCP服务器,会发送ack或nak信息到客户端,ack包含IP地址,租约,dns,网关等网络资源信息,nak则标识DHCP服务器标记的IP已被使用,客户端需要重新广播;
当客户端收到ack时表明租约成立,客户端用arp协议检解析,若IP有对应的mac地址则被占用,回复DHCP服务器已被占用,若没有,则开始使用。
续租:租约到50%时,续租,续租成功租期100%继续使用,续租不成功租期50%,继续使用
租约到87.5%,继续续租,续租成功,租期达100%,续租失败,继续使用
租约达100%,续租失败,重新广播
在Linux centos7.x中,服务器需要下载软件dhcp,编辑配置文件/etc/dhcp目录下的dhcpd.conf
这个文件中有完整的模板文件的目录,需要将模板文件内容覆盖掉dhcpd.conf,然后修改资源池(网段、掩码、IP范围、dns、广播地址,租期)启动dhcpd服务即可。他还可以为指定的用户预留IP地址,只需要知道指定用户的mac地址即可。
如果说要实现超级作用域则使用单臂路由功能,即两个不同的网段的机器连接一个路由器,两台机器想要通信,可打开DHCP的单臂路由,修改配置文件/etc/sysctl.conf 添加:net.ipv4.ip_forward=1 然后刷新配置文件即可sysctl -p
路由中继则是在超级作用域的基础上开启中继功能,下载DHCP,开启命令:dhcrelay DHCP服务器的IP;