searchusermenu
  • 发布文章
  • 消息中心
点赞
收藏
评论
分享
原创

IPV4 vip漂移问题分析

2024-11-28 09:53:13
24
0

在高可用场景中,我们经常遇到vip切换后网络不通的问题.在ipv4网络条件下,这是由于交换机的ARP表没有更新造成的:

  1. 每台主机都会在自己的 ARP 缓冲区中建立一个 ARP 列表,以表示 IP 地址和 MAC 地址之间的对应关系,因为数据链路层的数据传输靠的就是MAC地址。这个ARP表具有老化时间.不同厂商默认的ARP表老化时间也不一样:思科是 5分钟,华为是 20分钟。

  2. ARP 协议包(ARP 报文)主要分为 ARP 请求包和 ARP 响应包。网络中的主机通过这两种报文获取ip和mac的对应关系,或者更新邻居主机的arp表

  3. ARP请求包:
    某个主机需要发送报文时,首先检查 ARP 列表中是否有对应 IP 地址的目的主机的 MAC 地址,

    如果有,则直接发送数据,

    如果没有,就向本网段的所有主机发送 ARP 广播数据包,该数据包包括的内容有:源主机 IP 地址,

    源主机 MAC 地址,目的主机的 IP 地址等。当本网络的主机收到该 ARP 数据包时:

        (A)首先检查数据包中的 IP 目标地址是否是自己的 IP 地址,如果不是,则忽略该数据包。

        (B)如果是,则​首先从数据包中取出源主机的 IP 和 MAC 地址写入到 ARP 列表中​,如果已经存在,则覆盖.然后将自己的 MAC 地址写入 ARP 响应包中,单播给发送请求的主机,告诉源主机自己就是它想要找的 MAC地址。

  4. ARP响应包:
    源主机收到 ARP 响应包后,将​目的主机的 IP 和 MAC 地址写入 ARP 列表​,并利用此信息发送数据。

    如果源主机一直没有收到 ARP 响应数据包,表示 ARP 查询失败。

    对于网络设备新加入网络(ip变化)或者mac地址发生变化等情况,可以​发送免费的ARP响应包​(garp,Gratuitous arp,即不请自来的,没有发送请求报文就发过来的响应报文,也叫unsolicited arp)来将自己的ip和mac广播到其他主机,使这些邻居主机更新arp缓存表

  5. ARP老化问题.设备到ARP缓存表老化之前,不会自动更新ARP缓存表.如果在更新之前发生了vip切换,而交换机的ARP表没有更新,就会出现网络不通的问题,只有等到ARP表老化后交换机更新arp表,网络才能联通.
    解决方法是​切换vip后手动发送Garp包,​可以使用arping工具:

    // ebp...为网卡 后面是vip
    arping -c 3 -U -I enp5s0f0 192.168.52.18
    arping -c 3 -A -I enp5s0f0 192.168.52.18
    
0条评论
作者已关闭评论
chenrs3
4文章数
0粉丝数
chenrs3
4 文章 | 0 粉丝
chenrs3
4文章数
0粉丝数
chenrs3
4 文章 | 0 粉丝
原创

IPV4 vip漂移问题分析

2024-11-28 09:53:13
24
0

在高可用场景中,我们经常遇到vip切换后网络不通的问题.在ipv4网络条件下,这是由于交换机的ARP表没有更新造成的:

  1. 每台主机都会在自己的 ARP 缓冲区中建立一个 ARP 列表,以表示 IP 地址和 MAC 地址之间的对应关系,因为数据链路层的数据传输靠的就是MAC地址。这个ARP表具有老化时间.不同厂商默认的ARP表老化时间也不一样:思科是 5分钟,华为是 20分钟。

  2. ARP 协议包(ARP 报文)主要分为 ARP 请求包和 ARP 响应包。网络中的主机通过这两种报文获取ip和mac的对应关系,或者更新邻居主机的arp表

  3. ARP请求包:
    某个主机需要发送报文时,首先检查 ARP 列表中是否有对应 IP 地址的目的主机的 MAC 地址,

    如果有,则直接发送数据,

    如果没有,就向本网段的所有主机发送 ARP 广播数据包,该数据包包括的内容有:源主机 IP 地址,

    源主机 MAC 地址,目的主机的 IP 地址等。当本网络的主机收到该 ARP 数据包时:

        (A)首先检查数据包中的 IP 目标地址是否是自己的 IP 地址,如果不是,则忽略该数据包。

        (B)如果是,则​首先从数据包中取出源主机的 IP 和 MAC 地址写入到 ARP 列表中​,如果已经存在,则覆盖.然后将自己的 MAC 地址写入 ARP 响应包中,单播给发送请求的主机,告诉源主机自己就是它想要找的 MAC地址。

  4. ARP响应包:
    源主机收到 ARP 响应包后,将​目的主机的 IP 和 MAC 地址写入 ARP 列表​,并利用此信息发送数据。

    如果源主机一直没有收到 ARP 响应数据包,表示 ARP 查询失败。

    对于网络设备新加入网络(ip变化)或者mac地址发生变化等情况,可以​发送免费的ARP响应包​(garp,Gratuitous arp,即不请自来的,没有发送请求报文就发过来的响应报文,也叫unsolicited arp)来将自己的ip和mac广播到其他主机,使这些邻居主机更新arp缓存表

  5. ARP老化问题.设备到ARP缓存表老化之前,不会自动更新ARP缓存表.如果在更新之前发生了vip切换,而交换机的ARP表没有更新,就会出现网络不通的问题,只有等到ARP表老化后交换机更新arp表,网络才能联通.
    解决方法是​切换vip后手动发送Garp包,​可以使用arping工具:

    // ebp...为网卡 后面是vip
    arping -c 3 -U -I enp5s0f0 192.168.52.18
    arping -c 3 -A -I enp5s0f0 192.168.52.18
    
文章来自个人专栏
文章 | 订阅
0条评论
作者已关闭评论
作者已关闭评论
0
0