新聞中心
原文出自【聽(tīng)云技術(shù)博客】:http://blog.tingyun.com/web/article/detail/1348
摘要
本文面向,初級(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ī)范語(yǔ)言;Routing Policy Specification Language)語(yǔ)法,了解所謂的運(yùn)營(yíng)商庫(kù)中的ISP到底是個(gè)什么鬼。資深運(yùn)維玩家速速退散~_~
文中引用數(shù)據(jù)更新日期截止2016/12/10, 引用的部分鏈接來(lái)自wiki,需要**。
防混淆聲明
再開(kāi)始之前,由于不同書籍的出版時(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來(lái)替換該算法,現(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è)意思。另外所有通過(guò)了中級(jí)資格證考試的讀者可以跳到第三節(jié)以節(jié)省閱讀時(shí)間。
從IGP開(kāi)始聊
具體的算法不講,本文重點(diǎn)不在這,只講思想。
這類協(xié)議有很多種,例如RIP,IGRP,OSPF,IS-IS,EIGRP,這里就不一一翻譯了,過(guò)度強(qiáng)調(diào)中文其實(shí)沒(méi)什么意義,他們的區(qū)別主要還是在算法實(shí)現(xiàn)上不同,以及協(xié)議的鏈路距離指標(biāo)不同,即鏈路距離產(chǎn)生的代價(jià)。最簡(jiǎn)單的RIP,路由器間兩兩互相通信,每個(gè)路由器并不了解這整個(gè)網(wǎng)絡(luò)的拓?fù)?,它們只向其他相鄰的路由器?bào)告自己的可達(dá)距離,超過(guò)并包括16及表示不可達(dá)(有些書籍從0開(kāi)始定義可達(dá)距離,用來(lái)表示不需要經(jīng)過(guò)路由器的內(nèi)網(wǎng)距離),并互相更新。
而OSPF和IS-IS是按鏈路狀態(tài)來(lá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à),沒(méi)錯(cuò),就是在拓?fù)渚€上加點(diǎn)數(shù)字表示這條路好不好走,算一下開(kāi)銷再選擇。
到了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ò)做一下通告,我是誰(shuí),我這個(gè)網(wǎng)有誰(shuí)才能正確的向其他AS轉(zhuǎn)發(fā)報(bào)文。這個(gè)時(shí)候就需要一個(gè)×××來(lái)表示自己的身份,就是ASN(Autonomous System Number),想要這個(gè)號(hào)碼,就得掏錢買,IP也是。跟誰(shuí)買呢?國(guó)際上的五大組織已經(jīng)承包了這些東西。插入一張圖來(lái)說(shuō)明一切。
NIC表示Network Information Center(網(wǎng)絡(luò)信息中心)前面的字母分別是非洲,亞太,拉丁美+加勒比地區(qū)
美帝和歐洲的名字很奇怪啊,特意查了整理如下
劃分方法大概是照著這個(gè)來(lái)的吧(美帝戰(zhàn)區(qū)圖,咳咳,其實(shí)沒(méi)啥關(guān)系)
在國(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)了。
好的,說(shuō)回為什么場(chǎng)景不同,目前來(lái)講,全球互聯(lián)的(存在BGP服務(wù)器通報(bào)的)骨干網(wǎng)IP前綴路由表共有72739條,通過(guò)鏈路狀態(tài)協(xié)議同步路由表,時(shí)間略長(zhǎng)也不合適。除了技術(shù)上的原因,這里面涉及很多復(fù)雜的政治問(wèn)題和安全問(wèn)題,比如在中國(guó)內(nèi)部流通的流量就沒(méi)有必要從外面跑。因此在AS的邊界路由器上會(huì)設(shè)置很多規(guī)則,比如,允許來(lái)自AS1的網(wǎng)絡(luò)包進(jìn)入本網(wǎng)絡(luò)不允許AS2的進(jìn)入,或者允許來(lái)自AS1的4.0.0.0/8進(jìn)入本網(wǎng)絡(luò),或者讓購(gòu)買了本網(wǎng)絡(luò)帶寬的其他AS優(yōu)先進(jìn)入,這里的設(shè)置語(yǔ)法后面講。
最終的BGP需要找到一條能通的路由,而不是一條可以最短的。因此BGP采用的是路徑向量選擇協(xié)議(這里指類別,區(qū)別于RIP的距離向量協(xié)議和OSPF的鏈路狀態(tài)協(xié)議)。
AS
關(guān)于定義和概念我們講了這么多,還是直觀點(diǎn)的好,我們來(lái)看一下中國(guó)聯(lián)通骨干網(wǎng)(AS4837)它在全國(guó)范圍內(nèi)的ip地理位置分布(注意,這里的骨干網(wǎng)并非全球骨干網(wǎng),即該AS并非一個(gè)根節(jié)點(diǎn),在它之上還有其他AS作為他的提供商)
我們?cè)賮?lái)看神舟長(zhǎng)城(AS9389)的ip地理位置分布, 神舟長(zhǎng)城又是從中國(guó)聯(lián)通購(gòu)買服務(wù)(可能有些優(yōu)化吧,具體的處理邏輯只能從策略上看了)。
跟蹤一次AS轉(zhuǎn)播,以www.google.com為例,在tracerouter得到的路由追蹤信息中我們可以看到
每一個(gè)ip所在的CIDR為
一段請(qǐng)求,經(jīng)過(guò)源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沒(méi)有太多的出入,就沒(méi)有必要申請(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èn)官方網(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,怎么通信,以此來(lái)更改路由器設(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語(yǔ)言所寫的中國(guó)網(wǎng)通AS的信息
其中import就是AS的路由表導(dǎo)入規(guī)則
Import語(yǔ)法如下
import: from[action ] . . . from [action ] accept
意思就是說(shuō),從所有的from后米娜的peering導(dǎo)入符合filter規(guī)則的路由表,以上的import信息表示,接受所有來(lái)自AS701,A S11919, AS6453, AS9225, AS4134, AS4538, AS4789, AS9800, AS4799的路由表,并分別設(shè)置了100,120的優(yōu)先級(jí)。
更細(xì)粒度的語(yǔ)法
import: from AS2 action pref = 10; accept { 128.9.0.0/16 }
則表示,接受來(lái)自AS2的路由128.9.0.0/16
而export的語(yǔ)法類似
export: to[action ] . . . to [action ] announce
向所有符合filter的peer轉(zhuǎn)發(fā)路由上面的例子之一則表示向AS4134轉(zhuǎn)發(fā)AS9929,AS9812,AS9810,AS9813,AS9816,AS9819,AS17432,AS7639的路由。
對(duì)于其他路由協(xié)議,多協(xié)議路由協(xié)議,和協(xié)議間的反射路由的完整import和export語(yǔ)法如下:
import:[protocol] [into ] from [action ] . . . from [action ] accept
export:[protocol] [into ] to [action ] . . . to [action ] announce
詳細(xì)的解釋請(qǐng)翻閱RFC[2622]文檔.
BGP劫持
因?yàn)閰f(xié)議的特殊性,在計(jì)算路由路線時(shí),通常在會(huì)合路由表中的所有ip前綴進(jìn)行匹配,如果滿足變長(zhǎng)掩碼的需求,就會(huì)把通過(guò)該路由將數(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é)議本身并沒(méi)有驗(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ì)通過(guò)哪一個(gè)物理端口。因此,這種***服務(wù)器中如果有人為改動(dòng)的話,是很難防范的。
2014年記錄到的BGP劫持曾經(jīng)攔截了比特幣礦機(jī)到采礦器服務(wù)器的連接,將流量轉(zhuǎn)移到了***者自己的礦池,就簡(jiǎn)簡(jiǎn)單單看著流量就收集了在當(dāng)時(shí)價(jià)值8萬(wàn)美刀的比特幣。
參考文獻(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ù)器可以了解下創(chuàng)新互聯(lián)scvps.cn,海內(nèi)外云服務(wù)器15元起步,三天無(wú)理由+7*72小時(shí)售后在線,公司持有idc許可證,提供“云服務(wù)器、裸金屬服務(wù)器、高防服務(wù)器、香港服務(wù)器、美國(guó)服務(wù)器、虛擬主機(jī)、免備案服務(wù)器”等云主機(jī)租用服務(wù)以及企業(yè)上云的綜合解決方案,具有“安全穩(wěn)定、簡(jiǎn)單易用、服務(wù)可用性高、性價(jià)比高”等特點(diǎn)與優(yōu)勢(shì),專為企業(yè)上云打造定制,能夠滿足用戶豐富、多元化的應(yīng)用場(chǎng)景需求。
網(wǎng)頁(yè)題目:ISP路由表分發(fā)中的AS與BGP-創(chuàng)新互聯(lián)
標(biāo)題網(wǎng)址:http://fisionsoft.com.cn/article/diogis.html