DHCP
动态主机配置协议:也叫即插即用协议,由DHCP服务器控制一段IP地址范围,客户机登录服务器的时候可以自动获取服务器分配的IP地址和子网掩码。当我们将客户机的IP设置成动态获取的时候,DHCP服务器就会根据DHCP协议给客户端分配IP地址
DHCP的前身是BOOTP,比BOOTP多出一个租约的概念
作用及特点
1.自动分配IP,子网掩码,网关,DNS
2.DHCP客户端使用68端口,服务器使用67端口,使用UDP应用层的协议
3.DHCP服务器和客户端需要在一个局域网内,在为客户端分配IP的时候需要进行多次广播.DHCP也可以为其他网段的主机分配内存,只要连接两个网段的路由器能转发DHCP配置请求即可,这要求路由器配置中继功能。
分配IP的三种方式
1.自动分配方式,服务器为主机指定一个永久性的IP地址,一旦客户端从服务器拿到IP地址后,就可以永久性使用该地址
2.动态分配:服务器分配一个IP地址给客户端,该地址具有时间限制,时间到期后,该地址可以被其他主机使用
3.手动分配:客户端的IP地址由网络管理员指定,服务器只将IP地址告诉主机即可
DHCP中继
默认情况下,路由器是会隔离广播包的,即不会讲一个广播包从一个子网发送到另外一个子网;当DHCP服务器和客户端不在同一个子网的情况下,由客户端的默认网关的路由器将广播包转发给DHCP所在的子网,这就是DHCP中继。
工作流程
第一步:搜索阶段:
客户端第一次登录,计算机发现本机没有任何IP地址绑定,就以广播形式发送DHCP discover信息来寻找DHCP 服务器,即向255.255.255.255发送广播信号,网络上每一台安装了TCP/IP协议的主机都会接收到这个信息,但只有DHCP服务器才会作出响应(DHCP discover)
第二步:提供地址
接收到DHCP Discover的服务器就会作出响应,它从尚未分配的IP地址池中挑选一个地址分配给G客户机,向DHCP客户机发送一个包含分配的IP地址和其他设置DHCP offer提供信息,因为此时客户端还没有IP,该包依然是以广播的形式发送(DHCP offer)
第三步:选择阶段
DHCP客户端接受到DHCP offer提供的信息以后,选择第一个接受到的信息,然后以广播的形式回答一个DHCP request请求信息,该信息包含他所选定的DHCP服务器请求IP地址的内容(DHCP request)
第四步:确认阶段
当服务器收到客户端回复的DHCP request请求信息之后,便向DHCP客户端发送一个包含它提供的IP地址和其他设置的DHCP ack信息,确认租约,并指定租约时长,告知DHCP客户端可以使用它提供的IP地址。然后,DHCP客户机便讲起TCP/IP协议与网卡绑定,另外,除了DHCP客户机选中的DHCP服务器外,其余的DHCP服务器将回收提供的地址。(DHCP ack)
之后客户机登录网络的时候,就不需要再发送DHCP discover信息了,而是发送包含前一次所分配的IP地址的DHCP request 请求信息。每当服务器收到这个消息,就会尝试让该客户机使用之前的地址,如果可以会回复一个DHCP ack。如果这个IP地址已经无法分配给该客户机,服务器就需要给客户机回一个NACK信息,客户机收到NACK 后,就会重新进行上面的流程
DHCP续租
1.在该IP使用超过租期50%的时候,客户机会发送DHCP request请求续约,如果服务器回复了ACK ,那么租约相应的延长,如果没有回复,则客户端继续使用该IP地址
2.当使用时间达到87.5%的时候,继续向服务器发送DHCP request,如果服务器回复了ACK ,那么租约相应的延长,如果没有回复,则客户端继续使用该IP地址
3.当到达租约时间,客户机自动放弃该IP地址,并开始新的DHCP过程
抓包分析
DHCP discover
DHCP offer
DHCP request
DHCP ack
ARP
ARP-地址解析协议:用于实现从IP地址到MAC地址的映射,即询问目标IP地址对应的MAC地址。这里需要注意:ARP协议只应用于IPV4协议中,IPV6协议使用的是NDP(邻居发现协议)
如果目标主机不在同一个子网下,它会查找下一跳路由的MAC地址
工作机制
假设A与B在同一子网下,即不需要经过路由的转换:
主机A以广播的形式向以太网上所有的主机发送一个ARP请求包,这个请求包内包含了想要知道MAC地址的那个主机的IP,这个包会被子网下所有的主机和路由器接收并解析,如果ARP包中的目标IP地址和自己的IP地址相同,就会将自己的MAC地址写入响应包以单播的形式返回给主机A.
这一过程需要注意的是主机B在发现ARP请求中的IP与自己一致时,会将该IP对应的MAC加入到自己的ARP缓存列表中。
同时主机A在收到主机B的ARP回复消息时,也会将IP对用的MAC加入自己的ARP缓存列表中。
以上过程完成之后,主机A和主机B之间就可以愉快的传输IP数据啦!
我们可以通过ARP命令查询本机中IP地址和MAC地址对应的关系,添加和删除静态对应关系。
如下:我们可以通过arp -a
查询本机缓存:
这里可以看见本机有三个网卡接口:每个网卡接口都有对应的ARP缓存,可以通过ipconfig查看对应的网卡接口分别是什么。
当然也可以通过arp -d
删除指定条目的ARP缓存,具体的指令使用方法大家可以多了解!
抓包分析
在wireshark中抓取一个ARP请求和响应的流程,可以使用电脑连接WLAN后使用wireshark抓取无线WLAN网卡的网络包,当有新设备接入的时候恰好WLAN又没有缓存,就会产生一次ARP交互。
ARP请求
对端收到ARP请求后根据IP地址匹配到后会缓存映射关系后回复对端,其余无法匹配广播包的主机或者路由器丢掉广播包即可。
ARP响应
收到回应后将对应的MAC地址与IP地址的映射加入缓存列表后即可。
ARP缓存
ARP缓存分为静态缓存和动态缓存。
一般静态缓存会一直存在于缓存列表中永久生效。而动态缓存一般的生存周期是300s,即如果在300s内没有使用过该缓存,则到期自动失效删除!
更多内容请关注微信公众号:学习学个der