DHCP(动态主机配置协议)是专门用来分配IP地址的一个协议。刚开始学习NA的时候,书上说DHCP是通过广播来进行的。刚一开始感觉还没什么问题,等晚上睡觉回想一下的时候,发现不对哈,刚开始获取IP地址时候目标地址255.255.255.255.源地址0.0.0.0,等DHCP服务器回应时候,源地址是多少??????目标地址是多少?????等再深入的时候,学到跨网段分配IP地址的时候,疑问又来了???DHCP主机是怎么知道我所在网段的IP地址的?有一天无意中做一个关于DHCP的实验,顺便抓了几个包。这些疑问便解决啦。。。。。废话不说了,现在开始深入!!
先讲跨网段分配IP地址,先介绍一下我在PT里做的拓扑,EIGRP路由协议
为了让图片中DHCP分配区域能正常与DHCP主机进行分配IP,需要将route 5开启 ip helpaddress 目标地址 这条命令。因为路由器是隔离广播域的,为了能用DHCP跨网段分配,需要将广播化单播。
在图中PC-2进行DHCP获取IP地址动作
打开CISCO PT上面的抓包功能。。如图
OK,现在就可以在里边抓包啦。先抓几个试试
这个是在同网段广播的时候,数据包的信息
下面进入最重要的环节,广播化单播在网络上传播
172.20.1.1是ROUTE 5的一个接口地址,也是那个网段的网管。OK,现在清晰了,原来在广播化单播的时候,路由器重新构造了一下IP包头,源地址是网管,目标地址是ip helpaddress地址,可能大家还有疑问,同一主机,DHCP一般只给一个IP地址,这个看DHCP包内内容
发现了吧,HARDWARE ADDRESS!!!!!!DHCP服务器也会根据这个进行分配IP地址。一个主机在租期内无论多少次IP地址申请,全是给第一次分配的IP地址
实战一下,在真实的LAN网络中用WIRESHARE抓包!!
因为我这个之前有IP地址,所以分配的是上次给我的IP地址,你会发现我的网管会进行一次ARP广播,先查找一下分配给我这个IP到底有人用吗?如果有,重新向DHCP要一个IP地址,如果没有,就分配出去这个IP地址。
在不同网段的时候,DHCP回应包从网关到客户端的时候用的是单播,也就是说目标IP是刚才分配的IP地址,源地址是网关。也许你会说,客户端都没有IP地址,他怎么能收到这个回复包呢????对的,但是,发给客户端的DHCP回复包明确写着这是回复包,所以客户端就知道这是给自己的
在同一网段的时候,DHCP回应包是广播,也就是源地址0.0.0.0 255.255.255.255 全程用广播进行通信,其他和上边都一样
在不同网段下,DHCP主机有一个作用域,是分配给某个网段的IP地址段,踏实根据作用域中的网关去识别的是那个那个网段的DHCP请求
第一次写,有些技术性问题难免有差错,还望大神指出,共同学习