DHCP协议前身为bootp,相比前身引入了 租约 lease 的功能,c-s的服务架构体现在:

server端:UDP/67 bootps

client端:UDP/68 bootpc


DHCP协议使用  四种消息 为客户端提供IP地址。

  1. DHCP discovery

  2. DHCP offer

  3. DHCP request

  4. DHCP ack


在client端首次申请IP地址时,四种消息 全是广播包,目的IP地址:255.255.255.255,目的MAC地址为FF:FF:FF:FF:FF:FF;

当租期到期,client端提交续租申请request消息、server端回应允许续租ack消息为单播包。


以下实验为验证上述红色字体的结论。


拓扑图:R1-f0/0 --- f0/0-R2

R2配置为DHCP server,配置如下:

ip dhcp pool host   host 172.16.0.2 255.255.0.0   client-identifier 0063.6973.636f.2d63.3030.302e.3130.6338.2e30.3030.302d.4661.302f.30   lease 0 0 1interface FastEthernet0/0    ip address 172.16.0.1 255.255.0.0

租约有效期为1分钟,一分钟后client需要重新发起续约请求。

R1作为client端向  R2 server发起IP地址请求,wireshark截图:

65	153.961800000	0.0.0.0	        255.255.255.255	DHCP	618	DHCP Discover - Transaction ID 0x233b66	153.993000000	172.16.0.1	255.255.255.255	DHCP	342	DHCP Offer    - Transaction ID 0x233b67	154.024200000	0.0.0.0	        255.255.255.255	DHCP	618	DHCP Request  - Transaction ID 0x233b68	154.055400000	172.16.0.1	255.255.255.255	DHCP	342	DHCP ACK      - Transaction ID 0x233b87	209.604600000	172.16.0.2	255.255.255.255	DHCP	618	DHCP Request  - Transaction ID 0x233b88	209.667000000	172.16.0.1	172.16.0.2	DHCP	342	DHCP ACK      - Transaction ID 0x233b97	240.284400000	172.16.0.2	172.16.0.1	DHCP	618	DHCP Request  - Transaction ID 0x233b98	240.351200000	172.16.0.1	172.16.0.2	DHCP	342	DHCP ACK      - Transaction ID 0x233b


由截图可得到以下结论:

1、client端最初请求时,四种消息全是广播,即目的IP地址255.255.255.255,目的mac为FF:FF:FF:FF:FF:FF,

2、当1分钟续约到期后,client端重新发起续约请求,request消息仍为广播

3、当续约再到期,client端又发起续约的消息才为单播,目的IP地址为DHCP的IP地址,目的mac为DHCP服务器R2-fa0/0端口的mac

参考文档:

32369.jpg

PS:

关于DHCP消息的广播、单播类型,不同的培训老师、不同的书答案是不一样的。cisco官网是对它的解释如上图,但642-813学习指南上讲的是:discovery、offer为广播,request、ack为单播,非常混淆人。以实际wireshark抓包的结果为最终答案。