|
凌晨两点,由泄露某省骨干网工程师老张的由泄露监控屏突然炸出一片红色告警。用户投诉视频会议卡成PPT,由泄露可机房内所有核心设备CPU占用率都不到30%。由泄露他查了半小时流量日志,由泄露才发现问题出在一台不起眼的由泄露接入层路由器上——那台设备不知何时学会了向全网广播一条通往某数据中心的路由,路径优先级还标得极高。由泄露所有跨省流量像被磁铁吸住一样涌向这条“捷径”,由泄露然后在那台低配设备前排队堵死。由泄露 这就是由泄露路由泄露。一个自治系统(AS)向外宣告了它本不该宣告的由泄露路由,或者宣告了不该被转发的由泄露更优路径。BGP协议没有内置“信任校验”,由泄露它默认邻居说的由泄露都是真话。于是由泄露,一条错误路由能在几分钟内传遍全球互联网,让数据包集体迷路。 最典型的泄露事故发生在2017年。一家欧洲小运营商的工程师配置BGP时手滑,把一条本应只发给内部的路由广播给了全球所有对等方。结果,美国国防部、谷歌、苹果的流量瞬间全部绕道俄罗斯和冰岛。那次事故持续了三个小时,期间全球互联网速度普遍下降30%。没人恶意攻击,纯粹是敲错了一个命令。 但更隐蔽的泄露是“有目的”的。有些小型ISP会故意宣告比自己实际拥有的更具体的IP段,试图截获流向其他网络的流量。这有点像在高速公路上偷换指示牌——你以为是去北京的导航,实际被导去了一个不知名收费站。2008年巴基斯坦封禁YouTube事件,就是国家层面故意宣告了YouTube的IP段,结果全球流量被“劫持”了整整两小时。他们本意只是屏蔽本国访问,却因为漏了过滤规则,把全世界都带沟里了。 防御手段听起来很硬核,实际却很原始。网络运营商们靠的是“前缀过滤列表”——手动维护一张表,写明“我只接受来自邻居的这些路由”。这就像小区保安拿着纸质名单核对访客,名单没更新,新邻居就进不来。更麻烦的是,BGP本身没有“过期”机制,一条错误路由如果不被主动撤销,就会永远存活在路由表里,直到某台设备重启或人工介入。 我见过最魔幻的案例是在某金融公司。他们内网用BGP做双链路冗余,结果运维小哥把生产网和办公网的路由策略写反了。白天正常,晚上批量跑数据时,办公网的打印流量顺着生产链路涌向灾备中心,硬生生把两地专线带宽占满,导致核心交易系统延迟飙到400毫秒。排查了两天,最后发现是配置模板里一个变量名拼写错误。 路由泄露的本质,是互联网对“信任”的过度依赖。BGP设计于1989年,那时候互联网节点不过几百个,大家都认识,谁也不会骗谁。现在呢?全球有超过7万个自治系统,每天有超过一百万条路由更新。你让一个三十年前基于信任的协议,去支撑一个充斥着商业博弈和人为失误的巨型网络——不出事才是奇迹。 所以,别指望BGP能自我修复。它连“撒谎”和“犯错”都分不清。真正的防线永远是人的纪律:定期审计路由策略,用RPKI(资源公钥基础设施)做加密签名验证,哪怕多花点性能开销。否则,下一次路由泄露可能就发生在你刷不出这篇文章的瞬间——而那台罪魁祸首路由器,可能正安静地躺在某个机房的角落里,闪着无辜的绿灯。 |