BGP邻居起不来?别急着骂运营商,这6个地方你大概率没查

admin 2025-12-27 01:58:19 网络安全文章 来源:ZONE.CI 全球网 0 阅读模式

文章总结: 本文针对BGP邻居故障,从实战角度总结六大排查点:确认TCP179连通性而非仅Ping;检查源IP及update-source配置;核对AS号与MD5密码一致性;解决EBGP跨设备的TTL多跳问题;排查路由策略误过滤情况。建议按此顺序操作,可快速定位并解决90%的BGP连接问题。 综合评分: 90 文章分类: 网络安全,安全运营,实战经验


cover_image

BGP 邻居起不来?别急着骂运营商,这 6 个地方你大概率没查

原创

wljslmz瑞哥

网络技术联盟站

2025年12月26日 09:03 江苏

公众号:网络技术联盟站

在公司里做网络,BGP 出问题,往往不是“慢慢坏”,而是“一下全没”

  • 互联网出口突然全断
  • IDC 专线黑洞
  • 多出口切换失效
  • 云上和本地路由互相“看不见”

最后大家都会盯着一句话问你:

“BGP 邻居怎么没起来?”

问题是——BGP 邻居起不来,真正的原因,往往不在 BGP 本身。

今天这次分享,我不讲 RFC,不背状态机,而是从工程现场出发,把我见过最多的 6 个检查点一次性讲清楚。

因为 BGP 有三个天然特性:

  1. 基于 TCP(179 端口)
  2. 控制面和转发面强绑定
  3. 默认“宁可不通,也不乱通”

只要其中一个环节有问题,结果只有一个:

邻居不上线,路由一条都没有

所以排查顺序极其重要。

检查点一:TCP 179 到底通没通?

不是 ping

这是最容易被忽略、也是最容易踩坑的一步。

Ping 通 ≠ BGP 能通

很多人第一反应是:

ping 对端IP

能通,就开始看 BGP 配置; 不能通,就开始改路由。

但现实是:

  • Ping 用的是 ICMP
  • BGP 用的是 TCP/179

ICMP 通,不代表 TCP/179 通。

常见“假通”场景

  • 防火墙只放 ICMP
  • ACL 允许 ping,不允许 TCP
  • 安全设备只放“已知业务端口”

正确姿势

  • 在设备上检查 TCP 会话
  • 用抓包看 SYN → SYN-ACK → ACK
  • 防火墙明确放行 TCP 179 双向

记住一句话: BGP 起不来,先别看 BGP,先看 TCP。

检查点二:源 IP 用对了吗?

update-source 是高频雷区

这是第二大“工程事故现场”。

你看到的邻居 IP,不一定是发包 IP

比如你配置的是:

neighbor 10.1.1.2 remote-as 65002

但如果设备默认出接口 IP不是你想的那个:

  • 对端收到的源 IP 不对
  • 对端 BGP 拒绝连接
  • 日志一句话都不告诉你

Loopback 场景尤为致命

很多网络喜欢这样设计:

  • BGP 建在 Loopback 上
  • 底层跑 IGP(OSPF / IS-IS)

但你如果忘了:

update-source Loopback0

那结果一定是:TCP 能出去,BGP 不回应

实战建议

  • 明确:BGP 是“谁连谁”
  • Loopback 建邻居 → 必须指定 update-source
  • 对端必须有回程路由

检查点三:AS 号写反了?写错了?

真不是低级错误

你可能觉得这很基础,但我可以很负责任地说:

AS 号问题,是我见过第三多的 BGP 邻居不上线原因。

最经典的写反

  • 你以为对方是 65002
  • 实际对方是 65020

结果是:

  • TCP 能建
  • BGP 直接发 NOTIFICATION
  • 邻居状态瞬间掉线

私有 AS / 公有 AS 混用

  • 本地用私有 AS
  • 对端要求公有 AS
  • 中间运营商直接丢

排查技巧

  • 双方 remote-as 互相核对
  • 抓包看 NOTIFICATION 报文
  • 不要相信“我记得没错”

检查点四:MD5 认证(password)一致吗?

如果说 AS 号是“明雷”, 那 BGP MD5 就是“暗雷”。

现象非常迷惑

  • TCP 179 能建立
  • BGP 状态在 Idle / Active 来回跳
  • 日志干干净净

你会开始怀疑人生。

原因只有一个

双方 password 不一致

  • 多一个空格
  • 少一个字符
  • 大小写不同

BGP 都直接拒绝。

工程经验

  • 能不用 MD5 的内部链路,慎用
  • 用了就 逐字符对
  • 改完一定 clear session

检查点五:TTL / 多跳问题(尤其是跨设备)

这一步,很多人压根没意识到自己需要配

什么情况下会踩?

  • EBGP 不是直连
  • 中间隔了一跳或多跳
  • 用 Loopback 建 EBGP

默认行为

  • EBGP 默认 TTL = 1
  • 一跳之外直接丢包

解决方案

neighbor x.x.x.x ebgp-multihop 2

或者更大。

常见误区

  • “IGP 通了,BGP肯定也通”
  • “对端能 ping 我”

TTL 不对,BGP 根本看不到对方。

检查点六:策略没问题,但你把自己“封死”了

这是邻居能起,但一条路由都没有的终极坑。

常见表现

  • BGP Established
  • 路由表空空如也
  • 业务依然全断

高危操作

  • 出方向 route-policy / route-map
  • import/export 严格匹配
  • prefix-list 写错掩码

例如:

只允许 /24结果你宣告的是 /32

排查顺序

  • 看 BGP RIB
  • 看 Adj-RIB-In / Out
  • 再看全局路由表

BGP 起了 ≠ 路由生效


最后给大家一个真正工程可用的排查顺序

  1. TCP 179 通吗?(不是 ping)
  2. 源 IP 对吗?update-source 配了吗?
  3. AS 号双方一致吗?
  4. MD5 password 有没有?一致吗?
  5. EBGP 多跳 / TTL 对吗?
  6. 策略有没有把路由挡死?

按这个顺序走,90% 的 BGP 邻居问题,15 分钟内就能定位。

喜欢就分享

认同就点赞

支持就在看

一键四连,你的技术也四连


免责声明:

本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。

任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。

本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我

本文转载自:网络技术联盟站 wljslmz瑞哥《BGP 邻居起不来?别急着骂运营商,这 6 个地方你大概率没查》

评论:0   参与:  3