EVPN路由的种类比较多,每个类型抓一个包在此留存,以备不时之需。
与君共勉。
每种EVPN路由的具体作用及工作方式可以参见VXLAN专栏中其它文章。
Type1
当各网关设备之间的BGP EVPN邻居关系建立成功后,网关设备之间会传递以太自动发现路由。以太自动发现路由可以向其他网关通告本端网关对接入站点的MAC地址的可达性,即网关对连接的站点是否可达。其中,Ethernet Auto-Discovery Per ES路由主要用于ESI多活场景中的快速收敛和水平分割,Ethernet Auto-Discovery Per EVI路由主要用于ESI多活场景中的别名。
type1-per esi
type1-per evi
Type2
该类型路由在VXLAN控制平面中的作用包括:
主机MAC地址通告
要实现同子网主机的二层互访,两端VTEP需要相互学习主机MAC。作为BGP EVPN对等体的VTEP之间通过交换MAC/IP路由,可以相互通告已经获取到的主机MAC。其中,MAC Address字段为主机MAC地址。
主机ARP通告
MAC/IP路由可以同时携带主机MAC地址+主机IP地址,因此该路由可以用来在VTEP之间传递主机ARP表项,实现主机ARP通告。其中,MAC Address字段为主机MAC地址,IP Address字段为主机IP地址。此时的MAC/IP路由也称为ARP类型路由。主机ARP通告主要用于以下两种场景:
ARP广播抑制。当三层网关学习到其子网下的主机ARP时,生成主机信息(包含主机IP地址、主机MAC地址、二层VNI、网关VTEP IP地址),然后通过传递ARP类型路由将主机信息同步到二层网关上。这样当二层网关再收到ARP请求时,先查找是否存在目的IP地址对应的主机信息,如果存在,则直接将ARP请求报文中的广播MAC地址替换为目的单播MAC地址,实现广播变单播,达到ARP广播抑制的目的。
分布式网关场景下的虚拟机迁移。当一台虚拟机从当前网关迁移到另一个网关下之后,新网关学习到该虚拟机的ARP(一般通过虚拟机发送免费ARP实现),并生成主机信息(包含主机IP地址、主机MAC地址、二层VNI、网关VTEP IP地址),然后通过传递ARP类型路由将主机信息发送给虚拟机的原网关。原网关收到后,感知到虚拟机的位置发生变化,触发ARP探测,当探测不到原位置的虚拟机时,撤销原位置虚拟机的ARP和主机路由。
主机IP路由通告
在分布式网关场景中,要实现跨子网主机的三层互访,两端VTEP(作为三层网关)需要互相学习主机IP路由。作为BGP EVPN对等体的VTEP之间通过交换MAC/IP路由,可以相互通告已经获取到的主机IP路由。其中,IP Address字段为主机IP路由的目的地址,同时MPLS Label2字段必须携带三层VNI。此时的MAC/IP路由也称为IRB(Integrated Routing and Bridge)类型路由。
Type3
该类型路由在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的头端复制表并将对端VTEP IP地址加入其中,用于后续BUM报文转发。
Type4
以太网段路由可以携带本端网关的ESI值、源地址和RD值,用来实现连接到相同VM的网关设备之间互相自动发现。以太网段路由主要用于DF(Designated Forwarder)选举。
Type5
该类型路由的IP Prefix Length和IP Prefix字段既可以携带主机IP地址,也可以携带网段地址:
当携带主机IP地址时,该类型路由在VXLAN控制平面中的作用与IRB类型路由是一样的,主要用于分布式网关场景中的主机IP路由通告。
当携带网段地址时,通过传递该类型路由,可以实现VXLAN网络中的主机访问外部网络。
interface-less 模型,GW IP = 0,保留三层VNI信息,下一跳路由器MAC是BGP扩展属性的一部分。