第3章 BGP安全基础配置:MD5认证、TTL安全跳数、BGP GTSM配置

聊到BGP安全,很多朋友第一反应就是「加个MD5认证呗」。嗯,没错,MD5认证确实是BGP安全的第一道防线。但说实话,我在项目里见过太多只配了MD5就觉得万事大吉的案例,结果呢?该被攻击还是被攻击。

这一章,我带你把这几个基础但关键的安全配置捋清楚。MD5认证、TTL安全跳数、BGP GTSM,这三样东西说白了就是BGP安全的「三板斧」。用好了,能挡住90%以上的常见攻击。

3.1 MD5认证:BGP邻居的「身份证」

MD5认证是什么?简单说,就是给BGP报文加个「签名」。只有双方密码对得上,才能建立邻居关系。没有这个签名,攻击者想伪造BGP报文?门儿都没有。

我个人习惯,在生产环境里,所有IBGP和EBGP邻居都配上MD5认证。别嫌麻烦,这步省了,后面可能出大事。

3.1.1 配置示例

华为设备上的配置很简单,一条命令搞定:

# 在BGP视图下配置MD5认证
bgp 100
 peer 10.0.12.2 password cipher MySecret@2024

思科设备也类似:

router bgp 100
 neighbor 10.0.12.2 password MySecret@2024
⚠️ 避坑指南
我曾经遇到过一个问题:配了MD5认证后,邻居一直起不来。查了半天,发现是两端密码大小写不一致。记住,密码是区分大小写的!还有,密码长度建议12位以上,别用太简单的。

3.1.2 验证MD5认证

配置完了怎么验证?用 display bgp peer 看看状态:

<Huawei> display bgp peer

 BGP local router ID : 1.1.1.1
 Local AS number : 100
 Total number of peers : 1
 Peer            AS  MsgRcvd  MsgSent  OutQ  Up/Down  State  Password
 10.0.12.2      200       10       10     0 00:05:23 Established Yes

看到 Password: Yes 了吗?这就说明MD5认证生效了。

3.2 TTL安全跳数:限制攻击者的「射程」

MD5认证虽然好,但它有个问题——密码是静态的。如果攻击者抓到了你的BGP报文,理论上可以暴力破解。那怎么办?再加一层防护:TTL安全跳数。

TTL安全跳数,说白了就是检查BGP报文的TTL值。正常情况下,EBGP邻居之间只隔1跳,TTL值应该是1。如果收到TTL值大于1的报文,说明这个报文可能经过了其他设备,有问题!

你想想看,攻击者想伪造BGP报文,他得让报文经过多跳才能到达你的路由器。TTL值一检查,直接丢弃。这招对远程攻击特别有效。

3.2.1 配置示例

华为设备配置TTL安全跳数:

# 在BGP视图下配置TTL安全跳数
bgp 100
 peer 10.0.12.2 ttl-security hops 1

思科设备:

router bgp 100
 neighbor 10.0.12.2 ttl-security hops 1
💡 小技巧
如果EBGP邻居之间有中间设备(比如防火墙),TTL值可能不是1。这时候需要调整 hops 参数。我建议你先用 ping -t 测试一下实际跳数,再配置。

3.3 BGP GTSM:更灵活的TTL检查

GTSM(Generalized TTL Security Mechanism)是TTL安全跳数的升级版。它不要求TTL值必须等于1,而是检查TTL值是否在合理范围内。

说白了,GTSM更灵活。比如你的EBGP邻居隔了3跳,你可以设置 hops 3,这样TTL值在1到3之间的报文都能通过。攻击者想伪造?他得知道你的邻居到底隔了几跳,这信息可不是那么容易拿到的。

3.3.1 配置示例

华为设备配置GTSM:

# 在BGP视图下配置GTSM
bgp 100
 peer 10.0.12.2 gtsm hops 3

思科设备:

router bgp 100
 neighbor 10.0.12.2 ttl-security hops 3
🔑 关键点
GTSM和TTL安全跳数不能同时配置。选一个就行。我个人更推荐GTSM,因为它更灵活,能适应复杂的网络拓扑。

3.4 知识体系图

下面这张图帮你理清这三者的关系:

BGP安全基础配置知识体系 BGP安全基础配置 MD5认证 TTL安全跳数 BGP GTSM 报文签名验证 防止伪造邻居 限制TTL=1 防止远程攻击 灵活TTL范围 适应复杂拓扑 推荐组合:MD5认证 + GTSM

3.5 实战建议

说了这么多,到底怎么用?我给你几个建议:

  • IBGP邻居:MD5认证必配。IBGP邻居之间通常在同一AS内,TTL检查意义不大,但MD5认证能防止内部攻击。
  • EBGP邻居:MD5认证 + GTSM一起上。这是最安全的组合。我在一个跨国项目中就是这么配的,效果很好。
  • 多跳EBGP:必须用GTSM,并设置正确的跳数。别用TTL安全跳数,它只支持1跳。
💡 我的经验
有一次,客户反映BGP邻居频繁震荡。查了半天,发现是GTSM的hops参数设小了。实际路径有4跳,我只设了2。调整后问题解决。所以,配置前一定要搞清楚网络拓扑。

3.6 总结

MD5认证、TTL安全跳数、BGP GTSM,这三样东西是BGP安全的基础。配好了,能挡住大部分攻击。配不好,等于没配。

我个人习惯,新项目上线前,这三项配置是必检项。别等到出了问题再补,那时候就晚了。

好了,这一章就到这里。记住,安全配置不是越多越好,而是要恰到好处。下一章我们聊聊更高级的BGP安全策略,到时候见。


专注资料整理