两个维度定义一类路由
BGP 用两个维度描述一条路由属于哪一类:AFI(地址族标识,如 IPv4=1、IPv6=2、L2VPN=25)与 SAFI(子地址族标识,如单播=1、组播=2、带标签=4、VPN=128、EVPN=70)。配置 address-family 就是在声明要处理哪一类路由:IPv4 单播、IPv6 单播、VPNv4、EVPN 各自是独立地址族,能力要单独协商,查看命令也各不相同。
基本信息
| AFI | 地址族标识,如 IPv4、IPv6、L2VPN |
|---|---|
| SAFI | 子地址族标识,如单播、组播、带标签、VPN、EVPN |
| 协商方式 | 每个地址族独立协商,未激活则不通告该族路由 |
| 常见组合 | IPv4 单播、IPv6 单播、VPNv4、VPNv6、EVPN |
| 命令对应 | show bgp <afi> <safi> summary 等按族查看 |
| 排障要点 | 命令的地址族必须与配置的地址族一致 |
典型使用场景
- 双栈部署:IPv4 与 IPv6 地址族分别激活并分别验证
- MPLS VPN:VPNv4/VPNv6 与普通单播是完全不同的族
- EVPN 场景:二层路由的概念与 IP 族不同,不能套用同一套排障思路
- 排障空输出:地址族选错时命令返回空,容易被误判为没有路由
- 能力审计:确认邻居实际协商了哪些地址族
激活与查看
激活与查看
router bgp 65001
address-family ipv4 unicast
neighbor 10.0.0.2 activate # 激活 IPv4 单播
address-family ipv6 unicast
neighbor 2001:db8::2 activate # 激活 IPv6 单播
!
show bgp ipv4 unicast summary # 按族查看邻居与路由数量
show bgp ipv6 unicast summary
show bgp vpnv4 unicast all summary # VPNv4 族的会话与路由常见地址族组合
| AFI | SAFI | 用途 |
|---|---|---|
| IPv4 | unicast(1) | 常规互联网与内网路由 |
| IPv4 | mpls-vpn(128) | VPNv4 前缀 |
| IPv4 | labeled-unicast(4) | 标签单播场景 |
| IPv6 | unicast(1) | IPv6 路由 |
| IPv6 | mpls-vpn(128) | VPNv6 前缀 |
| L2VPN | evpn(70) | EVPN 前缀 |
命令的地址族要与配置的地址族一致:拿 IPv4 的命令查 IPv6,输出为空并不代表没有路由,而是查错了族。这类误判在排障中出现频率很高,先确认族再下结论。
地址族是逐个协商的:会话 Established 只说明基础能力可用,具体某一族(例如 VPNv6 或 EVPN)有没有协商成功,要看该族下的激活状态与邻居的能力协商结果,不能由会话状态推断。