今天继续给大家介绍VXLAN技术,本文主要内容是EVPN技术的主要应用——VXLAN分布式网关。本文从VXLAN分布式网关实现的角度,对EVPN的实现进行了详细的讲解。
阅读本文,您需要有一定的VXLAN技术基础,如果您对此还存在困惑,欢迎查阅我博客内的其他文章,相信您一定会有所收获。
相关链接:
VXLAN详解(一)
VXLAN详解(二)
VXLAN详解(三)
VXLAN中EVPN技术详解(一)——EVPN实现VXLAN隧道控制

一、VXLAN分布式网关概述

VXLAN分布式网关拓扑图如下所示:

分布式网关的出现很好的解决了集中式网关的路径迂回问题,在需要配置虚拟机跨数据中心迁移的云计算场景中,为了避免集中式网关带来的跨广域网连路由的路径迂回,大都采用分布式网关的场景。
在分布式网关场景下,因为每个VXLAN的CE设备都是自己下游设备的网关,因此要解决下面三个问题:
1、同子网不同CE设备下的互通问题
2、不同子网不同CE设备下的互通问题
3、多个网关的外部路由下发问题
上述三个问题的解决,就是分别使用了EVPN定义的Type 3路由、Type 2路由和Type 5路由。
今天,我将主要讲解前两种路由是如何在EVPN中发挥作用的。
上述三种路由,都是在BGP中进行传递的,华为的设备定义了一种新的路由——EVPN路由, 在BGP中进行合理的设置,可以控制建立EVPN邻居,控制EVPN路由的转发。
在这里,要特别注意的是,在EVPN场景下,存在两种VNI(二层VNI和三层VNI),存在两种RT值(BD域中的RT值和VPN实例中的RT值)。因此,EVPN路由传递的规则比较复杂,配置比较繁琐。

二、EVPN Type 3类型路由的作用

Type 3路由,在EVPN中主要作用是实现二层互通,建立VXLAN隧道。在传统的集中式网关共,VXLAN隧道大都是由我们在VNE隧道中手工指定对端IP。(注意,其实也可以在集中式网关中使用EVPN)但是在分布式网关场景下,我们一般使用EVPN作为VXLAN的控制层面,控制VXLAN隧道的生成,使得VXLAN隧道的建立更加灵活。
Type 3类型的路由,在发送时,会携带在BD域中设置的RD值;在接受时,则步骤比较繁琐,主要有以下三步:
①根据RT,查找是否有感兴趣的实例,比较RT是否匹配,如果匹配,则接受该路由。
②提取Type 3路由中的VTEP(Originator Router IP)地址,如果该地址路由可达,则创建VXLAN隧道。
③提取PMSI属性中二层VNI值,看是否和本端EVPN实例中的相同。如果相同,则将PMSI中VTEP地址添加到VXLAN隧道的头端复制列表中。
在CE设备中NVE隧道上配置vni相关命令后,就会发布Type 3类型的路由。Type 3 类型路由抓包如下:

三、EVPN Type 2类型路由的作用

Type 2类型的路由,可以进一步细分为MAC主机路由ARP类型路由IRB类型路由
MAC主机路由携带属性为:RD+二层VNI
ARP类型路由携带属性为:RD+MAC+IP+二层VNI
IRB类型路由携带属性为:RD+MAC+IP+二层VNI+三层VNI
其实,ARP类型路由主要用做优化,IRB类型的路由也具备ARP类型路由的功能。
Type 2路由的作用:
1、主机MAC地址通告
要实现同子网主机的二层互访,两端VTEP需要相互学习主机MAC地址。作为BGP EVPN对等体的VTEP_之间通过交换MAC/IP路由,可以相互通告已经获取到的主机MAC。
2、主机ARP通告
(1)ARP广播抑制。 当三层网关学习到其子网下的主机ARP时,生成主机信息(包括主机IP地址,主机MAC地址,二层VNI,网关VTEP,IP地址),然后通过传递ARP类型路由将主机信息同步到二层网关上。这样,当二层网关再次收到ARP请求时,先查找是否存在目的IP地址对的主机信息。如果存在,则直接将ARP请求报文中的广播MAC地址替换为目的单播MAC地址,实现广播变单播,达到ARP广播抑制的目的。
(2)虚拟机热迁移。
分布式网关场景下的虚拟机迁移,当一台虚拟机从当前网关迁移到另一个网关下之后,新网关学习到该虚拟机的MAC地址信息(一般虚拟机在迁移后都会发送免费ARP报文,因此新网关会学习到虚拟机的MAC地址),并生成主机信息(包含主机IP地址、主机MAC地址、二层VNI、网关VTEP IP地址),然后通过传递ARP类型路由将主机信息发送给虚拟机的原网关和其他网关。其他网关收到后,会比较ARP的新旧程度,并且总是用新的ARP路由替换旧的ARP路由。原网关收到后感知到虚拟机的位置发生变化,触发ARP探测,向下游发送ARP报文查询该虚拟机是否存在,如果该虚拟机不存在,则撤销原位置虚拟机的ARP和主机路由,最终实现全网路由收敛。
3、主机IP路由通告
在分布式网关场景中,要实现跨子网主机的三层互访,两端VTEP需要互相学习主机IP路由。作为BGP EVPN对等体的VTEP之间通过交换MAC/IP路由,可以相互通告已经获取到的主机IP路由。在这里,Type 2类型的路由必须是IRB类型的路由。这样一来,通过主机IP路由的通告,就能够实现分布式网关场景下跨子网互访了。
Type 2 类型路由抓包如下所示:

原创不易,转载请说明出处:https://blog.csdn.net/weixin_40228200/article/details/119703248