什么是DHCP
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工作,统一使用两个IANA分配的端口:67(服务器端),68(客户端)。DHCP通常被用于局域网环境,主要作用是集中的管理、分配IP地址,使client动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。简单来说,DHCP就是一个不需要账号密码登录的、自动给内网机器分配IP地址等信息的协议。
DHCP协议---用来为终端分配IP地址,并且对IP地址进行集中化管理的协议
应用层协议;传输层使用 UDP 协议进行数据封装,端口号 67/68 ,其中 68 代表客户端; 67 代表服务端。
报文类型-----八种--6种discover 报文 ----- 发现报文,用来发现网络中的 DHCP 服务器offer 报文 -------- 由服务器进行回复,当收到 discover 报文后,并且服务器本地存在可用 IP 地址,则回 复信息request 报文 ------ 正式向服务器请求 IP 地址ack 报文 ---------- 服务器同意使用该 IP 地址decline 报文 ------ 当客户端检测到 IP 地址冲突时,发送给服务器,用以告知服务器, IP 不可用nak 报文 ---- 服务器拒绝客户端使用该 IP 地址 ---- 一般看不到release 报文 ----- 客户端主动释放 IP 地址。IP 地址租期 ---- 当 PC 申请下来 IP 地址后,会存在租期时间。能够合理使用该 IP 地址的时间租期时间 ---24 小时当租期时间到达 12 小时,客户端就需要向服务器发起续租申请。当第一次续租得到回复后,则客户端将租期时间刷新为 24 小时;若没有回复,则等待租期时间仅剩下 3 小时。此时发送第二次续租申请,此时使用 discover 报文广播发送申请。
DHCP工作过程
- 地址自动分配过程
1.发现阶段
2. 提供阶段
3.选择阶段
4.确认阶段
- 地址续约过程
- 释放过程
DHCP客户机首先进行广播寻找DHCP服务器(DHCP DISCOVER),源地址为本机0.0.0.0,目的地址为广播地址255.255.255.255
DHCP服务器收到后,返回DHCP OFFER消息,其中包含提供给DHCP客户机的IP地址(使用ARP确保所选IP地址未被网络中其他主机占用)和相关配置信息。源地址为DHCP服务器地址,目的地址为广播地址(因为此时目的客户机还没有IP地址)
客户机可能会收到多个DHCP提供消息,一般以收到的第一个为准。此时客户机知道DHCP服务器可以给它分配地址,因此发送DHCP REQUEST报文来请求分配IP地址,报文的源地址为0.0.0.0,目的地址为255.255.255.255
DHCP收到请求信息后,查看其中事务ID是否相符,若不符则丢弃;符合则从地址池中取得一个IP地址,并通过ARP协议确认此地址未被使用后,将其封装进DHCP ACK信息中,报文源地址为DHCP服务器地址,目的地址为广播地址
客户机收到DHCP确认信息后,查看其中事务ID是否相符,不符则丢弃;符合则再次使用ARP确认IP地址没有被使用
若被占用:给DHCP服务器发送DHCP DECLINE报文撤销IP地址租约,并重新发送DHCP DISCOVER报文;
若未被占用:可以使用租约中的IP地址与网络中其他主机通信了。
当IP地址租约达到0.5倍时间时,客户机会再次向DHCP服务器发送请求信息更新租用期。源地址为租用的IP地址,目的地址为DHCP服务器地址。此时DHCP服务器会出现以下三种情况:
收到请求后,返回确认报文(DHCP ACK),其中有新的IP地址租期,重新设置计时器。
收到请求后,返回否认报文(DHCP NACK),则客户机收到后立刻停止使用IP地址并重新发送DHCP DISCOVER报文
不响应。则在租期达到0.875倍时,DHCP客户必须重新发送DHCP REQUEST报文,继续等待DHCP服务器可能做出的反应。若依然无反应,则租用期到后,客户机必须立刻停止使用当前IP地址,并重新发送DHCP DISCOVER报文来重新申请IP地址。
客户端可随时终止DHCP服务器提供的租用期,这时只需要向DHCP服务器发送DHCP RELEASE即可。源地址0.0.0.0,目的地址255.255.255.255
DHCP配置
1 、配置 IP[DHCP Server]interface GigabitEthernet 0/0/0[DHCP Server-GigabitEthernet0/0/0]ip address 192.168.1.100 24[DHCP Server]interface GigabitEthernet 0/0/1[DHCP Server-GigabitEthernet0/0/1]ip address 192.168.2.100 242 、启动 DHCP 服务[DHCP Server]dhcp enable ---- 启动 DHCP 服务3 、配置 DHCP 待分配的 IP 地址池塘[DHCP Server]ip pool wmy ----创建一个叫做 wmy 的 IP 地址池塘[DHCP Server-ip-pool-wmy]network 192.168.1.0 mask 24 --- 给池塘中添加 IP 地址信息,将 192.168.1.0/24 整个网段的 IP 地址都添加到池塘中。[DHCP Server-ip-pool-wmy]gateway-list 192.168.1.100 --- 设置该池塘中所有 IP 的网关地址[DHCP Server-ip-pool-wmy]dns-list 8.8.8.8 ---- 设置该池塘中所有 IP 的拥有者 DNS 服务器的 IP 地址4 、将池塘与接口进行联动,目的是告诉路由器,该池塘的信息应该属于哪个接口所连接的广播域[DHCP Server]interface GigabitEthernet 0/0/0[DHCP Server-GigabitEthernet0/0/0]dhcp select global ---- 将 DHCP 服务在该接口激活5 、扩展配置 --- 可选[DHCP Server-ip-pool-wmy]excluded-ip-address 192.168.1.254 192.168.1.254 ---在 192.168.1.0/24 这个地址池中,将 192.168.1.254 地址排除,后续服务器在分配 IP 地址时,将不会分配192.168.1.254 这个地址信息。 ------------ 起始 IP 、截止 IP[DHCP Server-ip-pool-wmy]lease day 0 hour 0 minute 1 --- 修改租期时间 [DHCP Server]display ip pool name ? --- 查看具体某个地址池塘内容STRING<1-64> Pool name