什么是 BGP,为什么 Internet 依赖它?
已发表: 2022-01-29Facebook 于 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 是互联网的地址簿,可以将我们在浏览器中输入的简单 Web 名称转换为特定的服务器 IP 地址。 这些翻译查询由我们的权威名称服务器回答,这些服务器本身占用众所周知的 IP 地址,而这些名称服务器又通过称为边界网关协议 (BGP) 的另一种协议向互联网的其余部分发布。”
换句话说,互联网的域名系统 (DNS) 协议的功能类似于地址列表,而 BGP 是将邮件发送到这些房屋的邮政服务。 如果您有地址但没有前往房屋的路线,则无法投递邮件。
贾纳尔丹继续说:
“......如果 DNS 服务器本身无法与我们的数据中心通信,它们会禁用这些 BGP 广告,因为这表明网络连接不健康。 在最近的中断中,整个骨干网都停止运行,使得这些位置声明自己不健康并撤回那些 BGP 广告。 最终结果是我们的 DNS 服务器变得无法访问,即使它们仍在运行。 这使得互联网的其余部分无法找到我们的服务器。”
BGP 是如何扰乱互联网的
多种因素会影响您的数据通过互联网地图的路径。 成本可能是其中之一,因为一些提供商会收取访问其系统的费用。 互联网本身不断变化的性质是另一回事。
自治系统和网站可以完全从互联网地图中移动或删除。 他们还可以更改或添加服务提供商——例如大学将 ISP 从 Comcast 切换到 AT&T。 BGP 必须定期更新数据可以采用的路由,以确保它们保持最新状态,并且您的请求不会陷入死胡同,Wile E. Coyote 风格。
自治系统始终运行 BGP 更新而不会发生意外。 但是当他们出错时,他们可能会出错。 Clark 在他们的文章中解释说,由于 BGP 旨在快速从一个系统传播到另一个系统,因此错误可能会产生连锁反应,就像我们在 Facebook 看到的那样。
修复错误
根据 Cloudflare 的说法,土耳其 ISP TTNet 在 2004 年的一次糟糕的 BGP 更新暂时将 TTNet 宣传为互联网上所有流量的最佳目的地。 这导致一整天的连接问题,直到问题得到解决。
此类事件指出了 BGP 的某些弱点,即构成整个互联网的自治系统将隐含地信任 BGP 告诉它们的最佳数据路由。 虽然故障并不经常发生,但有些人认为需要让 BGP 更安全。 然而,这种规模的更新将需要互联网上的每个自治系统立即更新。 这意味着至少可以说,对协议进行重大更改将具有挑战性。
BGP 只是使互联网正常工作的几个元素之一。 了解其基础可以帮助您导航和了解未来的中断和其他问题。
相关:互联网如何运作?