1.实验环境
PC---------网线----互联网
实验过程:拔掉网卡网线,重启PC电脑,然后抓包分析.
2.基本流程
2.1 总体报文描述
A.PC首先申请本地IP地址,使用DHCP报文得到本地地址;
当PC获取到DHCP本地地址后,会在局域网触发三个arp请求IP地址冲突检测,如果IP地址有冲突(局域网被人手动设置了IP地址),则给DHCP服务器发送dhcp deline拒绝。然后重新发起DHCP流程。
B.在申请本地地址过程中,pc也获取到了DNS服务器地址;
C.网页输入www.baidu.com,触发PC发送DNS解析流程得到百度域名真是IP地址:
C.1 在发送DNS请求时,由于DNS地址非本地网络,需要PC本地查询路由表,查到下一跳地 址,在使用下一跳地址查ARP表获取下一跳MAC地址,但此时ARP表是查不到的。所以触发了 ARP学习.
D.到此,PC上网的环境都已具备.
2.2 DHCP
PC启动后,插上网线.
PC触发DHCP(以IPV4为例)报文,
PC----discover报文-->dhcp服务端
<----offer报文------
-----request报文---->
<----ack报文-------
2.2.1 discover报文
2.2.2 offer报文
2.2.3 request报文
2.2.4 ack报文
总结:
多个DHCP-server存在的情况下,dhcp收到广播报文,如何确定是发给自己的:
一般情况下部署1个DHCP-server就够了....如果有多个DHCP服务器,每个DHCP在回应的报文offer中会携带可选项server的本机地址。client在request中也携带dhcp server地址.
多个dhcp-client情况下,client如何区分报文是自己的:
报文中的事务ID,client收到和本身的事务ID不匹配的,则丢弃。
client一般都使用自己收到的第一个offer。假如2个client的事务ID真的相同,A收到第一个offer,触发了request给服务端。此时B也收到同样的offer,同样触发了request。服务端也是处理第一个收到的request,第二个request会回应一个NAK报文,收到NAK报文的client重新发起dhcp discover.
2.3 ARP报文
2.4 DNS报文
2.5 IP流
下面就是上网的IP流了.
2.6 IPV6过程(待补充)