成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

由Facebook事故引發(fā)的BGP工具探索

運維 系統(tǒng)運維
昨天,F(xiàn)acebook 發(fā)生了由 BGP 引起的離線事故。我對學(xué)習(xí)更多關(guān)于 BGP 的知識已經(jīng)隱約感興趣了很長時間,所以我閱讀了一些文章。這篇博文展示了一些你可以用來查詢 BGP 信息的工具。

[[427428]]

昨天,F(xiàn)acebook 發(fā)生了由 BGP 引起的離線事故。我對學(xué)習(xí)更多關(guān)于 BGP 的知識已經(jīng)隱約感興趣了很長時間,所以我閱讀了一些文章。

我感到很沮喪,因為沒有一篇文章告訴我如何在我的電腦上實際查找與 BGP 有關(guān)的信息,因此我 寫了一條詢問有關(guān)工具的推特

我一如既往地得到了一堆有用的回復(fù),所以這篇博文展示了一些你可以用來查詢 BGP 信息的工具。這篇文章中可能會有較多的錯誤,因為我對 BGP 不是很了解。

我不能發(fā)布 BGP 路由

我從來沒有了解過 BGP 的原因之一是,據(jù)我所知,我沒有在互聯(lián)網(wǎng)上發(fā)布 BGP 路由的權(quán)限。

對于大多數(shù)網(wǎng)絡(luò)協(xié)議,如果需要,你可以非常輕松地自己實現(xiàn)該協(xié)議。例如,你可以:

  • 發(fā)行你自己的 TLS 證書
  • 編寫你自己的 HTTP 服務(wù)器
  • 編寫你自己的 TCP 實現(xiàn)
  • 為你的域名編寫你自己的權(quán)威 DNS 服務(wù)器(我現(xiàn)在正在為一個小項目嘗試這樣做)
  • 建立你自己的證書機構(gòu)(CA)

但是對于 BGP,我認為除非你擁有自己的 ASN,否則你不能自己發(fā)布路由(你可以在你的家庭網(wǎng)絡(luò)上實現(xiàn) BGP,但這對我來說有點無聊,當我做實驗的時候,我希望它們真的在真正的互聯(lián)網(wǎng)上)。

無論如何,盡管我不能用它做實驗,但我仍然認為它超級有趣,因為我喜歡網(wǎng)絡(luò),所以我將向你展示我找到的一些用來學(xué)習(xí) BGP 的工具。

首先我們來談?wù)?BGP 的一些術(shù)語。我打算很快掠過,因為我對工具更感興趣,而且網(wǎng)上有很多關(guān)于 BGP 的高水平解釋(比如這篇 cloudflare 的文章)。

AS 是什么?

我們首先需要了解的是 AS(“自治系統(tǒng)autonomous system”)。每個 AS:

  1. 由一個組織擁有(通常是一個大型組織,如你的 ISP、政府、大學(xué)、Facebook 等)。
  2. 控制一組特定的 IP 地址(例如,我的 ISP 的 AS 包括 247,808 個 IP 地址)。
  3. 有一個編號 ASN(如 1403)。

下面是我通過做一些實驗對 AS 的一些觀察:

  • 一些相當大的科技公司并沒有自己的 AS。例如,我在 BGPView 上查看了 Patreon,就我所知,他們沒有自己的 AS,他們的主要網(wǎng)站(patreon.com104.16.6.49)在 Cloudflare 的 AS 中。
  • 一個 AS 可以包括許多國家的 IP。Facebook 的 AS(AS32934)肯定有新加坡、加拿大、尼日利亞、肯尼亞、美國和其他國家的 IP 地址。
  • 似乎 IP 地址可以在一個以上的 AS 中。例如,如果我查找 209.216.230.240,它有 2 個 ASN 與之相關(guān):AS6130 和 AS21581。顯然,當這種情況發(fā)生時,更具體的路線會被優(yōu)先考慮 —— 所以到該 IP 的數(shù)據(jù)包會被路由到 AS21581

什么是 BGP 路由?

互聯(lián)網(wǎng)上有很多的路由器。例如,我的 ISP 就有路由器。

當我給我的 ISP 發(fā)送一個數(shù)據(jù)包時(例如通過運行 ping 129.134.30.0),我的 ISP 的路由器需要弄清楚如何將我的數(shù)據(jù)包實際送到 IP 地址 129.134.30.0

路由器計算的方法是,它有一個路由表:這是個有一堆 IP 地址范圍的列表(比如 129.134.30.0/23),以及它知道的到達該子網(wǎng)的路由。

下面是一個 129.134.30.0/23 (Facebook 的一個子網(wǎng))的真實路由的例子。這不是來自我的 ISP。

  1. 11670 32934
  2. 206.108.35.2 from 206.108.35.254 (206.108.35.254)
  3. Origin IGP, metric 0, valid, external
  4. Community: 3856:55000
  5. Last update: Mon Oct 4 21:17:33 2021

我認為這是在說通往 129.134.30.0 的一條路徑是通過機器 206.108.35.2,這是在它的本地網(wǎng)絡(luò)上。所以路由器接下來可能會把我的 ping 包發(fā)送到 206.108.35.2,然后 206.108.35.2 會知道如何把它送到 Facebook。開頭的兩個數(shù)字(11670 32934)是 ASN。

BGP 是什么?

我對 BGP 的理解非常淺薄,它是一個公司用來公布 BGP 路由的協(xié)議。

昨天發(fā)生在 Facebook 身上的事情基本上是他們發(fā)布了一個 BGP 公告,撤銷了他們所有的 BGP 路由,所以世界上的每個路由器都刪除了所有與 Facebook 有關(guān)的路由,沒有流量可以到達那里。

好了,現(xiàn)在我們已經(jīng)涵蓋了一些基本的術(shù)語,讓我們來談?wù)勀憧梢杂脕聿榭?AS 和 BGP 的工具吧!

工具 1:用 BGPView 查看你的 ISP 的 AS

為了使 AS 這個東西不那么抽象,讓我們用一個叫做 BGPView的 工具來看看一個真實的 AS。

我的 ISP(EBOX)擁有 AS 1403。這是 我的 ISP 擁有的 IP 地址。如果我查找我的計算機的公共 IPv4 地址,我可以看到它是我的 ISP 擁有的IP地址之一:它在 104.163.128.0/17 塊中。

BGPView 也有這個圖,顯示了我的 ISP 與其他 AS 的連接情況。 

工具 2:traceroute -A 和 mtr -z

好了,我們感興趣的是 AS 。讓我們看看我從哪些 AS 中穿過。

traceroute 和 mtr 都有選項可以告訴你每個 IP 的 ASN。其選項分別是 traceroute -A 和 mtr -z

讓我們看看我用 mtr 在去 facebook.com 的路上經(jīng)過了哪些 AS!

  1. $ mtr -z facebook.com
  2. 1. AS??? LEDE.lan
  3. 2. AS1403 104-163-190-1.qc.cable.ebox.net
  4. 3. AS??? 10.170.192.58
  5. 4. AS1403 0.et-5-2-0.er1.mtl7.yul.ebox.ca
  6. 5. AS1403 0.ae17.er2.mtl3.yul.ebox.ca
  7. 6. AS1403 0.ae0.er1.151fw.yyz.ebox.ca
  8. 7. AS??? facebook-a.ip4.torontointernetxchange.net
  9. 8. AS32934 po103.psw01.yyz1.tfbnw.net
  10. 9. AS32934 157.240.38.75
  11. 10. AS32934 edge-star-mini-shv-01-yyz1.facebook.com

這很有意思,看起來我們直接從我的 ISP 的 AS(1403)到 Facebook 的 AS(32934),中間有一個“互聯(lián)網(wǎng)交換”。

我不確定 互聯(lián)網(wǎng)交換internet exchange(IX)是什么,但我知道它是互聯(lián)網(wǎng)的一個極其重要的部分。不過這將是以后的事了。我猜是,它是互聯(lián)網(wǎng)中實現(xiàn)“對等”的部分,就假設(shè)它是一個有巨大的交換機的機房,里面有無限的帶寬,一堆不同的公司把他們的電腦放在里面,這樣他們就可以互相發(fā)送數(shù)據(jù)包。

mtr 用 DNS 查找 ASN

我對 mtr 如何查找 ASN 感到好奇,所以我使用了 strace。我看到它看起來像是在使用 DNS,所以我運行了 dnspeep,然后就看到了!

  1. $ sudo dnspeep
  2. ...
  3. TXT 1.190.163.104.origin.asn.cymru.com 192.168.1.1 TXT: 1403 | 104.163.176.0/20 | CA | arin | 2014-08-14, TXT: 1403 | 104.163.160.0/19 | CA | arin | 2014-08-14, TXT: 1403 | 104.163.128.0/17 | CA | arin | 2014-08-14
  4. ...

所以,看起來我們可以通過查找 1.190.163.104.origin.asn.cymru.com 上的 txt 記錄找到 104.163.190.1 的 ASN,像這樣:

  1. $ dig txt 1.190.163.104.origin.asn.cymru.com
  2. 1.190.163.104.origin.asn.cymru.com. 13911 IN TXT "1403 | 104.163.160.0/19 | CA | arin | 2014-08-14"
  3. 1.190.163.104.origin.asn.cymru.com. 13911 IN TXT "1403 | 104.163.128.0/17 | CA | arin | 2014-08-14"
  4. 1.190.163.104.origin.asn.cymru.com. 13911 IN TXT "1403 | 104.163.176.0/20 | CA | arin | 2014-08-14"

這很好!讓我們繼續(xù)前進吧。

工具 3:數(shù)據(jù)包交換所的觀察鏡

PCH(“數(shù)據(jù)包交換所packet clearing house”)是運行大量互聯(lián)網(wǎng)交換點的組織。“觀察鏡looking glass”似乎是一個通用術(shù)語,指的是讓你從另一個人的計算機上運行網(wǎng)絡(luò)命令的 Web 表單。有一些觀察鏡不支持 BGP,但我只對那些能顯示 BGP 路由信息的觀察鏡感興趣。

這里是 PCH 的觀察鏡: https://www.pch.net/tools/looking_glass/ 。

在該網(wǎng)站的 Web 表單中,我選擇了多倫多 IX(“TORIX”),因為 mtr 說我是用它來訪問 facebook.com 的。

操作 1:顯示 ip bgp 摘要

下面是輸出結(jié)果。我修改了其中的一些內(nèi)容:

  1. IPv4 Unicast Summary:
  2. BGP router identifier 74.80.118.4, local AS number 3856 vrf-id 0
  3. BGP table version 33061919
  4. RIB entries 513241, using 90 MiB of memory
  5. Peers 147, using 3003 KiB of memory
  6. Peer groups 8, using 512 bytes of memory
  7.  
  8. Neighbor V AS MsgRcvd MsgSent TblVer InQ OutQ Up/Down State/PfxRcd
  9. ...
  10. 206.108.34.248 4 1403 484672 466938 0 0 0 05w3d03h 50
  11. ...
  12. 206.108.35.2 4 32934 482088 466714 0 0 0 01w6d07h 38
  13. 206.108.35.3 4 32934 482019 466475 0 0 0 01w0d06h 38
  14. ...
  15.  
  16. Total number of neighbors 147

我的理解是,多倫多 IX(“TORIX”)直接連接到我的 ISP (EBOX,AS 1403)和 Facebook(AS 32934)。

操作 2:顯示 ip bgp 129.134.30.0

這是篩選自 show ip bgp 對 129.134.30.0(Facebook 的一個 IP 地址)的輸出:

  1. BGP routing table entry for 129.134.30.0/23
  2. Paths: (4 available, best #4, table default)
  3. Advertised to non peer-group peers:
  4. 206.220.231.55
  5. 11670 32934
  6. 206.108.35.2 from 206.108.35.254 (206.108.35.254)
  7. Origin IGP, metric 0, valid, external
  8. Community: 3856:55000
  9. Last update: Mon Oct 4 21:17:33 2021
  10.  
  11. 11670 32934
  12. 206.108.35.2 from 206.108.35.253 (206.108.35.253)
  13. Origin IGP, metric 0, valid, external
  14. Community: 3856:55000
  15. Last update: Mon Oct 4 21:17:31 2021
  16.  
  17. 32934
  18. 206.108.35.3 from 206.108.35.3 (157.240.58.225)
  19. Origin IGP, metric 0, valid, external, multipath
  20. Community: 3856:55000
  21. Last update: Mon Oct 4 21:17:27 2021
  22.  
  23. 32934
  24. 206.108.35.2 from 206.108.35.2 (157.240.58.182)
  25. Origin IGP, metric 0, valid, external, multipath, best (Older Path)
  26. Community: 3856:55000
  27. Last update: Mon Oct 4 21:17:27 2021

這似乎是在說,從該 IX 到 Facebook 有 4 條路線。

魁北克 IX 似乎對 Facebook 一無所知

我也試過從魁北克 IX(“QIX”,它可能離我更近,因為我住在蒙特利爾而不是多倫多)做同樣的事情。但 QIX 似乎對 Facebook 一無所知:當我輸入129.134.30.0 時,它只是說 “% 網(wǎng)絡(luò)不在表中”。

所以我想這就是為什么我被送到多倫多 IX 而不是魁北克的 IX。

更多的 BGP 觀察鏡

這里還有一些帶觀察鏡的網(wǎng)站,可以從其他角度給你類似的信息。它們似乎都支持相同的 show ip bgp 語法,也許是因為他們運行的是同一個軟件?我不太確定。

似乎有很多這樣的觀察鏡服務(wù),遠不止這 3 個列表。

這里有一個與這個列表上的一個服務(wù)器進行會話的例子:route-views.routeviews.org。這次我是通過 telnet 連接的,而不是通過 Web 表單,但輸出的格式看起來是一樣的。

  1. $ telnet route-views.routeviews.org
  2.  
  3. route-views>show ip bgp 31.13.80.36
  4.  
  5. BGP routing table entry for 31.13.80.0/24, version 1053404087
  6. Paths: (23 available, best #2, table default)
  7. Not advertised to any peer
  8. Refresh Epoch 1
  9. 3267 1299 32934
  10. 194.85.40.15 from 194.85.40.15 (185.141.126.1)
  11. Origin IGP, metric 0, localpref 100, valid, external
  12. path 7FE0C3340190 RPKI State valid
  13. rx pathid: 0, tx pathid: 0
  14. Refresh Epoch 1
  15. 6939 32934
  16. 64.71.137.241 from 64.71.137.241 (216.218.252.164)
  17. Origin IGP, localpref 100, valid, external, best
  18. path 7FE135DB6500 RPKI State valid
  19. rx pathid: 0, tx pathid: 0x0
  20. Refresh Epoch 1
  21. 701 174 32934
  22. 137.39.3.55 from 137.39.3.55 (137.39.3.55)
  23. Origin IGP, localpref 100, valid, external
  24. path 7FE1604D3AF0 RPKI State valid
  25. rx pathid: 0, tx pathid: 0
  26. Refresh Epoch 1
  27. 20912 3257 1299 32934
  28. 212.66.96.126 from 212.66.96.126 (212.66.96.126)
  29. Origin IGP, localpref 100, valid, external
  30. Community: 3257:8095 3257:30622 3257:50001 3257:53900 3257:53904 20912:65004
  31. path 7FE1195AF140 RPKI State valid
  32. rx pathid: 0, tx pathid: 0
  33. Refresh Epoch 1
  34. 7660 2516 1299 32934
  35. 203.181.248.168 from 203.181.248.168 (203.181.248.168)
  36. Origin IGP, localpref 100, valid, external
  37. Community: 2516:1030 7660:9001
  38. path 7FE0D195E7D0 RPKI State valid
  39. rx pathid: 0, tx pathid: 0

這里有幾個路由的選擇:

  • 3267 1299 32934
  • 6939 32934
  • 701 174 32934
  • 20912 3257 1299 32934
  • 7660 2516 1299 32934

我想這些都有不止一個 AS 的原因是,31.13.80.36 是 Facebook 在多倫多的 IP 地址,所以這個服務(wù)器(可能在美國西海岸,我不確定)不能直接連接到它,它需要先到另一個 AS。所以所有的路由都有一個或多個 ASN。

最短的是 6939(“Hurricane Electric”),它是一個 “全球互聯(lián)網(wǎng)骨干”。他們也有自己的 Hurricane Electric 觀察鏡 頁面。

工具 4:BGPlay

到目前為止,所有其他的工具都只是向我們展示了 Facebook 路由的當前狀態(tài),其中一切正常,但這第四個工具讓我們看到了這個 Facebook BGP 互聯(lián)網(wǎng)災(zāi)難的歷史。這是一個 GUI 工具,所以我將包括一堆屏幕截圖。

該工具在 https://stat.ripe.net/special/bgplay。我輸入了 IP 地址 129.134.30.12(Facebook 的一個 IP),如果你想一起試試。

首先,讓我們看看一切出錯之前的狀態(tài)。我點擊了在 10 月 4 日 13:11:28 的時間線,得到了這個結(jié)果: 

我最初發(fā)現(xiàn)這很讓人不知所措。發(fā)生了什么事?但后來有人在推特上指出,下一個要看的地方是點擊 Facebook 災(zāi)難發(fā)生后的時間線(10 月 4 日 18 點 38 分)。 

很明顯,這張圖有問題:所有的 BGP 路線都不見了!哦,不要!

頂部的文字顯示了最后一條 Facebook BGP 路由的消失:

  1. Type: W > withdrawal Involving: 129.134.30.0/24
  2. Short description: The route 50869, 25091, 32934 has been withdrawn.
  3. Date and time: 2021-10-04 16:02:33 Collected by: 20-91.206.53.12

如果我再點擊“快進fast forward”按鈕,我們看到 BGP 路由開始回來了。 

第一個宣告的是 137409 32934。但我不認為這實際上是第一個宣布的,在同一秒內(nèi)有很多路由宣告(在 2021-10-04 21:00:40),我認為 BGPlay 內(nèi)部的排序是任意的。

如果我再次點擊“快進fast forward”按鈕,越來越多的路由開始回來,路由開始恢復(fù)正常。

我發(fā)現(xiàn)在 BGPlay 里看這個故障真的很有趣,盡管一開始界面很混亂。

也許了解一下 BGP 是很重要的?

我在這篇文章的開頭說,你不能改變 BGP 路由,但后來我想起在 2016 年或 2017 年,有一個 Telia 路由問題,給我們的工作造成了一些小的網(wǎng)絡(luò)問題。而當這種情況發(fā)生時,了解為什么你的客戶無法到達你的網(wǎng)站其實是很有用的,即使它完全不受你控制。當時我不知道這些工具,但我希望能知道!

我認為對于大多數(shù)公司來說,應(yīng)對由其他人的錯誤 BGP 路由造成的中斷,你所能做的就是“什么都不做,等待它得到修復(fù)”,但能夠_自信地_什么都不做是很好的。

一些發(fā)布 BGP 路由的方法

如果你想(作為一個業(yè)余愛好者)真正發(fā)布 BGP 路由,這里有一些評論中的鏈接:

  • 獲取你自己的 ASN 的指南
  • dn42 似乎有一個 BGP 的實驗場(它不在公共互聯(lián)網(wǎng)上,但確實有其他人在上面,這似乎比自己在家里做 BGP 實驗更有趣)

目前就這些了

我想還有很多 BGP 工具(比如 PCH 有一堆 路由數(shù)據(jù)的每日快照,看起來很有趣),但這篇文章已經(jīng)很長了,而且我今天還有其他事情要做。

我對我作為一個普通人可以得到這么多關(guān)于 BGP 的信息感到驚訝,我一直認為它是一個“秘密的網(wǎng)絡(luò)巫師”這樣的東西,但顯然有各種公共機器,任何人都可以直接 telnet 到它并用來查看路由表!沒想到! 

 

責任編輯:龐桂玉 來源: Linux中國
相關(guān)推薦

2020-04-09 15:26:55

間諜軟件NSOFacebook

2009-03-13 16:39:16

Linux開源改變

2020-05-07 11:00:24

Go亂碼框架

2015-02-04 14:36:07

格式串漏洞Ghost漏洞安全漏洞

2013-03-05 10:05:52

2012-08-31 17:09:31

FacebookHTML5W3C

2020-12-09 08:59:59

MongoDB復(fù)合索事故

2013-08-21 12:29:12

Facebook開源

2011-06-10 10:11:44

2022-11-07 19:08:28

transform屬性瀏覽器

2023-02-16 08:55:13

2009-03-12 15:25:50

firefox火狐

2009-09-07 15:56:16

2012-04-09 09:53:56

2024-08-20 21:27:04

docker部署容器

2013-08-02 14:27:28

2010-06-02 16:22:58

2010-05-14 00:19:43

2019-01-16 09:20:42

架構(gòu)設(shè)計JVM FullGC宕機事故

2015-08-21 14:25:27

點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 国产午夜精品久久久 | 天天干精品 | 免费中文字幕 | 成人精品视频在线观看 | 欧美日韩亚 | 久久9精品 | 久久性色 | 日韩成人免费视频 | 伊人免费视频二 | 2019天天干天天操 | 午夜成人免费视频 | 亚洲日本欧美 | 九色在线观看 | 自拍视频国产 | 久久精品青青大伊人av | 911精品国产 | 91大片| 黑人中文字幕一区二区三区 | 久久成人国产精品 | jlzzjlzz国产精品久久 | 国产专区视频 | 日韩av一区二区在线观看 | 一区在线播放 | 国产区第一页 | 亚洲综合在线视频 | 久久久久久免费毛片精品 | 久久成人激情 | 久久精品国产亚洲a | 国产成人精品亚洲日本在线观看 | 欧美日韩专区 | 男人午夜视频 | 国产精品污污视频 | 超碰欧美 | 中文字幕一区二区三区乱码图片 | 国产性色视频 | 婷婷色在线 | 日韩精品免费在线 | 国产精品久久久久久久久久久久午夜片 | 人成在线视频 | 国产精品不卡一区 | 视频一区在线观看 |