BGP路由外泄造成全球网络不稳,Cloudflare、脸书、Amazon都遭殃

昨天也许有些人无法连至特定的网站、脸书或Amazon,这是因为在世界协调时间(UTC)6月24日上午10点半(约下午6点半)时,所有通过Verizon自治系统AS701转运的流量都先被跳转至美国宾州的一家小ISP,造成流量拥塞甚至是消失,波及Cloudflare全球约15%的流量,造成Cloudflare许多网站客户的流量中断,也影响脸书及Amazon流量。

全球网络是由不同的自治系统(Autonomous System)所组成,它们之间利用边界网关协议(Border Gateway Protocol,BGP)来互连,BGP负责打造网络地图,规划最快的路径,但有时会因配置错误而产生BGP路由外泄,例如一个AS将违反政策或范围的BGP路由信息传播给其它的AS,不管是这次或是日前欧洲流量被跳转至中国电信的事件,都是因BGP路由外泄而造成的意外。

Cloudflare的网络工程师Tom Strickx说明,此次路由外泄的始作俑者为美国宾州的一家小型ISP企业DQE Communications,该公司在自家的AS33154自治系统上使用了BGP优化工具,该工具能提供更具体的路由,例如导航到白金汉宫比导航到伦敦更为具体。

DQE把这些路由发送给客户Allegheny Technologies的自治系统AS396531,AS396531再把路由发送到身为网络转运供应商的Verizon(AS701),Verizon理应要能阻挡该路由外泄,反之Verizon却接受了这些路由,也让经由AS701的流量都采用了DQE所提供的“更具体”的路由,才造成了网络大塞车。

Strickx说,此次的意外虽是因BGP路由外泄而造成,但带来具体路线的BGP优化则让整个情况更加恶化。

此外,Strickx还指责Verizon未作好基本的防护机制,因为有许多方式可以避免这类的BGP路由外泄,包括在一个BGP期间限制所接收的前缀数量,假设前缀数量超过阈值便可关闭该期间;或者是导入基于网络路由注册(Internet Routing Registry,IRR)的过滤机制,以阻止其它网络接受这些出错的具体路线,但Verizon一项都没做,明显过于草率与怠惰。

至于Cloudflare则推荐各界采用资源公钥基础设施(Resource Public Key Infrastructure,RPKI)框架,该框架可过滤来源网络与前缀数量,同时建议拒绝那些太过具体的路由,假设Verizon采用了RPKI,此事也不会发生。

在上次欧洲流量被跳转至中国电信的事件中,甲骨文安全分析师Doug Madory曾经批评中国电信并未采取路由保障措施,不但广为传播外泄的路由,也未能在事件发生时即时侦测与修复,导致错误存在超过2小时,不过,这次Verizon不但重蹈复辙,还让意外延续超过8个小时。