--- title: DHCP categories: - Linux服务 tags: - DHCP - Linux date: 2021-03-27 21:55:45 --- # DHCP ## 定义 DHCP (Dynamic Host Configuration Protocol,动态主机配置协议)是一个工作在应用层的局域网网络协议!!!,数据传输时使用UDP不可靠传输协议工作,通常被应用在大型的局域网络环境中,主要作用是集中的管理、分配网络资源,使网络环境中的主机能动态的获得IP地址、Gateway 地址、DNS服务器地址等信息,并能够提升地址的使用率。 ## DHCP工作原理 ![](https://lzcwy-1257903760.cos.ap-beijing.myqcloud.com/%E8%BF%90%E7%BB%B4/DHCP/DHCP工作原理.png) 1、DHCP客户端进行IP请求 DHCP客户机启动时,没有ip,便会使用0.0.0.0作为源ip,携带自己的mac地址,使用255.255.255.255(广播地址)作为目标地址,通过UDP67端口发送广播报文,也就是DHCP Discover报文。(没开UDP67端口的主机无法接受报文,节省主机资源开销) 2、DHCP服务器响应请求 当DHCP服务器收到客户及请求ip地址的信息时,查看ip地址池,找一个ip写入到DHCP OFFER的消息中,然后DHCP使用自己的IP地址作为源地址,使用255.255.255.255作为目标地址,使用UDP68端口作为源端口来广播DHCP OFFER DHCP OFFER的报文内容 ```shell DHCP客户机的MAC地址; DHICP服务器提供的合法IP地址; 子网掩码;默认网关(路由); 租约的期限; DHCP服务器的IP地址-MAC。 ``` 3、DHCP客户机选择IP DHCP客户端从接收到的第一个DHCP OFFER消息中选择一个IP地址,客户机将DHCP REQUEST消息广播到所有的DHCP服务器,表明它接受提供的内容 4、DHCP服务器确认租约 DHCP服务器接收到DHCP REQUEST消息后,以DHCPACK消息的形式向客户机广播成功的确认,当客户机收到DHCP ACK消息时,它就配置了IP地址,完成了TCP/IP的初始化。 5、DHCP客户机续租 ![](https://lzcwy-1257903760.cos.ap-beijing.myqcloud.com/%E8%BF%90%E7%BB%B4/DHCP/DHCP续租.png) DHCP客户机会在租期过去50%的时候,直接向为其提供IP地址的DHCP服务器发送DHCP REQUEST消息包。如果客户机接收到该服务器回应的DHCP ACK消息包,客户机就根据包中所提供的新的租期以及其它已经更新的TCP/IP参数,更新自己的配置,IP租用更新完成。如果没有收到该服务器的回复,则客户机继续使用现有的IP地址,因为当前租期还有50%。 如果在租期过去50%的时候没有更新,则DHCP客户机将在租期过去87.5%的时候再次向为其提供IP地址的DHCP那器联系。如果还不成功,到租约的100%时候,DHCP客户机必须放弃这个IP地址,重新申请。如果此时无DHCP服务器用,DHCP客户机会使用169.254.0.0/16中随机的一个地址,并且每隔5分钟再进行尝试。 ## DHCP服务搭建 ### DHCP软件信息 软件名:dhcp(DHCP服务软件包) dhcp-comm(DHCP命令软件包) 服务名:dhcpd(DHCP服务名)dhcrelay(DHCP中继服务名) 端口号:udp 67(客户端目标端口)udp 68(服务器源端口) 配置文件: ``` dhcpd服务的配置文件:/etc/dhcp/dhcpd.conf dhcpd.conf.sample dhcp的模板配置文件:/usr/share/doc/dhcp-4.*.*/dhcpd.conf.sample dhcrelay dhcp中继的配置文件:/etc/sysconfig/dhcrelay ``` ### DHCP配置文件详解 ```shell subnet 192.168.133.0 netmask 255.255.255.0 { #声明要分配的网段和子网掩码 range 192.168.133.3 192.168.133.254; #声明可用IP地址池 option domain-name "lzcwy.com" ; #设置DNS域 option domain-name-servers 8.8.8.8 ; #设置DNS服务器地址 option routers 192.168.133.2; #默认网关的地址 option broadcast-address 192.168.133.255; #广播地址(可不写) default-lease-time 600; #默认租约(s) max-lease-time 7200; #最大租约(s) ``` ### DHCP部署 将DHCP配置文件模板覆盖配置文件 ```shell cp -a /usr/share/doc/dhcp-4.*.*/dhcpd.conf.sample /etc/dhcp/dhcpd.conf ``` 修改配置文件 ```shell vim /etc/dhcp/dhcpd.conf ``` 重启服务 ```shell systemctl restart dhcpd ``` 重启客户机网卡 ``` ifdown/ifup ``` ### 配置静态ip 1、通过arp -a 查看客户端的ip地址 2、修改/etc/dhcp/dhcpd.conf文件 ```shell host fantasia { hardware ethernet mac地址; #客户机的mac地址 fixed-address IP地址; #分配给客户机的静态ip地址 } ``` 3、重启DHCP服务 ```shell systemctl restart dhcpd ``` 4、重启客户机网卡,验证IP获取是否成功 ```shell ifdown/ifup ``` ### 配置DHCP超级作用域 待补充——我菜啊 ### 配置DHCP中继 待补充——我菜啊