1

在EVPN中,解决BUM报文,通常是使用头端复制的方式(具体体现是在桥中添加mac地址为全0的FDB表项进行头端复制)。当有很多的arp广播请求报文的时候,容易造成广播泛滥。采用ARP抑制可以有效限制广播ARP报文的数量。

ARP抑制的原理是:当VTEP接收到广播ARP请求报文时,会先查看自己的overlay邻居表,如果存在则将广播arp请求报文替换成单播arp请求报文(这与arp代答是不同的,arp代答是直接回应),然后将单播报文发送给目的主机,目的主机收到后,回应一个应答报文给源主机。VTEP通过EVPN学习到了很多主机的mac/ip对。该方案可以有效的减少arp广播报文。

ARP抑制

图片.png

如上图所示,VXLAN三层网关通过动态学习终端租户的ARP表项,再根据ARP表项生成主机信息(包括主机IP地址、 MAC地址、 VTEP地址和VNI ID),并将主机信息通过MP-BGP或BGP EVPN对外发布,使其他的BGP邻居可以学习到主机信息。 VXLAN二层网关学习到的主机信息用于广播抑制。Server1初次访问Server2时, Server1会向Server2发送ARP广播请求报文,请求目的主机
Server2的MAC地址,具体实现过程如下:

  1. Server1发送ARP请求报文,请求目的主机Server2的MAC地址。
  2. 作为VXLAN二层网关的Device1收到ARP请求报文后,查询主机信息。
    – 如果主机信息中有目的主机信息, Device1将ARP请求报文中的广播目的MA地址和Target MAC地址替换为目的主机的MAC地址,并进行VXLAN封装后转发。
    – 如果主机信息中没有目的主机信息, ARP请求报文中的广播目的MAC地址不变, Device1进行VXLAN封装后转发。
  3. 作为VXLAN二层网关的Device2收到封装后的ARP请求报文进行VXLAN解封装获取内层二层报文,判断报文的目的MAC是否为广播地址。
    – 是,在对应的二层广播域内非VXLAN网络侧进行广播处理。
    – 不是,发送给对应的目的主机。
  4. 目的主机Server2收到单播ARP请求报文后,进行ARP应答。
  5. Server1收到ARP应答报文建立ARP缓存表,并可以与Server2通信。

LINUX配置ARP抑制

linux可以使用如下命令开启arp抑制功能

sudo bridge link set dev eth0 neigh_suppress on

ouyangxibao
189 声望162 粉丝

不生产代码,只是代码的搬运工