BGP EVPN 协议详解

以太网 VPN(Ethernet VPN)· 基于 RFC 7432(架构)/ 8365(VXLAN 封装)/ 9135(IRB)/ 9136(IP 前缀路由)编写,并附 RFC 7209/7623/8214/8584/9251/8317 扩展家族与华为、华三厂商实现对照
RFC 7432RFC 8365RFC 9135RFC 9136AFI 25 / SAFI 70L2VPN · 控制平面用 MP-BGPVXLAN / MPLS / NVGRE / PBB 封装

1.概述:EVPN 与它的舞台

EVPN(Ethernet VPN,以太网 VPN)由 RFC 7432 定义,是跑在 MP-BGP 之上的二层 VPN 控制平面。它把传统靠「数据面泛洪学习 MAC」的二层网络(典型如 VXLAN,RFC 7348),升级成「控制面先算清楚再转发」——VTEP/PE 之间通过 BGP 主动通告「某个 MAC/IP 在哪个 VTEP 后面」,远端据此建立转发表,而不是边 flooded 边学。

它到底解决了什么:原始 VXLAN(RFC 7348)靠数据面泛洪来学 MAC——未知单播、广播、组播(统称 BUM)一律头端复制或组播泛洪,未知目的 MAC 要炸全網才能学到;ARP 也要广播。规模一大,控制面流量比业务流量还大,纯属「用泛洪掩盖无知」。EVPN 的答案:用 BGP 当控制平面分发 MAC/IP 可达性,顺手白捡四大能力——多宿主(multi-homing)、快速收敛(批量撤回)、ARP/ND 抑制(RT-2 带 IP 可代答)、以及租户间三层互通(IRB + RT-5)。

EVPN 本身不绑定数据面封装。NLRI 里只携带控制面信息,真正怎么把二层帧运过去由封装决定:RFC 8365 规定可用 VXLAN / NVGRE / MPLS-over-GRE / MPLS,RFC 7623 再加 PBB(Provider Backbone Bridging)。数据中心最主流的组合就是 EVPN + VXLAN

1.1 一张图看懂 EVPN 在协议栈里的位置

控制平面(本页主角): MP-BGP ──[ AFI=25 L2VPN / SAFI=70 EVPN ]──► NLRI = Route Type + 路由属性 + 扩展团体 数据平面(VXLAN 例): [ 外层 IP | UDP 4789 | VXLAN 头(24bit VNI) | 原始以太帧 ]

控制面负责「谁在哪」;数据面负责「怎么把帧运到那」。两者通过 VNI / MPLS Label 字段对齐(详见第 8 节:8365 直接把 EVPN NLRI 的 MPLS Label 字段复用成 24 位 VNI)。

2.架构基础:地址族、EVI 与 NLRI

2.1 跑在哪个地址族(AFI/SAFI)

EVPN 复用 BGP 的多协议扩展(RFC 4760):AFI = 25(L2VPN),SAFI = 70(EVPN)。第 9 节的「船体」完全不变——报文格式、状态机、属性体系一行没改,只是「集装箱」换成了 EVPN 自己的 NLRI 语义。这是 BGP 从 1994 年活到今天还能扛数据中心的根本原因。

2.2 NLRI 的统一骨架

所有 EVPN 路由共用同一个 NLRI 外壳(RFC 7432 §7):

EVPN NLRI:│ Route Type(1 字节)│ Length(1 字节)│ Route Type specific(变长)│

2.3 三层概念:EVI / MAC-VRF / BD

概念含义RFC 出处与对应关系
EVI
(EVPN Instance)
一个租户在控制面上的二层实例,跨所有 PE 全局一致。RFC 7432。是 RT、DF 选举、IMET 的「作用域」单位。
MAC-VRF每台 PE 上某个 EVI 的 MAC 转发表实例(一个 BD 对应一个 MAC-VRF)。RFC 7432 / 9135。RT-2 的 MAC 就导入这里。
BD
(Bridge Domain)
二层广播域,通常对应一个子网(网段)。RFC 8365 / 9136。一个 BD 映射一个 L2VNI。
IP-VRF租户的三层路由表,做跨子网(IRB)路由。RFC 9135 / 9136。对应一个 L3VNI。
RDRoute Distinguisher,让不同租户的相同 MAC 不冲突(64 位)。RFC 4364 体系,EVPN 沿用。
RT
(Route Target)
「进出口通行证」:路由导出时贴 export RT,对端只把 RT 匹配的导入对应 EVI/IP-VRF。EVPN 靠 RT 实现租户隔离与对称 IRB 的双 RT(MAC-VRF RT + IP-VRF RT)。
别把 MAC-VRF 和 IP-VRF 搞混:MAC-VRF 管「二层桥接 / 同子网」,IP-VRF 管「三层路由 / 跨子网」。对称 IRB(第 9 节)里一条 RT-2 会同时带两个 RT,分别导入 MAC-VRF 与 IP-VRF——这是 EVPN 三层互通的钥匙。

3.五种 EVPN 路由类型(核心)

EVPN 的全部能力由 5 类路由承载。悬停下表任意一行查看该路由类型的作用与字段细节;单击行可钉住方便滚动阅读。

Type名称干什么 / 关键字段
1Ethernet Auto-Discovery(EAD)以太网段可达性;多宿主别名、水平分割与快收敛。
2MAC/IP Advertisement主力:MAC(+IP)位置通告,替代泛洪学习,支持 ARP 抑制。
3Inclusive Multicast Ethernet Tag(IMET)BUM 组成员通告,搭建复制列表。
4Ethernet Segment(ES)多宿主发现与 DF 选举。
5IP Prefix(9136 新增)子网 / 前缀级三层可达性,驱动 IRB 与对外通告。
悬停行查看各路由类型 · 单击钉住

3.1 RT-2 MAC/IP Advertisement 字段拆解

字段长度说明
Route Distinguisher8 B区分不同租户相同 MAC。
Ethernet Segment Identifier10 B若该 MAC 属于某多归属段则填 ESI;单归属填 0。
Ethernet Tag ID4 BVLAN-aware 场景下标识 BD;多数 VXLAN 部署填 0。
MAC Address Length1 B恒为 48。
MAC Address6 B要通告的 MAC。
IP Address Length1 B0(不带 IP)/ 32(IPv4)/ 128(IPv6)。
IP Address0/4/16 B可选,带 IP 时支持 ARP 抑制代答。
MPLS Label13 BL2VNI(VXLAN 下复用 MPLS Label 字段,见第 8 节)。
MPLS Label20/3 B对称 IRB 下 = L3VNI(IP-VRF 标签);非对称 IRB 不带。

3.2 各路由类型如何协同(以同子网已知单播为例)

4.ESI:以太网段标识符

ESI(Ethernet Segment Identifier)是 10 字节(80 位)的全局唯一标识,用来标记「一组连到同一台或多台 PE 的物理/逻辑链路(即一个以太网段 ES)」。多归属的核心就是 ESI:同一台服务器双归到两台 leaf,这两条上行链路属于同一个 ESI,PE 之间靠 ESI 互相识别「咱们挂的是同一台服务器」。

ESI 结构:│ Type(1 字节, 0–5)│ Type 相关值(9 字节)│
Type含义9 字节内容如何生成
0运营配置(手工)全由运维手工指定(如按机柜/端口编码)。
1LACP 自动基于 LACP 的 System MAC + 端口 Key 自动算(无需手工配)。
2MSTP 桥协议基于 STP 桥协议字段生成。
3MAC 地址基于接口 MAC 地址生成。
4Router-ID基于 PE 的 Router-ID(常用于虚拟 ES / vES)。
5AS 号基于 AS 号生成。
两个特殊值:ESI 全 0 表示单归属(single-homed)接口,或该 MAC 不属于任何多归属段;② Type 0 且 9 字节全 0 表示 ESI 未配置。DF 选举、ES-Import RT 都围绕非 0 ESI 展开。

5.关键扩展团体属性(Extended Communities)

EVPN 的不少「行为开关」藏在 BGP 扩展团体里(类型字段均为 0x06

扩展团体Type / Sub-Type作用
MAC Mobility0x06 / 0x00MAC 移动性控制,序列号判新旧。
ESI Label0x06 / 0x01MPLS 水平分割标签(split-horizon)。
ES-Import RT0x06 / 0x02按 ESI 自动导入,发现同段 PE。
Router's MAC0x06 / 0x03对称 IRB 内层目的 MAC 指示。
Default Gateway0x06 / 0x0D标识网关 MAC,配合 ARP 抑制。
Encapsulation0x03 / 子类型协商数据面封装类型。
悬停行查看扩展团体编码 · 单击钉住

6.多归属(Multi-Homing):DF、水平分割、别名、备份

多归属 = 一台 CE/服务器用多条链路(通常双归到两台 leaf)接入网络,提升可靠性。EVPN 用 ESI 把这几条上行绑成「同一个段」,再围绕它解决四个问题:谁负责发 BUM(DF)、别把帧绕回源段(Split-Horizon)、多路径负载分担(Aliasing)、主路挂了秒切(Backup/Mass Withdrawal)

6.1 单活(Single-Active)vs 全活(All-Active)

6.2 DF 选举(Designated Forwarder)

每个 (ESI, EVI) 只选一个 DF,负责把该 EVI 的 BUM 流量从核心发往这个 ES(避免两台 leaf 都发、ES 收到重复帧)。RFC 7432 默认算法叫 service carving

  1. 每台候选 PE 启动一个 3 秒定时器(避免同时抢占造成抖动)。
  2. 定时器到期后,按该 ES 的 PE 列表(按 BGP Router-ID / IP 排序)计算每个 EVI 的 DF:对第 V 个 EVI(V 从 0 起),DF = 列表中位置 i 满足 i ≡ V mod N 的那台 PE(N = 候选 PE 数)。
DF(EVI=V) = PE_list_sorted_by_IP[ V mod N ]  # N = 候选 PE 数量,V = EVI 序号

RFC 8584 在此基础上扩展:AC-influenced DF(按 attachment circuit 粒度选举)、highest random weight(按权重随机选,工程上更均衡)、以及 Backup DF(BDF)——再多选一个备份转发者,主 DF 挂了不必等重新选举即可顶上。

为什么需要 DF 而不是全部发:在 All-Active 下,若两台 leaf 都往同一 ES 发 BUM,ES 上的服务器会收到重复广播帧(虽然大多能去重,但浪费带宽且某些协议会错乱)。DF 让「往 ES 发 BUM」这件事集权到一台 PE,干净利落。

6.3 水平分割(Split-Horizon)

6.4 别名(Aliasing)与备份路径

7.MAC 移动性与重复检测

虚拟机迁移、服务器在双归 leaf 间倒换,都会导致「同一个 MAC 出现在不同 PE」——这就是 MAC 移动(Mobility)。EVPN 用 MAC Mobility 扩展团体的序列号解决「谁新谁旧」。

7.1 序列号裁决

Sticky MAC:MAC Mobility 团体里有 Sticky 标志位。置位后该 MAC 被「钉死」在首次出现的位置,禁止再移动。常用于网关 MAC、防火墙 MAC 等不应漂移的地址,防止 MAC 漂移类攻击。

7.2 MAC 重复(MAC Duplication)检测

同一 MAC 在相近时间内从不同 PE、以相近序列号被通告 → 判定为「MAC 冲突」(典型如两台服务器配了相同 MAC,或某种环路)。RFC 7432 的默认处理:

检测到冲突的窗口 M = 180 秒,阈值 N = 5 次 → 在 M 秒内同一 MAC 出现 ≥ N 次冲突,即标记该 MAC 为 duplicate 并抑制其路由(告警,不再参与转发)。

被抑制的 MAC 需运维介入解除,避免网络在「两个错误位置」之间反复横跳。

8.封装:EVPN over VXLAN(RFC 8365)

RFC 8365(原 草案 draft-ietf-bess-evpn-overlay)规定 EVPN 如何落在 VXLAN / NVGRE / MPLSoGRE 等 NVO 封装上。数据中心事实标准是 EVPN + VXLAN

8.1 VXLAN 头与「标签字段复用」

VNI ↔ EVI 的两种映射(Option 1 / Option 2):Option 1:一个 EVI 对应一个 BD、一个 VNI(每租户每子网一个 VNI),最简单,最常用;② Option 2:一个 EVI 下挂多个 BD、多个 VNI(VLAN-aware bundle 风格),更省 EVI 但配置更复杂。

8.2 RT 自动推导(Auto RT)

VXLAN 场景下可不必手工给每个 VNI 配 RT,8365 给出 由 VNI 自动推导 RT 的格式:

RT = [ 2 字节 Global Administrator(如 ASN)] + [ 4 字节 Local Administrator ] Local Admin 内部结构:│ A(1b) │ Type(3b) │ D-ID(类型相关) │ Service-ID(类型相关) │ # Type=0 表示「本地管理员类型」:把 VNI 直接编码进 Service-ID,各 VTEP 算出相同 RT,自动互通。

8.3 VXLAN 下的水平分割 = Local Bias

如前第 6.3 节:VXLAN 没有 ESI Label 机制,改为 Local Bias——VTEP 在复制 BUM 时,不把帧发给「源 IP 属于同一 ESI 的其他 VTEP」。等价地实现了水平分割,且无需 MPLS 标签参与。

8.4 DF 选举在 VXLAN 下不变

8365 明确:VXLAN 封装下的 DF 选举完全沿用 RFC 7432 的 service carving 算法(第 6.2 节),以及 RFC 8584 的扩展。

9.集成路由桥接 IRB(RFC 9135 / 9136)

同子网走二层桥接(RT-2),跨子网要走三层路由。IRB(Integrated Routing and Bridging)把「二层桥接域」与「三层 VRF」在一台 VTEP 上打通,使跨子网流量在 VTEP 本地直接路由,不必绕行集中网关。RFC 9135 定义了两种模型,RFC 9136 在其上叠加 RT-5。

9.1 非对称 IRB(Asymmetric)

9.2 对称 IRB(Symmetric,主流)

对称 vs 非对称,一句话记住:非对称 = 「入口一次查完三层,出口当二层甩」;对称 = 「入口查一次、出口再查一次,靠 L3VNI 逐跳转发」。现代数据中心(华为/华三分布式网关)几乎全用对称 IRB

9.3 Router's MAC 扩展团体(RFC 9135 §8.1)

对称 IRB 专用:类型 0x06,子类型 0x03,8 字节值 = 本 PE 的 router MAC。VXLAN/NVGRE 需要内层以太头,而 TS 的真实 MAC 不能用于跨子网流量,于是用 PE 自己的 router MAC 当内层 SA/DA。每条路由只附一个;收到多个则取第一个。

10.RT-5 IP 前缀路由(RFC 9136)

RT-2 把 MAC/IP 绑在一起,适合主机级;但很多场景(子网路由、外部网络、floating IP)只关心 IP 前缀、不关心 MAC。RFC 9136 新增 RT-5(IP Prefix route),把 IP 前缀从 MAC 中解耦。

10.1 NLRI 格式

字段长度说明
Route Distinguisher8 B区分租户。
Ethernet Segment Identifier10 B多归属场景可携带,通常 0。
Ethernet Tag ID4 B通常 0。
IP Prefix Length1 BIPv4: 0–32;IPv6: 0–128。
IP Prefix4 / 16 B要通告的前缀。
GW IP Address4 / 16 BOverlay Index 之一(见下);无则 0。
MPLS Label3 B= L3VNI(对称 IRB 下标识 IP-VRF)。
IPv4 RT-5:Length = 34 = 8+10+4+1+4+4+3   IPv6 RT-5:Length = 58 = 8+10+4+1+16+16+3

10.2 Overlay Index:前缀「挂在谁后面」

RT-5 可带一个 Overlay Index,告诉远端「这个前缀要通过谁来递归解析到 egress VTEP」:

10.3 为什么不用 RT-2 传前缀:floating IP 例子

设想 1000 条前缀都挂在浮动 IP vIP23 后面(VRRP 式主备)。若用 RT-2 把前缀绑在 MAC 上:vIP23 从 Master-A 切到 Master-B 时,要撤回 1000 条再重发 1000 条。改用 RT-5:1000 条前缀只关联 vIP23,所有权切换时只改一条 RT-2(vIP23↔新 MAC),远端只需更新 ARP 解析,1000 条前缀纹丝不动。这就是「解耦」的价值。

10.4 三类部署模型

模型要点
IP-VRF-to-IP-VRF
(对称 IRB)
最常用。跨子网经 L3VNI 在 IP-VRF 间转发;RT-5 携带 L3VNI,各 VTEP 对称处理。
IP-VRF-to-SBDSBD(Supplementary BD)= 无 AC、只有 IRB 的辅助广播域,专用于把同一租户的各 IP-VRF 互联(RFC 9136 §4.4)。
非对称 IRB用 RT-2(不带 Label2)即可,RT-5 用于对外通告子网(无需 L3VNI)。
对称 IRB 还需要 RT-5 子网路由?需要。RFC 9135 §5.3:当某主机 IP/MAC 尚未学到,入口 VTEP 要先知道「哪个 egress VTEP 挂着目标子网」才能触发 gleaning(发 ARP 探活)。这个「子网在谁那」正是靠 本地子网 RT-5 通告的。

11.厂商实现:华为 CE / 华三 Comware(语料库对照)

本节把 RFC 7432 / 8365 / 9135 / 9136 的规范,对照华为(VRP / CloudFabric)与华三(Comware V7/V9)在数据中心交换机上的真实落地——术语映射、CLI 骨架、路由类型对应、多归属实现与差异点。语料来自两家官方文档,命令不臆测。

11.1 华为 CloudEngine(VRP V200R025C00)

语料来源:本地 VXLAN/EVPN 特性文档 + 离线 huawie-ce-max 技能库(CE 系列官方手册全集)。CLI 均取自官方《配置指南》/《命令参考》正文,未确认项已显式标注,宁缺勿编

术语与对象模型映射

RFC / 通用术语华为术语配置对象 / 命令
EVPN Instance (EVI)EVPN 实例BD 视图下 evpnEVI 名称即其绑定 BD 的 ID,不单独命名。
Broadcast Domain / MAC-VRF广播域 BDbridge-domain <bd-id>。华为 DC 用 BD,不用 VSI(VSI 是 NE 路由器 / VPLS 侧术语)。
L2VNI ↔ MAC-VRFBD 关联 VNIBD 视图 vxlan vni <vni-id>,一 BD 一 L2VNI。
IP-VRFVPN 实例ip vpn-instance <name>,与 EVPN 实例「交叉路由」。
L3VNI三层 VNIVPN 实例视图 vxlan vni <vni-id>,直接挂在 ip vpn-instance 下,不是挂接口。
IRB 接口 / SVIVBDIF 接口interface vbdif <bd-id>,编号强制等于 BD IDip binding vpn-instance 绑 IP-VRF。
Anycast Gateway分布式网关VBDIF 下 vxlan anycast-gateway enable,各网关 VBDIF 配相同 IP + 相同 MAC
VTEP / NVENVE 接口interface nve 1 + source <ip>,头端复制列表也在此配。
Ethernet Segment以太网段 ESEth-Trunk 视图 esi <esi>,仅部分型号支持(见下)。
Type-2 带 L2+L3VNIIRB 类型路由peer X advertise irb
Type-2 仅 MAC+IPARP 类型路由peer X advertise arp,只带 L2VNI,用于 ARP 广播抑制。
关键差异:华为把 RFC 的 Type-2 按「携带字段」拆成三种业务语义 —— MAC 路由 / ARP 类型路由(MAC+IP+L2VNI)/ IRB 类型路由(MAC+IP+L2VNI+L3VNI),并且互斥地peer X advertise arppeer X advertise irb 控制,只能二选一。

配置骨架(分布式网关 VXLAN + EVPN,对称 IRB)

华为 VRP · 分布式网关
system-view evpn-overlay enable # 全局使能 EVPN 控制平面(缺省未使能) bgp 100 router-id 2.2.2.2 peer 1.1.1.1 as-number 100 peer 1.1.1.1 connect-interface LoopBack0 l2vpn-family evpn # 进入 BGP-EVPN 地址族 peer 1.1.1.1 enable peer 1.1.1.1 advertise irb # 发布 IRB 类型路由(推荐) bridge-domain 10 vxlan vni 10 evpn route-distinguisher 10:2 vpn-target 100:10 export-extcommunity # L2 RT vpn-target 100:5010 export-extcommunity # ★ 同时导出 L3VNI 的 RT vpn-target 100:10 import-extcommunity ip vpn-instance vpn1 ipv4-family route-distinguisher 20:2 vpn-target 100:5010 export-extcommunity evpn vpn-target 100:5010 import-extcommunity evpn vxlan vni 5010 # L3VNI 绑在 VPN 实例视图 interface Vbdif10 ip binding vpn-instance vpn1 ip address 10.1.10.1 255.255.255.0 mac-address 0000-5e00-0102 # 各分布式网关配相同 MAC vxlan anycast-gateway enable # 使能分布式网关 arp collect host enable interface Nve1 source 2.2.2.210 vni 10 head-end peer-list protocol bgp # 头端复制列表由 BGP EVPN 构建 interface Eth-Trunk10.1 mode l2 encapsulation dot1q vid 10 bridge-domain 10 commit # ★ VRP8 两阶段提交,必须 commit

EBGP EVPN + LoopBack 建邻必须peer X ebgp-max-hop;RR 场景需 undo policy vpn-target。发布 Type-5(IP 前缀)可选路径:bgp 100 / ipv4-family vpn-instance vpn1 / import-route direct / advertise l2vpn evpn

路由类型 ↔ 查看命令

RFC 类型华为中文名display 关键字
Type-1以太自动发现路由ad-route
Type-2MAC/IP 路由(MAC / ARP / IRB / ND 类型)mac-route
Type-3集成多播路由inclusive-route
Type-4以太网段路由es-route
Type-5IP 前缀路由prefix-route
Type-6/7/8SMET / IGMP Join / Leavesmet-route / join-route / leave-route
查证结论:华为没有 route-type 这个关键字,直接在类型后接上表关键字:display bgp evpn all routing-table { ad-route | es-route | inclusive-route | mac-route | prefix-route | smet-route | join-route | leave-route }。配套验证:display vxlan tunnel/peer/vnidisplay interface nvedisplay mac-address evndisplay dfs-group 等。

多归属实现(★ 重点)

你的假设「华为 DC 用 M-LAG + Anycast VTEP 而非标准 ESI」完全成立,且比预想更强——本质是硬件能力约束。官方原文明确:仅 CE5881 / CE6881 / CE6881E / CE6881K / CE6863 / CE6863E / CE6863K 共 7 款支持标准 ESI 多归,且 Type-1 / Type-4 路由也仅这 7 款支持;主流 CE6857 / 6865 / 8850 / 8861 / 8868 等根本不支持标准 ESI。官方甚至在《EVPN-VXLAN ESI 多活技术》的「产生背景」里主动贬低自己的 M-LAG

「M-LAG 接入 VXLAN 是非标准定义的 EVPN 多归方案,不同厂商设备可能因实现差异而无法互相兼容;M-LAG 需要在双活设备之间部署物理连线,且不能扩展到多归多活。」
维度M-LAG + Anycast VTEP(华为 DC 主流)标准 ESI 多归(RFC 7432)
标准性非标准,厂商私有RFC 7432 标准
远端可见性两台共用同一个 VTEP IP,远端看到一台逻辑设备两台各自 VTEP,靠 ESI 关联
依赖必须有 peer-link 物理直连 + DFS Group 配对无需直连线
扩展性仅支持双归支持多归多活
用到的路由类型不需要 Type-1 / Type-4依赖 Type-1 / Type-4
型号覆盖CE 系列普遍支持仅 7 款型号

对称 / 非对称 IRB

实现特色与高频坑

语料未确认、请勿写入页面:single-active / all-active 作为华为 CLI 关键字(华为只用「多活模式」中文表述);② MAC Mobility Sequence Number 的命令级配置(华为对外呈现为「MAC 漂移检测 + ARP 探测撤销」);③ ip vpn-instanceroute-distinguisher auto;④ display ... route-type <N> 这种写法。

11.2 新华三 Comware V7(S12500G-AF / S6805 等数据中心交换机)

语料来源:离线 h3c-switch-max 技能库(S12500G-AF / S12500CR R8064、S6805/S6850-G R8060 等官方《配置指导》《命令参考》全集,全部 Comware V7)。CLI 均取自官方手册正文,未确认项已显式标注,宁缺勿编

术语与对象模型映射

RFC / 通用术语H3C 术语配置对象 / 命令
Broadcast Domain / MAC-VRFVSI(虚拟交换实例)vsi <vsi-name>。H3C DC 用 VSI,不用 BD(BD 是 VPLS/路由侧术语)。
EVPN Instance (EVI)VSI 下的 EVPN 实例evpn encapsulation vxlan(VSI 视图下),RD/RT 在此子视图配。
L2VNIVXLAN / VXLAN IDVSI 视图 vxlan <id>,一个 VSI 只能建一个 VXLAN。
IP-VRFVPN 实例 / 公网实例ip vpn-instance <name> / ip public-instance
L3VNIL3VNIl3-vni <id>VSI 虚接口视图或公网实例视图)。
IRB 接口 / SVIVSI 虚接口interface vsi-interface <id>
AC(接入电路)以太网服务实例service-instance <id> + xconnect vsi <name>
VTEP / NVEVTEPEVPN 自动隧道,无 NVE 接口对象
Ethernet SegmentES / ESI接口视图 esi <xxxx.xxxx.xxxx.xxxx.xxxx>(须以 00 开头)。
Anycast Gateway分布式 EVPN 网关VSI 虚接口下 distributed-gateway local
关键差异:H3C 用 VSI ← AC ←(service-instance + encapsulation)三层模型,AC 显式建模为对象;RD/RT 不在 VSI 视图配,而在 VSI 下的 evpn encapsulation vxlan 子视图配。这与华为「BD + 子接口 bridge-domain」写法差别很大。
维度H3C(Comware)华为(VRP)
二层广播域vsi <name>bridge-domain <bd-id>
IRB 接口interface vsi-interface Xinterface vbdif X
AC 接入service-instance + xconnect vsi子接口 encapsulation dot1q vid X + bridge-domain X
VTEP 源BGP connect-interface loopback 0interface nve 1 + source <ip>
分布式网关distributed-gateway localVBDIF 下 vxlan anycast-gateway enable
L3VNI 绑定VSI 虚接口下 l3-vni <id>VPN 实例 evpn 地址族 + BD 下 vxlan vni X

配置骨架(分布式网关 VXLAN + EVPN,对称 IRB)

H3C Comware · 分布式网关
system-view l2vpn enable vxlan tunnel mac-learning disable # 隧道侧 MAC 学习改由控制平面下发 vxlan tunnel arp-learning disable vsi vpna arp suppression enable # ARP 泛洪抑制(VSI 视图) evpn encapsulation vxlan # 进入 VSI 下的 EVPN 实例视图 route-distinguisher auto vpn-target auto quit vxlan 10 # L2VNI quit quit bgp 200 router-id 1.1.1.1 peer 4.4.4.4 as-number 200 peer 4.4.4.4 connect-interface loopback 0 # 该地址同时决定 VXLAN 隧道源 address-family l2vpn evpn peer 4.4.4.4 enable quit quit interface ten-gigabitethernet 3/0/1 service-instance 1000 encapsulation s-vid 2 # 也可 c-vid / tagged / untagged xconnect vsi vpna # AC 接入 VSI quit quit ip vpn-instance l3vpna route-distinguisher 1:1 address-family evpn vpn-target 1:1 # 供 RT-2(含 ARP/ND)使用 quit quit interface vsi-interface 1 ip binding vpn-instance l3vpna ip address 10.1.1.1 255.255.255.0 mac-address 1-1-1 # 各分布式网关配相同 MAC distributed-gateway local local-proxy-arp enable quit interface vsi-interface 3 ip binding vpn-instance l3vpna l3-vni 1000 # 承载 L3VNI 的专用虚接口(无 IP) quit vsi vpna gateway vsi-interface 1 # 把 VSI 挂到网关接口 quit
★ 隧道源地址修正:EVPN 自动隧道的源地址取 BGP EVPN 会话本端地址(即 peer X connect-interface loopback 0),上述官方举例全程未出现 tunnel global source-address。后者是系统视图「隧道未配源时的全局兜底」,主要用于手工 VXLAN 隧道 / OVSDB 控制器场景,不是 EVPN 自动隧道的源。隧道自动建立触发:收到 IMET 路由 / MAC-IP 路由(二层)或 RT-2 / RT-5 且 RT 与本地 VPN 实例 Import Target 匹配(三层)。

路由类型 ↔ 查看命令

RFC 类型H3C 中文名display 关键字 / CLI 过滤
Type-1以太网自动发现路由无独立 route-type 关键字
Type-2MAC/IP 发布路由route-type mac-ip
Type-3包含性组播以太网标签路由(IMET)route-type imet
Type-4以太网段路由无独立 route-type 关键字
Type-5IP 前缀路由route-type ip-prefix
Type-6/7/8SMET / IGMP Join / Leave 同步路由无独立 route-type 关键字
查证结论:display bgp l2vpn evpn route-type 在 R8064 版本仅支持 imet | ip-prefix | mac-ip 三个取值,RT-1 / RT-4 / RT-6~8 没有对应过滤关键字,只能靠 display evpn auto-discovery { imet | mac-ip } 间接看。常用验证:display evpn instancedisplay evpn route macdisplay evpn route arp [ suppression ]display evpn route mac-mobilitydisplay evpn m-lag synchronized-macdisplay l2vpn forwarding evpn split-horizon tunnel <n> slot <n>

多归属实现(★ 重点)

H3C 有两套并存且互斥的冗余方案——这是与其他厂商对照时最重要的一点。手册明确:IRF 与多归属互斥、M-LAG 与多归属互斥,建议不要在同一设备同时配置。因此 H3C 数据中心 Leaf 双归属压倒性采用 M-LAG + 虚拟 VTEP 地址,标准 ESI 多归属属可选路线(限 SF/SG 板卡、仅多活、不支持 DCI 隧道与三层组播)。

维度M-LAG + 虚拟 VTEP(H3C DC 主流)标准 ESI 多归(RFC 7432)
标准性厂商私有方案RFC 7432 标准
远端可见性两台共用同一虚拟 VTEP IP,对外一台逻辑设备两台各自 VTEP,靠 ESI 关联
依赖需 peer-link 直连 + M-LAG 配对无需直连线
冗余模式多活(当前仅支持 All-Active)多活(当前仅支持 All-Active)
用到的路由类型不依赖 Type-1 / Type-4依赖 Type-1 / Type-4
标准 ESI 多归(限 SF/SG 板卡)
interface ten-gigabitethernet 3/0/1 esi 0000.0001.0002.0003.0004 # 须以 00 开头,不支持全 0 evpn df-election algorithm preference evpn df-election preference <val> # 数值大者优先 evpn timer es-recovery 30 quit evpn multihoming vxlan-frr local # 多归属 FRR evpn multihoming advertise disable # 禁止通告 RT-1/RT-4
M-LAG + 虚拟 VTEP(DC 主流)
evpn m-lag group 1.2.3.4 # 虚拟 VTEP,两台配相同值 evpn global-mac 0001-0001-0001 # 两网关一致,保证 Router MAC m-lag system-mac 0001-0001-0001 m-lag keepalive ip destination 60.1.1.2 source 60.1.1.1 interface bridge-aggregation 3 port m-lag peer-link 1 # 直连模式 peer-link interface bridge-aggregation 4 port m-lag group 4 # 用户侧 M-LAG 口

对称 / 非对称 IRB

实现特色与高频坑

语料未确认、请勿写入页面:Comware V9(S9825/S9855 等)的 EVPN 命令差异——本次离线语料 1224 篇手册全部为 Comware V7,V9 上命令体系据称基本延续 V7,但具体差异需另行核对;② VCFC / SeerEngine-DC 经 NETCONF 直接下发 EVPN VXLAN 业务的交互模型与版本要求(VCF Fabric 文档明确「Overlay / VXLAN 暂不支持」,仅做 Underlay 自动化);③ LACP 自动 ESI(Type 1),语料仅见 Type 0 手工 ESI。

12.EVPN 扩展家族(其他 RFC 速览)

EVPN 不止 7432/8365/9135/9136 四篇。下面这些 RFC 在同一套 EVPN 控制面上扩展出新业务能力,按需取用,不遗漏:

RFC主题解决什么 / 关键点
7209EVPN 需求(Requirements)EVPN 的问题陈述与需求清单:多归属冗余、组播优化、易配置、新服务接口等。是 7432 的「为什么」。
7623PBB-EVPNProvider Backbone Bridging 与 EVPN 结合:用 B-MAC 封装 C-MAC,把海量客户 MAC 藏在运营商 MAC 后,极大扩展二层域规模(运营商 / 城域网场景)。
8214EVPN-VPWS用 EVPN 实现点到点虚拟专线(VPWS)。为每个 AC/ES 发 Ethernet A-D 路由,支持 Single-Active / All-Active,省掉了传统 PW 信令
8584DF 选举可扩展框架扩展 7432 默认 DF 选举:AC-influenced DF、highest random weight、Backup DF(BDF)。让多归属负载更均衡、切换更快。
9251IGMP/MLD Proxy在 EVPN 上高效承载组播:IGMP/MLD Proxy Reporting + Proxy Querier,配合 SMET(Selective Multicast Ethernet Tag)做选择性组播,避免无差别泛洪。
8317E-TREE(Root/Leaf)在 EVPN 上实现根-叶(hub & spoke)业务:用 ESI / Ethernet Tag 的最高位(MSB)标记 Leaf,Leaf 之间互不可达、只能与 Root 通。
选型地图:数据中心二层 + VXLAN → 7432+8365;要跨子网 → 9135+9136;多归属要更优 → 8584;点到点专线 → 8214;运营商大二层 → 7623;组播优化 → 9251;隔离型业务(如金融合规分区)→ 8317。

13.术语速查表

术语一句话
EVPN基于 MP-BGP 的二层 VPN 控制平面(RFC 7432)。
AFI/SAFI 25/70EVPN 在 BGP 多协议扩展里占的地址族。
EVI租户二层实例,DF/RT/IMET 的作用域单位。
MAC-VRF / IP-VRF每 PE 的 MAC 转发表 / 三层路由表。
BD / VNI二层广播域 / 24 位 VXLAN 网络标识(L2VNI 二层,L3VNI 三层)。
ESI10 字节以太网段标识,多归属的纽带(Type 0–5)。
RT-1~RT-5以太网段自动发现 / MAC-IP 通告 / IMET / ES 路由 / IP 前缀路由。
DF指定转发者,每 (ESI,EVI) 选一台负责发 BUM。
Split-Horizon防环路:MPLS 用 ESI Label,VXLAN 用 Local Bias(源 IP 过滤)。
Aliasing靠 RT-1 per-EVI 让远端把该 ES 的 MAC 当多路径。
Mass Withdrawal撤 RT-1 即批量收敛,不必逐条撤 MAC。
MAC Mobility序列号裁决 MAC 新旧位置;Sticky 防漂移。
IRB集成路由桥接;对称(带 L3VNI,主流)/ 非对称。
Router's MAC EC对称 IRB 内层目的 MAC 指示(0x06/0x03)。
Overlay IndexRT-5 里前缀的下一跳:GW IP / MAC / ESI。

14.参考文献