4.3.1 ARP代理 在ARP代理模式中,VTEP设备会用网关自身的MAC地址进行回应ARP请求。
图13 ARP代理模式 1. VM 1想要和同网段的VM 3进行通信,于是VM 1发起了ARP请求寻找VM 3的MAC。 2. Leaf A开启了ARP代理模式,于是将VSI-Interface 10的MAC回应给VM 1,VM 1上生成了IP 3和MAC G10对应的ARP表项。 3. Leaf A若是没有VM 3的ARP表项,则会在VXLAN中的所有本地和远端端口广播。Leaf A将ARP请求报文的源MAC地址修改成本地地址MAC A,再封装成VXLAN报文发送出去。 4. Leaf B收到Leaf A发来的报文,解封装后,将IP 1与MAC A的对应关系写进表项。发现请求的是本地直连网段的ARP,于是将ARP请求报文中的源MAC地址修改成本地VSI-Interface 10的MAC,发送出去。 5. VM 3收到Leaf B发来的ARP请求报文,将IP 1和MAC G10的对应关系写进自己的ARP表。然后开始回送ARP应答报文,一路回送,最终Leaf A学到了IP 3与MAC B的对应表项。 6. VM 1发送数据报文给VM 3,目的MAC地址为Leaf A上的网关MAC。Leaf A收到报文后,发现目的MAC地址是VSI-interface 10的MAC,于是进行三层查表转发。找到IP 3对应的表项,将目的MAC改为Leaf B的MAC后,再把报文进行VXLAN封装发送给Leaf B。 7. Leaf B解封装VXLAN报文后,发现目的MAC是自己,于是进行三层查表转发。找到IP 3对应的表项,将目的MAC改为VM 3的MAC后,发送给VM 3。VM 3收到VM 1发来的数据报文,回送过程不再赘述。 在ARP代理模式下,网关设备在回应ARP时,只会以自己的网关MAC进行回应,这就将所有下挂的服务器MAC进行了屏蔽,实现了ARP抑制的作用。而在数据转发时,由于报文的目的MAC是自己,所以每一跳都会进行三层查表转发。 4.3.2 ARP代答 在ARP代答模式中,VTEP设备会将用请求虚拟机的实际MAC回应ARP请求。
图14 ARP代答模式 ARP代答模式下的首次ARP请求和前文“同VNI单播报文转发流程”章节中的过程相同。在VM 1和VM 3已经在经过flood-learn的过程后,VM 1和VM 3已经可以正常通信,且沿途的设备均已建立正确的表项。 此时,处于同一网段的VM2,同样想要和VM 3通信时,就需要发送ARP请求报文来寻找VM 3的MAC信息。Leaf A已经开启了ARP代答功能,且此时Leaf A上已经有了VM 3的IP和MAC对应表项,那么Leaf A会直接将表项中的MAC 3回应给VM 2,而不需要再经过一次泛洪。这样,ARP代答就可以大大减少ARP泛洪流量。而ARP代答若是配合可以在全网VTEP同步IP和MAC信息的VXLAN控制平面,那么ARP泛洪流量对带宽的影响可以降至最低。 |