文章总结: 本文针对BGP邻居故障,从实战角度总结六大排查点:确认TCP179连通性而非仅Ping;检查源IP及update-source配置;核对AS号与MD5密码一致性;解决EBGP跨设备的TTL多跳问题;排查路由策略误过滤情况。建议按此顺序操作,可快速定位并解决90%的BGP连接问题。 综合评分: 90 文章分类: 网络安全,安全运营,实战经验
BGP 邻居起不来?别急着骂运营商,这 6 个地方你大概率没查
原创
wljslmz瑞哥
网络技术联盟站
2025年12月26日 09:03 江苏
公众号:网络技术联盟站
在公司里做网络,BGP 出问题,往往不是“慢慢坏”,而是“一下全没”。
- 互联网出口突然全断
- IDC 专线黑洞
- 多出口切换失效
- 云上和本地路由互相“看不见”
最后大家都会盯着一句话问你:
“BGP 邻居怎么没起来?”
问题是——BGP 邻居起不来,真正的原因,往往不在 BGP 本身。
今天这次分享,我不讲 RFC,不背状态机,而是从工程现场出发,把我见过最多的 6 个检查点一次性讲清楚。
因为 BGP 有三个天然特性:
- 基于 TCP(179 端口)
- 控制面和转发面强绑定
- 默认“宁可不通,也不乱通”
只要其中一个环节有问题,结果只有一个:
邻居不上线,路由一条都没有
所以排查顺序极其重要。
检查点一: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 起了 ≠ 路由生效
最后给大家一个真正工程可用的排查顺序:
- TCP 179 通吗?(不是 ping)
- 源 IP 对吗?update-source 配了吗?
- AS 号双方一致吗?
- MD5 password 有没有?一致吗?
- EBGP 多跳 / TTL 对吗?
- 策略有没有把路由挡死?
按这个顺序走,90% 的 BGP 邻居问题,15 分钟内就能定位。
喜欢就分享
认同就点赞
支持就在看
一键四连,你的技术也四连
免责声明:
本文所载程序、技术方法仅面向合法合规的安全研究与教学场景,旨在提升网络安全防护能力,具有明确的技术研究属性。
任何单位或个人未经授权,将本文内容用于攻击、破坏等非法用途的,由此引发的全部法律责任、民事赔偿及连带责任,均由行为人独立承担,本站不承担任何连带责任。
本站内容均为技术交流与知识分享目的发布,若存在版权侵权或其他异议,请通过邮件联系处理,具体联系方式可点击页面上方的联系我。
本文转载自:网络技术联盟站 wljslmz瑞哥《BGP 邻居起不来?别急着骂运营商,这 6 个地方你大概率没查》
版权声明
本站仅做备份收录,仅供研究与教学参考之用。
读者将信息用于其他用途的,全部法律及连带责任由读者自行承担,本站不承担任何责任。










评论