Facebook 于 2021 年 10 月 4 日长达 6 小时的中断,让人们争先恐后地想知道发生了什么。部分答案在于称为边界网关协议或 BGP 的互联网的一个组成部分。
BGP到底是什么?
最近的文章中使用了几个非常贴切的比喻来解释 BGP。人们将它比作一切事物,从空中交通管制员到不断发展的互联网地图。它甚至被称为“互联网的胶带”。他们都没事。
BGP 是一种协议,它告诉数据请求到达服务器所需的路径。例如,如果您登录 Facebook 或打开应用程序以提取您的提要,BGP 将引导您的数据包沿着最快的路线为您从 Facebook 的服务器检索该数据。
Cloudflare 将 BGP 描述为“互联网的邮政服务”,因为它会为您的请求选择最快、最有效的路由到达目标服务器。BGP 会查看您的数据可以采用的所有可用路由,然后选择它认为最好的路由。
通常,这意味着通过构成整个互联网的自治系统路由您的数据。BGP 确定哪些系统相互通信,然后沿着它们之间的最快路径发送您的数据,以便它可以到达正确的目的地。
继续邮局的比喻,互联网上的每个自治系统就像邮局的一个分支。即使您所在的城市可能有数千个邮箱,但每封邮件仍需经过邮局才能送达。
互联网上自治系统的例子包括:
- 互联网服务提供商 (ISP),如 Comcast、AT&T、Verizon 等。
- 像 Facebook 这样的公司
- 其他大型组织,如政府或大学
为The Verge撰稿的 Mitchell Clark将 BGP 比作不断更新的地图 ,将自治系统比作地图上的岛屿。由于互联网上有太多“孤岛”,无法在每个孤岛之间建立桥梁,BGP 会告诉您这些桥梁已经在哪里。
实际上有两种类型的 BGP:
- 外部 BGP (eBGP):整个互联网使用的协议。在我们的邮局比喻中,这类似于国际运输。
- 内部 BGP (iBGP):自治系统可以选择用于在其自己的网络中路由数据的内部 BGP 协议。这类似于不同国家的邮件服务。
没有必要设置 iBGP 来访问更广泛的互联网 eBGP,但一些自治系统,如大型科技公司,无论如何都使用 iBGP 来路由内部流量。
BGP 和 DNS 如何协同工作?
BGP 使互联网上的数据路由成为可能,这使它成为将互联网连接在一起的胶水或胶带。BGP 工作的部分方式是它为数据通告可行的路由。如果 BGP 停止工作,这些路由将无法找到并从 Internet 上消失,因此数据无处可去。
这就是 Facebook 发生的事情的一部分。Facebook 的基础设施副总裁 Santosh Janardhan 在他的博客文章中这样解释了中断的机制:
“我们较小的设施执行的一项工作是响应 DNS 查询。DNS 是互联网的地址簿,可以将我们在浏览器中输入的简单网络名称转换为特定的服务器 IP 地址。这些翻译查询由我们的权威名称服务器回答,这些服务器本身占用众所周知的 IP 地址,这些服务器又通过另一种称为边界网关协议 (BGP) 的协议向互联网的其余部分通告。”
换句话说,互联网的域名系统(DNS) 协议的功能类似于地址列表,而 BGP 是将邮件发送到这些房屋的邮政服务。如果您有地址但没有到家的路线,则无法递送邮件。
贾纳丹继续说:
“……如果 DNS 服务器本身无法与我们的数据中心通话,它们就会禁用这些 BGP 广告,因为这表明网络连接不健康。在最近的中断中,整个主干网都停止运行,使这些位置宣布自己不健康并撤回那些 BGP 广告。最终结果是我们的 DNS 服务器无法访问,即使它们仍在运行。这使得互联网的其他部分无法找到我们的服务器。”
BGP 如何搞乱互联网
多种因素会影响您的数据通过 Internet 地图的路径。成本可以是一,因为一些提供商对访问他们的系统收费。互联网本身不断变化的性质是另一回事。
自治系统和网站可以从互联网地图中移动或完全删除。他们还可以更改或添加服务提供商——一个例子可能是一所大学将 ISP 从 Comcast 切换到 AT&T。BGP 必须定期更新数据可以采用的路由,以确保它们保持最新状态,并且您的请求不会陷入死胡同,Wile E. Coyote 风格。
自治系统始终无故障地运行 BGP 更新。但是当他们出错时,他们可能会出错。在他们的文章中,克拉克解释说,由于 BGP 旨在快速从系统传播到系统,因此错误可能会产生连锁反应,就像我们在 Facebook 看到的那样。
修复错误
根据Cloudflare 的说法,土耳其 ISP TTNet 在 2004 年的一次糟糕的 BGP 更新暂时将 TTNet 宣传为互联网上所有流量的最佳目的地。这导致一整天的连接问题,直到问题得到解决。
像这样的事件指出了 BGP 的某些弱点,即构成整个互联网的自治系统将隐式信任 BGP 告诉他们的最佳数据路由。虽然故障并不经常发生,但有些人认为需要使 BGP 更安全。然而,这种规模的更新需要互联网上的每个自治系统同时更新。至少可以说,这意味着对协议进行重大更改将具有挑战性。
BGP 只是使互联网工作的几个要素之一。了解其基础可以帮助您导航和了解未来的中断和其他问题。
原创文章,作者:校长,如若转载,请注明出处:https://www.yundongfang.com/Yun74329.html