首页/网络/BGP 与广域网速查/allowas-in:允许 AS_PATH 含本 AS
BGP 基础与邻居89 条

allowas-in:允许 AS_PATH 含本 AS

默认 AS_PATH 中出现本 AS 号会丢弃(防环):特殊拓扑(如双重归属、备份环路场景)需要 allowas-in 放宽。

BGP 与广域网速查网络更新于 2026-10-13

为什么需要放宽防环检查

BGP 防环的第一道机制是 AS_PATH 检查:收到路由时若发现 AS_PATH 中包含本 AS 号,默认判定为环路并丢弃。但有些拓扑里路由是合法地绕回本 AS 的——最典型的是 CE 双归到同一台 PE(两个 PE 属于同一 AS,路由从一侧发出去、从另一侧绕回来),或同一 AS 内的多条链路互备。这类场景需要用 allowas-in 按邻居放宽:允许 AS_PATH 中出现本 AS 号,并可用次数参数限制允许出现的最大次数。

基本信息

默认行为AS_PATH 含本 AS 号即视为环路并丢弃
适用拓扑CE 双归同一 PE、双 PE 同 AS、备份路径绕回本 AS
配置位置邻居或地址族下:neighbor x allowas-in [次数]
次数含义允许本 AS 号在 AS_PATH 中出现的最大次数
生效方向作用于从该邻居收到的入向路由
主要风险放宽防环检查后,环路防护要靠拓扑设计兜底

典型使用场景

  • CE 双归到同一 PE:让备份路径在网络正常时也能被学习到
  • 同一 AS 的多条链路互备:路由从对端绕回本 AS,需要放宽入向检查
  • MPLS VPN 相关组网:PE 同 AS 且 CE 侧出现本 AS 号的结构
  • 接手配置审计:确认现网里的 allowas-in 为什么配、是否还能删除

配置与核对

配置与核对
router bgp 65001
 address-family ipv4 unicast
  neighbor 10.0.0.2 allowas-in 2      # 允许本 AS 号最多出现 2 次
!
show ip bgp 10.1.0.0                  # 看 AS_PATH 里本 AS 号的位置与次数
show ip bgp neighbors 10.0.0.2        # 看该邻居生效的放宽设置与方向
show ip bgp regexp _65001_            # 统计 AS_PATH 中含本 AS 号的路由数量

环路控制手段对照

手段作用范围代价
AS_PATH 默认检查所有邻居,标准行为无额外代价
allowas-in按邻居放开,可限制出现次数防环能力下降,需要拓扑兜底
调整 AS 编号让两侧不再同 AS,从根源消除绕回需要重新规划,影响面大
改走非 BGP 承载一侧用静态或其他协议失去动态收敛能力
拓扑设计规避让路由在设计上不绕回本 AS前期投入,但运维成本最低
allowas-in 属于最后手段:能用拓扑规避(调整 AS 号、改接方式)就不要放宽。次数参数不要图省事写大值——本 AS 号可能出现的次数取决于拓扑里最长的那条绕行路径,写大了等于把防护阈值抬到没有意义的位置。
放宽防环检查意味着环路风险从协议转嫁给运维:配置前确认拓扑不存在形成真实环路的可能,配置后持续观察 AS_PATH 中本 AS 号的出现次数与来源,出现异常增长时先按环路排查。

易错点

  • 放宽次数配得过大:环路防护实质失效,拓扑一旦出错就是真实环路而不是简单丢包
  • 忘记为什么配了 allowas-in:交接文档缺失时既不敢删也说不清作用,成为长期隐患
  • 在不需要的场景顺手配上:把标准防环机制当可选项,给后续拓扑变更埋雷
  • 只改一侧配置:allowas-in 逐邻居生效,需要明确到底哪一侧、哪个方向的路由需要放宽

数据来源与参考

  • 厂商: allowas-in 说明
  • MPLS VPN 场景实践
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌