BGP 认证用的是什么
BGP 本身不带认证字段,认证依赖 TCP 层的扩展:传统做法是 TCP MD5 摘要,较新的标准是 TCP-AO。两者都要求两端使用完全相同的密钥,任何一处不一致都会让会话在建连或 Open 阶段失败,而日志里往往只显示笼统的建连失败信息,因此核对密钥是排障的重要一步。
基本信息
| TCP MD5 | 广泛支持,RFC 2385;密钥直接配置 |
|---|---|
| TCP-AO | 更现代,支持密钥轮换,RFC 5925 |
| 匹配要求 | 两端密钥完全一致,含大小写与空格 |
| 配置(IOS) | neighbor <ip> password <密钥> |
| 配置(华为) | peer <ip> password cipher <密钥> |
| 排障特征 | 认证失败常表现为握手失败或反复重连 |
典型使用场景
- 与运营商互联:按合同开启认证,防止会话被冒名建立
- 内部设备之间:开启认证降低伪造报文的风险
- 合规要求场景:审计需要证明会话具备完整性校验
- 密钥轮换:按周期更换并验证不中断业务
- 排障:会话反复失败时确认是否为密钥不一致
配置示例
配置示例
# Cisco
router bgp 65001
neighbor 10.0.0.2 password S3cretKey
!
# 华为
bgp 65001
peer 10.0.0.2 password cipher S3cretKey
!
show ip bgp neighbors 10.0.0.2 | include password # 核对是否已配置
display bgp peer 10.0.0.2 verbose # 华为侧核对认证失败的典型表现
| 表现 | 原因 | 处理 |
|---|---|---|
| 会话反复建立又断开 | 两端密钥不一致 | 逐字符核对密钥 |
| 停在 Active 或 Connect | TCP 层校验失败 | 确认密钥与两端配置顺序 |
| 日志提示校验错误 | 密钥不匹配 | 核对大小写与特殊字符转义 |
| 部分邻居正常部分异常 | 仅部分邻居配置了密钥 | 逐个邻居核对认证配置 |
更换密钥时注意两端操作窗口:错峰修改期间会话必然会中断,建议在业务低谷期进行并准备回退。
密钥中的特殊字符在不同平台上的转义规则不同:修改后先在非关键邻居上验证,再推广到全部邻居。
排障与核对
排障与核对
show ip bgp neighbors 10.0.0.2 | include password # 本端是否已配置认证
show ip bgp summary # 观察会话是否反复重建
# 若怀疑认证问题,可用实验环境临时移除单侧认证复现,确认后再统一配置