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

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

湘橋ssl適用于網(wǎng)站、小程序/APP、API接口等需要進(jìn)行數(shù)據(jù)傳輸應(yīng)用場(chǎng)景,ssl證書未來市場(chǎng)廣闊!成為創(chuàng)新互聯(lián)的ssl證書銷售渠道,可以享受市場(chǎng)價(jià)格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:028-86922220(備注:SSL證書合作)期待與您的合作!

摘要

本文面向,初級(jí)網(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)語法,了解所謂的運(yùn)營(yíng)商庫(kù)中的ISP到底是個(gè)什么鬼。資深運(yùn)維玩家速速退散~_~

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

防混淆聲明

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

從IGP開始聊

具體的算法不講,本文重點(diǎn)不在這,只講思想。

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

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

到了BGP

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

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

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

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

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

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

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

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

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

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

AS

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

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

我們?cè)賮砜瓷裰坶L(zhǎng)城(AS9389)的ip地理位置分布, 神舟長(zhǎng)城又是從中國(guó)聯(lián)通購(gòu)買服務(wù)(可能有些優(yōu)化吧,具體的處理邏輯只能從策略上看了)。

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

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

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

每一個(gè)ip所在的CIDR為

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

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

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

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

Whois信息

對(duì)于ASN的whois信息可能各個(gè)數(shù)據(jù)庫(kù)的存儲(chǔ)格式都有所不同,以RIPE的數(shù)據(jù)庫(kù)為例子。下面是由RPSL語言所寫的中國(guó)網(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)先級(jí)。

更細(xì)粒度的語法

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的路由。

對(duì)于其他路由協(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>

詳細(xì)的解釋請(qǐng)翻閱RFC[2622]文檔.

BGP劫持

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

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

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

參考文獻(xiàn)

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

網(wǎng)站欄目:ISP路由表分發(fā)中的AS與BGP
文章位置:http://bm7419.com/article40/jjdhho.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供微信公眾號(hào)、網(wǎng)站制作、動(dòng)態(tài)網(wǎng)站、網(wǎng)站改版、標(biāo)簽優(yōu)化、定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都seo排名網(wǎng)站優(yōu)化