一張紙上的A、 B 兩個(gè)點(diǎn),很容易就可以找到最佳連線方式,但如果 A 點(diǎn)是計(jì)算機(jī),而 B 點(diǎn)是地球另一端的網(wǎng)站,如何從這紛亂復(fù)雜的線路中,找到最佳路徑呢?
在這種情況下,BGP(邊界網(wǎng)關(guān)協(xié)議)可根據(jù)可達(dá)性和路由信息,權(quán)衡最新的網(wǎng)絡(luò)狀況,從而找到最佳路徑。
BGP是一種路由協(xié)議,它定義了在AS(自治系統(tǒng))之間交換路由信息的方法。BGP 管理數(shù)據(jù)包如何在構(gòu)成互聯(lián)網(wǎng)的大型網(wǎng)絡(luò)之間傳輸,并使互聯(lián)網(wǎng)能夠高效運(yùn)行。
在深入了解BGP之前,我們先來認(rèn)識(shí)幾個(gè)基礎(chǔ)概念。
01
什么是路由協(xié)議?
路由協(xié)議是一種指定數(shù)據(jù)包轉(zhuǎn)送方式的協(xié)議?;ヂ?lián)網(wǎng)由錯(cuò)綜復(fù)雜的網(wǎng)絡(luò)構(gòu)成,因此需要適當(dāng)?shù)靥峁昂侠淼囊龑?dǎo)”,這個(gè)過程稱為路由。
| 路由圖解
路由是將計(jì)算機(jī)發(fā)送的數(shù)據(jù)(數(shù)據(jù)包)正確傳輸?shù)侥康挠?jì)算機(jī)的過程。
為了進(jìn)行路由選擇,需要在路由器中設(shè)置路由信息(路由表)。用于指示的信息稱為路由表,路由表包含“最終目的地”和“下一跳IP地址”。路由表的設(shè)置本身可以手動(dòng)完成,但是路由信息每天都在變化。因此,需要一種機(jī)制來自動(dòng)配置。這里使用的就是路由協(xié)議。
| 路由表工作示意圖
路由協(xié)議可以大致分為以下兩種類型:
IGP ( Interior Gateway Protocol ):內(nèi)部網(wǎng)關(guān)協(xié)議,在一個(gè)AS內(nèi)部所使用的一種路由協(xié)議。一個(gè)AS內(nèi)部也可以有多個(gè)路由器管理多個(gè)網(wǎng)絡(luò),各個(gè)路由器之間需要路由信息以知道子網(wǎng)絡(luò)的可達(dá)信息。IGP就是用來管理這些路由。代表的實(shí)現(xiàn)協(xié)議有RIP和OSPF。
EGP ( Exterior Gateway Protocol ):外部網(wǎng)關(guān)協(xié)議,在多個(gè)AS之間使用的一種路由協(xié)議,BGP是EGP的代表協(xié)議。
02
什么是AS?
AS(自治系統(tǒng),Autonomous System)是構(gòu)成互聯(lián)網(wǎng)的網(wǎng)絡(luò)單元。一個(gè)自治系統(tǒng)(AS)是一個(gè)有權(quán)自主地決定在本系統(tǒng)中應(yīng)采用何種路由協(xié)議的小型單位。這個(gè)網(wǎng)絡(luò)單位可以是一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)也可以是一個(gè)由一個(gè)或多個(gè)普通的網(wǎng)絡(luò)管理員來控制的網(wǎng)絡(luò)群體,它是一個(gè)單獨(dú)的可管理的網(wǎng)絡(luò)單元(例如一所大學(xué),一個(gè)企業(yè)或者一個(gè)公司個(gè)體)。它可以是一個(gè)路由器直接連接到一個(gè)LAN上,同時(shí)連到Internet上,也可以是一個(gè)由企業(yè)骨干網(wǎng)互連的多個(gè)局域網(wǎng)。
| 互聯(lián)網(wǎng)拓?fù)?/p>
每個(gè) AS 都會(huì)被分配一個(gè)稱為 ASN(自治系統(tǒng)編號(hào))的唯一編號(hào)。區(qū)域互聯(lián)網(wǎng)注冊(cè)機(jī)構(gòu)(Regional Internet Registry,RIR),是管理世界上某特定地區(qū)Internet資源的組織。Internet資源包括IP地址(包含IPv4和IPv6)和使用在BGP路由中的自治系統(tǒng)號(hào)(Autonomous System number)。每個(gè) AS 控制一組連接的路由前綴,代表一個(gè) IP 地址范圍。當(dāng)流量到達(dá) ASN 時(shí),它決定了網(wǎng)絡(luò)內(nèi)部的路由策略。
| AS(自治系統(tǒng))
在一個(gè)AS中的所有路由器必須相互連接,運(yùn)行相同的路由協(xié)議,同時(shí)分配同一個(gè)ASN。截至 2021 年 1 月,全球有近 100000 個(gè) ASN,其中約 29% 位于美國(guó)。
為了使各個(gè)AS相互連接并在它們之間進(jìn)行通信,需要使用EGP,BGP是EGP的代表協(xié)議。
| BGP 簡(jiǎn)化版
上圖展示了一個(gè)簡(jiǎn)化版的 BGP。在此版本中,互聯(lián)網(wǎng)上有 6 個(gè)自治系統(tǒng)。如果 AS1 需要向 AS3 路由一個(gè)數(shù)據(jù)包,它有兩種不同的選擇:
AS2 → AS3或AS6 → AS5 → AS4 → AS3
在這個(gè)簡(jiǎn)化的模型中,可以很簡(jiǎn)單直接地作出決策。AS2 路由所需的躍點(diǎn)比 AS6 路由要少,因此它是最快、最高效的路由。
那么現(xiàn)在假設(shè)有成百上千個(gè) AS,而且躍點(diǎn)數(shù)只是路線選擇算法中的一部分,最終決策就變得非常困難。而這就是BGP 路由的實(shí)際情況。
看到這里,我們?cè)倩仡櫼幌翨GP的概念,是不是就容易理解了!
打個(gè)比方,如果我們將 BGP 比作互聯(lián)網(wǎng)的郵政服務(wù),那么AS就相當(dāng)于各郵政分局,AS中的內(nèi)部路由器就好比郵箱。一個(gè)城鎮(zhèn)可能有數(shù)百個(gè)郵箱,但郵箱中的所有郵件都必須先經(jīng)過本地郵政分局,然后再運(yùn)送到另一個(gè)目的地。也就是路由器將出站流量路由到AS,然后使用 BGP 路由將這些流量傳輸?shù)狡淠康牡亍?/p>
但在這個(gè)比喻里,還存在一些偏頗。
AS與郵局不同,它們并非都屬于同一個(gè)組織。事實(shí)上,AS往往屬于互相競(jìng)爭(zhēng)的公司。因此,BGP 路由有時(shí)會(huì)將業(yè)務(wù)因素考慮在內(nèi)。AS往往會(huì)互相收取費(fèi)用來傳輸通過其網(wǎng)絡(luò)的流量,相關(guān)價(jià)格也會(huì)成為最終選擇哪條路由的考慮因素之一。
03
互聯(lián)網(wǎng)流量路由簡(jiǎn)史
在互聯(lián)網(wǎng)早期,只有少數(shù)網(wǎng)絡(luò)需要相互連接。那時(shí),網(wǎng)絡(luò)節(jié)點(diǎn)之間的路由是靜態(tài)的,即路由器上的路由表是預(yù)先配置的,不考慮動(dòng)態(tài)變化。設(shè)置路由所需要做的就是定義網(wǎng)絡(luò)節(jié)點(diǎn)并根據(jù)需要在它們之間建立連接。
然而,互聯(lián)網(wǎng)迅速發(fā)展,網(wǎng)絡(luò)越來越多,這時(shí)候就需要一個(gè)更加動(dòng)態(tài)的路由系統(tǒng)。EGP(外部網(wǎng)關(guān)協(xié)議)的發(fā)明就是為了完成這項(xiàng)工作。1982 年,來自BBN Technologies 的Eric C. Rosen定義了 EGP。
EGP 是一種基于樹狀分層拓?fù)浣Y(jié)構(gòu)的簡(jiǎn)單路由協(xié)議,用于在自治系統(tǒng)網(wǎng)絡(luò)中的兩個(gè)相鄰網(wǎng)關(guān)主機(jī)之間交換路由信息。
| EGP路由協(xié)議
EGP具有三個(gè)主要功能:
建立一組鄰居
檢查鄰居的可用性
通知鄰居其自治系統(tǒng)內(nèi)的可達(dá)網(wǎng)絡(luò)
隨著互聯(lián)網(wǎng)上自治系統(tǒng)數(shù)量的增長(zhǎng),EGP 的缺點(diǎn)也開始暴露。EGP 僅支持樹狀拓?fù)?,阻礙了可擴(kuò)展性,并且難以有效地連接新網(wǎng)絡(luò)。需要定義一個(gè)更具可擴(kuò)展性并提供更高級(jí)功能的外部路由協(xié)議。
| 樹狀拓?fù)鋠s網(wǎng)狀拓?fù)?/p>
1989 年 6 月,新路由協(xié)議的第一個(gè)版本正式確定。它的名字叫 BGP,代表邊界網(wǎng)關(guān)協(xié)議。
當(dāng)時(shí),思科的 Kirk Lougheed 和 Len Bosack 以及 IBM 的 Yakov Rekhter 利用在EGP上獲得的經(jīng)驗(yàn)編寫了一個(gè)新協(xié)議。他們?cè)诓徒砑埳蠈懴逻@個(gè)新協(xié)議。出于這個(gè)原因,BGP有時(shí)被稱為Two-Napkin Protoco。
| 寫在餐巾紙上的BGP注釋
與其前身 EGP 相比,BGP 支持網(wǎng)狀拓?fù)?,使多路徑路由成為可能。BGP 用于路由 AS 到 AS的流量。
BGP Speaker 之間建立對(duì)等體的模式有兩種:
IBGP(Internal BGP)是指在相同AS內(nèi)建立的BGP連接
EBGP是指在不同AS之間建立的BGP連接
在一個(gè) AS 內(nèi),可以自由使用其他路由協(xié)議,如 OSPF、EIGRP 和 IS-IS。
| IBGP與EBGP示意圖
BGP 旨在互聯(lián)網(wǎng)上的自治系統(tǒng)之間交換路由和可達(dá)性信息,是當(dāng)今互聯(lián)網(wǎng)運(yùn)作方式不可或缺的一部分。沒有BGP,不同的網(wǎng)絡(luò)將無法通信或共享有關(guān)路由的信息,從而無法將數(shù)據(jù)高效、安全地從一個(gè)地方發(fā)送到另一個(gè)地方。
ISP(互聯(lián)網(wǎng)提供商)、大型組織和云提供商使用BGP 來連接彼此的的網(wǎng)絡(luò),以及與互聯(lián)網(wǎng)的其余部分連接起來。BGP 還用于確保流量盡可能高效的路由,從而減少延遲并提高性能。BGP 基于TCP/IP,在OSI傳輸層(第 4 層)上運(yùn)行以控制網(wǎng)絡(luò)層(第 3 層)。
04
BGP 路由的工作原理
BGP報(bào)文
BGP報(bào)文由BGP報(bào)文頭和具體報(bào)文內(nèi)容兩部分組成。BGP的運(yùn)行是通過消息驅(qū)動(dòng)的,共有5種消息類型,這些消息有相同的報(bào)文頭。這些消息通過TCP協(xié)議進(jìn)行傳播(端口號(hào)是179)。消息最長(zhǎng)為4096字節(jié),最短為19字節(jié)(只包含報(bào)文頭)。
1. Open報(bào)文用于對(duì)等體參數(shù)協(xié)商;
2. Keepalive報(bào)文用于維護(hù)對(duì)等體鄰居;
3. Update報(bào)文用于通告可達(dá)路由和不可達(dá)路由;
4. Notification報(bào)文 用于錯(cuò)誤信息通告,斷開對(duì)等體鄰居;
5. Route-refresh報(bào)文 用于請(qǐng)求對(duì)等體重新發(fā)送路由信息。
BGP報(bào)文頭包括三部分,總長(zhǎng)19字節(jié)。各個(gè)部分的格式和功能如下:
Marker:占16字節(jié),用于檢查BGP對(duì)等體的同步信息是否完整,以及用于BGP驗(yàn)證的計(jì)算。不使用驗(yàn)證時(shí)所有比特均為1(十六進(jìn)制則全“FF”)。
Length:占2個(gè)字節(jié)(無符號(hào)位),BGP消息總長(zhǎng)度(包括報(bào)文頭在內(nèi)),以字節(jié)為單位。長(zhǎng)度范圍是19~4096。
Type:占1個(gè)字節(jié)(無符號(hào)位),BGP消息的類型。Type有5個(gè)可選值,表示BGP報(bào)文頭后面所接的5類報(bào)文(其中,前四種消息是在RFC4271中定義的,而Type5的消息則是在RFC2918中定義的)
自治系統(tǒng)通信
當(dāng)兩個(gè) AS 相互通信時(shí),它們會(huì)彼此交換各自的網(wǎng)絡(luò)信息,包括 IP 地址范圍、子網(wǎng)掩碼和其他網(wǎng)絡(luò)相關(guān)數(shù)據(jù)等詳細(xì)信息。BGP 決策機(jī)制對(duì)所有數(shù)據(jù)進(jìn)行分析,并將其中一個(gè)對(duì)等體設(shè)置為下一站,以轉(zhuǎn)發(fā)去往某個(gè)目的地的報(bào)文。每個(gè)對(duì)等體管理一個(gè)表,其中包含它知道的每個(gè)網(wǎng)絡(luò)的所有路由,并將該信息傳播到其相鄰的自治系統(tǒng)。
通過這種方式,BGP 允許 AS 從其相鄰AS 收集所有路由信息,并進(jìn)一步“通告”這些信息。每個(gè)對(duì)等體都在其自己的自治系統(tǒng)內(nèi)部傳輸信息。
就像在現(xiàn)實(shí)生活中一樣,通常有多條路線可以到達(dá)給定的目的地。BGP 類似于導(dǎo)航系統(tǒng),負(fù)責(zé)根據(jù)收集到的信息和組織的路由策略確定最合適的路由,該路由策略基于成本、可靠性、速度和其他因素。
路由更新
一旦建立了路由表,就需要定期更新,以便網(wǎng)絡(luò)中的任何變化都能反映在路由表中。這個(gè)過程被稱為路由更新,它涉及在兩個(gè) AS 之間來回發(fā)送消息,以保持它們各自的路由表的最新狀態(tài)。
BGP 路徑屬性
除了交換有關(guān)網(wǎng)絡(luò)的信息外,BGP 還使用路徑屬性來確定從一個(gè)AS發(fā)送數(shù)據(jù)包到另一個(gè)AS時(shí)應(yīng)該走哪條路由。這些屬性包括跳數(shù)、延遲和傳輸成本等。通過考慮這些因素,BGP 可確保數(shù)據(jù)包沿著最有效的路由發(fā)送。
05
BGP的主要功能
BGP 為互聯(lián)網(wǎng)的運(yùn)行提供了關(guān)鍵功能,包括維護(hù)路由信息、選擇最短路由、在路由錯(cuò)誤的情況下提供冗余、通過身份驗(yàn)證提供安全性和促進(jìn)不同網(wǎng)絡(luò)類型之間的通信等。
路由故障時(shí)提供冗余:如果 BGP 檢測(cè)到主路徑無法正常工作,它將自動(dòng)通過備用路徑重新路由流量。
檢測(cè)路由路徑環(huán)路:BGP 可以使用一組稱為 BGP 決策過程的算法來檢測(cè)和消除路由路徑中的環(huán)路。這有助于確保數(shù)據(jù)包沿著盡可能最有效的路線發(fā)送,而不會(huì)浪費(fèi)帶寬或走不必要的彎路。
防止惡意攻擊:BGP 可以通過驗(yàn)證 BGP 消息是否來自合法自治系統(tǒng),以過濾掉惡意的流量。
提供安全保障:BGP 使用預(yù)配置的密碼或密鑰對(duì)路由器之間的消息進(jìn)行身份驗(yàn)證。這有助于確保只有授權(quán)實(shí)體才能交換信息并防止惡意行為者破壞流量。
控制交通流量:BGP 使 ISP 能夠通過指定將數(shù)據(jù)包從一個(gè)網(wǎng)絡(luò)發(fā)送到另一個(gè)網(wǎng)絡(luò)時(shí)采用的路由來控制流量如何通過其網(wǎng)絡(luò)。
促進(jìn)網(wǎng)絡(luò)交流:BGP 允許網(wǎng)絡(luò)之間的通信,例如 IPv4 和 IPv6。這有助于確保所有設(shè)備都可以相互通信,無論它們位于哪種類型的網(wǎng)絡(luò)上。
06
BGP如何選擇最佳路徑?
上文提到了BGP可選擇兩個(gè)對(duì)等體之間的最佳路徑,那最佳路徑究竟是怎么選出來的呢?
權(quán)重:選擇權(quán)重最大的路線。權(quán)重值越大,對(duì)該路徑的偏好越高。
本地優(yōu)先級(jí):如果有多條權(quán)重相同的路由,則選擇本地優(yōu)先級(jí)最高的路由。
Origin:優(yōu)先選擇由本地路由器發(fā)起的路由,本地路由的下一跳是 0.0.0.0。
AS路徑:如果AS路徑長(zhǎng)度相同,則優(yōu)先選擇具有最低MED (多出口鑒別器)的路徑。
eBGP over iBGP:首選eBGP。eBGP的管理距離是 20,而iBGP的是 200。
IGP指標(biāo):優(yōu)先選擇下一跳IGP最低的。
外部路徑:如果兩條路徑都是外部路徑,首先選擇最舊的路徑。
Router ID :選擇Router ID最小的路徑。
集群列表:如果多條路徑具有相同的路由器ID,則選擇最小長(zhǎng)度。
鄰居地址:從最低鄰居地址開始選擇,此地址為BGP鄰居配置中使用的IP地址。
07
BGP的局限性
雖然BGP被廣泛使用,但是它也有以下局限性:
普適性問題
>傳播延遲
BGP在處理路由變更時(shí)需要時(shí)間來計(jì)算新的最短路徑,并需要將新路由信息通知給其他路由器。這會(huì)導(dǎo)致路由切換的延遲時(shí)間較長(zhǎng),可能會(huì)影響網(wǎng)絡(luò)性能。
>不穩(wěn)定
如果配置不正確,BGP 會(huì)導(dǎo)致不穩(wěn)定。如果路由設(shè)置不當(dāng),可能會(huì)導(dǎo)致數(shù)據(jù)包路由效率低下,從而導(dǎo)致性能下降和潛在的中斷。
>難以擴(kuò)展
BGP是一個(gè)復(fù)雜的協(xié)議,需要大量的配置和維護(hù)工作。BGP 在處理大量路由器或同時(shí)路由大量數(shù)據(jù)時(shí),無法很好地?cái)U(kuò)展。
安全問題
BGP還有一個(gè)很大的問題在于,默認(rèn)情況下BGP 不嵌入任何安全協(xié)議,并且依賴于網(wǎng)絡(luò)運(yùn)營(yíng)商來保護(hù)他們的系統(tǒng)。自 2000 年代初以來, BGP劫持和泄漏事件一直是人們關(guān)注的焦點(diǎn)。
BGP路由泄露:路由泄漏是一種在現(xiàn)網(wǎng)中比較常見的路由事件,一般出現(xiàn)于ISP的錯(cuò)誤配置,對(duì)外宣告了本不應(yīng)該由該AS宣告的IP前綴路由,它能夠造成 BGP 路由發(fā)生嚴(yán)重錯(cuò)誤、進(jìn)而導(dǎo)致互聯(lián)網(wǎng)部分中斷或擁塞。
BGP路由劫持:整個(gè)BGP協(xié)議是建立在信任原則之上的。
BGP 假設(shè)每個(gè) AS 對(duì)其擁有的IP地址和共享的路由信息都是真實(shí)的,這個(gè)原理使得它很容易受到惡意攻擊。BGP 劫持是通過破壞使用BGP 維護(hù)的互聯(lián)網(wǎng)路由表來非法接管IP 地址組,惡意重新路由互聯(lián)網(wǎng)流量。
| BGP路由劫持
攻擊者可以操縱 BGP 路由表,讓受到攻擊的路由器通告尚未分配給它的前綴。如果這些虛假通告表明有比合法路徑更好的路徑可用,流量就可能會(huì)被定向到該路徑,導(dǎo)致惡意服務(wù)器竊取憑據(jù)、下載惡意軟件并執(zhí)行其他破壞性活動(dòng)。而最終用戶始終以為他們?cè)L問的是合法站點(diǎn)。
在某些情況下,BGP 路由劫持可能使攻擊者能夠訪問未加密的數(shù)據(jù)流或用于繞過 IP 屏蔽列表來發(fā)起未經(jīng)請(qǐng)求的活動(dòng),如垃圾郵件等。
BGP DoS:這種惡意攻擊主要針對(duì) BGP 路由協(xié)議。在這種攻擊中,網(wǎng)絡(luò)犯罪分子向受害系統(tǒng)發(fā)送意外或不需要的 BGP 流量,這會(huì)耗盡受害者的所有可用資源,從而無法處理有效的 BGP 流量。
BGP 威脅事件
多年來,BGP 經(jīng)歷了無數(shù)次安全事件。
2017 年 8 月,由于谷歌錯(cuò)誤泄露了 BGP 通告,日本經(jīng)歷了全國(guó)范圍的中斷。同年 10 月,巴西的 Twitter 和 Google 等服務(wù)因另一起 BGP 泄漏事件而中斷。2017 年 11 月,互聯(lián)網(wǎng)骨干網(wǎng)提供商 Level 3 經(jīng)歷了一次路由器配置錯(cuò)誤,導(dǎo)致了嚴(yán)重的路由泄漏,最終直接影響了康卡斯特,并在此過程中關(guān)閉了美國(guó)大片地區(qū)的互聯(lián)網(wǎng)。
2018 年 4 月,惡意黑客公布了一些屬于 AWS 的 IP 前綴,一些試圖登錄加密貨幣網(wǎng)站的用戶被重定向到黑客所創(chuàng)造的虛假網(wǎng)頁之中,導(dǎo)致了超過 160000 美元的損失。
2021 年 10 月 4 日。Facebook 及其子公司經(jīng)歷了一次影響全球用戶的重大中斷。中斷的原因被追溯到 BGP 故障,導(dǎo)致流量路由中斷。這導(dǎo)致許多用戶無法訪問他們的帳戶或使用 Facebook 及其子公司提供的任何服務(wù)。中斷持續(xù)了幾個(gè)小時(shí)才得到解決,并使該組織損失了 6000 萬美元的收入。
| 來源:騰訊安全應(yīng)急響應(yīng)中心(TSRC)
這些事件都說明了BGP協(xié)議在互聯(lián)網(wǎng)中的重要性,同時(shí)也提醒我們BGP安全方面的風(fēng)險(xiǎn)。
08
如何防范BGP威脅?
為了充分防范 BGP 威脅,有必要采取適當(dāng)?shù)膶?duì)策和保護(hù)措施。
IP前綴過濾
大多數(shù)網(wǎng)絡(luò)應(yīng)該只在必要時(shí)接受IP段前綴聲明,并且只應(yīng)將其IP前綴聲明到某些網(wǎng)絡(luò),而不是整個(gè)互聯(lián)網(wǎng)。這樣做有助于防止意外的路由劫持,并可能使AS不接受偽造的IP前綴聲明。但是,這在實(shí)踐中很難實(shí)施。
BGP劫持檢測(cè)
劫持檢測(cè)可以采取多種形式?;€性能的變化,例如更大的延遲、錯(cuò)誤的流量或性能的普遍下降是可能表明某種形式的劫持的初步跡象。此外,監(jiān)控通告以及記錄路線的可用性和停機(jī)時(shí)間是發(fā)現(xiàn)劫持的重要方面。
更復(fù)雜的系統(tǒng)還可以分析來自鄰居的公告 AS 以查看被劫持的前綴是否包含在公告中,可以識(shí)別前綴不匹配,并使用路徑分析來確保正確的路由。
全路由認(rèn)證安全機(jī)制
2017年10月,國(guó)際互聯(lián)網(wǎng)工程任務(wù)組(IETF)和美國(guó)國(guó)家標(biāo)準(zhǔn)與技術(shù)研究院(NIST)、美國(guó)國(guó)土安全部(DHS)等機(jī)構(gòu)共同啟動(dòng)了一個(gè)名為安全域間路由(SIDR)的聯(lián)合項(xiàng)目,明確提出應(yīng)對(duì) BGP 協(xié)議進(jìn)行保護(hù)以抵御BGP路由攻擊威脅?!癝IDR ”項(xiàng)目主要分為三個(gè)基本組成部分:資源公鑰基礎(chǔ)設(shè)施 (RPKI)、BGP 源路由驗(yàn)證(ROV)和 BGP 路徑驗(yàn)證 (BGPSec)。
>RPKI
RPKI是一種專門為路由來源身份驗(yàn)證開發(fā)的加密系統(tǒng)。RPKI 使用被稱為路由源授權(quán)(Route Origin Authorization, ROA)的加密簽名記錄。其基本思想是構(gòu)建一個(gè)PKI(公鑰基礎(chǔ)設(shè)施)來完成對(duì)IP地址前綴和AS號(hào)的所有權(quán)和使用權(quán)的認(rèn)證。
RPKI 允許網(wǎng)絡(luò)運(yùn)營(yíng)商通過使用私鑰和公鑰系統(tǒng)對(duì)BGP中的路由通告進(jìn)行數(shù)字加密和簽名。信息可以使用私鑰加密和簽名,并且只能使用匹配的公鑰解密或驗(yàn)證其簽名。數(shù)字簽名信息保證了在路由系統(tǒng)中看到的路由通告可以被驗(yàn)證并且是真實(shí)的。
| 使用RPKI的BGP
>BGPSec
不過RPKI和ROV,只能防范如BGP路由劫持中的起源AS欺騙的簡(jiǎn)單攻擊,像AS路徑篡改、BGP路由泄露等場(chǎng)景,則需要采用BGPSec方案。
BGPSec旨在補(bǔ)充BGP源路由驗(yàn)證的不足,當(dāng)它與ROV結(jié)合使用時(shí),可以防范各種針對(duì)BGP的路由劫持攻擊。在路由宣告過程中,路由器從它的鄰居AS收到的IP前綴路由宣告消息進(jìn)行簽名,簽名內(nèi)容作為路由消息的BGPSec_Path屬性傳播給其它鄰居AS,當(dāng)路由器接收到帶有BGPSec_Path屬性的IP前綴更新路由時(shí)通過檢查簽名判斷該路由的AS_Path路徑是否正確,若錯(cuò)誤的話直接丟棄,并不廣播給其鄰居AS。
09
BGP用在什么地方?
BGP用于多種類型的網(wǎng)絡(luò),包括:
互聯(lián)網(wǎng)服務(wù)提供商 (ISP):ISP 使用 BGP 在多個(gè)互聯(lián)網(wǎng)自治系統(tǒng)之間傳遞路由數(shù)據(jù)。這使得有效流量可在各種網(wǎng)絡(luò)和地理位置之間路由。
企業(yè)網(wǎng)絡(luò):在工業(yè)網(wǎng)絡(luò)中,BGP 還用于跨多個(gè)站點(diǎn)或區(qū)域交換路由數(shù)據(jù)。這可以在同一組織的各個(gè)部門內(nèi)實(shí)現(xiàn)有效的流量路由。
數(shù)據(jù)中心網(wǎng)絡(luò):BGP用于數(shù)據(jù)中心網(wǎng)絡(luò),在同一數(shù)據(jù)中心的不同部分之間或不同數(shù)據(jù)中心之間交換路由信息。這允許有效地路由流量并啟用負(fù)載平衡和故障轉(zhuǎn)移等功能。
服務(wù)提供商網(wǎng)絡(luò):服務(wù)提供商使用 BGP 在不同網(wǎng)絡(luò)之間進(jìn)行高效的流量路由并提供冗余。
域間路由:BGP是互聯(lián)網(wǎng)不同域之間使用的路由協(xié)議,它是唯一可以用來在不同自治系統(tǒng)之間交換路由信息的協(xié)議。
綜上所述,BGP廣泛應(yīng)用于互聯(lián)網(wǎng)服務(wù)提供商、企業(yè)網(wǎng)絡(luò)、數(shù)據(jù)中心網(wǎng)絡(luò)、服務(wù)提供商網(wǎng)絡(luò)等不同類型的網(wǎng)絡(luò),主要用于互聯(lián)網(wǎng)域間路由。
10
BGP 有其他替代方案嗎?
對(duì)于那些不想或不需要 BGP 提供的所有功能的人來說,有幾種選擇。其中最突出的是開放最短路徑優(yōu)先 (OSPF) 和增強(qiáng)型內(nèi)部網(wǎng)關(guān)路由協(xié)議 (EIGRP)。
OSPF
OSPF 用于在 IP 網(wǎng)絡(luò)中找到源和目標(biāo)之間的最佳路徑,是一種內(nèi)部網(wǎng)關(guān)協(xié)議 (IGP),可以在單個(gè)自治系統(tǒng)內(nèi)路由數(shù)據(jù)包。與其他 IGP 不同,OSPF 是一種鏈路狀態(tài)路由協(xié)議。換句話說,它依賴于鏈路狀態(tài)信息來計(jì)算路由路徑并做出路由決策。OSPF 基于 Dijkstra 算法來尋找兩點(diǎn)之間的最短路徑。
OSPF 相對(duì)于其他路由協(xié)議(包括 BGP)的主要優(yōu)勢(shì)之一是其高效的路徑選擇。此外,OSPF 比 BGP 具有更快的收斂時(shí)間,這意味著它可以快速檢測(cè)網(wǎng)絡(luò)中的變化并相應(yīng)地更新其路由表。然而,OSPF 需要比 BGP 更多的內(nèi)存和處理能力,因?yàn)樗枰谄渎酚杀碇写鎯?chǔ)有關(guān)鏈路的所有信息。
BGP 常用于 Internet 冗余、WAN 和 IaaS 環(huán)境。OSPF 主要用于 LAN 和數(shù)據(jù)中心,但偶爾也可用于 WAN 和 IaaS 環(huán)境。
| BGP 與OSPF 的應(yīng)用場(chǎng)景
不過BGP 與OSPF 在大多數(shù)情況下一起使用。在數(shù)據(jù)中心,OSPF 通常是網(wǎng)絡(luò)交換機(jī)和/或路由器之間內(nèi)部路由的通用協(xié)議。當(dāng)該流量需要傳輸?shù)搅硪粋€(gè)組織時(shí),就需要BGP 協(xié)議了。
EIGRP
EIGRP 由思科在 1990 年代開發(fā),最初僅限于在思科產(chǎn)品中使用。2013年前后,思科向IETF提出了EIGRP作為協(xié)議草案進(jìn)行審查,最終批準(zhǔn)成為官方標(biāo)準(zhǔn)。迄今為止,它仍處于 IETF 的草案模式。
與 BGP 不同,EIGRP 是一種內(nèi)部網(wǎng)關(guān)協(xié)議,它在組織完全管理的網(wǎng)絡(luò)中動(dòng)態(tài)路由數(shù)據(jù)流量,例如企業(yè)或政府。EIGRP 被視為混合協(xié)議,使用以下兩種協(xié)議類型的功能:
距離矢量路由,其中路由器定期發(fā)送消息,通知相鄰路由器網(wǎng)絡(luò)拓?fù)涞娜魏巫兓?/p>
鏈路狀態(tài)路由,發(fā)送消息通知每個(gè)路由器整個(gè)網(wǎng)絡(luò)拓?fù)洹?/p>
EIGRP 使用擴(kuò)散更新算法 (DUAL) 來計(jì)算網(wǎng)絡(luò)中到達(dá)目的地的最短路徑。該算法允許快速收斂時(shí)間,這意味著當(dāng)網(wǎng)絡(luò)發(fā)生變化時(shí),EIGRP 可以快速適應(yīng)并找到新的數(shù)據(jù)傳輸路徑。
與 BGP 相比,EIGRP 具有幾個(gè)優(yōu)點(diǎn)。它比 BGP 更容易配置和維護(hù),因?yàn)樗枰俚膮?shù)和更少的人工干預(yù)。它還可以更有效地使用帶寬和內(nèi)存等資源,更適合資源有限的網(wǎng)絡(luò)。而且它提供比 BGP 更快的收斂時(shí)間。
但EIGRP 也有一定的局限性。例如,雖然 EIGRP 同時(shí)支持 IPv4 和 IPv6 地址,但 BGP 同時(shí)支持 IPv4 和 IPv6 地址以及多個(gè)自治系統(tǒng),這使得BGP更適合具有復(fù)雜拓?fù)浣Y(jié)構(gòu)的大型網(wǎng)絡(luò)。此外,由于 EIGRP 是專有協(xié)議,它在其他供應(yīng)商設(shè)備上的實(shí)施可能具有挑戰(zhàn)性。
| BGP 與EIGRP的對(duì)比
11
BGP在數(shù)據(jù)中心網(wǎng)絡(luò)中的應(yīng)用
下面介紹具體網(wǎng)絡(luò)架構(gòu)場(chǎng)景下的BGP。在DC1場(chǎng)景中,有五排機(jī)架,排列成Spine-Leaf的網(wǎng)絡(luò)架構(gòu)。推薦使用EBGP建立VXLAN Underlay網(wǎng)絡(luò)。每排機(jī)架采用EBGP時(shí)的網(wǎng)絡(luò)設(shè)計(jì)如下圖所示。每個(gè)主干或葉子交換機(jī)都有自己的 AS 編號(hào)。
| DC1場(chǎng)景下運(yùn)行EBGP
EOR交換機(jī)部署DC2場(chǎng)景的EBGP設(shè)計(jì)如下圖所示。
| DC2場(chǎng)景下運(yùn)行EBGP
第一排機(jī)架可以分配AS號(hào)AS65000和AS65001,然后每臺(tái)設(shè)備的AS號(hào)依次遞增1。如果在DC中選擇IBGP進(jìn)行VXLAN Overlay路由交換,設(shè)計(jì)會(huì)很簡(jiǎn)單,因?yàn)橹恍枰獮镈C1中的所有設(shè)備分配相同的AS號(hào)。同樣的方法也可以用在DC2中,如下圖所示。
| DC1場(chǎng)景下運(yùn)行IBGP
| DC2場(chǎng)景下運(yùn)行IBGP
12
未來發(fā)展
隨著IPv4地址的枯竭,未來的互聯(lián)網(wǎng)將越來越多地使用IPv6地址。因此,未來的BGP協(xié)議可能會(huì)更好地支持IPv6地址。此外,隨著自動(dòng)化技術(shù)的進(jìn)步,BGP協(xié)議可能會(huì)更加智能化和自動(dòng)化,以便更快速地適應(yīng)網(wǎng)絡(luò)變化。
總的來說,未來的BGP協(xié)議可能會(huì)更加智能、自動(dòng)化和安全,以適應(yīng)不斷變化的互聯(lián)網(wǎng)環(huán)境和用戶需求。
審核編輯 :李倩
-
網(wǎng)絡(luò)安全
+關(guān)注
關(guān)注
10文章
3104瀏覽量
59531 -
路由協(xié)議
+關(guān)注
關(guān)注
1文章
125瀏覽量
29543
原文標(biāo)題:圖解BGP協(xié)議:路由選擇與網(wǎng)絡(luò)安全
文章出處:【微信號(hào):SDNLAB,微信公眾號(hào):SDNLAB】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。
發(fā)布評(píng)論請(qǐng)先 登錄
相關(guān)推薦
評(píng)論