BGP EVPN路由信息
Type2路由——MAC/IP路由
主机MAC地址通告
要实现同子网主机的二层互访,两端VTEP需要相互学习主机MAC。作为BGP EVPN对等体的VTEP之间通过交换MAC/IP路由,可以相互通告已经获取到的主机 MAC。其中,MAC Address Length和MAC Address字段为主机MAC地址。
主机ARP通告
MAC/IP路由可以同时携带主机MAC地址+主机IP地址,因此该路由可以用来在VTEP之间传递主机ARP表项,实现主机ARP通告。其中,MAC Address和MAC Address Length字段为主机MAC地址,IP Address和IP Address Length字段为主机IP地址。此时的MAC/IP路由也称为ARP类型路由。主要用于以下两种场景:
---ARP广播抑制:当三层网关学习到其子网下的ARP时,生成主机信息通过ARP类型路由同步给其他的VTEP。当其他VTEP收到这个ARP请求时,直接将广播MAC替换成单播MAC,广播变单播达到ARP广播抑制。
---虚拟机跨设备迁移:新网关设备学习到ARP(一般通过虚拟机发送免费ARP实现)生成ARP主机信息(IP+MAC+VNI+VTEP IP)通告给原有VTEP,原VTEP网关得知虚拟机发生位置变化后,进行ARP探测,当探测不到后删除ARP和主机路由。
主机IP路由通告
在分布式网关场景中,要实现跨子网主机的三层互访,两端VTEP(作为三层网关)需要互相学习主机IP路由。作为BGP EVPN对等体的VTEP之间通过交换 MAC/IP路由,可以相互通告已经获取到的主机IP路由。其中,IP Address Length 和IP Address字段为主机IP路由的目的地址,同时MPLS Label2字段必须携带三层 VNI。此时的MAC/IP路由也称为IRB(Integrated Routing and Bridge)类型路由。
ARP类型路由携带的有效信息有:主机MAC地址+主机IP地址+二层VNI;
IRB类型路由携带的有效信息有:主机MAC地址+主机IP地址+二层VNI+三层VNI。
因此,IRB类型路由包 含着ARP类型路由,不仅可以用于主机IP路由通告,也能用于主机ARP通告。
Type3路由——Inclusive Multicast路由
该类型路由是由前缀和PMSI属性组成,该类型路由在VXLAN控制平面中主要用于VTEP的自动发现和VXLAN隧道的动态建立。作为BGP EVPN对等体的VTEP,通过Inclusive Multicast路由互相传递二层VNI和 VTEP IP地址信息。其中,Originating Router's IP Address字段为本端VTEP IP地址, MPLS Label字段为二层VNI。如果对端VTEP IP地址是三层路由可达的,则建立一条到对端的VXLAN隧道。同时,如果对端VNI与本端相同,则创建一个头端复制表,用于后续BUM报文转发。 Type5路由——IP前缀路由 该类型路由IP Prefix Length和IP Prefix字段既可以携带主机IP地址,也可以携带网段地址: 1、当携带主机IP地址时,该类型路由在VXLAN控制平面中的作用与IRB类型路由是一样的,主要用于分布式网关场景中的主机IP路由通告。 2、当携带网段地址,通过传递该类型路由,可以实现VXLAN网络中的主机访问外部网络。 个人理解: 当处于不同子网的Host1与Host2互通时,需要进行三层转发,因此在通过BGP EVPN方式建立VXLAN隧道的过程中(Type-3),网关Leaf1和Leaf2需要发布下属主机的IP路由(Type-2)。一般情况下,这里发布的是32位主机IP路由,因为在VXLAN网络中,不同的Leaf节点可能连接着相同的网段(Vxlan分布式网关),所以如果Leaf节点发布的是下属主机IP所在的网段路由,则可能与其他Leaf节点发布的网段路由冲突,进而导致某些Leaf节点的下属主机不可达。只有在如下两种场景中,Leaf节点可发布网段路由: 1、 Leaf节点连接的网段在整个VXLAN网络中是唯一的,而且有效的主机明细路由数量较大,此时可发布主机IP所在的网段路由,从而减轻Leaf节点上路由存储的压 力。 2、 VXLAN网络中的主机需要访问外部网络,此时Leaf节点可在VXLAN网络中发布 其连接的外部网段路由,从而使其他Leaf节点学习到去往外部网络的路由。