ip冲突与DHCP

当遇到L2层之上的连接性问题时,需要抓取tcpdump查看相关协议是否正常。

结合协议工作原理定位问题。

 

其中,涉及到ip地址相关的协议主要有:DHCP,ARP
DHCP是动态主机配置协议,用于动态分配ip地址。
ARP是地址解析协议,用于ip地址和mac地址映射。

1. DHCP
DHCP过程中,涉及两个主体:DHCP_Client, DHCP_server。client首次申请ip地址时的交互过程中涉及到四次握手,如下图
        Client                                                Server
            |      广播dhcp discover                  |
            |  --------------------------------->          |
            |                                                        |
            |             DHCP offer (ip)                |
            |      <-----------------------------           |
            |                                                        |
            |          DHCP request                     |
            |     ------------------------------>           |
            |                                                        |
            |                         ACK                        |
            |        <--------------------------             |
另一种情况是,server已经提供给client ip地址,在网络重新连接时,client只需发送dhcp request帧请求使用之前的ip地址,
如果server回复ACK帧,则client可使用之前申请的ip地址,无需重新申请;如果server回复NAK,则client需要重新走DHCP流程。
        client                                              Server
            |          DHCP request                     |
            |     ------------------------------>           |
            |                                                        |
            |                         ACK  / NAK           |
            |        <--------------------------             |
除了上述4中报文(discover、offer、request、ACK/NAK),DHCP还有一种报文:DHCP decline,这个报文用来告诉路由器"当前IP不想再用,请将我的这个MAC和这个IP的对应关系从你的ARP cache中删除"。
这个报文一般不会出现,但是ip冲突时有很大的作用。

2. ip冲突时,arp的表现。
假如当前有设备A、B,其对应的mac分别为MAC-A,MAC-B,在连接路由时:
设备A先连接路由,获得ip地址IP-addr,此时,路由的arp cache会记录A的ip及其对应的mac:IP-addr----MAC-A;
然后,B将自己的ip设置为IP-addr,并去连接路由,路由arp cache相应的记录会更新为:IP-addr---MAC-B;
现象来了,后来的B可以和路由通信,但是A好像链路是通的,但是无法通信。
接下来,B断开与路由的连接,A仍然无法与路由获得通信,因为路由的arp cache不会主动更新。那么A如何才能重新连接路由呢?
DHCP decline报文就有用武之地了,A发送DHCP decline报文让路由清除其对应的arp cache,并重新DHCP流程,就ok了。

3. ip冲突的可能性:
DHCP server不会重复分配ip,但不保证别的设备不主动使用ip池外的ip、或这DHCP server已经分配的ip。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值