目录

EVPN 技术起源

EVPN的核心架构

控制平面:EVPN MP-BGP:

技术标准:

核心功能:

数据平面:多封装技术支持

EVPN的功能:

简化配置与自动化部署:

控制平面与数据平面分离:

提供多样连接服务:

完善的多归属接入支持:

灵活管理 MAC/IP 地址:

维护网络隔离性:

缩短故障收敛时间:

统一控制信令协议:

降低部署难度与资源消耗:

优化 VXLAN 应用:

EVPN的相关专业术语

EVI(EVPN Instance):

ES(Ethernet Segment):

​编辑ESI(Ethernet Segment Identifier):

EVPN 路由:

VTEP(VXLAN Tunnel Endpoint):

EVPN地址族:

EVPN 常用的的五种路由类型

RT-1(以太自动发现路由,Ethernet Auto - Discovery Route):

        控制信息:

        用途:

RT-2(MAC/IP 发布路由,MAC/IP Advertisement Route):

        控制信息:

        用途:

RT-3(包含性组播以太网标签路由,Inclusive Multicast Ethernet Tag Route,IMET Route):

        控制信息:

        用途:

RT-4(以太网段路由,Ethernet Segment Route):

        控制信息:

        用途:

​编辑RT-5(IP 前缀路由,IP Prefix Route):

        控制信息:

        用途:

简单总结:

BGP EVPN 扩展团体属性:

ESI Label Extended Community:

ES-Import Route Target Extended Community:

MAC Mobility Extended Community:

Default Gateway Extended Community:

Encapsulation Type Extended Community:

VPN Target Extended Community:

EVPN的控制平面工作机制

VXLAN 隧道及 BUM 广播表建立(基于 RT-3 路由)

        1、VTEP 启动与路由发布:

        2、路由反射与同步:

        3、隧道建立与广播表生成:

MAC/IP 路由通告与学习(基于 RT-2 路由)

        1.VM 上线与本地学习:

        2.RT-2 路由发布:

        3.路由反射与表项更新:

 MAC 地址迁移

        1.VM 迁移与路由触发:

        2.远端表项更新:

​编辑

外部路由通告与学习 (基于EVPN与外部网络路由协同)

        1.外部路由引入 EVPN:

        2.EVPN 控制平面路由发布:

        3.VTEP 路由表生成:

ARP泛洪抑制(基于 EVPN  ARP代答机制):

传统VXLAN ARP泛洪问题:

ARP代答机制:

1.ARP请求发起:

2.EVNP控制平面代答判断:

3.ARP代答执行:

4.后续流量转发:

RD 与 RT 在 EVPN 控制平面工作机制中的作用体现:

1.RD (Route Distinguisher,路由区分符)的填充与作用:

2.RD 在控制平面的作用:

3.RT(Route Target,路由目标) 的填充、分类与作用:

①RT的填充规则

②RT的分类与配置位置

虚拟服务实例(VSI)视图:

VPN 视图下 ipv4 地址族中:

VPN 视图下 EVPN 地址族中:

③不同 RT 值的使用场景和作用:

VSI 实例视图中 RT 的作用:

VPN 实例中 EVPN 协议族中 RT 的作用:

VPN 实例中 IPv4 协议族中 RT 的作用:

4.RT在控制平面的作用:

5.EVPN 集中式网关场景下 RT 的携带及作用:

1.路由携带:

2.作用:

6.RD与RT在控制平面路由交互中的协同

EVPN VXLAN 数据平面工作机制

纯二层流量转发:

已知单播流量转发:

BUM 流量转发(头端复制模式):

集中式网关转发:

集中式网关二层转发(同 VXLAN):

集中式网关三层转发(不同 VXLAN):

分布式网关转发:

分布式网关对称IRB转发:

相关核心概念术语:

L3VNI(Layer 3 VNI):

Route MAC:

对称 IRB 转发流程:

分布式网关非对称IRB转发:

非对称 IRB 转发流程:

去程:VM1(10.1.1.1,VNI 100)访问 VM3(IP3,VNI 300):

回程:VM3(IP3,VNI 300)访问 VM1(10.1.1.1,VNI 100):

流量回程特性:

实验需求:

实验拓扑:

实验配置:

R1

1.underlay的建立,全网可达(全网启用OSPF功能)

2、激活L2VPN功能,配置VSI,关联VNI,设置EVPN的封装模式为VXLAN模式,RT,RD值为自动取值。

3.配置服务实例(AC),指定感兴趣流,绑定VSI

4.配置BGP发布EVPN路由

R4:

R2

R3:

SRV:

SW1:

SW2:

PC(用思科路由器模拟):

查看命令

查看 BGP在 L2VPN的 EVPN地址族下的邻居状态及相关信息

查看L2VPN的Tunnel隧道建立

查看L2VPN的MAC地址表

查看Link ID

配置文档:

R1:

R2:

R3:

R4:

SW1:

SW2:


        EVPN(Ethernet Virtual PrivateNetwork)是一种基于Overlay技术的二层网络互联技术。实现在现有网络基础上构建虚拟二层网络,使不同站点间的以太网业务互联。其核心价值在于解决传统二层网络扩展性差、配置复杂等问题,同时继承 MP-BGP 和 VXLAN/MPLS 的优势,提供更灵活、高效的网络服务。凭借控制与数据平面分离、自动化部署等核心特性,EVPN广泛应用于数据中心、园区接入网络、广域网、运营商网络中。

EVPN 技术起源

        EVPN 是为解决传统二层网络扩展性差、配置复杂等问题而生的 Overlay 技术。

        传统网络中,二层互联依赖物理链路或静态配置隧道,难以适配数据中心虚拟机动态迁移、多租户隔离等需求;

        而 EVPN 通过控制平面集中管理与数据平面灵活转发的分离架构,实现了二层网络的虚拟化与自动化,其核心应用场景覆盖:
数据中心:实现跨机架、跨机房的 VM(虚拟机)迁移与二层互联,支持 VXLAN 封装下的大规模租户隔离。
园区接入网络:简化分支机构与总部的二层互联配置,降低广域网部署难度。
广域网 / 运营商网络:替代传统 VPLS(虚拟专用局域网服务),提供更高效的多归属接入与业务隔离能力。

EVPN的核心架构

EVPN 架构分为控制平面数据平面两大核心部分

架构图清晰展示了二者的协同关系,具体细节如下:

控制平面:EVPN MP-BGP:

技术标准:

        基于 RFC7432 规范,通过扩展 MP-BGP(多协议边界网关协议)实现路由信息传递,定义了专属的 EVPN 地址族(AFI=25,SAFI=70)。

核心功能:

        自动发现:

         完成 VTEP(VXLAN 隧道端点)、PE(运营商边缘设备)的动态发现,无需人工配置设备间邻居关系。
        路由发布:

        传递 MAC/IP 地址、隧道信息、以太网段标识等关键路由数据,如 RT-2(MAC/IP 发布路由)、RT-3(IMET 路由)。

        隧道建立:

        基于 RT-3 路由自动建立 VXLAN 隧道或 PW(伪线),避免传统 VXLAN 手工配置隧道的繁琐操作。

数据平面:多封装技术支持

EVPN 数据平面支持 MPLS、PBB、NVO(VXLAN)、SRv6 四种转发技术,每种技术对应不同应用场景,具体适配关系如下:

EVPN的功能:

简化配置与自动化部署:

        通过 MP - BGP 协议,能够自动实现 VTEP(VXLAN 隧道端点)、PE(运营商边缘设备)的发现,VXLAN 隧道、PW(伪线)的自动建立以及 VXLAN 隧道与 VXLAN 的自动关联,无需用户手工进行繁琐配置,极大降低了网络部署的难度。


控制平面与数据平面分离:

        控制平面专注于发布路由信息,负责网络拓扑、地址等控制逻辑的传递;数据平面则专门承担报文转发的任务,这种分离使得网络的控制和转发功能各司其职,提升了网络的灵活性与可管理性。


提供多样连接服务:

        支持点到点和点到多点的服务,可让用户的二层数据跨越 IP 或者 MPLS 网络,在不同站点之间透明地进行传送,满足了跨站点数据传输的需求。

完善的多归属接入支持:

        能支持负载分担和主备备份两种工作模式,在多归属接入场景下,可根据实际需求灵活选择,提高了网络的可靠性与资源利用效率。

灵活管理 MAC/IP 地址:

        将二层网络间 MAC/IP 地址的学习和发布从数据平面转移到控制平面,借助 MP - BGP 协议来通告 MAC/IP 的可达性,改变了传统依赖数据平面泛洪学习地址的方式。

维护网络隔离性:

        可以有效维护主机或虚拟机彼此之间的隔离性,保障不同用户或业务之间的网络安全与独立性。

缩短故障收敛时间:

        当网络出现故障时,能够快速收敛,减少故障对网络正常运行的影响时间,提升网络的稳定性。

统一控制信令协议:

        使用 BGP 作为控制协议,统一了二层和三层的控制信令协议,简化了网络控制层面的复杂度。


降低部署难度与资源消耗:

        通过部署路由反射器,降低了网络部署的难度;同时,减少了网络资源的消耗,如减轻了 BUM(广播、未知单播、组播)报文泛洪对网络带宽等资源的占用。

优化 VXLAN 应用:

        针对传统 VXLAN 可扩展性差、隧道建立和 VXLAN 匹配需手动完成,以及 MAC + IP 地址学习依赖数据平面泛洪、BUM 报文泛洪到整个网络等挑战,EVPN 能够自动完成 VTEP 之间隧道建立及 VXLAN 匹配,还能实现 VTEP 之间 MAC + IP 的自动同步减少网络中的泛洪报文,极大优化了 VXLAN 的使用效果。

EVPN的相关专业术语

EVI(EVPN Instance):

        EVPN 实例,每个实例独立存在,每个 EVI 独立维护路由表与转发规则,实现不同业务或租户的完全隔离,类似 VPN 实例的二层版本。


ES(Ethernet Segment):

        CE(用户边缘设备)与 PE 之间的物理或逻辑链路,是多归属场景的核心单元(如 CE 通过两条链路连接两台 PE)。


ESI(Ethernet Segment Identifier):

        ES 的唯一 10 字节标识,用于 PE 识别同一 ES 的不同成员,在多归属场景中实现 DF(指定转发器)选举与环路避免。


EVPN 路由:

        MP-BGP EVPN 地址族定义的 NLRI(网络层可达性信息),包含 8 种路由类型(RT-1 至 RT-8),每种路由承载特定控制信息。


VTEP(VXLAN Tunnel Endpoint):

        VXLAN 数据平面的隧道端点,负责 VXLAN 报文的封装(添加 VXLAN 头、UDP 头、外层IP 头)与解封装,同时参与 EVPN 控制平面路由交互。

EVPN地址族:

        MP-BGP扩展出了EVPN地址族,并采用Open消息进行能力通告。EVPN子地址族使用的地址族编号为:AFI=25 ,SAFI=70。

EVPN 地址族通过 MP-BGP 的 Open 消息进行能力通告,关键字段解析如下:

        Optional Parameter: Capability:类型为 “Multiprotocol extensions capability(1)”,标识设备支持多协议扩展。

        AFI(Address Family Identifier):取值 25,代表 “Layer-2 VPN”,明确地址族类型为二层 VPN。

        SAFI(Subsequent Address Family Identifier):取值 70,代表 “EVPN”,指定子地址族为 EVPN。

        MP_REACH_NLRI(Type Code 14):用于传递 EVPN 路由信息,包含 Next Hop(下一跳 IP,通常为 VTEP/PE 的环回口 IP)、NLRI(EVPN 路由内容,如 RT-2、RT-3)。

EVPN 常用的的五种路由类型

RT-1(以太自动发现路由,Ethernet Auto - Discovery Route):

        控制信息:

        包含 RD(Route Distinguisher,路由区分符)、ESI(Ethernet Segment Identifier,以太网段标识符)、Ethernet Tag ID 以及 MPLS Label 等信息。

        RD(Route Distinguisher):EVPN 实例的唯一标识,避免不同实例路由冲突,如 “100:1”。

        ESI:对应 ES 的唯一标识,用于多归属场景的成员识别。

        MPLS Label:VXLAN 场景下为 VNI(VXLAN 网络标识),如 VNI=5010。

        用途:

        主要用于多归属组网场景,进行以太网段(ES)的自动发现,通告 ES 和 Service ID 信息 ,实现环路避免、快速收敛与负载分担。比如在 CE(用户边缘设备)双归属连接到不同 PE(运营商边缘设备)的场景中,通过 RT - 1 路由可以确保流量的正确转发,避免环路产生。


RT-2(MAC/IP 发布路由,MAC/IP Advertisement Route):

        控制信息:

        携带 RD、ESI(单归属时为全 0)、Ethernet Tag ID、MAC Address 以及 IP Address(可选)等信息。

        用途:

        将二层 MAC 地址与三层 IP 地址(ARP/ND 信息)从数据平面学习转移到控制平面,通过 MP-BGP 同步至全网 VTEP/PE,减少传统网络中 BUM 流量泛洪(如 ARP 广播)。

        RT-2 的核心作用是传递单台主机的 MAC+IP 映射关系,其路由结构中不包含 VNI;VNI 通过 “EVPN 实例(EVI)-VSI-VXLAN” 的绑定关系间接关联,而非 RT-2 路由本身携带。


RT-3(包含性组播以太网标签路由,Inclusive Multicast Ethernet Tag Route,IMET Route):

        控制信息:

        包含 RD、Ethernet Tag ID、IP Address Length(32,代表 IPv4)、Originating Router's IP(VTEP/PE 的 IP,如 “10.255.1.1”),同时携带 PMSI_TUNNEL_ATTRIBUTE(隧道类型为 Ingress Replication,隧道 ID 为对端 VTEP IP)。

        用途:

        实现 VTEP(VXLAN Tunnel Endpoint,VXLAN 隧道端点)/PE 的自动发现,以及 VXLAN 隧道的自动建立。本地 VTEP 发布 RT - 3 路由后,远端 VTEP 根据路由中的信息建立 VXLAN 隧道,同时生成用于 BUM 流量转发的广播表。

        RT-3 的核心作用是 “宣告某 VNI 下的 VTEP 存在”,其路由结构中必须携带 VNI(通过 Ethernet Tag ID 关联),远端 VTEP 需通过 RT-3 中的 VNI 识别 “该 VTEP 属于哪个虚拟网络”,才能建立对应 VXLAN 隧道。


RT-4(以太网段路由,Ethernet Segment Route):

        控制信息:

        包含 RD、ESI、IP Address Length、Originating Router's IP 。

        用途:

        通告本端PE上的EVPN实例的RD值,ESI值和Source IP地址,通过通告 PE 与 CE 之间的 ES 信息,帮助 PE 发现连接同一 ES 的其他成员,并且参与指定转发器(DF,Designated Forwarder)的选举,在多归属场景中避免流量环路。


RT-5(IP 前缀路由,IP Prefix Route):

        控制信息:

        包含 RD、ESI(全 0)、Ethernet Tag ID、IP Prefix Length、GW IP Address(默认网关,Gateway IP Address)、VNI 等信息。

        用途:

        以 IP 前缀形式通告 EVPN 实例与外部网络的路由,实现跨 EVPN 实例或跨网络的三层互通,比如数据中心内网与互联网之间的路由通告。

简单总结:

RT2: 二层表项学习,MAC地址迁移,ARP泛洪抑制。

RT3:VXLAN隧道建立

RT5:三层表项学习

BGP EVPN 扩展团体属性:

ESI Label Extended Community:

        携带 ESI 对应的 MPLS 标签,多归属场景中用于标识 ES 的流量转发标签,确保同一 ES 的流量按标签转发至正确 PE。

ES-Import Route Target Extended Community:

        类型为 0x06,子类型为 0x02,携带 ES 的 Route Target(如 “01:00:01:00:01:00”),控制 ES 相关路由的接收范围(仅匹配 RT 的 PE 接收该路由)。

MAC Mobility Extended Community:

        类型为 0x06,子类型为 0x00,包含 Flags(最后 1 位标识静态 MAC)、Reserved(保留字段)、Sequence Number(MAC 迁移次数),解决 VM 迁移后 MAC 地址漂移的同步问题(迁移次数递增,远端 VTEP 优先选择高次数路由)。

Default Gateway Extended Community:

        携带默认网关信息,分布式网关场景中用于告知远端 VTEP 本地网关的 IP 与 MAC,实现跨 VTEP 的网关冗余。

Encapsulation Type Extended Community:

        类型为 0x03,子类型为 0x0c,携带隧道封装类型(如 “8” 代表 VXLAN),确保发送端与接收端采用一致的封装方式解封装报文。

VPN Target Extended Community:

        类型为 0x04,子类型为 0x02,携带 RT 值(如 “100:20”),控制 EVPN 路由的发布与接收(仅相同 RT 的 EVPN 实例可互通),实现业务隔离。

EVPN的控制平面工作机制

VXLAN 隧道及 BUM 广播表建立(基于 RT-3 路由)

        1、VTEP 启动与路由发布:

        Leaf 节点(VTEP)启动后,在 EVPN 实例下发布 RT-3 路由,携带自身环回口 IP(如 “10.255.1.1”)、RD(如 “100:1”)、VNI(如 “5010”)及 PMSI 信息(隧道类型为 Ingress Replication)。

        2、路由反射与同步:

        Spine 节点作为 BGP RR(路由反射器),接收 Leaf 发布的 RT-3 路由,并反射至其他 Leaf 节点(RR Client),避免 Leaf 间全互联邻居配置。

        3、隧道建立与广播表生成:

        在二层转发时,EVPN VXLAN依靠RT-3自动发现VTEP站点,远端 Leaf 接收 RT-3 路由后,提取对端 VTEP IP,自动建立 VXLAN 隧道(如 Tunnel1);同时根据 PMSI 信息生成 BUM 广播表(记录同一 VNI 下的所有远端 VTEP IP),用于 BUM 流量的头端复制转发。

        在分布式网关进行三层转发时,EVPN VXLAN依靠RT-2 或RT-5自动发现VTEP站点、建立VXLAN隧道。

PS:

EVPN中的PMSI应用:

在 EVPN VXLAN 场景中,PMSI(Provider Multicast Service Interface,提供商组播服务接口)它主要用于 BUM(广播、未知单播、组播)流量转发的隧道属性传递,比如在头端复制(Ingress Replication)机制中,借助 PMSI 属性,VTEP 能够获取到传递 BUM 流量所需的隧道信息。VXLAN 同样依赖 PMSI 属性来实现 BUM 流量的高效转发。

在 EVPN VXLAN 场景中:
PMSI 的核心是传递 “BUM 流量应该用什么隧道转发、怎么复制” 的元数据。
例如 “头端复制(Ingress Replication)” 机制中,VTEP 会通过BGP EVPN 的 RT - 3 路由携带 PMSI 属性,告诉其他 VTEP:“如果要给我转发 BUM 流量,应该用什么隧道(如 VXLAN 隧道的源 / 目的 IP)、用什么复制策略(如每个 BUM 包复制几份发给哪些对端)”。
VXLAN 本身不 “直接依赖 PMSI 协议”,而是依赖 “PMSI 描述的隧道属性逻辑”—— 通过 EVPN 控制平面(BGP)传递这些属性,让 VXLAN 数据平面知道如何转发 BUM 流量。

MAC/IP 路由通告与学习(基于 RT-2 路由)

        1.VM 上线与本地学习:

         VM1(IP:10.1.1.10,MAC:aa:bb:cc:00:40:00)上线,接入 Leaf A(VTEP A),Leaf A 从接入接口(如 GE1/0/1)学习 VM1 的 MAC 与 IP,添加至本地 VSI(EVPN 实例)的 MAC 表(出接口为 GE1/0/1)与 ARP 表。

        2.RT-2 路由发布:

        Leaf A 将 VM1 的 MAC/IP 信息封装为 RT-2 路由,通过 BGP 发送至 Spine RR,路由中包含 RD(“100:1”)、MAC(“aa:bb:cc:00:40:00”)、IP(“10.1.1.10”)、VNI(“1000”)及出接口对应的隧道信息。

        3.路由反射与表项更新:

        Spine RR 将 RT-2 路由反射至 Leaf B、Leaf C;Leaf B、C 接收后,提取 MAC/IP 与对端 VTEP IP(Leaf A 的 IP),添加至本地 MAC 表(出接口为 Tunnel1)与路由表(主机路由,下一跳为 Leaf A)。

 MAC 地址迁移

        1.VM 迁移与路由触发:

        VM1 从 Leaf A 迁移至 Leaf C,Leaf C 通过 RARP 报文检测到 VM1 上线,生成新的 RT-2 路由(Sequence Number 从 1 递增至 2),并发送至 Spine RR;同时 Leaf A 检测到 VM1 离线,发送 RT-2 路由撤销消息(携带原 Sequence Number)。

        2.远端表项更新:

      Spine RR 将 Leaf C 的 RT-2 路由反射至 Leaf A、Leaf B;Leaf A 接收后删除原 VM1 的 MAC/IP 表项,Leaf B 接收后更新 VM1 的下一跳为 Leaf C 的环回口 IP,完成 MAC 地址同步,整个过程无需人工干预。

外部路由通告与学习 (基于EVPN与外部网络路由协同)

        1.外部路由引入 EVPN:

        Border Leaf 作为 EVPN 网络与外部 WAN 的边界节点,通过静态路由、BGP 或 OSPF 等协议,从 WAN 侧学习到外部路由(如102.10.1.1/24、102.20.2.1/24)。

        2.EVPN 控制平面路由发布:

        Border Leaf 将外部路由封装为 EVPN 路由(如 RT - 5 IP 前缀路由),通过 MP - BGP 发送给 RR(路由反射器);RR 再将这些路由反射到 EVPN 网络内的其他 VTEP(如 VTEP A、VTEP B)。

        3.VTEP 路由表生成:

        VTEP A、VTEP B 接收 EVPN 路由后,生成对应的路由表项:VTEP A 的路由表中,外部路由的下一跳指向 Border Leaf 的 IP(如1.1.1.3);VTEP B 的路由表中,外部路由的 “Remote VTEP” 也指向 Border Leaf 的 IP(如1.1.1.3),表示需通过该 VTEP 转发到外部网络。

ARP泛洪抑制(基于 EVPN  ARP代答机制):

传统VXLAN ARP泛洪问题:

        在无 EVPN 的传统 VXLAN 中,当 VM1 需要解析 VM7 的 MAC 地址时,会发送 ARP 请求。由于 VXLAN 隧道预建立但无精准 MAC 映射,VTEP 1 会将 ARP 请求泛洪到所有 VXLAN 隧道(向 VTEP 2、VTEP 3 都转发 ARP 请求),浪费网络带宽。

ARP代答机制:
1.ARP请求发起:

        VM1(IP:10.1.1.10,MAC:aa:bb:cc:00:40:00)需要与 VM7(IP:10.3.3.30)通信,但未学习到 VM7 的 MAC 地址,于是发送 ARP 请求(目标 IP:10.3.3.30,请求其 MAC 地址),该请求被发送到接入的 VTEP1 。

2.EVNP控制平面代答判断:

       VTEP1 收到 ARP 请求后,检查本地 EVPN 路由表(由 RT - 2 路由同步而来)。若路由表中存在 VM7 的 IP - MAC 映射(即 VM7 的 MAC 地址及所属 VTEP 等信息已通过控制平面同步),则VTEP1直接执行ARP 代答。

3.ARP代答执行:

       VTEP1以自身(或对应网关)的 MAC 地址作为 VM7 的 MAC 地址,向 VM1 回复 ARP 响应,告知 VM1“VM7 的 MAC 地址为VTEP1的某 MAC(或网关 MAC)”

4.后续流量转发:

        VM1 收到 ARP 响应后,将发往 VM7 的流量发送到 VTEP1。VTEP1再根据 EVPN 控制平面同步的路由信息,通过 VXLAN 隧道将流量转发到 VM7 所在的 VTEP(如 VTEP C),最终送达 VM7。在此过程中,无需在 VXLAN 网络中泛洪 ARP 请求,极大减少了网络中的 ARP 泛洪流量

RD 与 RT 在 EVPN 控制平面工作机制中的作用体现:

1.RD (Route Distinguisher,路由区分符)的填充与作用:

        支持手动配置route-distinguisher,也可选择auto自动生成。自动生成时,RD 取值为N:VXLAN ID,其中N为从 1 开始的整数。若N:VXLAN ID已被使用,则依次尝试(N + 1):VXLAN ID,直到找到未被使用的 RD。例如,当 VXLAN ID 为 601,第一次自动生成 RD 会尝试1:601,若已存在,则尝试2:601等。
        这一规则确保了在 EVPN 网络中,每个 EVPN 实例(EVI)都有唯一的 RD 标识,为路由在控制平面的传播提供了基础的唯一性保障。

2.RD 在控制平面的作用:

        路由唯一标识:在 EVPN 控制平面中,不同 EVPN 实例可能存在相同的 IP 或 MAC 路由信息,RD 的存在使得这些路由在 MP - BGP 的 EVPN 地址族中具有唯一标识。比如,EVI 100 中有一条10.1.1.10/32的路由,RD 为100:1;EVI 200 中也有10.1.1.10/32的路由,RD 为200:1,MP - BGP 能通过 RD 区分这两条属于不同实例的路由,防止冲突。

        路由实例关联:RD 将路由与特定的 EVPN 实例关联起来,使得控制平面在处理路由时,能准确地将路由信息分发到对应的实例中,保障不同租户或业务之间的路由隔离。

3.RT(Route Target,路由目标) 的填充、分类与作用:
①RT的填充规则

        RT 值支持手动配置vpn-target { vpn-target&<1 - 8> },也可选择auto自动生成。

        自动生成的 RT 取值为BGP AS:VXLAN ID,这种方式简化了配置,同时利用 BGP AS 和 VXLAN ID 的组合保证了 RT 的唯一性。

②RT的分类与配置位置

        在 EVPN 的组网中,存在三个地方可以配置 RT:

虚拟服务实例(VSI)视图:

        如配置vsi SDN_VSi_601时,可在该视图下配置 RT,用于控制与 VSI 相关的路由(如 MAC 地址路由)的发布与接收。

VPN 视图下 ipv4 地址族中:

        在ip vpn-instance vpn1的address-family ipv4视图下配置 RT,主要用于控制 EVPN 五类路由(IP 地址前缀路由)等与 IPv4 网段相关路由的传播。

VPN 视图下 EVPN 地址族中:

        在ip vpn-instance vpn1的address-family evpn视图下配置 RT,用于控制 EVPN 二类路由中 MAC/IP 地址(主机路由)等的学习与传播。

③不同 RT 值的使用场景和作用:
VSI 实例视图中 RT 的作用:

使用场景:

        在 EVPN 二类路由消息中,MAC 消息仅包含 VSI 实例视图中配置的 RT 值。
作用:

        控制 EVPN 二类路由中 MAC 地址的学习,决定哪些设备能够接收和学习到特定 VSI 下的 MAC 地址信息,保障 MAC 地址在 EVPN 网络中的精准传播与隔离。

VPN 实例中 EVPN 协议族中 RT 的作用:

使用场景:

        在 EVPN 二类路由消息中,MAC/IP 消息包含 VSI 实例视图中配置的 RT 值和 VPN 实例中 EVPN 协议族中配置的 RT 值。

作用:

        控制 EVPN 二类路由中 MAC/IP 地址(主机路由)的学习,确保主机级别的路由信能在合v

VPN 实例中 IPv4 协议族中 RT 的作用:

使用场景:

        在 EVPN 五类路由消息中,IP 地址前缀消息包含 VPN 实例中 IPv4 协议族中配置的 RT 值。
作用:

        控制 EVPN 五类路由中 IP 前缀(网段路由)的学习,实现不同网段之间的路由互通与隔离,保障网络中网段级别的通信。

4.RT在控制平面的作用:

        路由发布控制:当 Leaf A 要发布 EVPN 路由(如 RT - 2 路由)时,会为该路由添加 Export RT。假设 Leaf A 的 Export RT 配置为100:100,这表示只有那些配置了 Import RT 包含100:100的 VTEP 才能接收这条路由。
        路由接收控制:Leaf B 若要接收 Leaf A 发布的路由,需要配置 Import RT 为100:100。当 Leaf B 从 MP - BGP 接收到带有100:100 RT 的 EVPN 路由时,会将其引入到本地对应的 EVPN 实例中,实现路由的定向传播,保障不同租户或业务之间的路由隔离。

5.EVPN 集中式网关场景下 RT 的携带及作用:

在 EVPN 集中式网关场景下,L2 VTEP 及 VXLAN IP GW 设备仅需配置 RT1:

1.路由携带:

        L2 VTEP 及 VXLAN IP GW 设备发布的 MAC 消息(type 2)携带 RT1,发布 MAC/IP 消息(type 2)也仅携带 RT1。

2.作用:

        用于形成基于 VXLAN 的 MAC 地址表、ARP 表、ARP 抑制表项。实现上需要每个 VXLAN 配置不同的 RT 值,相同 VXLAN 的不同设备上配置相同的 RT 值,这样可以确保同一 VXLAN 内的设备能相互学习 MAC/IP 等信息,同时不同 VXLAN 间通过 RT 隔离。建议采用auto自动生成的形式(AS:VNI),简化配置并保证 RT 的唯一性。

6.RD与RT在控制平面路由交互中的协同

        在 Spine RR 反射路由时,会保留路由的 RD 和 RT 属性。例如,Leaf A 发布的带有 RD100:1、Export RT100:100(遵循上述填充与分类规则)的 RT - 2 路由,经过 Spine RR 反射后,Leaf B(配置了 Import RT100:100,且 RD 与 Leaf A 发布路由的 RD 逻辑匹配)会接收该路由,并根据 RD 将其关联到本地对应的 EVI 中,从而在控制平面完成路由的精准传递与隔离控制,同时结合不同配置位置 RT 的作用,实现 MAC、MAC/IP、IP 前缀等不同类型路由的按需传播。

EVPN VXLAN 数据平面工作机制

纯二层流量转发:

二层流量包含已知单播流量与 BUM 流量,转发流程差异如下:

已知单播流量转发:

1.VM1(Leaf A)向 VM2(Leaf C)发送报文,Leaf A 根据 VM2 的 MAC 查找本地 MAC 表,确定出接口为 Tunnel1(对端 VTEP IP 为 Leaf C 的环回口 IP)。

2.Leaf A 对报文进行 VXLAN 封装:添加 VXLAN 头(VNI=1000)、UDP 头(端口 4789)、IP 头(源 IP=Leaf A 环回口 IP,目的 IP=Leaf C 环回口 IP)。

3.封装后的报文经 Spine 层(核心设备)转发至 Leaf C,Leaf C 解封装(去除 IP 头、UDP 头、VXLAN 头)后,根据 MAC 表将原始以太网帧转发至 VM2。

BUM 流量转发(头端复制模式):

1.VM1 发送广播报文(如 ARP 请求),Leaf A 识别为 BUM 流量,查找 BUM 广播表(记录同一 VNI=1000 下的 Leaf B、Leaf C 环回口 IP)。

2.Leaf A 复制报文,分别封装为指向 Leaf B、Leaf C 的 VXLAN 报文(外层 IP 头源 IP 为 Leaf A 环回口 IP,目的 IP 分别为 Leaf B、C 环回口 IP),通过对应的隧道转发。

3.Leaf B、Leaf C 解封装后,将广播报文在本地 VNI=1000 内泛洪(仅转发至该 VNI 下的接入接口),确保所有 VM 接收,避免全网泛洪。

集中式网关转发:

        集中式网关将三层网关部署在 Spine 节点,适用于中小型网络,二层与三层转发流程如下:

集中式网关二层转发(同 VXLAN):

1.VM1(Leaf A,VXLAN 10)向 VM2(Leaf C,同 VXLAN 10)发送报文,Leaf A 封装 VXLAN(VNI=10)后,转发至 Spine 网关(核心层)。

2.Spine 网关解封装,查找 EVPN 实例的 MAC 表(VM2 的出接口为 Leaf C 的隧道),重新封装 VXLAN(VNI=10)后转发至 Leaf C,Leaf C 解封装后送达 VM2。

集中式网关三层转发(不同 VXLAN):

1.VM1(Leaf A,VXLAN 10,IP:1.1.1.10)向 VM2(Leaf C,VXLAN 20,IP:1.1.2.10)发送报文,Leaf A 封装 VXLAN 10 后转发至 Spine 网关。

2.Spine 网关解封装,根据目的 IP(1.1.2.10)查找三层路由表,匹配到 VM2 所在网段的路由(下一跳为 Leaf C 的环回口 IP,出接口为 VXLAN 20 隧道)。

3.Spine 网关重新封装 VXLAN 20 头(VNI=20),外层 IP 头源 IP 为 Spine 网关环回口 IP,目的 IP 为 Leaf C 环回口 IP,转发至 Leaf C;Leaf C 解封装后送达 VM2。

分布式网关转发:

在EVPN网络中,VTEP既可以做二层Bridge,也可以做三层Router,因此称为集成桥接和路由,即IRB(Integrated Routingand Bridging)。在分布式网关里面,IRB转发可以分为对称IRB和非对称IRB两种。

分布式网关对称IRB转发:

        在 Ingress 入口网关和 Egress 出口网关,都只执行 Layer - 3 路由功能,功能对称。每台分布式网关只需配置其下主机所在 VNI 的 VSI 信息和所在 VRF 的 L3 VNI 信息,无需维护本租户内所有主机的 ARP,仅需维护少量其他分布式网关对应的 MAC。

        

相关核心概念术语:

对称IRB转发引入了以下2个概念:

L3VNI(Layer 3 VNI):

        用于标识租户 VRF(虚拟路由转发实例)的 VXLAN ID,同一租户的不同 L2 VNI(二层 VXLAN)共享一个 L3VNI,如租户 A 的 L2 VNI=10、20,共享 L3VNI=1000,通过 L3VNI 实现租户内跨 L2 VNI 的三层互通。在分布式网关之间通过VXLAN隧道转发流量时,属于同一租户(VRF)的流量通过L3VNI来标识。L3VNI唯一关联一个VPN实例,通过VPN实例确保不同租户之间的业务隔离。

Route MAC:

        网关的Route MAC地址,是指每个分布式网关拥有的唯一一个用来标识本机的本地MAC地址,封装在三层转发报文的内层 MAC 字段,用于远端网关识别转发目标,避免 MAC 地址冲突,此MAC用于在网关之间通过VXLAN隧道转发三层流量。报文在跨网关三层转发时,报文
的内层目的MAC地址为出口网关的Route MAC地址。

对称 IRB 转发流程:
  1. 流量发起与入口网关处理(Leaf1/VTEP A):VM1 发送报文,目的 IP 为 IP3。Leaf1(VTEP A)作为入口网关,接收报文后,首先通过二层桥接识别报文所属 VNI(VNI 100),然后在三层路由表中查找 IP3 对应的路由,确定下一跳指向 Leaf3(VTEP C),且下一跳对应的 MAC 为 Leaf3 的 Route MAC。接着,Leaf1 对报文进行封装:内层 MAC 目的地址设置为 Leaf3 的 Route MAC,添加 L3 VNI(VNI 1000)的 VXLAN 头、UDP 头,外层 IP 头的源 IP 为 VTEP A 的 IP(1.1.1.1),目的 IP 为 VTEP C 的 IP(1.1.1.3),之后将封装后的报文转发到 VXLAN 网络中。
  2. VXLAN 网络传输:封装后的报文通过 VXLAN 网络(由 Spine 和 RR 等设备组成)传输,最终到达 Leaf3(VTEP C)。
  3. 出口网关处理(Leaf3/VTEP C):Leaf3 接收报文后解封装,根据 L3 VNI(VNI 1000)关联租户 VRF,在 VRF 的路由表中查找 IP3 对应的路由,确定 VM3 所在的 VNI(VNI 300),然后重新封装 VNI 300 的 VXLAN 头,将报文转发至 VM3;整个过程中,Leaf1(入口)与 Leaf3(出口)均仅执行三层路由转发,逻辑对称。

分布式网关非对称IRB转发:

        在 Ingress 入口网关,需要同时执行 Layer - 2 桥接和 Layer - 3 路由功能;而在 Egress 出口网关,只需要执行 Layer - 2 桥接功能,功能不对称。每台分布式网关需要配置 EVPN 网络内所有 VNI 的 VSI 信息,且要维护本租户内所有主机的 ARP。

非对称 IRB 转发流程:
去程:VM1(10.1.1.1,VNI 100)访问 VM3(IP3,VNI 300):

1、流量发起与入口网关处理(Leaf1/VTEP A):VM1 发送报文,目的 IP 为 IP3。Leaf1(VTEP A)作为入口网关,先执行二层桥接:识别报文所属的 VNI 100,确定该流量属于本租户内的跨 VNI 通信。接着执行三层路由:在三层路由表中查找 IP3 对应的路由,确定需要将流量转发到 VNI 300 对应的网络,且下一跳指向 VTEP C(Leaf3)。然后,Leaf1 对报文进行封装:内层 MAC 目的地址设置为 VM3 的 MAC,添加 VNI 300 的 VXLAN 头、UDP 头,外层 IP 头的源 IP 为 VTEP A 的 IP(1.1.1.1),目的 IP 为 VTEP C 的 IP(1.1.1.3),之后将封装后的报文转发到 VXLAN 网络中。

2、VXLAN 网络传输:封装后的报文通过 VXLAN 网络(由 Spine 和 RR 等设备组成)传输,最终到达 Leaf3(VTEP C)。

3、出口网关处理(Leaf3/VTEP C):Leaf3 接收报文后解封装,由于内层 MAC 是 VM3 的 MAC,且 Leaf3 是 VM3 所在 VNI 300 的接入网关,执行二层桥接:查找本地 MAC 表,确定 VM3 的接入接口,将报文转发至 VM3。

回程:VM3(IP3,VNI 300)访问 VM1(10.1.1.1,VNI 100):

1、流量发起与入口网关处理(Leaf3/VTEP C):VM3 发送报文,目的 IP 为 IP1。Leaf3(VTEP C)作为入口网关,先执行二层桥接:识别报文所属的 VNI 300,确定该流量属于本租户内的跨 VNI 通信。接着执行三层路由:在三层路由表中查找 PC1对应的路由,确定需要将流量转发到 VNI 100 对应的网络,且下一跳指向 VTEP A(Leaf1)。然后,Leaf3 对报文进行封装:内层 MAC 目的地址设置为 VM1 的 MAC,添加 VNI 100 的 VXLAN 头、UDP 头,外层 IP 头的源 IP 为 VTEP C 的 IP(1.1.1.3),目的 IP 为 VTEP A 的 IP(1.1.1.1),之后将封装后的报文转发到 VXLAN 网络中。

2、VXLAN 网络传输:封装后的报文通过 VXLAN 网络(由 Spine 和 RR 等设备组成)传输,最终到达 Leaf1(VTEP A)。

3、出口网关处理(Leaf1/VTEP A):Leaf1 接收报文后解封装,由于内层 MAC 是 VM1 的 MAC,且 Leaf1 是 VM1 所在 VNI 100 的接入网关,执行二层桥接:查找本地 MAC 表,确定 VM1 的接入接口,将报文转发至 VM1。

流量回程特性:

非对称 IRB 流量来回路径不一致,去程流量(VM1→VM3)使用 VNI 300 对应的隧道,回程流量(VM3→VM1)使用 VNI 100 对应的隧道。

实验需求:

R4模拟IP核心网络。
R1、R2为与服务器连接的VTEP 设备,通过IP核心网络实现三层互通。
使用EVPN实现R1、R2和R3之间的VXLAN隧道自动建立。
虚拟机VM1(VLAN 10)、VM2(VLAN20)、VM3(VLAN30)连接交换机SW,通过VXLAN网络实现二层互通。
R3作为VM1、VM2和VM3的集中式网关,实现VM1、VM2和VM3可以访问外部网络的8.8.8.8。

实验拓扑:

实验配置:

R1

 1.underlay的建立,全网可达(全网启用OSPF功能)
[R1]int g2/0
[R1-GigabitEthernet2/0]ip address 10.1.14.1 24
[R1-GigabitEthernet2/0]quit
 
[R1]int lo 0
[R1-LoopBack0]ip address 10.255.1.1 32
[R1-LoopBack0]quit
 
[R1]int range g2/0 lo0
[R1-if-range]ospf 1 area 0
[R1-if-range]quit
2、激活L2VPN功能,配置VSI,关联VNI,设置EVPN的封装模式为VXLAN模式,RT,RD值为自动取值。
##激活L2VPN功能
[R1]l2vpn enable 

##配置VSI,关联VNI,设置EVPN的封装模式为VXLAN模式,RD,RT值为自动取值
[R1]vsi vm1
[R1-vsi-vm1]vxlan 10
[R1-vsi-vm1-vxlan-10]quit
[R1-vsi-vm1]evpn encapsulation vxlan
[R1-vsi-vm1-evpn-vxlan]route-distinguisher auto 
[R1-vsi-vm1-evpn-vxlan]vpn-target auto
[R1-vsi-vm1-evpn-vxlan]quit

[R1]vsi vm2
[R1-vsi-vm2]vxlan 20
[R1-vsi-vm2-vxlan-20]quit
[R1-vsi-vm2]evpn encapsulation vxlan
[R1-vsi-vm2-evpn-vxlan]route-distinguisher auto 
[R1-vsi-vm2-evpn-vxlan]vpn-target auto
[R1-vsi-vm2-evpn-vxlan]quit

[R1-vsi-vm2]vsi vm3
[R1-vsi-vm3]vxlan 30
[R1-vsi-vm3-vxlan-30]quit
[R1-vsi-vm3]evpn encapsulation vxlan
[R1-vsi-vm3-evpn-vxlan]route-distinguisher auto 
[R1-vsi-vm3-evpn-vxlan]vpn-target auto
[R1-vsi-vm3-evpn-vxlan]quit
3.配置服务实例(AC),指定感兴趣流,绑定VSI
##配置服务实例(AC),指定感兴趣流,绑定VSI
[R1]int g1/0.10
[R1-GigabitEthernet1/0.10]vlan-type dot1q vid 10   ---指定感兴趣流
[R1-GigabitEthernet1/0.10]xconnect vsi vm1         ---绑定VSI
[R1-GigabitEthernet1/0.10]quit

[R1]int g1/0.20
[R1-GigabitEthernet1/0.20]vlan-type dot1q vid 20
[R1-GigabitEthernet1/0.20]xconnect vsi vm2
[R1-GigabitEthernet1/0.20]quit

[R1]int g1/0.30
[R1-GigabitEthernet1/0.30]vlan-type dot1q vid 30
[R1-GigabitEthernet1/0.30]xconnect vsi vm3
[R1-GigabitEthernet1/0.30]quit
4.配置BGP发布EVPN路由
[R1]bgp 100
[R1-bgp-default]peer 10.1.255.4 as-number 100
[R1-bgp-default]peer 10.1.255.4 connect-interface lo0
[R1-bgp-default]address-family l2vpn evpn    ---进入EVPN地址族
[R1-bgp-default-evpn]peer 10.1.255.4 enable 
[R1-bgp-default-evpn]quit
[R1-bgp-default]quit

R4:

##underlay的建立,全网可达(全网启用OSPF功能)
[R4]int g1/0
[R4-GigabitEthernet1/0]ip address 10.1.14.4 24
[R4-GigabitEthernet1/0]quit
 
[R4]int g2/0
[R4-GigabitEthernet2/0]ip add 10.1.24.4 24
[R4-GigabitEthernet2/0]quit
 
[R4]int g3/0
[R4-GigabitEthernet3/0]ip address 10.1.34.4 24
[R4-GigabitEthernet3/0]quit

[R4]int lo 0
[R4-LoopBack0]ip address 10.255.1.4 32
[R4-LoopBack0]quit
 
[R4]int range g1/0 g2/0 g3/0 lo 0
[R4-if-range]ospf 1 area 0

##建立BGP-RR反射器服务端
[R4]bgp 100
[R4-bgp-default]peer 10.255.1.1 as-number 100
[R4-bgp-default]peer 10.255.1.1 connect-interface lo0
[R4-bgp-default]peer 10.255.1.2 as-number 100
[R4-bgp-default]peer 10.255.1.2 connect-interface lo0
[R4-bgp-default]peer 10.255.1.3 as-number 100
[R4-bgp-default]peer 10.255.1.3 connect-interface lo0
[R4-bgp-default]address-family l2vpn evpn

[R4-bgp-default-evpn]undo policy vpn-target  ##关闭EVPN中基于RT路由的选择和过滤机制
[R4-bgp-default-evpn]peer 10.255.1.1 enable 
[R4-bgp-default-evpn]peer 10.255.1.1 reflect-client 
[R4-bgp-default-evpn]peer 10.255.1.2 enable 
[R4-bgp-default-evpn]peer 10.255.1.2 reflect-client 
[R4-bgp-default-evpn]peer 10.255.1.3 enable 
[R4-bgp-default-evpn]peer 10.255.1.3 reflect-client 
[R4-bgp-default-evpn]quit
[R4-bgp-default]quit

R2

[R2]int g2/0
[R2-GigabitEthernet2/0]ip address 10.1.24.2 24
[R2-GigabitEthernet2/0]quit
 
[R2]int lo 0 
[R2-LoopBack0]ip address 10.255.1.2 32
[R2-LoopBack0]quit
 
[R2]int range g2/0 lo0
[R2-if-range]ospf 1 area 0
[R2-if-range]quit

##开启L2VPN功能
[R2]l2vpn enable 

##创建VSI实例,关联VNI并将EVPN的封装模式修改为VXLAN,RD,RT都设置为自动建立
[R2]vsi vm1
[R2-vsi-vm1]vxlan 10
[R2-vsi-vm1-vxlan-10]quit
[R2-vsi-vm1]evpn encapsulation vxlan 
[R2-vsi-vm1-evpn-vxlan]route-distinguisher auto 
[R2-vsi-vm1-evpn-vxlan]vpn-target auto 
[R2-vsi-vm1-evpn-vxlan]quit
[R2-vsi-vm1]quit

[R2]vsi vm2
[R2-vsi-vm2]vxlan 20
[R2-vsi-vm2-vxlan-20]quit
[R2-vsi-vm2]evpn encapsulation vxlan 
[R2-vsi-vm2-evpn-vxlan]route-distinguisher auto 
[R2-vsi-vm2-evpn-vxlan]vpn-target auto 
[R2-vsi-vm2-evpn-vxlan]quit
[R2-vsi-vm2]quit

[R2]vsi vm3
[R2-vsi-vm3]vxlan 30
[R2-vsi-vm3-vxlan-30]quit
[R2-vsi-vm3]evpn encapsulation vxlan 
[R2-vsi-vm3-evpn-vxlan]route-distinguisher auto 
[R2-vsi-vm3-evpn-vxlan]vpn-target auto 
[R2-vsi-vm3-evpn-vxlan]quit
[R2-vsi-vm3]quit

##配置服务实例(AC)指定感兴趣流,绑定VSI
[R2]int g1/0.10
[R2-GigabitEthernet1/0.10]vlan-type dot1q vid 10
[R2-GigabitEthernet1/0.10]xconnect vsi vm1
[R2-GigabitEthernet1/0.10]quit

[R2]int g1/0.20
[R2-GigabitEthernet1/0.20]vlan-type dot1q vid 20
[R2-GigabitEthernet1/0.20]xconnect vsi vm2
[R2-GigabitEthernet1/0.20]quit

[R2]int g1/0.30
[R2-GigabitEthernet1/0.30]vlan-type dot1q vid 30
[R2-GigabitEthernet1/0.30]xconnect vsi vm3
[R2-GigabitEthernet1/0.30]quit

##配置BGP发布EVPN路由
[R2]bgp 100
[R2-bgp-default]peer 10.255.1.4 as-number 100
[R2-bgp-default]peer 10.255.1.4 connect-interface lo0
[R2-bgp-default]address-family l2vpn evpn 
[R2-bgp-default-evpn]peer 10.255.1.4 enable 
[R2-bgp-default-evpn]quit
[R2-bgp-default]quit

R3:

[R3]int g1/0
[R3-GigabitEthernet1/0]ip address 10.1.34.3 24
[R3-GigabitEthernet1/0]quit
 
[R3]int g2/0
[R3-GigabitEthernet2/0]ip address 202.101.1.1 30
[R3-GigabitEthernet2/0]quit
 
[R3]int lo0
[R3-LoopBack0]ip address 10.255.1.3 32
[R3-LoopBack0]quit
 
[R3]int range g1/0 lo 0
[R3-if-range]ospf 1 area 0
[R3-if-range]quit

##激活L2VPN功能
[R3]l2vpn enable 

##配置VSI,关联VNI,设置EVPN的封装模式为VXLAN模式,RT,RD值为自动取值。
[R3]vsi vm1
[R3-vsi-vm1]vxlan 10
[R3-vsi-vm1-vxlan-10]quit
[R3-vsi-vm1]evpn encapsulation vxlan 
[R3-vsi-vm1-evpn-vxlan]route-distinguisher auto 
[R3-vsi-vm1-evpn-vxlan]vpn-target auto 
[R3-vsi-vm1-evpn-vxlan]quit
[R3-vsi-vm1]quit

[R3]vsi vm2
[R3-vsi-vm2]vxlan 20
[R3-vsi-vm2-vxlan-20]quit
[R3-vsi-vm2]evpn encapsulation vxlan 
[R3-vsi-vm2-evpn-vxlan]route-distinguisher auto 
[R3-vsi-vm2-evpn-vxlan]vpn-target auto 
[R3-vsi-vm2-evpn-vxlan]quit
[R3-vsi-vm2]quit

[R3]vsi vm3
[R3-vsi-vm3]vxlan 30
[R3-vsi-vm3-vxlan-30]quit
[R3-vsi-vm3-vxlan-30]evpn encapsulation vxlan 
[R3-vsi-vm3-evpn-vxlan]route-distinguisher auto 
[R3-vsi-vm3-evpn-vxlan]vpn-target auto 
[R3-vsi-vm3-evpn-vxlan]quit
[R3-vsi-vm3]quit

##创建VSI接口充当网关
[R3]int Vsi-interface 10
[R3-Vsi-interface10]ip address 192.168.10.254 24
[R3-Vsi-interface10]quit
[R3]int Vsi-interface 20
[R3-Vsi-interface20]ip address 192.168.20.254 24
[R3-Vsi-interface20]quit
[R3]int Vsi-interface 30
[R3-Vsi-interface30]ip address 192.168.30.254 24
[R3-Vsi-interface30]quit

##将VSI接口绑定在VSI实例中
[R3]vsi vm1
[R3-vsi-vm1]gateway Vsi-interface 10
[R3-vsi-vm1]quit
[R3]vsi vm2
[R3-vsi-vm2]gateway Vsi-interface 20
[R3-vsi-vm2]quit
[R3]vsi vm3
[R3-vsi-vm3]gateway Vsi-interface 30
[R3-vsi-vm3]quit

##配置BGP来传递EVPN路由
[R3]bgp 100
[R3-bgp-default]peer 10.255.1.4 as-number 100
[R3-bgp-default]peer 10.255.1.4 connect-interface lo0
[R3-bgp-default]address-family l2vpn evpn 
[R3-bgp-default-evpn]peer 10.255.1.4 enable 
[R3-bgp-default-evpn]quit
[R3-bgp-default]quit

##NAT配置
[R3]access-list basic 2000
[R3-acl-ipv4-basic-2000]rule permit source 192.168.10.0 0.0.0.255
[R3-acl-ipv4-basic-2000]rule permit source 192.168.20.0 0.0.0.255
[R3-acl-ipv4-basic-2000]rule permit source 192.168.30.0 0.0.0.255
[R3-acl-ipv4-basic-2000]qu

[R3]int g2/0
[R3-GigabitEthernet2/0]nat outbound 2000
[R3-GigabitEthernet2/0]quit

[R3]ip route-static 0.0.0.0 0.0.0.0 202.101.1.2

SRV:

[SRV]int g1/0
[SRV-GigabitEthernet1/0]ip address 202.101.1.2 30
[SRV-GigabitEthernet1/0]quit
 
[SRV]int lo 0
[SRV-LoopBack0]ip address 8.8.8.8 32
[SRV-LoopBack0]quit

SW1:

[SW1]vlan 10 20 30
 
[SW1]int HundredGigE 1/0/4
[SW1-HundredGigE1/0/4]port link-mode bridge 
[SW1-HundredGigE1/0/4]port link-type trunk 
[SW1-HundredGigE1/0/4]port trunk permit vlan 10 20 30
[SW1-HundredGigE1/0/4]quit
 
[SW1]int HundredGigE 1/0/1
[SW1-HundredGigE1/0/1]port link-mode bridge 
[SW1-HundredGigE1/0/1]port link-type access 
[SW1-HundredGigE1/0/1]port access vlan 10
[SW1-HundredGigE1/0/1]quit
 
[SW1]int HundredGigE 1/0/2
[SW1-HundredGigE1/0/2]port link-mode bridge 
[SW1-HundredGigE1/0/2]port link-type access 
[SW1-HundredGigE1/0/2]port access vlan 20
[SW1-HundredGigE1/0/2]quit
 
[SW1]int HundredGigE 1/0/3
[SW1-HundredGigE1/0/3]port link-mode bridge 
[SW1-HundredGigE1/0/3]port link-type access 
[SW1-HundredGigE1/0/3]port access vlan 30
[SW1-HundredGigE1/0/3]quit

SW2:

[SW2]vlan 10 20 30
 
[SW2]int HundredGigE1/0/5
[SW2-HundredGigE1/0/5]port link-mode bridge 
[SW2-HundredGigE1/0/5]port link-type trunk 
[SW2-HundredGigE1/0/5]port trunk permit vlan 10 20 30
[SW2-HundredGigE1/0/5]quit
 
[SW2]int HundredGigE1/0/1
[SW2-HundredGigE1/0/1]port link-mode bridge 
[SW2-HundredGigE1/0/1]port link-type access 
[SW2-HundredGigE1/0/1]port access vlan 10
[SW2-HundredGigE1/0/1]quit
 
[SW2]int HundredGigE1/0/2
[SW2-HundredGigE1/0/2]port link-mode bridge 
[SW2-HundredGigE1/0/2]port link-type access 
[SW2-HundredGigE1/0/2]port access vlan 20
[SW2-HundredGigE1/0/2]quit
 
[SW2]int HundredGigE1/0/3
[SW2-HundredGigE1/0/3]port link-mode bridge 
[SW2-HundredGigE1/0/3]port link-type access 
[SW2-HundredGigE1/0/3]port access vlan 30
[SW2-HundredGigE1/0/3]quit
 
[SW2]int HundredGigE1/0/4
[SW2-HundredGigE1/0/4]port link-mode bridge 
[SW2-HundredGigE1/0/4]port link-type access 
[SW2-HundredGigE1/0/4]port access vlan 30
[SW2-HundredGigE1/0/4]quit

PC(用思科路由器模拟):

PC1(config)#no ip routing
PC1(config)#ip default-gateway 192.168.10.254     
PC1(config)#int e0/0
PC1(config-if)#ip address 192.168.10.1 255.255.255.0
PC1(config-if)#no shutdown
 
PC2(config)#no ip routing
PC2(config)#ip default-gateway 192.168.20.254
PC2(config)#int e0/0
PC2(config-if)#ip address 192.168.20.1 255.255.255.0
PC2(config-if)#no shutdown
 
PC3(config)#no ip routing
PC3(config)#ip default-gateway 192.168.30.254
PC3(config)#int e0/0
PC3(config-if)#ip address 192.168.30.1 255.255.255.0
PC3(config-if)#no shutdown 
 
PC4-PC7上的配置与上述一致,仅IP地址和默认网关有变,略 

查看命令

查看 BGP在 L2VPN的 EVPN地址族下的邻居状态及相关信息

<R4>display bgp peer l2vpn evpn 

查看L2VPN的Tunnel隧道建立

[R3]display vxlan tunnel 

查看L2VPN的MAC地址表

[R1]display l2vpn mac-address 

查看Link ID

[R1]display l2vpn vsi name vm1 verbose 

配置文档:

R1:

sysname R1
#
 l2vpn enable
#
vsi vm1
 vxlan 10
 evpn encapsulation vxlan
  route-distinguisher auto
  vpn-target auto export-extcommunity
  vpn-target auto import-extcommunity
#
vsi vm2        
 vxlan 20
 evpn encapsulation vxlan
  route-distinguisher auto
  vpn-target auto export-extcommunity
  vpn-target auto import-extcommunity
#
vsi vm3
 vxlan 30
 evpn encapsulation vxlan
  route-distinguisher auto
  vpn-target auto export-extcommunity
  vpn-target auto import-extcommunity
#
interface LoopBack0
 ip address 10.255.1.1 255.255.255.255
 ospf 1 area 0.0.0.0
#
interface GigabitEthernet1/0.10
 vlan-type dot1q vid 10
 xconnect vsi vm1
#
interface GigabitEthernet1/0.20
 vlan-type dot1q vid 20
 xconnect vsi vm2
#
interface GigabitEthernet1/0.30
 vlan-type dot1q vid 30
 xconnect vsi vm3
#
interface GigabitEthernet2/0
 port link-mode route
 ip address 10.1.14.1 255.255.255.0
 ospf 1 area 0.0.0.0
#
bgp 100
 peer 10.255.1.4 as-number 100
 peer 10.255.1.4 connect-interface LoopBack0
 #
 address-family l2vpn evpn
  peer 10.255.1.4 enable

R2:

 sysname R2
#
 l2vpn enable
#
vsi vm1
 vxlan 10
 evpn encapsulation vxlan
  route-distinguisher auto
  vpn-target auto export-extcommunity
  vpn-target auto import-extcommunity
#
vsi vm2        
 vxlan 20
 evpn encapsulation vxlan
  route-distinguisher auto
  vpn-target auto export-extcommunity
  vpn-target auto import-extcommunity
#
vsi vm3
 vxlan 30
 evpn encapsulation vxlan
  route-distinguisher auto
  vpn-target auto export-extcommunity
  vpn-target auto import-extcommunity
#
interface LoopBack0
 ip address 10.255.1.2 255.255.255.255
 ospf 1 area 0.0.0.0
#
interface GigabitEthernet1/0.10
 vlan-type dot1q vid 10
 xconnect vsi vm1
#
interface GigabitEthernet1/0.20
 vlan-type dot1q vid 20
 xconnect vsi vm2
#
interface GigabitEthernet1/0.30
 vlan-type dot1q vid 30
 xconnect vsi vm3
#
interface GigabitEthernet2/0
 port link-mode route
 ip address 10.1.24.2 255.255.255.0
 ospf 1 area 0.0.0.0
#
bgp 100
 peer 10.255.1.4 as-number 100
 peer 10.255.1.4 connect-interface LoopBack0
 #
 address-family l2vpn evpn
  peer 10.255.1.4 enable

R3:

 sysname R3
#
 l2vpn enable
#
vsi vm1
 gateway vsi-interface 10
 vxlan 10
 evpn encapsulation vxlan
  route-distinguisher auto
  vpn-target auto export-extcommunity
  vpn-target auto import-extcommunity
#              
vsi vm2
 gateway vsi-interface 20
 vxlan 20
 evpn encapsulation vxlan
  route-distinguisher auto
  vpn-target auto export-extcommunity
  vpn-target auto import-extcommunity
#
vsi vm3
 gateway vsi-interface 30
 vxlan 30
 evpn encapsulation vxlan
  route-distinguisher auto
  vpn-target auto export-extcommunity
  vpn-target auto import-extcommunity
#
interface LoopBack0
 ip address 10.255.1.3 255.255.255.255
 ospf 1 area 0.0.0.0
#
interface GigabitEthernet1/0
 port link-mode route
 ip address 10.1.34.3 255.255.255.0
 ospf 1 area 0.0.0.0
#
interface GigabitEthernet2/0
 port link-mode route
 ip address 202.101.1.1 255.255.255.252
 nat outbound 2000
#
interface Vsi-interface10
 ip address 192.168.10.254 255.255.255.0
#
interface Vsi-interface20
 ip address 192.168.20.254 255.255.255.0
#
interface Vsi-interface30
 ip address 192.168.30.254 255.255.255.0
#
bgp 100
 peer 10.255.1.4 as-number 100
 peer 10.255.1.4 connect-interface LoopBack0
 #
 address-family l2vpn evpn
  peer 10.255.1.4 enable
#
 ip route-static 0.0.0.0 0 202.101.1.2
#              
acl basic 2000
 rule 0 permit source 192.168.10.0 0.0.0.255
 rule 5 permit source 192.168.20.0 0.0.0.255
 rule 10 permit source 192.168.30.0 0.0.0.255

R4:

 sysname R4
#
interface LoopBack0
 ip address 10.255.1.4 255.255.255.255
 ospf 1 area 0.0.0.0
#
interface GigabitEthernet1/0
 port link-mode route
 ip address 10.1.14.4 255.255.255.0
 ospf 1 area 0.0.0.0
#
interface GigabitEthernet2/0
 port link-mode route
 ip address 10.1.24.4 255.255.255.0
 ospf 1 area 0.0.0.0
#
interface GigabitEthernet3/0
 port link-mode route
 ip address 10.1.34.4 255.255.255.0
 ospf 1 area 0.0.0.0
#
bgp 100
 peer 10.255.1.1 as-number 100
 peer 10.255.1.1 connect-interface LoopBack0
 peer 10.255.1.2 as-number 100
 peer 10.255.1.2 connect-interface LoopBack0
 peer 10.255.1.3 as-number 100
 peer 10.255.1.3 connect-interface LoopBack0
 #
 address-family l2vpn evpn
  undo policy vpn-target
  peer 10.255.1.1 enable
  peer 10.255.1.1 reflect-client
  peer 10.255.1.2 enable
  peer 10.255.1.2 reflect-client
  peer 10.255.1.3 enable
  peer 10.255.1.3 reflect-client

 SW1:

sysname SW1
#
vlan 10
#
vlan 20
#
vlan 30    
#
interface HundredGigE1/0/1
 port link-mode bridge
 port access vlan 10
#
interface HundredGigE1/0/2
 port link-mode bridge
 port access vlan 20
#
interface HundredGigE1/0/3
 port link-mode bridge
 port access vlan 30
#
interface HundredGigE1/0/4
 port link-mode bridge
 port link-type trunk
 port trunk permit vlan 1 10 20 30

SW2:

sysname SW2
#
vlan 10
#
vlan 20
#
vlan 30        
#
interface HundredGigE1/0/1
 port link-mode bridge
 port access vlan 10
#
interface HundredGigE1/0/2
 port link-mode bridge
 port access vlan 20
#
interface HundredGigE1/0/3
 port link-mode bridge
 port access vlan 30
#
interface HundredGigE1/0/4
 port link-mode bridge
 port access vlan 30
#
interface HundredGigE1/0/5
 port link-mode bridge
 port link-type trunk
 port trunk permit vlan 1 10 20 30

Logo

开源鸿蒙跨平台开发社区汇聚开发者与厂商,共建“一次开发,多端部署”的开源生态,致力于降低跨端开发门槛,推动万物智联创新。

更多推荐