今天挨踢小茶用GNS3网络模拟器做了一个关于DHCP的实验,比较基础的东西,算是炒冷饭了,大神们可以直接忽略。实验过程中用Wireshark对DHCP报文进行抓包,报文文件下面可以下载,有了这个报文文件可以对DHCP工作原理和封包形式进行进一步的研究。
实验拓扑如下图所显示,非常简单,一台模拟的3640路由器充当DHCP服务端,一台虚拟VPCS(GNS3安装包自带的)充当客户机即DHCP客户端。在DHCP服务端开启DHCP功能,在客户端开启DHCP自动获取IP地址、子网掩码、默认网关等信息。
模拟路由器配置如下:
DHCP_Server#conf t
DHCP_Server(config)#int f0/0
DHCP_Server(config-if)#ip add 192.168.1.1 255.255.255.0
DHCP_Server(config-if)#no sh
DHCP_Server(config-if)#exit
DHCP_Server(config)#ip dhcp excluded-address 192.168.1.1 192.168.1.20 把从192.168.1.1~192.168.1.20这段地址从分配地址池中取出,方便使用静态IP地址的服务器等使用
DHCP_Server(config)#ip dhcp pool xiaopeiqing.com 创建地地址池xiaopeiqing.com
DHCP_Server(dhcp-config)#network 192.168.1.0 /24 宣告分配地址范围
DHCP_Server(dhcp-config)#default-router 192.168.1.1 宣告默认网关
DHCP_Server(dhcp-config)#dns-server 8.8.8.8 宣告DNS服务器
DHCP_Server(dhcp-config)#end
在VPCS上,开始是每个PC是没有IP地址等信息的,当打开PC1的DHCP功能后,PC1就自动获取了IP地址:192.168.1.21,默认网关:192.168.1.1了。这里无法查看DNS服务器信息,如果在真机上做实验,相信DNS服务器会是自动变为8.8.8.8。
[singlepic id=166 w=560 h=420 mode=watermark float=center]
DHCP分发是CS模式的。客户端发送DHCP DISCOVERY报文给服务端,服务端接受后查找地址池,如果有适合分发的地址,就在DHCP OFFER报文中写入信息发送回给客户端。客户端如果接受多个服务器发送过来的DHCP OFFER报文,则采取先到先得的手段,对优先的服务器发送DHCP REQUEST表示同意接受。最后服务端确认同意,发送给客户端DHCP ACKNOWLEDGE报文。DHCP整个分发过程结束,如图所示:
通过抓包软件Wireshark进行抓包发现上述的集中报文,并且不难看出,DHCP是封装在Bootstrap协议中的,再通过UDP、IP、Ethernet逐层封装,可以在报文中看到具体的封装结构。
[singlepic id=167 w=560 h=420 mode=watermark float=center]
请点击 DHCP报文 下载该报文文件
DHCP算是网络协议中一个比较基础的协议了,掌握好这个协议对于网络工程师日常工作会起到十分重要的作用。
文章评论