在大型企业网络或运营商环境中,BGP联盟常被用来解决iBGP全互联带来的扩展性问题。但真正让网络工程师头疼的,往往不是配置命令本身,而是那些突然出现在路由表中的神秘符号——比如AS_PATH属性中出现的圆括号(65535)或方括号[65534, 65535]。这些符号背后隐藏着BGP联盟的核心防环机制,本文将带您深入这些细节。
BGP联盟通过将单一自治系统拆分为多个成员AS(Member-AS)来解决iBGP全互联的扩展性问题。这种设计存在三个关键特征:
confederation id定义),对内则划分为多个子AS关键区别:普通eBGP会话会修改next-hop属性,而联盟eBGP默认保持原始next-hop,除非显式配置
peer next-hop-local
华为设备上典型的联盟配置示例如下:
huawei复制# 成员AS 65534的配置
sysname R2
bgp 65534
confederation id 200 # 声明联盟ID
confederation peer-as 65535 # 声明其他成员AS
peer 10.0.12.3 as-number 65535 # 建立联盟eBGP邻居
在联盟环境中,AS_PATH属性扩展出两种特殊类型,与标准类型形成四类组合:
| 类型 | 表示符号 | 排序特性 | 联盟专用 | 选路计数 |
|---|---|---|---|---|
| AS_SEQUENCE | 无 | 有序 | 否 | 是 |
| AS_SET | {} | 无序 | 否 | 按1计算 |
| AS_CONFED_SEQUENCE | () | 有序 | 是 | 否 |
| AS_CONFED_SET | [] | 无序 | 是 | 否 |
实际案例对比:
65530 65531(两个AS计数)(65535) [65534] 65530(仅65530计入长度)通过华为ENSP模拟器搭建以下实验环境:
code复制AS100 - (R1) == [AS65535-(R2) -- (R3)-AS65534] == (R4) - AS200
在R2上查看从联盟外接收的路由:
huawei复制<R2> display bgp routing-table
Destination: 10.1.1.0/24
Paths: 1 available
From: 10.0.12.1 (65530)
AS_PATH: 65530 (65535) # 外部AS+当前成员AS
NextHop: 10.0.12.1
在R3上聚合路由时,观察有无as-set参数的区别:
无as-set配置:
huawei复制aggregate 172.16.0.0 16 detail-suppressed
结果AS_PATH仅显示当前AS:(65534)
启用as-set配置:
huawei复制aggregate 172.16.0.0 16 detail-suppressed as-set
结果AS_PATH显示为:(65534) [65535],其中:
()包含经过的成员AS顺序[]包含聚合前各路由的成员AS集合当联盟内路由传递异常时,建议按以下顺序检查:
联盟ID一致性检查
confederation id必须相同AS_PATH符号验证
()内的AS号是当前成员AS的直连邻居[]仅在路由聚合时出现,缺失可能导致环路下一跳可达性验证
huawei复制display ip routing-table 10.0.23.2 # 检查联盟eBGP下一跳
防环机制测试
[]是否阻止路由回传华为VRP系统对联盟AS_PATH的处理有几个易忽略的细节:
路由策略优先级:
huawei复制route-policy CONFED permit node 10
if-match as-path-filter confed-as # 专用过滤器匹配()[]
调试命令:
huawei复制debugging bgp update
# 查看UPDATE报文中的AS_PATH属性原始格式
显示格式差异:
()在部分版本显示为浅灰色[]可能显示为深灰色带背景色在最近参与的金融网络改造项目中,核心层采用BGP联盟架构时,曾因忽略as-set参数导致路由震荡。事后用display bgp routing-table verbose命令对比发现,缺失[]的聚合路由被错误地回传到源成员AS。这个案例印证了AS_CONFED_SET在防环中的关键作用——它就像联盟内部的"指纹标记",即使路由被聚合也不会丢失原始路径信息。