From 22a468289e84fd5a1a2f36fa143539613d9cc9a3 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 7 Oct 2021 09:38:33 +0800 Subject: [PATCH 1/2] PRF @wxy --- .../tech/20211005 Tools to explore BGP.md | 52 ++++++++++--------- 1 file changed, 27 insertions(+), 25 deletions(-) diff --git a/translated/tech/20211005 Tools to explore BGP.md b/translated/tech/20211005 Tools to explore BGP.md index 9dfb0a0be9..e8b888796c 100644 --- a/translated/tech/20211005 Tools to explore BGP.md +++ b/translated/tech/20211005 Tools to explore BGP.md @@ -3,13 +3,15 @@ [#]: author: "Julia Evans https://jvns.ca/" [#]: collector: "lujun9972" [#]: translator: "wxy" -[#]: reviewer: " " +[#]: reviewer: "wxy" [#]: publisher: " " [#]: url: " " 由 Facebook 事故引发的 BGP 工具探索 ====== +![](https://img.linux.net.cn/data/attachment/album/202110/07/093743krr8ftrpvgfrvffx.jpg) + 昨天,Facebook 发生了由 BGP 引起的离线事故。我对学习更多关于 BGP 的知识已经隐约感兴趣了很长时间,所以我阅读了一些文章。 我感到很沮丧,因为没有一篇文章告诉我如何在我的电脑上实际查找与 BGP 有关的信息,因此我 [写了一条询问有关工具的推特][1]。 @@ -25,12 +27,12 @@ * 发行你自己的 TLS 证书 * 编写你自己的 HTTP 服务器 * 编写你自己的 TCP 实现 - * 为你的域名编写你自己的权威 DNS 服务器(我现在正在为一个小项目尝试这样做)。 - *建立你自己的证书机构(CA) + * 为你的域名编写你自己的权威 DNS 服务器(我现在正在为一个小项目尝试这样做) + * 建立你自己的证书机构(CA) 但是对于 BGP,我认为除非你拥有自己的 ASN,否则你不能自己发布路由(你*可以*在你的家庭网络上实现 BGP,但这对我来说有点无聊,当我做实验的时候,我希望它们真的在真正的互联网上)。 -无论如何,尽管我不能用它做实验,但我仍然认为它超级有趣,因为我喜欢网络,所以我将向你展示我找到的一些工具来学习 BGP。 +无论如何,尽管我不能用它做实验,但我仍然认为它超级有趣,因为我喜欢网络,所以我将向你展示我找到的一些用来学习 BGP 的工具。 首先我们来谈谈 BGP 的一些术语。我打算很快掠过,因为我对工具更感兴趣,而且网上有很多关于 BGP 的高水平解释(比如这篇 [cloudflare 的文章][2])。 @@ -39,14 +41,14 @@ 我们首先需要了解的是 AS(“自治系统autonomous system”)。每个 AS: 1. 由一个组织拥有(通常是一个大型组织,如你的 ISP、政府、大学、Facebook 等)。 - 2.控制一组特定的 IP 地址(例如,我的 ISP 的 AS 包括 247,808 个 IP 地址)。 + 2. 控制一组特定的 IP 地址(例如,我的 ISP 的 AS 包括 247,808 个 IP 地址)。 3. 有一个编号 ASN(如 1403)。 下面是我通过做一些实验对 AS 的一些观察: - * 一些相当大的科技公司并没有自己的 AS。例如,我在 BGPView 上查看了 Patreon,就我所知,他们没有自己的 AS,他们的主要网站(patreon.com,[104.16.6.49][3])在 Cloudflare 的 AS 中。 + * 一些相当大的科技公司并没有自己的 AS。例如,我在 BGPView 上查看了 Patreon,就我所知,他们没有自己的 AS,他们的主要网站(`patreon.com`,[104.16.6.49][3])在 Cloudflare 的 AS 中。 * 一个 AS 可以包括许多国家的 IP。Facebook 的 AS([AS32934][4])肯定有新加坡、加拿大、尼日利亚、肯尼亚、美国和其他国家的 IP 地址。 - * 似乎 IP 地址可以在一个以上的 AS 中。例如,如果我查找[209.216.230.240][5],它有 2 个 ASN 与之相关:AS6130 和 AS21581。显然,当这种情况发生时,更具体的路线会被优先考虑--所以到该 IP 的数据包会被路由到 AS21581。 + * 似乎 IP 地址可以在一个以上的 AS 中。例如,如果我查找 [209.216.230.240][5],它有 2 个 ASN 与之相关:`AS6130` 和 `AS21581`。显然,当这种情况发生时,更具体的路线会被优先考虑 —— 所以到该 IP 的数据包会被路由到 `AS21581`。 ### 什么是 BGP 路由? @@ -54,9 +56,9 @@ 当我给我的 ISP 发送一个数据包时(例如通过运行 `ping 129.134.30.0`),我的 ISP 的路由器需要弄清楚如何将我的数据包实际送到 IP 地址 `129.134.30.0`。 -路由器计算的方法是,它有一个**路由表**:有一堆 IP 地址范围的列表(比如 `129.134.30.0/23`),以及它知道的到达该子网的路由。 +路由器计算的方法是,它有一个**路由表**:这是个有一堆 IP 地址范围的列表(比如 `129.134.30.0/23`),以及它知道的到达该子网的路由。 -下面是一个 `129.134.30.0/23` 的真实路由的例子(Facebook 的一个子网)。这不是来自我的 ISP。 +下面是一个 `129.134.30.0/23` (Facebook 的一个子网)的真实路由的例子。这不是来自我的 ISP。 ``` 11670 32934 @@ -70,7 +72,7 @@ ### BGP 是什么? -我对 BGP 的理解很不牢靠,但它是一个公司用来公布 BGP 路由的协议。 +我对 BGP 的理解非常浅薄,它是一个公司用来公布 BGP 路由的协议。 昨天发生在 Facebook 身上的事情基本上是他们发布了一个 BGP 公告,撤销了他们所有的 BGP 路由,所以世界上的每个路由器都删除了所有与 Facebook 有关的路由,没有流量可以到达那里。 @@ -80,7 +82,7 @@ 为了使 AS 这个东西不那么抽象,让我们用一个叫做 [BGPView][6]的 工具来看看一个真实的 AS。 -我的 ISP(EBOX)拥有 [AS 1403][7]。下面是 [我的 ISP 拥有的 IP 地址][8]。如果我查找我的计算机的公共 IPv4 地址,我可以看到它是我的 ISP 拥有的IP地址之一:它在 `104.163.128.0/17` 块中。 +我的 ISP(EBOX)拥有 [AS 1403][7]。这是 [我的 ISP 拥有的 IP 地址][8]。如果我查找我的计算机的公共 IPv4 地址,我可以看到它是我的 ISP 拥有的IP地址之一:它在 `104.163.128.0/17` 块中。 BGPView 也有这个图,显示了我的 ISP 与其他 AS 的连接情况。 @@ -92,7 +94,7 @@ BGPView 也有这个图,显示了我的 ISP 与其他 AS 的连接情况。 `traceroute` 和 `mtr` 都有选项可以告诉你每个 IP 的 ASN。其选项分别是 `traceroute -A` 和 `mtr -z`。 -让我们看看我用 `mtr` 在去 facebook.com 的路上经过了哪些自治系统! +让我们看看我用 `mtr` 在去 `facebook.com` 的路上经过了哪些 AS! ``` $ mtr -z facebook.com @@ -108,11 +110,11 @@ $ mtr -z facebook.com 10. AS32934 edge-star-mini-shv-01-yyz1.facebook.com ``` -这很有意思,看起来我们直接从我的 ISP 的 AS(1403)到 Facebook 的 AS(32934),中间有一个“互联网交换”。 +这很有意思,看起来我们直接从我的 ISP 的 AS(`1403`)到 Facebook 的 AS(`32934`),中间有一个“互联网交换”。 -我不确定 [互联网交换][10]internet exchange(IX)是什么,但我知道它是互联网的一个极其重要的部分。不过这将是以后的事了。我最好的猜测是,它是互联网中实现“对等”的部分,就假设它是一个有巨大的交换机的机房,里面有无限的带宽,一堆不同的公司把他们的电脑放在里面,这样他们就可以互相发送数据包。 +> 我不确定 [互联网交换][10]internet exchange(IX)是什么,但我知道它是互联网的一个极其重要的部分。不过这将是以后的事了。我猜是,它是互联网中实现“对等”的部分,就假设它是一个有巨大的交换机的机房,里面有无限的带宽,一堆不同的公司把他们的电脑放在里面,这样他们就可以互相发送数据包。 -### mtr 用 DNS 查找 ASN +#### mtr 用 DNS 查找 ASN 我对 `mtr` 如何查找 ASN 感到好奇,所以我使用了 `strace`。我看到它看起来像是在使用 DNS,所以我运行了 [dnspeep][11],然后就看到了! @@ -140,7 +142,7 @@ PCH(“数据包交换所packet clearing house”)是 这里是 PCH 的观察镜: 。 -在该网站的 Web 表单中,我选择了多伦多 IX(“TORIX”),因为 `mtr` 说我是用它来访问 facebook.com 的。 +在该网站的 Web 表单中,我选择了多伦多 IX(“TORIX”),因为 `mtr` 说我是用它来访问 `facebook.com` 的。 #### 操作 1:显示 ip bgp 摘要 @@ -169,7 +171,7 @@ Total number of neighbors 147 #### 操作 2:显示 ip bgp 129.134.30.0 -这是挑选自 `show ip bgp` 对 `129.134.30.0`(Facebook 的一个 IP 地址)的输出: +这是筛选自 `show ip bgp` 对 `129.134.30.0`(Facebook 的一个 IP 地址)的输出: ``` BGP routing table entry for 129.134.30.0/23 @@ -217,9 +219,9 @@ Paths: (4 available, best #4, table default) * * -似乎有很多这样的观察镜服务,远不止这 3 个列表: +似乎有很多这样的观察镜服务,远不止这 3 个列表。 -这里有一个与这个列表上的一个服务器进行会话的例子:route-views.routeviews.org。这次我是通过 telnet 连接的,而不是通过 Web 表单,但输出的格式看起来是一样的。 +这里有一个与这个列表上的一个服务器进行会话的例子:`route-views.routeviews.org`。这次我是通过 telnet 连接的,而不是通过 Web 表单,但输出的格式看起来是一样的。 ``` $ telnet route-views.routeviews.org @@ -271,15 +273,15 @@ Paths: (23 available, best #2, table default) * `20912 3257 1299 32934` * `7660 2516 1299 32934` -我想这些都有不止一个 AS 的原因是,`31.13.80.36` 是 Facebook 在多伦多的 IP 地址,所以这个服务器(可能在美国西海岸,我不确定)不能直接连接到它,它需要先到另一个 AS。所以所有的路由都有一个或多个 ASN +我想这些都有不止一个 AS 的原因是,`31.13.80.36` 是 Facebook 在多伦多的 IP 地址,所以这个服务器(可能在美国西海岸,我不确定)不能直接连接到它,它需要先到另一个 AS。所以所有的路由都有一个或多个 ASN。 -最短的是 6939(“Hurricane Electric”),它是一个 “全球互联网骨干”。他们也有自己的 [Hurricane Electric 观察镜][12] 页面。 +最短的是 `6939`(“Hurricane Electric”),它是一个 “全球互联网骨干”。他们也有自己的 [Hurricane Electric 观察镜][12] 页面。 ### 工具 4:BGPlay -到目前为止,所有其他的工具都只是向我们展示了 Facebook 路由的当前状态,其中一切正常,但这第四个工具让我们看到了这个 Facebook BGP 互联网灾难的历史 这是一个 GUI 工具,所以我将包括一堆屏幕截图。 +到目前为止,所有其他的工具都只是向我们展示了 Facebook 路由的当前状态,其中一切正常,但这第四个工具让我们看到了这个 Facebook BGP 互联网灾难的历史。这是一个 GUI 工具,所以我将包括一堆屏幕截图。 -该工具在 。我输入了 IP 地址 129.134.30.12(Facebook 的一个 IP),如果你想一起试试。 +该工具在 。我输入了 IP 地址 `129.134.30.12`(Facebook 的一个 IP),如果你想一起试试。 首先,让我们看看一切出错之前的状态。我点击了在 10 月 4 日 13:11:28 的时间线,得到了这个结果: @@ -320,7 +322,7 @@ Date and time: 2021-10-04 16:02:33 Collected by: 20-91.206.53.12 如果你想(作为一个业余爱好者)真正发布 BGP 路由,这里有一些评论中的链接: * [获取你自己的 ASN 的指南][17] - * [dn42][18] 似乎有一个 BGP 的实验场(它不在公共互联网上,但确实有其他人在上面,这似乎比自己在家里做 BGP 实验更有趣 + * [dn42][18] 似乎有一个 BGP 的实验场(它不在公共互联网上,但确实有其他人在上面,这似乎比自己在家里做 BGP 实验更有趣) ### 目前就这些了 @@ -335,7 +337,7 @@ via: https://jvns.ca/blog/2021/10/05/tools-to-look-at-bgp-routes/ 作者:[Julia Evans][a] 选题:[lujun9972][b] 译者:[wxy](https://github.com/wxy) -校对:[校对者ID](https://github.com/校对者ID) +校对:[wxy](https://github.com/wxy) 本文由 [LCTT](https://github.com/LCTT/TranslateProject) 原创编译,[Linux中国](https://linux.cn/) 荣誉推出 From 82237a7445036e105f315f698c10ee39b4886006 Mon Sep 17 00:00:00 2001 From: Xingyu Wang Date: Thu, 7 Oct 2021 09:39:11 +0800 Subject: [PATCH 2/2] PUB @wxy https://linux.cn/article-13857-1.html --- .../tech => published}/20211005 Tools to explore BGP.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) rename {translated/tech => published}/20211005 Tools to explore BGP.md (99%) diff --git a/translated/tech/20211005 Tools to explore BGP.md b/published/20211005 Tools to explore BGP.md similarity index 99% rename from translated/tech/20211005 Tools to explore BGP.md rename to published/20211005 Tools to explore BGP.md index e8b888796c..5b9e728692 100644 --- a/translated/tech/20211005 Tools to explore BGP.md +++ b/published/20211005 Tools to explore BGP.md @@ -4,8 +4,8 @@ [#]: collector: "lujun9972" [#]: translator: "wxy" [#]: reviewer: "wxy" -[#]: publisher: " " -[#]: url: " " +[#]: publisher: "wxy" +[#]: url: "https://linux.cn/article-13857-1.html" 由 Facebook 事故引发的 BGP 工具探索 ======