溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

ISP路由表分發(fā)中的AS與BGP

發(fā)布時間:2020-06-05 18:59:50 來源:網(wǎng)絡(luò) 閱讀:1589 作者:聽云博客 欄目:網(wǎng)絡(luò)安全

原文出自【聽云技術(shù)博客】:http://blog.tingyun.com/web/article/detail/1348

摘要

本文面向,初級網(wǎng)絡(luò)工程師,數(shù)據(jù)挖掘工程師,涉及EGP(外部網(wǎng)關(guān)協(xié)議; Exterior Gateway Protocol),IGP(內(nèi)部網(wǎng)關(guān)協(xié)議; Interior Gateway Protocol)兩類協(xié)議,AS(自治系統(tǒng);Autonomous System)構(gòu)成,whois內(nèi)容解析及部分RPSL(路由策略規(guī)范語言;Routing Policy Specification Language)語法,了解所謂的運營商庫中的ISP到底是個什么鬼。資深運維玩家速速退散~_~

文中引用數(shù)據(jù)更新日期截止2016/12/10, 引用的部分鏈接來自wiki,需要**。

防混淆聲明

再開始之前,由于不同書籍的出版時間及可信度的不同,在正文之前,對可能存在的錯誤定義進行更正及統(tǒng)一,本文所講到的EGP及IGP指兩類協(xié)議,并非某一個具體的算法。最早的[RFC 827]定義了一個叫EGP的協(xié)議,而此后相繼使用了BGP(邊界網(wǎng)關(guān)協(xié)議; Border Gateway Protocol),BGP4來替換該算法,現(xiàn)以擴展到可支持ipv6的BGP4+,在類別中,這3個算法均屬于EGP這一類協(xié)議。另外,由于在新的RFC文檔中,采用了Router一詞,因此,有部分書籍將這兩類協(xié)議翻譯為ERP(外部路由協(xié)議; Exterior Router Protocol)和IRP(內(nèi)部路由協(xié)議; Interior Router Protocol),實際上,他們所指的其實是同一個意思。另外所有通過了中級資格證考試的讀者可以跳到第三節(jié)以節(jié)省閱讀時間。

從IGP開始聊

具體的算法不講,本文重點不在這,只講思想。

這類協(xié)議有很多種,例如RIP,IGRP,OSPF,IS-IS,EIGRP,這里就不一一翻譯了,過度強調(diào)中文其實沒什么意義,他們的區(qū)別主要還是在算法實現(xiàn)上不同,以及協(xié)議的鏈路距離指標不同,即鏈路距離產(chǎn)生的代價。最簡單的RIP,路由器間兩兩互相通信,每個路由器并不了解這整個網(wǎng)絡(luò)的拓撲,它們只向其他相鄰的路由器報告自己的可達距離,超過并包括16及表示不可達(有些書籍從0開始定義可達距離,用來表示不需要經(jīng)過路由器的內(nèi)網(wǎng)距離),并互相更新。

而OSPF和IS-IS是按鏈路狀態(tài)來轉(zhuǎn)發(fā)路由的,簡而言之就是,用這倆協(xié)議的路由器存儲著整個內(nèi)部網(wǎng)絡(luò)的路由拓撲,而RIP只知道一部分。OSPF相對于RIP的另外一個優(yōu)點就是設(shè)置了路由傳播代價,沒錯,就是在拓撲線上加點數(shù)字表示這條路好不好走,算一下開銷再選擇。

到了BGP

基本上還是和IGP同樣的思想,怎么轉(zhuǎn)之類的都差不多,搞個路由表啊之類的,但是為什么又單獨搞了個協(xié)議呢,因為場景。這里涉及到一個自治系統(tǒng)的概念,大致意思就是,我自己內(nèi)部的電腦能互相通信,即使不和外部通信,我也能玩聯(lián)機游戲,大不了不上網(wǎng)。但是想接入互聯(lián)網(wǎng)的話就的跟其他網(wǎng)絡(luò)做一下通告,我是誰,我這個網(wǎng)有誰才能正確的向其他AS轉(zhuǎn)發(fā)報文。這個時候就需要一個×××來表示自己的身份,就是ASN(Autonomous System Number),想要這個號碼,就得掏錢買,IP也是。跟誰買呢?國際上的五大組織已經(jīng)承包了這些東西。插入一張圖來說明一切。

ISP路由表分發(fā)中的AS與BGP

NIC表示Network Information Center(網(wǎng)絡(luò)信息中心)前面的字母分別是非洲,亞太,拉丁美+加勒比地區(qū)

美帝和歐洲的名字很奇怪啊,特意查了整理如下

ISP路由表分發(fā)中的AS與BGP

劃分方法大概是照著這個來的吧(美帝戰(zhàn)區(qū)圖,咳咳,其實沒啥關(guān)系)

ISP路由表分發(fā)中的AS與BGP

在國家也可以向國家的分配機構(gòu)申請(買)了,CNNIC,并且要求一個月內(nèi)使用其申請的AS號與一家ISP互設(shè)BGP協(xié)議,3-6個月內(nèi)與兩家以上(包括兩家)的ISP互設(shè)BGP協(xié)議[1]。因此我們就可以理解為什么百度(AS38365),網(wǎng)易(AS45062),均在各個ISP庫的列表里出現(xiàn)了。

好的,說回為什么場景不同,目前來講,全球互聯(lián)的(存在BGP服務(wù)器通報的)骨干網(wǎng)IP前綴路由表共有72739條,通過鏈路狀態(tài)協(xié)議同步路由表,時間略長也不合適。除了技術(shù)上的原因,這里面涉及很多復(fù)雜的政治問題和安全問題,比如在中國內(nèi)部流通的流量就沒有必要從外面跑。因此在AS的邊界路由器上會設(shè)置很多規(guī)則,比如,允許來自AS1的網(wǎng)絡(luò)包進入本網(wǎng)絡(luò)不允許AS2的進入,或者允許來自AS1的4.0.0.0/8進入本網(wǎng)絡(luò),或者讓購買了本網(wǎng)絡(luò)帶寬的其他AS優(yōu)先進入,這里的設(shè)置語法后面講。

最終的BGP需要找到一條能通的路由,而不是一條可以最短的。因此BGP采用的是路徑向量選擇協(xié)議(這里指類別,區(qū)別于RIP的距離向量協(xié)議和OSPF的鏈路狀態(tài)協(xié)議)。

AS

關(guān)于定義和概念我們講了這么多,還是直觀點的好,我們來看一下中國聯(lián)通骨干網(wǎng)(AS4837)它在全國范圍內(nèi)的ip地理位置分布(注意,這里的骨干網(wǎng)并非全球骨干網(wǎng),即該AS并非一個根節(jié)點,在它之上還有其他AS作為他的提供商)

ISP路由表分發(fā)中的AS與BGP

我們再來看神舟長城(AS9389)的ip地理位置分布, 神舟長城又是從中國聯(lián)通購買服務(wù)(可能有些優(yōu)化吧,具體的處理邏輯只能從策略上看了)。

ISP路由表分發(fā)中的AS與BGP

跟蹤一次AS轉(zhuǎn)播,以www.google.com為例,在tracerouter得到的路由追蹤信息中我們可以看到

ISP路由表分發(fā)中的AS與BGP

每一個ip所在的CIDR為

ISP路由表分發(fā)中的AS與BGP

一段請求,經(jīng)過源AS中的路由,到達自治系統(tǒng)的邊界路由器,被轉(zhuǎn)發(fā)到了AS8100,又從AS8100的一個邊界被路由到了另外一個邊界路由,最終進入AS15169的內(nèi)部域。注意,此處的Provider并不一定是專門的運營商Internet Service Provider,有些公司為了處理多個ISP入口的流量,申請了ASN。如果在流量邏輯上和上級ISP沒有太多的出入,就沒有必要申請一個ASN,就算使用了BGP協(xié)議,起源域也可以使用一個私有ASN如同私有IP一樣進行連接,在IANA的規(guī)定中將[64512-65534][4200000000-4294967294]保留為私有ASN用于上述情況,其他保留ASN請訪問官方網(wǎng)站。

那所有IP都有對應(yīng)的ASN嘛?不是,因為不是所有的IP都選擇接入互聯(lián)網(wǎng),如果我接入了那我就一定有ASN嘛?是的。在一個局域網(wǎng)玩游戲,自己設(shè)置IP,怎么設(shè)置都行,讓大家能通信就好,但是如果你要和其他局域網(wǎng)玩,兩個局域網(wǎng)的管理員就得互相商量一下,怎么設(shè)置IP,怎么通信,以此來更改路由器設(shè)置。如果想和全世界玩,就得服從人家的協(xié)議了。

在某些基于多協(xié)議標簽交換中為了實現(xiàn)×××之間的交流,同樣也可以為×××單獨申請一個ASN,以區(qū)分彼此并進行路由[2]。

Whois信息

對于ASN的whois信息可能各個數(shù)據(jù)庫的存儲格式都有所不同,以RIPE的數(shù)據(jù)庫為例子。下面是由RPSL語言所寫的中國網(wǎng)通AS的信息

ISP路由表分發(fā)中的AS與BGP

ISP路由表分發(fā)中的AS與BGP

ISP路由表分發(fā)中的AS與BGP

其中import就是AS的路由表導(dǎo)入規(guī)則

Import語法如下

import: from <peering-1> [action <action-1>]
            . . .
            from <peering-N> [action <action-N>]
            accept <filter>

意思就是說,從所有的from后米娜的peering導(dǎo)入符合filter規(guī)則的路由表,以上的import信息表示,接受所有來自AS701,A S11919, AS6453, AS9225, AS4134, AS4538, AS4789, AS9800, AS4799的路由表,并分別設(shè)置了100,120的優(yōu)先級。

更細粒度的語法

import: from AS2
         action pref = 10;
         accept { 128.9.0.0/16 }

則表示,接受來自AS2的路由128.9.0.0/16

而export的語法類似

export: to <peering-1> [action <action-1>]
            . . .
            to <peering-N> [action <action-N>]
            announce <filter>

向所有符合filter的peer轉(zhuǎn)發(fā)路由上面的例子之一則表示向AS4134轉(zhuǎn)發(fā)AS9929,AS9812,AS9810,AS9813,AS9816,AS9819,AS17432,AS7639的路由。

對于其他路由協(xié)議,多協(xié)議路由協(xié)議,和協(xié)議間的反射路由的完整import和export語法如下:

import:[protocol <protocol-1>] [into <protocol-2>]
            from <peering-1> [action <action-1>]
            . . .
            from <peering-N> [action <action-N>]
            accept <filter>
  export:[protocol <protocol-1>] [into <protocol-2>]
            to <peering-1> [action <action-1>]
            . . .
            to <peering-N> [action <action-N>]
            announce <filter>

詳細的解釋請翻閱RFC[2622]文檔.

BGP劫持

因為協(xié)議的特殊性,在計算路由路線時,通常在會合路由表中的所有ip前綴進行匹配,如果滿足變長掩碼的需求,就會把通過該路由將數(shù)據(jù)轉(zhuǎn)發(fā),如果存在相同的IP前綴,則找到一個ip塊更小的路由,既掩碼最長的那一個。***者通常會***邊界路由器,使將錯誤的或者未經(jīng)使用的ip前綴散發(fā)出去,將錯誤的路由信息廣播至上級和其他對等體的路由表中,從而達到獲取本不應(yīng)該接受到的路由的數(shù)據(jù)消息。

就BGP本身而言,這種***很難從協(xié)議上進行更改,因為設(shè)計中雖然是建立在TCP之上,但是協(xié)議本身并沒有驗證數(shù)據(jù)源可靠與否的設(shè)計。唯一一個難點在于,邊界路由的連接必須在物理上進行端口設(shè)置,而且BGP互換報文的TTL只有1,也就是必須在1秒之內(nèi)建立連接才能進行下一步操作,比如,邊界路由器RA和邊界路由RB如果要互設(shè)BGP,那么必須在路由器的console中設(shè)置BGP會通過哪一個物理端口。因此,這種***服務(wù)器中如果有人為改動的話,是很難防范的。

2014年記錄到的BGP劫持曾經(jīng)攔截了比特幣礦機到采礦器服務(wù)器的連接,將流量轉(zhuǎn)移到了***者自己的礦池,就簡簡單單看著流量就收集了在當時價值8萬美刀的比特幣。

參考文獻

http://www.rfc-editor.org/info/rfc827

http://www.rfc-editor.org/info/rfc1105

http://docstore.mik.ua/orelly/networking/tcpip/ch07_05.htm

http://docstore.mik.ua/orelly/networking/tcpip/ch07_04.htm

http://www.cnnic.net.cn/jczyfw/ipas/assq/201206/t20120612_26541.htm

http://www.iana.org/assignments/iana-as-numbers-special-registry/iana-as-numbers-special-registry.xhtml

http://baike.c114.net/view.asp?MPLS


向AI問一下細節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI