我从 Facebook 宕机事故中所学到的

Facebook 宕机接近 7 个小时,旗下所有的服务都不能用,网上很多文章报道,其实我关注的是在这次事故中,我学到了些什么,cloudflare 这家公司最早对这件事情,从外部视角进行了分析 Understanding How Facebook Disappeared from the Internet,以下是我在这次事情帮所学到的。

网络被四家公司垄断

网络越来越中心化,四家公司基本上垄断互联网的连接(海底光纤),下面是全球网络的连接图,黄色的是四家公司的连接,这四家公司分别是 GFMA(Google、Facebook、Microsoft、Amazon)。

20

https://www.nytimes.com/interactive/2019/03/10/technology/internet-cables-oceans.html

20
20

自治系统(AS)

Internet 是由不同网络组成的网络*,自治系统是组成 Internet 的大型网络。更具体地说,自治系统(AS)是具有统一路由策略的巨型网络或网络群组。连接到 Internet 的每台计算机或设备都连接到一个 AS。

20

详细介绍自治系统可以参考what-is-an-autonomous-system

BGP 路由

在我以前的认知里面,只知道 DNS,通过 DNS 解析,可以把域名解析到 IP 地址,然后通过 IP 路由,就可以找到相应的服务,但是通过这次事故,发现如果仅仅知道 DNS,那还是不够的,以下是 cloudflare 对于这个的解释

为什么需要 BGP 路由?IP 不用于路由吗?

IP(Internet 协议)确实用于路由,因为它指定每个数据包将到达的目的地。BGP 负责将数据包以最快的路由定向到目的地。如果没有 BGP,IP 数据包将在 Internet 上从 AS 到 AS 随机反弹,类似于驾驶员试图通过猜测走哪条路来到达目的地。

20
上图说明了 BGP 的简化版本。在这个版本中,互联网上只有 6 个自治系统。如果 AS1 需要将数据包路由到 AS3,它有两种不同的选择:

AS2 → AS3
AS6 → AS5 → AS4 → AS3

有了 BGP 路由的存在,可以高效的选择 AS2->AS3,不然他会有各咱路径,很难找到一条最优的路径。

关于 BGP 的更多参考 https://www.cloudflare.com/zh-cn/learning/security/glossary/what-is-bgp/

BGP 相关工具

1. BGPVIEW

通过这个bgpview.io 可以查看 bgp 的连接图,下图是我查询我的博客所属的 AS,得到如下的BGP 连接图。

20

2. mtr -z 或者 traceroute -A 查询

通过mtr -z 这个查询到我的博客所经过的 AS
20

查询从我家到 github

20

3. PCH

https://www.pch.net/tools/looking_glass/

4.BGPlay

BGPlay

20

5. 更多的网站

20

发表评论