BGP 劫持是某个网络错误或恶意地向互联网宣告不属于自己的 IP 段,把本应流向其他网络的流量引到自己这里。2008 年巴基斯坦电信劫持 YouTube 的事件,让全球大量用户在一段时间内无法正常访问该网站。
第 30 期介绍过,边界网关协议(BGP)靠各个自治系统互相宣告自己拥有的 IP 段来建立路由。这套机制默认信任邻居的宣告,如果某个网络宣告了本不属于自己的 IP 段,其他网络就可能把流量导向它,这就是 BGP 劫持。劫持可能是配置失误,也可能是蓄意为之。
最著名的一次是 2008 年的 YouTube 事件。巴基斯坦政府要求国内网络封锁 YouTube,巴基斯坦电信在境内处理时,误把一条更具体的 YouTube 路由宣告给了全球互联网。由于 BGP 优先选择更具体的路由,大量原本流向 YouTube 的流量被引向巴基斯坦电信,导致全球多地用户在一段时间内无法访问 YouTube。这次事件由一次本应局限在国内的封锁操作引发,最终影响了全球。
针对 BGP 劫持的防护正在推进,主要是资源公钥基础设施(RPKI)。它让 IP 地址的持有者可以用数字签名声明自己授权的路由来源,网络据此验证收到的宣告是否合法,过滤掉未经授权的宣告。RPKI 的部署还在逐步覆盖,尚未完全普及。