一、DHCP介绍
DHCP(Dynamic Host Configuration Protocol,动态主机配置协议),前身是BOOTP协议,是一个局域网的网络协议,使用UDP协议工作,统一使用两个IANA分配的端口:67(服务器端),68(客户端)。DHCP通常被用于局域网环境,主要作用是集中的管理、分配IP地址,使client动态的获得IP地址、Gateway地址、DNS服务器地址等信息,并能够提升地址的使用率。简单来说,DHCP就是一个不需要账号密码登录的、自动给内网机器分配IP地址等信息的协议。
“先到先得”
二、DHCP应用配置及报文分析
1、接口模式配置
接口地址配置以忽略
(1)当前配置
R1无配置
R2
(2)全局使能dhcp服务
(3)配置接口地址池
以当前接口网段为地址池地址,接口地址为网关。
配置租约为1小时,主dns为8.8.8.8 辅dns为8.8.4.4 网关为10.1.100.2/24
(4)增加R1配置使得自动获取地址(R1需开启全局DHCP服务)
地址获取到以后,R1会自动发送免费arp报文进行DAD检测,不清楚该过程的同学请学习ping通原理文章,在此不多赘述。
(5)查看R2地址池的使用
得知当前使用地址为一个,
截至现在基于接口模式的DHCP动态主机配置协议已配置完成。
2、全局模式配置
拓扑如上
(1)配置详情
R1:无配置(等待动态分配)
R2:配置基本互联地址
DHCP Srvice:
(2)分别全局使能dhcp service服务(以R2为例)
(3)配置地址池
(4)配置中继服务器
(5)增加路由信息
(6)DHCP Service接口配置本地服务器
(7)R1获取地址
3、接口模式下抓包分析
(1)DHCP Discover报文(R1发出的广播报文)
DHCP报文经过四次交互成功建立(如仅有一个DHCP service理论上仅需两次报文交互即可建立链接)
根据Discover得知,该报文二层以太帧帧头IG=1可确定为广播或组播报文
根据报文得知该报文基于UDP传输,且sip为0.0.0.0为未分配地址,dip为255.255.255.255
观察报文可得知,Discover报文需请求Option的一些内容
(2)DHCP Offer报文(由R2回复给R1的单播报文)
观察以太帧帧头可得知IG=0 该报文为单播报文
三层sipR2g0/0/0口的网关地址 dip为分配给R1的ip地址
根据offce报文可得知分配给R1接口的地址为10.1.100.254/24
其他option信息均为DHCP Discover报文中option请求的信息,一并给予回复。
(3)DHCP REQUEST(由R1发出的广播报文)
该报文主要用于发送广播的DHCP REQUEST报文来回应服务器的DHCP OFFER报文
并且宣告其DHCP Service端该接口已有地址,无需自动配发。
(4)DHCP ACK(由R2回复给R1 的单播报文)
客户端的DHCP REQUEST报文的确认响应报文,客户端收到此报文后,才真正获得了IPv4地址和相关的配置信息。
至此四次报文交互过后DHCP协议完成,地址成功分配。
4、特殊情况
(1)租约到期地址进行续约
正常续约:(2次报文交互)
两次自动续约时间点:
第一次:实际租约时间的50%
第二次:实际租约时间的87.5%
DHCP REQUEST 报文
发送单播报文来向DHCP Service服务器重新确定租约
DHCP ACK
重新确定新的租约时间
(2)DHCP REQUEST 租约协商不成功
续约失败,即R2未查询到R1ip地址的到期时间,则回复DHCP NAK报文
未得到回复当前IP地址租期到期后,重新发送DHCP Discover报文进行四次报文交互,获取新的地址。
(3)地址冲突(DHCP DECLINE)
当客户端发现服务器分配给它的IPv4地址发生冲突时会通过发送此报文来通知服务器,并且会重新向服务器申请地址。
(4)地址释放(DHCP RELEASE)
(5)额外信息(DHCP INFORM)
DHCPv4客户端获取IPv4地址后,如果需要向DHCPv4服务器获取更为详细的配置信息(网关地址、DNS服务器地址),则向DHCPv4服务器发送DHCP INFORM请求报文。
该报文模拟器未抓到,有抓到的同学可以评论区探讨下。
5、DHCPv4定义了如下八种类型的报文
具体抓包详细内容见上文内容。
DHCP DISCOVER | DHCPv4客户端首次登录网络时进行DHCP交互过程发送的第一个报文,用来寻找DHCPv4服务器。 |
DHCP OFFER | DHCPv4服务器用来响应DHCP DISCOVER报文,此报文携带了各种配置信息。 |
DHCP REQUEST | 此报文用于以下三种用途。
|
DHCP ACK | 服务器对客户端的DHCP REQUEST报文的确认响应报文,客户端收到此报文后,才真正获得了IPv4地址和相关的配置信息。 |
DHCP NAK | 服务器对客户端的DHCP REQUEST报文的拒绝响应报文,例如DHCPv4服务器收到DHCP REQUEST报文后,没有找到相应的租约记录,则发送DHCP NAK报文作为应答,告知DHCPv4客户端无法分配合适IPv4地址。 |
DHCP DECLINE | 当客户端发现服务器分配给它的IPv4地址发生冲突时会通过发送此报文来通知服务器,并且会重新向服务器申请地址。 |
DHCP RELEASE | 客户端可通过发送此报文主动释放服务器分配给它的IPv4地址,当服务器收到此报文后,可将这个IPv4地址分配给其他的客户端。 |
DHCP INFORM | DHCPv4客户端获取IPv4地址后,如果需要向DHCPv4服务器获取更为详细的配置信息(网关地址、DNS服务器地址),则向DHCPv4服务器发送DHCP INFORM请求报文。 |