分布式对称路由上一篇我们分析了集中式路由和分布式非对称路由模型。分布式非对称模型有一个严重的缺点:每个VTEP都需要配置所有的VNI,即使VTEP上没有对应的子网。为了克服这一缺陷,产生了一种新的模型分布式对称路由模型。分布式对称路由模型是三种模型中最复杂的,在该模型中引入了一种新的VNI:L3VNI(也称为互联VNI)。同时引入了一种新的EVPN路由:前缀路由(也称为type-5路由)。本文将详细分析该模型。在L3VNI的分布式对称模型中,每个VTEP作为一个三层网关,为附属于它的主机进行跨子网路由,这与非对称模型是一致的。不同的是,在对称模型中,不仅需要路由源VTEP,还需要路由目的VTEP。因此,这个模型更像是传统的路由器行为:将数据包路由到另一个路由器。在vxlan封装中,当报文离开源VTEP时,内部报文的目的mac是目的路由器的overlay网关mac,而不是目的主机的mac,所以目的VTEP收到报文后会继续路由,寻找最终目的主机。所有的路由都发生在租户对应的vrf上下文中。在源VETP上,通过收到报文所在VLAN的svi接口确定报文所属的VRF,然后进行路由。在目的VTEP上收到消息后,通过消息中的VNI确定租户的VRF。在对称路由模型中,源VTEP和目的VTEP之间的vxlan隧道的VNI不同于源主机所在vlan对应的VNI,也不同于目的主机所在vlan对应的VNI.这种特殊的VNI被称为Layer3VNI或interconnectedVNI。这个VNI需要运营商配置,然后通过EVPN控制平面传播。L3VNI与Layer2VNI完全不同。L2VNI映射到一个VLAN或子网;L3VNI映射到VRF。L3VNI功能L3VNI与租户(VRF)具有一对一的对应关系。(这个说法不太正确,一个租户可能有多个VRF,VRF之间也可以进行路由(路由泄漏)。)L3VNI需要运营商配置,并且在所有VTEP上必须保持一致。L3VNI不能与L2VNI相同。在对称模型中,一条IP/MAC路由(type-2路由)发布时,会携带两个VNI:l2vni和l3vni。同时,它也会携带相应的RT。第三层RT对应一个租户,第二层RT对应一个子网。配置对称路由模型需要一些额外的配置:为每个租户配置一个VXLAN接口,并设置对应的L3VNI。这个vxlan接口也是网桥的一部分。以后安装三层路由时,出接口就是vxlan接口。(此配置与linux层和二层vxlan接口没有区别,区别在于FRR配置)为三层vxlan接口所在的bridge配置一个svi接口,并将该接口attach到VRF设备。将vxlan接口关联到BGP上的VRF。linux上配置接口如下#Configurevxlaninterfaceautovni104001ifacevni104001bridge-access4001bridge-arp-nd-suppresson#开启arp抑制bridge-learningoff#禁止mac学习vxlan-id104001#vxlanvnivxlan-local-tunnelip10.0.0.11#tunnelsip#Attachthevxlandevicetoabridgeautobridgeifacebridgebridge-portsvni104001#Attachthevxlaninterfacevni104001tothebridgebridge-vlan-awareyes#vlansensitive#创建一个svi接口,这是一个vlanifautovlan4001ifacevlan4001vlan-id4001vlan-raw-devicebridge#将vlanif附加到网桥vrfturtle#将svi关联到vrfdeviceturtle。bgp上的配置#Specifyvni104001asL3VNIonbgp,真正的区别就在这里,linux上的l2vni和l3vni没有区别。vrf乌龟vni104001!为租户VRF配置RT和RD默认情况下,BGP会自动为VRF导出RD和RTS,生成规则与L2VNI相同。也可以手动配置。手动配置的上下文不在VNI下:routerbgp
