3. BGP EVPN对等体与地址族工程
在Arista的BGP EVPN控制平面中,真正决定“哪些邻居能交换EVPN路由、以什么身份交换、下一跳如何被改写”的,并不是EVPN本身,而是BGP对等体与地址族的工程化设计。EVPN只是BGP的一个地址族(AFI=25,SAFI=70),它必须依附在已建立的BGP会话之上。因此本节的核心问题是:如何激活L2VPN EVPN地址族、如何用对等体组收敛配置、如何安排路由反射器角色,以及iBGP/eBGP在选路与下一跳处理上的差异。
一、L2VPN EVPN地址族的激活
在Arista EOS中,BGP邻居默认只协商IPv4单播地址族。要让邻居交换EVPN路由,必须在邻居或对等体组下显式激活EVPN地址族。典型配置如下:
router bgp 65001
router-id 10.0.0.1
neighbor EVPN-PEERS peer group
neighbor EVPN-PEERS remote-as 65001
neighbor EVPN-PEERS update-source Loopback0
neighbor EVPN-PEERS next-hop-self
neighbor EVPN-PEERS send-community extended
neighbor 10.0.0.2 peer group EVPN-PEERS
!
address-family evpn
neighbor EVPN-PEERS activate
这里有两个关键点。第一,send-community extended必须开启,因为EVPN的Route Type 2(MAC/IP通告)依赖扩展团体属性携带ESI、Router's MAC等信息,关闭后对端无法正确解析。第二,address-family evpn下的activate才是真正让该邻居参与EVPN NLRI交换的开关;仅在邻居层配置remote-as并不会自动激活EVPN。验证时可用show bgp evpn summary查看邻居状态,用show bgp evpn确认是否收到Type 2/Type 3路由。
二、对等体组设计
EVPN场景下邻居数量随Leaf数量增长,逐邻居配置极易出错。对等体组(peer group)把公共属性集中定义,邻居只引用组名。建议按角色划分:
- SPINE-EVPN:用于Leaf与Spine之间的iBGP EVPN会话,统一
update-source Loopback0、next-hop-self、send-community extended。 - LEAF-EVPN:用于Spine侧指向Leaf的会话,属性与上组对称。
- DC-EDGE:用于跨数据中心或DCI的eBGP EVPN会话,通常需要
ebgp-multihop与allowas-in。
对等体组设计的原则是“属性进组、邻居只留地址”。这样当需要新增一个Leaf时,只需在Spine上增加一行neighbor x.x.x.x peer group SPINE-EVPN,无需重复配置团体属性与下一跳策略。
三、路由反射器角色
在iBGP全互联模型中,N个Leaf需要N×(N-1)/2条会话,扩展性差。EVPN通常采用Spine作为路由反射器(RR)。RR不修改AS_PATH,只反射路由,因此Leaf之间无需直连iBGP。配置上,Spine在address-family evpn下对客户端执行neighbor EVPN-PEERS route-reflector-client。需要注意:RR只反射,不改变下一跳;若Leaf收到的EVPN路由下一跳是远端Leaf的Loopback,而Spine未做next-hop-self,则Leaf可能因无法到达该Loopback而丢弃路由。因此RR场景下通常仍建议在Spine上对EVPN邻居启用next-hop-self,或确保底层IGP已通告所有Loopback。
四、iBGP/eBGP选路与下一跳处理
iBGP与eBGP在EVPN中的差异主要体现在三处:
| 维度 | iBGP EVPN | eBGP EVPN |
|---|---|---|
| AS_PATH | 不追加 | 每跳追加AS号 |
| 下一跳 | 默认保留,需next-hop-self | 默认改为自身 |
| 选路优先级 | 低于eBGP | 高于iBGP |
| 典型场景 | Spine-Leaf同AS | DCI跨AS |
下一跳处理是EVPN最容易出问题的环节。以Type 2路由为例,Leaf-A通告的MAC/IP路由下一跳为Leaf-A的Loopback。若Spine作为RR未做next-hop-self,Leaf-B收到的下一跳仍是Leaf-A的Loopback。此时Leaf-B必须能通过IGP到达该Loopback,否则路由虽在BGP表中,却无法安装到EVPN表。判断依据是show bgp evpn route-type mac-ip中下一跳是否可达,以及show ip route中是否存在对应Loopback的IGP路由。
next-hop-self,使Leaf收到的下一跳为Spine的Loopback,简化底层可达性要求。五、工程检查要点
完成配置后,建议按以下顺序验证:
show bgp evpn summary:确认邻居State为Established,且EVPN地址族已激活。show bgp evpn:确认收到Type 2(MAC/IP)与Type 3(IMET)路由。show bgp evpn route-type mac-ip:检查下一跳是否可达、扩展团体是否携带。show ip route:确认下一跳Loopback有IGP路由。
综上,EVPN对等体工程的关键在于:地址族激活是前提,对等体组是收敛手段,RR是扩展性方案,而下一跳处理是连通性保障。四者缺一不可,任何一环配置不当都会导致EVPN路由“可见但不可用”。