首页/网络/BGP 与广域网速查/BGP TCP MD5 认证:不一致的表现与排查
广域网排障60 条

BGP TCP MD5 认证:不一致的表现与排查

MD5 认证在 TCP 层校验:不一致时表现为 TCP 连接超时或被重置,而不是 BGP Notification;核对两端口令逐字符一致。

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

MD5 认证不一致的表现

BGP 的 TCP 层认证(常见实现是 RFC 2385 定义的 MD5 摘要)在 TCP 连接建立阶段就生效:每个报文段的头部都参与计算,校验不过的报文会被直接丢弃。这个特性决定了它的故障表现非常有辨识度——不一致时不会出现 BGP 层面的错误报文(因为连接根本建立不起来),而是表现为 TCP 连接超时或被重置,日志里往往只有连接失败或对端无响应,抓包能看到 SYN 发出却收不到 SYN-ACK,或者收到 RST。因此在确认「可达性没问题但邻居建不起来」时,认证不一致应当列为高优先级怀疑项。

基本信息

原理TCP MD5 签名,RFC 2385 定义
症状连接超时或被重置,无 BGP 报文交互
Cisco 配置neighbor <地址> password <口令>
华为配置peer <地址> password cipher <口令>
演进方向TCP-AO(RFC 5925)逐步替代 MD5
核对方式两端口令逐字符比对,含大小写与特殊字符

典型使用场景

  • 邻居建不起来且可达性正常:优先核对认证配置
  • 割接后邻居异常:确认新设备是否配置了口令
  • 安全加固:为 eBGP 邻居增加认证
  • 排障时区分认证问题与 ACL 拦截:抓包看是否有 BGP 报文
  • 定期巡检:确认实际配置与密码管理记录一致

配置核对

配置核对
# Cisco:查看是否配置了口令(口令本身通常不回显)
show ip bgp neighbors 203.0.113.2 | include password
show running-config | include neighbor 203.0.113.2 password
# 抓包判断:无 SYN-ACK 或收到 RST 属典型表现
tcpdump -ni eth0 'host 203.0.113.2 and tcp port 179'
# 华为侧对照
 display bgp peer 203.0.113.2 verbose

现象区分

现象倾向原因验证方式
无任何 BGP 报文认证不一致或 ACL 拦截抓包看是否有通过校验的报文
SYN 无回应对端未配置或口令不同两端同时抓包对比
收到 RST对端校验失败后重置核对口令内容
单方向可建一侧未配置认证逐端检查配置
日志只报超时TCP 层被丢弃以抓包结论为准
口令变更属于两端联动操作:建议在同一窗口内先改一端并保持旧口令可用,或明确约定切换时刻,避免中间出现长时间不可用。
部分平台在配置文件中对口令加密存储,因此不能靠配置文件比对判断是否一致,需以实际口令来源为准。

易错点

  • 以为会收到 BGP Notification:TCP 层校验不过根本进不到 BGP 报文交换阶段
  • 只在一端配置认证:另一端没有对应口令,连接被静默丢弃
  • 口令含特殊字符时复制出错:看似一致实际不同,逐字符核对是必要动作
  • 把认证问题误判为 ACL 拦截:两者都表现为报文不通,抓包与配置核对可区分
  • 口令变更没有变更记录:后续排障无法判断当前生效口令来源

数据来源与参考

  • RFC 2385: TCP MD5 签名
  • RFC 5925: TCP-AO
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌