问题描述:
如下图所示,两台 CE12808 设备部署 M-LAG, 在 VLANIF 接口上配置相同的 IP 地址和相同的虚拟 MAC 地址作为下联服务器的双活网关,服务器通过二层交换机双上联至部署了 M-LAG 的一组CE12808设备。
在此场景下, 从服务器可以 ping 通网关,但从两台 CE12808 设备向服务器 IP 地址 ping 测试时,只有一台设备能够通信,另一台设备则无法通信(假定能通信的为左侧设备,而右侧 CE1208 设备无法进行通信)。
原因分析:
两台M-LAG 的设备之间会通过 peer-link 链路发送 M-LAG 同步报文实时同步对端的信息, 在同步报文中就包含了MAC表项与 ARP 表项, 因此在两台 CE12808 设备上, 通过 display arp 命令,在两台设备上都可以看到下联服务器的 arp 表项。
对于下联服务器而言,因M-LAG为一种横向虚拟化设备, 两台 CE12808 被虚拟成一台有网关 IP 地址和MAC地址的设备,二层交换机通过 eth-trunk 链路双上联至 CE12808。目前华为设备上的 eth-trunk 只采用逐流负载分担的方式计算流量实际所走的链路。对于同一数据流的数据帧(五元组,即源目 IP 地址, 源目端口号,传输层协议号相同的数据帧),负载分担的机制会把数据帧中的地址通过 HASH 算法生成HASH-KEY 值ÿ