0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線(xiàn)課程
  • 觀(guān)看技術(shù)視頻
  • 寫(xiě)文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

動(dòng)態(tài)路由協(xié)議的基本工作原理 BGP Path Attributes與路由選擇

SDNLAB ? 來(lái)源:云物互聯(lián) ? 2023-07-31 17:00 ? 次閱讀

動(dòng)態(tài)路由協(xié)議

動(dòng)態(tài)路由協(xié)議,用在多個(gè) Router 之間定期的、自動(dòng)的、互相交換 Routes(路由信息,包含了網(wǎng)段信息、可達(dá)性信息、路徑信息等),動(dòng)態(tài)生成 Routing Table Entries,并最終達(dá)到全網(wǎng)的路由收斂,即:理想情況下,一個(gè) Router 總是能夠知道到達(dá) IP Packets 的目標(biāo)網(wǎng)絡(luò)對(duì)應(yīng)的下一跳應(yīng)該如何轉(zhuǎn)發(fā)。并且即便網(wǎng)絡(luò)上的某個(gè) Router 出現(xiàn)了故障,但只要有一個(gè)可繞行的其它路徑,那么其他 Router 的 Table 就會(huì)自動(dòng)設(shè)置,并選擇一個(gè)可達(dá)的路徑。

動(dòng)態(tài)路由協(xié)議的基本工作原理

簡(jiǎn)而言之,動(dòng)態(tài)路由協(xié)議就是 Routers 之間用于交換、計(jì)算和維護(hù)路由表的協(xié)議,其基本工作原理包括 4 個(gè)階段:

鄰居發(fā)現(xiàn)階段:運(yùn)行了相同動(dòng)態(tài)路由協(xié)議的 Routers 之間,首先需要建立一個(gè)用于交換 Routes 的對(duì)等點(diǎn)關(guān)系,這些 Routers 又稱(chēng)為 Neighbor Routers(鄰居路由器)。

路由交換階段:發(fā)現(xiàn)鄰居后,每個(gè) Router 會(huì)主動(dòng)通過(guò)廣播或單薄的方式把自己的 Routes 發(fā)送給 Neighbor Routers。經(jīng)過(guò)一段時(shí)間后,每個(gè)建立了對(duì)等點(diǎn)關(guān)系的 Routers 都擁有了整網(wǎng)的路由信息。

計(jì)算路由階段:每臺(tái) Router 都會(huì)自身的配置,運(yùn)行各自的路由算法,計(jì)算出最終的路由表/樹(shù)。

維護(hù)路由階段:為了感知突發(fā)的網(wǎng)絡(luò)故障(例如;設(shè)備故障或線(xiàn)路中斷等),Neighbor Routers 之間會(huì)發(fā)送周期性的心跳包,當(dāng)心跳包超時(shí)時(shí),就會(huì)認(rèn)為鄰居關(guān)系失效。此時(shí) Router 需要自動(dòng)維護(hù)路由表的更新,將故障路徑移除。

動(dòng)態(tài)路由協(xié)議的類(lèi)型

從應(yīng)用場(chǎng)景角度劃分: IGP(Interior Gateway Protocol,內(nèi)部網(wǎng)關(guān)協(xié)議):作用于同一個(gè) AS(Autonomous System,自治系統(tǒng))內(nèi)部的動(dòng)態(tài)路由協(xié)議。在 AS 內(nèi)的所有 Routers 之間交換 Routes,用于實(shí)現(xiàn) AS 內(nèi)部的 Routers 之間的三層路由可達(dá)性。例如:RIP、OSPF、I-BGP 協(xié)議。 EGP( Exterior Gateway Protocol,外部網(wǎng)關(guān)協(xié)議):作用于不同 AS 之間的的動(dòng)態(tài)路由協(xié)議。在不同 AS 之間的 Edge Routers(邊界路由器)之間交換 Routes,用于實(shí)現(xiàn) AS 之間的路徑選擇,所以也稱(chēng)為路徑控制路由。例如:E-BGP 協(xié)議。

06411914-2f80-11ee-9e74-dac502259ad0.png

從技術(shù)實(shí)現(xiàn)角度劃分

3.Distance Vector(距離矢量類(lèi)型):是一種基于 “距離" 和 “方向" 的動(dòng)態(tài)路由協(xié)議,如下圖所示。該類(lèi)型的路由協(xié)議有:RIP、BGP。

1. 距離:指示了到達(dá)目的網(wǎng)絡(luò)的度量值,即:所要經(jīng)過(guò)路由器的個(gè)數(shù)。

2. 方向:指示了到達(dá)目的網(wǎng)絡(luò)的下一跳設(shè)備。

065f2d96-2f80-11ee-9e74-dac502259ad0.png

Link State(鏈路狀態(tài)類(lèi)型):是一種基于 LSDB(鏈路狀態(tài)數(shù)據(jù)庫(kù))的動(dòng)態(tài)路由協(xié)議。LSDB 中存儲(chǔ)了 一張完整的網(wǎng)絡(luò)拓?fù)鋱D,繪制拓?fù)鋱D的步驟如下。該類(lèi)型的路由協(xié)議有:OSPF、ISIS。

LSA(Link State Advertisement,鏈路狀態(tài)通告)泛洪:LSA Msg 中包含了 Router 已知的接口狀態(tài)、接口 IP 地址、網(wǎng)絡(luò)掩碼、路由開(kāi)銷(xiāo)、網(wǎng)絡(luò)類(lèi)型等信息。每臺(tái) Router 都會(huì)將關(guān)于自身的本地直連鏈路的狀態(tài)信息,以及將關(guān)于所有直連鄰居的路由信息都宣告出去。

LSDB(Link State Database,鏈路狀態(tài)數(shù)據(jù)庫(kù))建立:收到 LSA Msg 的 Router 都會(huì)根據(jù) LSA 提供的信息建立本地的 LSDB,知道收斂后,網(wǎng)絡(luò)中的所有的 LS Router 都應(yīng)該具有了相同的 LSDB。

建立最短路徑樹(shù):Router 在 LSDB 的基礎(chǔ)上使用最短路由優(yōu)先算法進(jìn)行路由計(jì)算,得到一棵以自己為 Root(根)的、無(wú)環(huán)路的、可到達(dá)每個(gè)網(wǎng)絡(luò)的最短路徑樹(shù)。

路由計(jì)算:通過(guò)最短路徑樹(shù)得出到達(dá)每個(gè)目的網(wǎng)絡(luò)的最優(yōu) Routes,并將這些 Routes 加載到 Routing Table 中。

067ffb7a-2f80-11ee-9e74-dac502259ad0.png

可見(jiàn),我們可以簡(jiǎn)單的理解為:Distance Vector 類(lèi)型 Routes 提供的是 “路標(biāo)”,那么 Link State 類(lèi)型 Routes 提供的就是 “地圖”。

常見(jiàn)的動(dòng)態(tài)路由協(xié)議

06bc3ebe-2f80-11ee-9e74-dac502259ad0.png ?

1、RIP(IGP、距離矢量類(lèi)型):是最早期的路由協(xié)議,為小型 IGP 網(wǎng)絡(luò)提供。

配置簡(jiǎn)單;

網(wǎng)絡(luò)收斂慢;

用于小型網(wǎng)絡(luò),現(xiàn)在常見(jiàn)于實(shí)驗(yàn)室環(huán)境。

2、OSPFv3 和 ISIS(IGP、鏈路狀態(tài)類(lèi)型):為大中型 IGP 網(wǎng)絡(luò)提供。

IGP 整網(wǎng)地圖繪制,可以精確的知道網(wǎng)絡(luò)中每一條鏈路的狀態(tài),例如:狀態(tài)是 UP 還是 Down,鏈路的相對(duì)帶寬大小是多少等等。以此來(lái)保證了無(wú)環(huán)路,

使用最短路徑優(yōu)先算法來(lái)計(jì)算到達(dá)所有目的網(wǎng)絡(luò)的最佳路徑。

缺點(diǎn)在于分享的信息太多、太精確,安全性缺失,計(jì)算芯片負(fù)載高。

3、BGPv4(IGP、EGP、距離矢量類(lèi)型):最初為 EGP 廣域網(wǎng)絡(luò)提供,后來(lái)也可用于大型 IGP 網(wǎng)絡(luò)。

作為 EGP 時(shí),使用 AS 的數(shù)量作為距離度量單位,而不是使用 Router 的數(shù)量。

有強(qiáng)大的路徑控制功能,例如:路由策略、路由過(guò)濾,可以對(duì)廣域網(wǎng)的流量實(shí)現(xiàn)優(yōu)化與調(diào)度。

設(shè)計(jì)之初,就是用于容納超大容量的路由條目。

06d03522-2f80-11ee-9e74-dac502259ad0.png

動(dòng)態(tài)路由協(xié)議的性能指標(biāo)

不同的動(dòng)態(tài)路由協(xié)議,具有有不同的特點(diǎn)。常規(guī)的性能指標(biāo)如下:

協(xié)議的路由計(jì)算正確性:杜絕出現(xiàn)路由環(huán)路。由于 Link State 類(lèi)型具有整網(wǎng)地圖,所以比 Distance Vector 類(lèi)型更優(yōu)。

協(xié)議的路由收斂速度:整網(wǎng)路由器的路由表快速達(dá)到一致的狀態(tài)。收斂速度越快,就意味著當(dāng)網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)發(fā)生變化時(shí),路由器能夠更快的感知到,并及時(shí)更新相應(yīng)的路由信息。

協(xié)議所占的系統(tǒng)開(kāi)銷(xiāo):運(yùn)行路由協(xié)議所占用的路由器系統(tǒng)資源,例如:CPU 、內(nèi)存等。Link State 類(lèi)型的開(kāi)銷(xiāo)大于 Distance Vector 類(lèi)型。

協(xié)議適用的網(wǎng)絡(luò)規(guī)模:OSPF 的實(shí)現(xiàn)機(jī)制限定了其可以應(yīng)用在幾百臺(tái)路由器的中大規(guī)模網(wǎng)絡(luò)場(chǎng)景中;而 BGP 理論上能夠管理全世界所有的路由器,其所管理的網(wǎng)絡(luò)規(guī)模大小只受系統(tǒng)資源的限制。

BGP 和 Internet

BGP(Border Gateway Protocol,邊界網(wǎng)關(guān)協(xié)議)是一種被設(shè)計(jì)出來(lái)應(yīng)用于 Internet 中的 Distance Vector 類(lèi)型動(dòng)態(tài)路由協(xié)議,能夠在不同的 AS(Autonomous System,自治系統(tǒng))間交換 Route Informations(路由信息)。因?yàn)?BGP Router 通常被部署在不同的 AS 之間的邊界上,故命名為 “邊界網(wǎng)關(guān)”。

BGP 協(xié)議起源于 1989 年 1 月舉行的第 12 次 IETF 會(huì)議。在那時(shí),由于 Internet 的快速發(fā)展,使得 Internet 中的各種網(wǎng)絡(luò)的數(shù)量(AS 數(shù)量)快速增加,早期的手動(dòng)靜態(tài)路由配置方式顯然已經(jīng)無(wú)法滿(mǎn)足在大量的 AS 之間管理路由信息。因此,會(huì)議上討論的主題就是需要一種新的 EGP 動(dòng)態(tài)路由協(xié)議。

06fb6134-2f80-11ee-9e74-dac502259ad0.png

AS(自治系統(tǒng))是 Internet 的基本定義之一,指的是一個(gè)邏輯上自包含的、自洽的 IP 網(wǎng)絡(luò)系統(tǒng),不同的 AS 之間可能運(yùn)行著各自不同的 IGP 路由協(xié)議。

Internet 上的每個(gè) AS 都具有一個(gè) ASN(AS Number)作為唯一標(biāo)識(shí),全球 ASN 由 IANA(Internet Assigned Numbers Authority,互聯(lián)網(wǎng)分配號(hào)碼管理局)統(tǒng)一管理和分配,共有 1-65535 多個(gè),代碼體現(xiàn)為一個(gè)長(zhǎng)度 16bits 的數(shù)字。其中:

1~64511:是全球唯一的 Internet 編號(hào)。

64512~65535:是自用的編號(hào),作用類(lèi)似于 IP 私網(wǎng)網(wǎng)段。

如下圖所示,每個(gè)在 Internet 上提供網(wǎng)絡(luò)服務(wù)的 AS(例如:運(yùn)營(yíng)商、大學(xué)、政企網(wǎng)絡(luò)等)都需要擁有自己的 AS Number。在 BGP 協(xié)議出現(xiàn)之前,這些 AS 就像是一座座孤島,與外界隔離。IETF 第 12 次會(huì)議的目的就是為了將這些大量的這些 AS 連接起來(lái),其主要成果就是 BGP 協(xié)議。

在會(huì)議結(jié)束后,由 Len Bosack、Kirk Lougheed 和 Yakov Rekhter 等人在餐巾紙上完成了 BGP 協(xié)議的設(shè)計(jì)草稿,為了解決 2 個(gè) AS 之間的互聯(lián)互通問(wèn)題,其最初的設(shè)計(jì)也比較簡(jiǎn)單,歸納為以下 5 個(gè)想法:

為了連接不同的 AS,應(yīng)該在 2 個(gè) AS 中分別部署 Border Gateway Router(邊界網(wǎng)關(guān)路由器),由它們專(zhuān)門(mén)負(fù)責(zé)在不同的 AS 之間交換 Routes。

為了避免在多個(gè) AS 之間形成路由環(huán)路,應(yīng)該在 Routes 中包含特定的 Path Attribute(路徑屬性),以此來(lái)確定 AS 之間的最優(yōu)路徑。

為了在 WAN 中可靠的交換 Routes,應(yīng)該使用 TCP 作為傳輸層協(xié)議。

為了減少全球 Border Gateway Router 之間需要交換的海量 Routes,應(yīng)該采用增量同步的交換方式。

使用 TLV(Type-Length-Value)數(shù)據(jù)編碼方式來(lái)定義 Message 的數(shù)據(jù)結(jié)構(gòu),使其擁有更好的功能可擴(kuò)展性。

最終在 1989 年 6 月發(fā)布了 RFC1105 BGPv1 標(biāo)準(zhǔn)。經(jīng)過(guò)多年的發(fā)展后,現(xiàn)如今被廣泛應(yīng)用的是 BGPv4 版本,已經(jīng)具有了以下完備的功能特性:

支持 IPv4 和 IPv6;

支持 CIDR(Classless Inter-Domain Routing);

支持 Multi-Path(多路徑),提高網(wǎng)絡(luò)的可用性和容錯(cuò)能力;

支持 BGP Confederations(聯(lián)盟);

支持 BGP Route-Reflectors(路由反射器);

支持 BGP Community(團(tuán)體屬性);

支持 BGP Route Dampening(路由懲罰);

支持 BGP MP(Multi-protocols Extensions,多協(xié)議擴(kuò)展);

支持 Capability Advertisement(能力通告);

支持 BGPSEC 安全協(xié)議;

等等。

079e2202-2f80-11ee-9e74-dac502259ad0.png ?

雖然 BGP 最初定位于 EGP 場(chǎng)景,將 AS 作為距離度量單位,并通過(guò)強(qiáng)大的路由控制手段(例如:路由策略、路由過(guò)濾)來(lái)計(jì)算出 AS 之間的最佳路徑。后來(lái),隨著 BGP 優(yōu)秀的可擴(kuò)展性也逐漸完善了在 IGP 場(chǎng)景中的應(yīng)用,支持將 AS 內(nèi)部的 Routers 作為距離度量單位,支持在一個(gè)大規(guī)模的 AS 內(nèi)的所有 Router 之間發(fā)現(xiàn)、通告和計(jì)算 Routes。

區(qū)別于 OSPF、ISIS 等 Link State 類(lèi)型路由協(xié)議,BGP 在大規(guī)模的 IGP 場(chǎng)景中能夠基于強(qiáng)大的路由控制特性提供更好的網(wǎng)絡(luò)穩(wěn)定性(路由計(jì)算準(zhǔn)確性高、路由收斂速度快)。

舉例來(lái)說(shuō),在大規(guī)模 IGP 組網(wǎng)中,任何路由節(jié)點(diǎn)發(fā)生故障時(shí),OSPF 和 ISIS 都會(huì)引發(fā)整網(wǎng)的鏈路狀態(tài)信息的泛洪和 LSDB 信息更新,然后在此基礎(chǔ)上完成路由收斂。而 BGP 則只需要在特定的路有節(jié)點(diǎn)間通告路由,并通過(guò)增量同步的方式刷新路由信息,同時(shí)還具有路由域分區(qū)獨(dú)立,故障域可控等優(yōu)勢(shì)。

BGP Router 和 Routes

BGP 組網(wǎng)的核心就是 BGP Router,實(shí)現(xiàn)了 BGP 協(xié)議標(biāo)準(zhǔn)。能夠?qū)ν?Advertise(發(fā)布)BGP Msg 的 BGP Router,稱(chēng)為 BGP Speaker(宣告者)。

建立了 BGP Connection/Session 并互相交換 BGP Msg 的 Speaker 之間互稱(chēng)為 BGP Peers(對(duì)等體),根據(jù)應(yīng)用場(chǎng)景的不同,又可以細(xì)分為 I-BGP Peer 和 E-BGP Peer,同時(shí)若干相關(guān)的 Peer 還可以構(gòu)成一個(gè) Peer Group(對(duì)等體組)。

而 BGP Routes 就被包含了專(zhuān)門(mén)的 BGP Update Msg 類(lèi)型中。所以,BGP 協(xié)議實(shí)際上是一種承載在 TCP 協(xié)議之上的應(yīng)用層協(xié)議。

07d92c6c-2f80-11ee-9e74-dac502259ad0.png ?

一個(gè) Router 最基本的組成部分就是 RIBs(Routing Information Base)和 FIB(Forwarding Information Base)Table,前者負(fù)責(zé) Control Plane 的路由選擇,后者負(fù)責(zé) Data Plane 的報(bào)文轉(zhuǎn)發(fā)。 更具體的,BGP Router 的 RIB 由以下部分構(gòu)成:

Adj-RIBs-In:用于存儲(chǔ)從 BGP Peers 接收到的 Update Msg 中所攜帶的 Routes?;蛘吒鶕?jù) Update Msg 中的 WITHDAWN Route 在 Adj-RIBs-In 中刪除相關(guān)條目。并在此后交由 Input Policy 處理。

Input Policy:當(dāng) Adj-RIBs-In 存儲(chǔ)了從 BGP Peer 傳遞過(guò)來(lái)的 Routes 時(shí),會(huì)根據(jù)本地的 Input Policy 并結(jié)合 Local RIB 中的內(nèi)容來(lái)判斷是否接受,只有滿(mǎn)足路由策略的 Routes 才會(huì)被寫(xiě)入到 Router 的 RIB。例如:如果 BGP Router 收到 2 條 Routes,它們的目的網(wǎng)絡(luò)一樣,但是路徑不一樣,一個(gè)是 AS1=>AS3=>AS5,另一個(gè)是 AS1=>AS2。那么,通常情況下,Router 會(huì)優(yōu)先選用路徑短的 AS1=>AS2 這條 Route。

BGP Selection Process(路徑?jīng)Q策進(jìn)程):再將 Routes 寫(xiě)入 Local RIB 之前,還需要經(jīng)過(guò) BGP Selection Process 進(jìn)行處理。例如:將自己的 AS Number 注入到 Route 中,將 Next hop 改為自己,并將自己加入到 Path Attribute 中,形成一條新的可達(dá)信息。在這之后,這條信息會(huì)繼續(xù)向其他 Peers 宣告,使得其他 Peers 知道可以通過(guò) Next hop 到當(dāng)前 Router,并最終到達(dá)目的網(wǎng)絡(luò)。

Local RIB:用于存儲(chǔ) BGP Selection Process 的處理結(jié)果,同時(shí)某些本地路徑也可以注入到 Local RIB 中。這些結(jié)果將用于生成 Local Route Table。

Output Policy:BGP Router 通過(guò) Output Policy 來(lái)控制那些 Routes 是需要且允許對(duì)外進(jìn)行宣告的。Local RIB 存儲(chǔ)的結(jié)果在進(jìn)行了一些 Output Policy 處理后,再把允許輸出的 Routes 存儲(chǔ)到 Adj-RIB-Out 中。

Adj-RIB-Out:最終 BGP Router 根據(jù) Adj-RIB-Out 的結(jié)果向其它 Peers 發(fā)送 Update Msg。

另外,如果 BGP Router 收到的一條 Route 的 Path Attribute 中包含了自己的 AS Number,那么 Router 就會(huì)判定為這是一條自己發(fā)出的 Route,就會(huì)將這條 Route 丟棄掉。

07ff0d60-2f80-11ee-9e74-dac502259ad0.png ?

BGP Message 類(lèi)型和格式

BGP Message(消息),由 Header 和 Data 這兩部分組成,最大長(zhǎng)度為 4096Bytes。BGP Message 類(lèi)型和格式的細(xì)節(jié)有很多,具體建議瀏覽相應(yīng)的 RFC 文檔,下面只作概括性的介紹。

0856fde0-2f80-11ee-9e74-dac502259ad0.png

BGP Msg Header

08739626-2f80-11ee-9e74-dac502259ad0.png ?

所有 BGP Msg Header 的格式都一樣,共有 19Bytes。

Marker(16Bytes):記錄著同步信息和加密信息,用于檢查 BGP Peer 的同步信息是否完整,以及用于 BGP 驗(yàn)證的計(jì)算。不使用驗(yàn)證時(shí)為全 1。

Length(2Bytes):記錄 BGP Msg 的總長(zhǎng)度,長(zhǎng)度范圍是 19~4096。

Type(1Byte):表示當(dāng)前 BGP Msg Data 的類(lèi)型。其取值從 1 到 5,分別表示下列消息類(lèi)型:

Open Msg:用于對(duì)等體參數(shù)協(xié)商;

Keepalive Msg:用于維護(hù)對(duì)等體鄰居關(guān)系;

Update Msg:用于通告可達(dá)路由和不可達(dá)路由;

Notification Msg:用于錯(cuò)誤信息通告,斷開(kāi)對(duì)等體鄰居;

Route-refresh:用于請(qǐng)求對(duì)等體重新發(fā)送路由信息。

BGP Msg Data

Open Msg Open Msg 是 TCP connection 建立后發(fā)送的第一個(gè) BGP Msg 類(lèi)型,用于建立 BGP Peers 之間的 Session 關(guān)系。

Version:指示 BGP 協(xié)議版本,通常為 4;

My AS:指示本地的 AS Number;

Hold Time(保持時(shí)間):在建立 BGP Peer 關(guān)系時(shí)雙方需要協(xié)商保持時(shí)間,如果在這段時(shí)間內(nèi)未收到對(duì)端發(fā)來(lái)的 Keepalive Msg 和 Update Msg,則認(rèn)為 BGP 連接中斷了;

BGP Identifier:BGP 標(biāo)識(shí)符,IP 地址形式,用來(lái)識(shí)別一個(gè) BGP Router。

08ad4e48-2f80-11ee-9e74-dac502259ad0.png

Keepalive Msg

Keepalive Msg 用于檢測(cè)和維護(hù) BGP Session 的健康狀況,BGP Peers 之間會(huì)周期性地發(fā)出 Keepalive Msg,用來(lái)保持 Session 的有效性。

08d249aa-2f80-11ee-9e74-dac502259ad0.png ?

Update Msg

Update Msg 用于在 BGP Peers 之間交換 Routes,它既可以用于發(fā)布 Routes,也可以用于撤銷(xiāo)不可達(dá)的 Routes。

Update Msg 是最關(guān)鍵的 BGP Msg 類(lèi)型之一,BGP Routers 的 NLRI(Network Layer Reachability Information,網(wǎng)絡(luò)層可達(dá)性信息)和 Path Attribute(路徑屬性)都被包含在里面。

Withdrawn Routes Length:指示 Withdrawn Routes 字段的長(zhǎng)度。其值為零時(shí),表示沒(méi)有需要撤銷(xiāo)的路由。

Withdrawn Routes:指示需要撤銷(xiāo)的路由。

Total path attribute length:指示 Path Attributes 字段的長(zhǎng)度。

Path Attributes:BGP Router 使用 Path Attribute 來(lái)確定前往目的地的最佳路徑。

NLRI:BGP Router 使用 NLRI 中的 IP Prefixes(網(wǎng)絡(luò)前綴)信息來(lái)完成路由分發(fā)。

093daa06-2f80-11ee-9e74-dac502259ad0.png ?

兩個(gè) AS 的 BGP Router 之間通過(guò) Update Msg 交換各自的網(wǎng)絡(luò)信息,包括:IP Prefix、子網(wǎng)掩碼和其他網(wǎng)絡(luò)相關(guān)信息。

095b593e-2f80-11ee-9e74-dac502259ad0.png ?

Notification Msg

Notification Msg 用于 BGP Router 運(yùn)維信息的通知,例如:當(dāng) BGP Router 檢測(cè)到錯(cuò)誤狀態(tài)時(shí),就會(huì)向 Peer 發(fā)出 Notification Msg,并中斷 BGP Session。

Error Code、Error Subcode:指示錯(cuò)誤碼、錯(cuò)誤子碼,用于描述錯(cuò)誤類(lèi)型;

Data:具體的錯(cuò)誤內(nèi)容。

0987f250-2f80-11ee-9e74-dac502259ad0.png ?

Route-refresh Msg

Route-refresh Msg 用于要求 BGP Peer 重新發(fā)送指定地址族的 Routes,常用于實(shí)現(xiàn)路由刷新。

通常的,在 BGP Router 改變了自身的路由策略(Input/Output Policy)后就會(huì)請(qǐng)求 BGP Peers 重新發(fā)送 Routes。以此來(lái)實(shí)現(xiàn) Peers 之間動(dòng)態(tài)的交換路由刷新請(qǐng)求,并在后續(xù)的過(guò)程中使相關(guān)的 Adj-RIB-Out 重新通告路由。

09a15f1a-2f80-11ee-9e74-dac502259ad0.png

BGP Msg 狀態(tài)機(jī)

09d327ac-2f80-11ee-9e74-dac502259ad0.png

Idle(空閑狀態(tài)):為初始狀態(tài),該狀態(tài)下,BGP Router 拒絕 Peer 發(fā)送的連接請(qǐng)求。只有在收到本設(shè)備的 Start 事件后,BGP Router 才開(kāi)始嘗試和其它 BGP Peers 進(jìn)行 TCP Connection,并轉(zhuǎn)至 Connect 狀態(tài)。

Start 事件是用戶(hù)配置或重配置一個(gè) BGP 連接時(shí)觸發(fā)的。

另外,無(wú)論 BGP 處于任何狀態(tài)中,當(dāng)收到 Notification Msg 或 TCP 拆鏈通知等 Error 事件后,BGP 都會(huì)轉(zhuǎn)至 Idle 狀態(tài)。

Connect(連接狀態(tài)):BGP Router 啟動(dòng) Connect Retry(連接重傳定時(shí)器),等待 TCP Connection 完成。

如果 TCP 連接成功,那么 BGP Router 向 Peer 發(fā)送 Open Msg,并轉(zhuǎn)至 OpenSent 狀態(tài);

如果 TCP 連接失敗,那么 BGP Router 轉(zhuǎn)至 Active 狀態(tài)。

如果 Connect Retry 超時(shí),BGP 仍沒(méi)有收到 Peer 的響應(yīng),那么 BGP Router 會(huì)繼續(xù)嘗試和其它 BGP Peer 進(jìn)行 TCP 連接,停留在 Connect 狀態(tài)。

Active(行動(dòng)狀態(tài)):該狀態(tài)下 BGP Router 總是在試圖與鄰居建立 TCP Connection。

如果 TCP 連接成功,那么 BGP Router 向 Peer 發(fā)送 Open Msg,并關(guān)閉 Connect Retry,然后轉(zhuǎn)至 OpenSent 狀態(tài)。

如果 TCP 連接失敗,那么 BGP Router 停留在 Active 狀態(tài)。

如果 Connect Retry 超時(shí),BGP 仍沒(méi)有收到 Peer 的響應(yīng),那么就轉(zhuǎn)到 Connect 狀態(tài)。

OpenSent(發(fā)送狀態(tài)):BGP Router 等待 Peer 的 Open Msg,并對(duì)收到的 Open Msg 中攜帶的 AS Numer、Version、認(rèn)證碼等字段進(jìn)行檢查。如果收到的 Open Msg 正確,那么 BGP Router 發(fā)送 Keepalive Msg,并轉(zhuǎn)至 OpenConfirm 狀態(tài)。

OpenConfirm(確認(rèn)狀態(tài)):BGP Router 等待 Keepalive 或 Notification Msg。

如果收到 Keepalive Msg,則轉(zhuǎn)至 Established 狀態(tài);

如果收到 Notification Msg,則轉(zhuǎn)至 Idle 狀態(tài)。

Established(連接建立狀態(tài)):BGP Router 建立了鄰居關(guān)系后,就可以和 Peer 交換 Update、Keepalive、Route-refresh、Notification Msg 了。如果收到 Update 或 Keeplive Msg,則繼續(xù)保持該狀態(tài);如果收到 Notification Msg,則遷移到 Idle 狀態(tài)。

更具體的狀態(tài)機(jī)流程如下圖所示。

0a17efea-2f80-11ee-9e74-dac502259ad0.png ?

BGP Path Attributes 與路由選擇

這里單獨(dú)展開(kāi) BGP Update Msg 中的 Path Attributes 與 BGP Router 進(jìn)行路由選擇之間的關(guān)系??傮w而言,BGP Path Attributes 可以分為以下 4 大類(lèi)型。

公認(rèn)必遵屬性(Well-known mandatory)

是所有的 BGP Router 都能夠識(shí)別該屬性,并且必須出現(xiàn)在所有 Update Msg 中。包括:

ORIGIN(源頭):指出了 BGP Routes 的來(lái)源,用于判斷 Routes 的可信度,Router 會(huì)根據(jù) ORIGIN 屬性作為路由決策的參考??梢允且韵?3 種值,在路由選擇的時(shí)候,IGP 優(yōu)于 EGP,EGP 優(yōu)于 INCOMPLETE。

IGP:表示網(wǎng)絡(luò)層可達(dá)信息來(lái)源于 AS 內(nèi)部。

EGP:表示網(wǎng)絡(luò)層可達(dá)信息通過(guò) AS 外部學(xué)習(xí)。

INCOMPLETE:表示網(wǎng)絡(luò)層可達(dá)信息來(lái)源無(wú)法確定。

AS_PATH(AS 路徑):它通過(guò)一種 Record-Route(記錄路由)的方式,記錄了一個(gè) IP Prefix(路由前綴)在傳遞過(guò)程中所經(jīng)過(guò)了的 AS。采用 AS_SEQUENCE 方式表示,即該路由經(jīng)過(guò)的 AS 的有序集合。當(dāng) BGP 發(fā)布者發(fā)布路由給 IBGP 對(duì)等體時(shí),BGP 不修改路由的 AS_PATH 屬性。當(dāng) BGP 發(fā)布者發(fā)布路由給 EBGP 對(duì)等體時(shí),本地系統(tǒng)應(yīng)該把自己的 AS 號(hào)作為序列的最后一個(gè)元素加在序列的最后面。所以,AS_PATH 可以用來(lái)作為路由選路的一種度量。經(jīng)過(guò)更少 AS 路徑的路由更優(yōu)先。

同時(shí),AS_PATH 也作為一種手段來(lái)避免環(huán)路。如果 BGP 路由信息發(fā)布者從 E-BGP 對(duì)等體收到一條路由,它的 AS_PATH 包含發(fā)布者自己的 AS 號(hào),就說(shuō)明這條路由曾經(jīng)從本 AS 發(fā)出過(guò),將其丟棄,同時(shí)不再進(jìn)行轉(zhuǎn)發(fā)。基于上述機(jī)制,AS_PATH 屬性可以避免 AS 之間的路由環(huán)路的出現(xiàn),AS 內(nèi)部的路由環(huán)路的避免則采用其他手段來(lái)實(shí)現(xiàn)。

NEXT_HOP(下一跳):表示目的網(wǎng)絡(luò)所使用的下一跳路由器的 IP 地址。如果是發(fā)布給 EBGP 對(duì)等體,NEXT_HOP 填寫(xiě) BGP 發(fā)布者的 IP 地址。如果是發(fā)布給 IBGP 對(duì)等體,且路由來(lái)自 AS 外部,則 NEXT_HOP 保留原始的 AS 外部對(duì)等體的 IP 地址。

公認(rèn)可選屬性(Well-known discretionary)

是所有的 BGP Router 都能夠識(shí)別該屬性,但可以不出現(xiàn)在 Update Msg 中。包括:

LOCAL_PREF(Local Preference,本地優(yōu)先級(jí)):Update Msg 可以攜帶這個(gè)屬性并將其發(fā)給 I-BGP 鄰居,用于 AS 內(nèi)部的 BGP Router 作為參考,具有較高的 LOCAL_PREF 值的 Routes 將在路由選擇過(guò)程中被優(yōu)先考慮。僅在 I-BGP 對(duì)等體之間交換,不通告給其他 AS。當(dāng) BGP 的路由器通過(guò)不同的 IBGP 對(duì)等體得到目的地址相同但下一跳不同的多條路由時(shí),將優(yōu)先選擇 LOCAL_PREF 屬性值較高的路由。如下圖所示,Router B 和 Router C 發(fā)給 Router D 的關(guān)于 8.0.0.0 的路由攜帶不同的 LOCAL_PREF 值,從而引導(dǎo)從 AS 20 到 AS 10 的流量將選擇 Router C 作為出口。

0a8cf51a-2f80-11ee-9e74-dac502259ad0.png

ATOMIC_AGGREGATE(原子聚合):當(dāng) BGP Router 進(jìn)行路由聚合時(shí),由于會(huì)產(chǎn)生一條新的聚合路由,因此精細(xì)路由所攜帶的 AS-path 屬性將會(huì)在聚合時(shí)被丟失。用來(lái)通告路由接收者,該路由是經(jīng)過(guò)聚合的。有時(shí) BGP 發(fā)布者會(huì)收到兩條重疊的路由,其中一條路由包含的地址是另一條路由的子集。一般情況下 BGP 發(fā)布者會(huì)優(yōu)選更精細(xì)的路由(前者),但是在對(duì)外發(fā)布時(shí),如果它選擇發(fā)布更粗略的那條路由(后者),這時(shí)需要附加上 ATOMIC_AGGREGATE 屬性,以知會(huì)對(duì)等體。它實(shí)際上是一種警告,因?yàn)榘l(fā)布更粗略的路由意味著更精細(xì)的路由信息在發(fā)布過(guò)程中丟失了。在進(jìn)行路由聚合時(shí),對(duì)于聚合的路由信息會(huì)添加 ATOMIC_AGGREGATE 屬性。

可選傳遞屬性(Optional transitive)

不要求所有 BGP Router 都能識(shí)別,但即使不能識(shí)別也會(huì)傳遞該屬性。包括: AGGREGATOR(聚合站點(diǎn)):可以包含在產(chǎn)生聚合路由的 Update Msg 中,通過(guò)攜帶發(fā)送 Update Msg 的 Router 的 BGP-ID,以此來(lái)告知進(jìn)行了路由聚合通告的 Router 的標(biāo)識(shí)。是 ATOMIC_AGGREGATE 屬性的補(bǔ)充。ATOMIC_AGGREGATE 是一種路由信息丟失的警告,AGGREGATOR 屬性補(bǔ)充了路由信息在哪里丟失,即它包含了發(fā)起路由聚合的 AS 號(hào)碼和形成聚合路由的 BGP 發(fā)布者的 IP 地址。在進(jìn)行路由聚合時(shí),當(dāng)對(duì)于聚合的路由信息同添加 ATOMIC_AGGREGATE 屬性的同時(shí),會(huì)添加 AGGREGATOR 屬性。

Community(共同體):在 RFC1997 和 RFC1998 中定義,用于對(duì) Routes 進(jìn)行分組管理。通常在制定路由策略時(shí)會(huì)對(duì)一系列的 IP Prefix 進(jìn)行控制,例如:對(duì)從某個(gè) AS 來(lái)的 Routes 進(jìn)行特殊處理等?;谶@樣的原因,可以通過(guò)在 Update Msg 中攜帶 Community 屬性來(lái)進(jìn)行相關(guān)的路由策略管理。例如:ISP 可以為某個(gè)特定的用戶(hù)分配一個(gè) Community 屬性值,此后該 ISP 就可以基于 Community 值來(lái)設(shè)置專(zhuān)門(mén)的 LOCAL_PREF 或者 MED 等屬性來(lái)完成路由策略的控制。團(tuán)體屬性用來(lái)簡(jiǎn)化路由策略的應(yīng)用和降低維護(hù)管理的難度,沒(méi)有物理上的邊界,與其所在的 AS 無(wú)關(guān)。公認(rèn)的團(tuán)體屬性有:

INTERNET:缺省情況下,所有的路由都屬于 Internet 團(tuán)體。具有此屬性的路由可以被通告給所有的 BGP 對(duì)等體。

NO_EXPORT:具有此屬性的路由在收到后,不能被發(fā)布到本地 AS 之外。如果使用了聯(lián)盟,則不能被發(fā)布到聯(lián)盟之外,但可以發(fā)布給聯(lián)盟中的其他子 AS。

O_ADVERTISE:具有此屬性的路由被接收后,不能被通告給任何其他的 BGP 對(duì)等體。

NO_EXPORT_SUBCONFED:具有此屬性的路由被接收后,不能被發(fā)布到本地 AS 之外,也不能發(fā)布到聯(lián)盟中的其他子 AS。

可選非傳遞屬性(Optional non-transitive)

不要求所有 BGP Router 都能識(shí)別,不識(shí)別該屬性就會(huì)丟棄該 Msg。包括:

0a9f2fa0-2f80-11ee-9e74-dac502259ad0.png

ORIGINATOR_ID:用于標(biāo)識(shí)路由反射器,為了防止引入路由反射器之后出現(xiàn)環(huán)路,增加 ORIGINATOR_ID 這個(gè)屬性來(lái)標(biāo)識(shí),反射器在發(fā)布路由時(shí)加入 ORIGINATOR_ID,當(dāng)反射器收到的路由信息中的 ORIGINATOR_ID 就是自己的 ROUTER_ID 時(shí),就可以發(fā)現(xiàn)路由環(huán)路的出現(xiàn),將該路由丟棄,不再轉(zhuǎn)發(fā)。

CLUSTER_ID:用于標(biāo)識(shí)路由反射器組,用來(lái)防止環(huán)路,在路由經(jīng)過(guò)路由反射器時(shí)路由反射器會(huì)將自己的 CLUSTER_ID 添加到路由攜帶的 CLUSTER_LIST 中,當(dāng)路由反射器發(fā)現(xiàn)接收的路由的 CLUSTER_LIST 中包含有自己的 CLUSTER_ID,則將該路由丟棄,不再轉(zhuǎn)發(fā)。

路由選擇原則

0ab6d010-2f80-11ee-9e74-dac502259ad0.png ?

如上圖所示,在一個(gè) Internet 中具有 6 個(gè) AS。如果此時(shí) AS1 需要向 AS3 路由一個(gè) IP 數(shù)據(jù)包,那么它有兩種不同的路徑:

AS2 → AS3

AS6 → AS5 → AS4 → AS3

在這個(gè)簡(jiǎn)化的示例中,路由選擇顯然傾向于路徑 1,它是最快、最高效的路由。然而在實(shí)際現(xiàn)網(wǎng)中,則基于 Path Attribute 的影響,BGP Router 進(jìn)行具體的路由選擇時(shí),通常遵守下述規(guī)則:

權(quán)重:首選 Weight 值最高的。

本地優(yōu)先級(jí):如果 Weight 相同,選擇 local-preference 最高的。

本地始發(fā):如果 local-preference 相同,選擇本地發(fā)出的 Route(Next-hop=0.0.0.0),優(yōu)于從 Peer 學(xué)習(xí)到的。

AS 路徑長(zhǎng)度:如果沒(méi)有當(dāng)前路由器通告的路由,選擇 AS-path 最短的。

源地屬性(Origin):如果 AS-path 相同,選擇 Origin 最優(yōu)的(IGP > EGP > 不完全)。

MED:如果 Origin 相同,選擇 MED 最低的。

E-BGP over IBGP:如果 MED 相同,則 E-BGP 優(yōu)于 I-BGP。

E-BGP 到達(dá)順序:若都是 E-BGP,選擇優(yōu)先到達(dá)的。

I-BGP 下一跳開(kāi)銷(xiāo):若都是 I-BGP,選擇下一跳最近的。

集群列表(Cluster list):優(yōu)先選擇最短的 cluster-list,僅適用于 RR(路由反射器)客戶(hù)端。

Router ID:首選 BGP 鄰居的 Router-id 最小的。

對(duì)等體 IP 地址最小長(zhǎng)度:如果 Router-id 相同,選擇鄰居 IP 地址最小的。

BGP RR(Route-Reflectors,路由反射器)

在 BGP RR(Route-Reflectors,路由反射器)標(biāo)準(zhǔn)被提出之前,采用的是 BGP Full Mesh 組網(wǎng)拓?fù)?,即:每一個(gè) BGP Speaker 都需要和其他 BGP Speaker 建立 BGP Session。這樣全網(wǎng)中 BGP Session 的總數(shù)就是 N^2,如果 BGP Cluster 的規(guī)模超過(guò)了 100 臺(tái),就會(huì)對(duì)設(shè)備造成非常大的配置和處理壓力。因此 Tony Bates 和 Ravi Chandra 在 1996 年 6 月提出了《RFC1966: Route Reflector》標(biāo)準(zhǔn)。

BGP RR 通過(guò)指定少量的(一個(gè)或多個(gè))高性能 BGP Speaker 作為 RR,由它們與網(wǎng)絡(luò)中其他 BGP Router 建立 BGP Session,并負(fù)責(zé)將 Routes 信息反射給所有建立連接的 Peers。每個(gè) BGP Router 只要成為了 RR 的 Peer 之后,即可獲得全網(wǎng)的 Routes 信息,以此來(lái)有效減輕 Cluster 的配置壓力。目前 BGP RR 已經(jīng)被廣泛應(yīng)用在 I-BGP 和 E-BGP 場(chǎng)景中,例如:Kubernetes Calico CNI 等。

0ae90602-2f80-11ee-9e74-dac502259ad0.png

為了保證 RR 方案的簡(jiǎn)潔性和支持平滑升級(jí),RR 標(biāo)準(zhǔn)引入了一些新的概念。比如,當(dāng)一個(gè) BGP Speaker 被配置為 RR 后,它會(huì)將 BGP 鄰居分為 2 類(lèi):

Client Peer

Non-Client Peer

并且在宣告路由時(shí)遵循以下規(guī)則:

當(dāng)收到一個(gè)來(lái)自 Non-Client Peer 的 I-BGP Update Msg 后,該 Route 將會(huì)反射到所有的 Client Peer。

當(dāng)收到一個(gè)來(lái)自 Client Peer 的 I-BGP Update Msg 后,該 Route 將會(huì)反射到所有的 Client Peer 和 Non-Client Peer。

當(dāng)收到一個(gè)來(lái)自 E-BGP Update Msg 后,該 Route 將會(huì)反射到所有的 Client 和 Non-Client Peer。

BGP MP(Multi-protocols Extensions,多協(xié)議擴(kuò)展)

最初的 BGPv1 只能管理 IPv4 協(xié)議和單播路由,后來(lái)為了讓 BGP 支持更多的協(xié)議類(lèi)型(e.g. IPv6)和路由類(lèi)型(e.g. 多播),在《RFC 4760: Multiprotocol Extensions for BGP-4》中定義了 BGP MP 標(biāo)準(zhǔn)。支持 MP 的 BGP Router 又稱(chēng)為 MP-BGP Router(多協(xié)議 BGP 路由器)。

BGP MP 的實(shí)現(xiàn)思路是,在 Update Msg 的 TLV 編碼格式的基礎(chǔ)上,對(duì) NLRI 字段進(jìn)行擴(kuò)展,添加了協(xié)議類(lèi)型字段和子網(wǎng)前綴字段,用來(lái)描述不同協(xié)議類(lèi)型和路由類(lèi)型信息。同時(shí),為了區(qū)分 NLRI 中的多種協(xié)議類(lèi)型和路由類(lèi)型,還分別引入了 AFI(Address Family Identifier,地址族標(biāo)識(shí))和 SAFI(Subsequent Address Family Identifier,子地址族標(biāo)識(shí))的概念。

0b40eee4-2f80-11ee-9e74-dac502259ad0.png

通過(guò)這樣的方式,BGP MP 的可擴(kuò)展性得到了極大的增強(qiáng),使得 BGP 已經(jīng)不僅僅是一個(gè)單純的動(dòng)態(tài)路由協(xié)議,而是可以被設(shè)計(jì)用于支持一些新型的應(yīng)用場(chǎng)景,例如:IPv6 單播地址族、MPLS VPN 地址族、EVPN VxLAN 地址族等等。

更具體的,MP-BGP 支持了以下多種協(xié)議類(lèi)型:

IPv4 地址族:用于路由 IPv4 地址,是 BGP 的最原始地址族。

IPv6 地址族:用于路由 IPv6 地址。

VPNv4 地址族:用于 MPLS VPN 的 IPv4 路由。

VPNv6 地址族:用于 MPLS VPN 的 IPv6 路由。

L2VPN EVPN 地址族:用于 EVPN 的路由。

IPv4 Flow Label 地址族:用于標(biāo)識(shí) IPv4 Flow 的標(biāo)簽路由。

IPv6 Flow Label 地址族:用于標(biāo)識(shí) IPv6 Flow 的標(biāo)簽路由。

以及支持了下列多種路由類(lèi)型:

Unicast(單播路由類(lèi)型):表示路由信息的目的地址只有一個(gè)。

Multicast(多播路由類(lèi)型):表示路由信息的目的地址有多個(gè)。

Flow(流路由類(lèi)型):它是一種帶有源地址和目的地址的路由類(lèi)型,用于 MPLS 標(biāo)簽轉(zhuǎn)發(fā)流量工程。

下圖為一個(gè) MPLS VPN 場(chǎng)景中的 BGP MP Update Msg 示例。

0b57d8b6-2f80-11ee-9e74-dac502259ad0.png ?

BGP Link-state

BGP-LS(BGP Link-state)是一種網(wǎng)絡(luò)拓?fù)湫畔⑻崛〖夹g(shù),用于匯總跨域(Area)或跨 AS 間的若干個(gè) IGP 網(wǎng)絡(luò)拓?fù)湫畔⒉⑸蠄?bào)給集中控制器。

BGP-LS 最初在 RFC 7752 中被定義,是一個(gè)可選的、非必需傳遞的 BGP 擴(kuò)展。擴(kuò)展了 BGP 使其可以攜帶與 SR 和性能參數(shù)相關(guān)的附加信息。BGP-LS 標(biāo)準(zhǔn)包含兩部分:

BGP NLRI

BGP Path Attribute

在 BGP-LS 誕生之前,路由器可以通過(guò)使用 IGP 路由協(xié)議(e.g. OSPF、IS-IS)來(lái)收集網(wǎng)絡(luò)的拓?fù)湫畔ⅰ_@種拓?fù)湫畔⑻崛》绞?,存在以下幾點(diǎn)不足:

IGP 協(xié)議將各個(gè) Area 的拓?fù)湫畔为?dú)上送給上層控制器,在跨 IGP Area 的場(chǎng)景中,控制器無(wú)法得到完整的拓?fù)湫畔?,所以也無(wú)法計(jì)算出跨 Area 的端到端最優(yōu)路徑;

要求控制器支持 IGP 協(xié)議及其算法;

控制器需要支持不同的 IGP 協(xié)議,導(dǎo)致控制器對(duì)拓?fù)湫畔⒌姆治鎏幚磉^(guò)程比較復(fù)雜。

BGP-LS 就是為了解決上述問(wèn)題而誕生的。通過(guò) BGP-LS,會(huì)把 IGP 協(xié)議發(fā)現(xiàn)的拓?fù)湫畔⒍紖R總到 BGP 協(xié)議并上報(bào)給控制器。利用 BGP 協(xié)議強(qiáng)大的選路和算路能力,具有了以下幾點(diǎn)優(yōu)勢(shì):

BGP 協(xié)議可以匯總跨 IGP AS 域的拓?fù)湫畔ⅲ苯訉⑼暾耐負(fù)湫畔⑸纤徒o控制器,有利于路徑選擇和計(jì)算;

不要求控制器實(shí)現(xiàn) IGP 協(xié)議及其算法;

控制器僅僅需要支持 IGP 協(xié)議即可。

BGP-LS Route Msg

BGP-LS 實(shí)現(xiàn)了 3 中 Routes,分別用來(lái)攜帶 Nodes、Links 和 Prefix(路由前綴)信息。3 種 Routes 相互配合,共同完成拓?fù)湫畔⒌奶崛 ?

Node Route

Node Route 用于記錄網(wǎng)絡(luò)拓?fù)渲械墓?jié)點(diǎn)信息。

Route 格式示例: [NODE][ISIS-LEVEL-1][IDENTIFIER0][LOCAL[as100][bgp-ls-identifier11.1.1.2][ospf-area-id0.0.0.0][igp-router-id0000.0000.0001.00]] Route 字段含義:

NODE:標(biāo)識(shí)此 BGP-LS Route 是 Node Route 類(lèi)型。

ISIS-LEVEL-1:標(biāo)識(shí)收集拓?fù)湫畔⒌?IGP 協(xié)議類(lèi)型為 ISIS。

IDENTIFIER0:該 IGP 協(xié)議類(lèi)型中的 Node Routes 的唯一標(biāo)識(shí)。

LOCAL:標(biāo)識(shí)該 Node Route 為 Local Node 的信息。

AS:標(biāo)識(shí) BGP-LS 的 AS Number。

bgp-ls-identifier:標(biāo)識(shí) BGP-LS 的區(qū)域。

ospf-area-id:標(biāo)識(shí) OSPF 的區(qū)域。

igp-router-id:IGP 協(xié)議的 Router ID,由收集拓?fù)湫畔⒌?IGP 協(xié)議產(chǎn)生。

Link Route

Link Route 用于記錄兩臺(tái)設(shè)備之間的鏈路信息。

Route 格式示例: [LINK][ISIS-LEVEL-1][IDENTIFIER0][LOCAL[as255.255][bgp-ls-identifier192.168.102.4][ospf-area-id0.0.0.0][igp-router-id0000.0000.0002.01]][REMOTE[as255.255][bgp-ls-identifier192.168.102.4][ospf-area-id0.0.0.0][igp-router-id0000.0000.0002.00]][LINK[if-address0.0.0.0][peer-address0.0.0.0][if-address::][peer-address::][mt-id0]] Route 字段含義:

LINK:標(biāo)識(shí)此 BGP-LS Route 是 Link Route 類(lèi)型。

ISIS-LEVEL-1:標(biāo)識(shí)收集拓?fù)湫畔⒌?IGP 協(xié)議類(lèi)型為 ISIS。

IDENTIFIER0:該 IGP 協(xié)議類(lèi)型中的 Node Routes 的唯一標(biāo)識(shí)。

LOCAL:標(biāo)識(shí)該 Node Route 為 Local Node 的信息。

AS:標(biāo)識(shí) BGP-LS 的 AS Number。

bgp-ls-identifier:標(biāo)識(shí) BGP-LS 的區(qū)域。

ospf-area-id:標(biāo)識(shí) OSPF 的區(qū)域。

igp-router-id:IGP 協(xié)議的 Router ID,由收集拓?fù)湫畔⒌?IGP 協(xié)議產(chǎn)生。

REMOTE:標(biāo)識(shí)該 Route 的對(duì)端節(jié)點(diǎn)的信息。

if-address :Local 接口地址。

peer-address:Remote 接口地址。

mt-id:在 IGP 協(xié)議中用于標(biāo)識(shí)接口所綁定的拓?fù)洹?/p>

Prefix Route

Prefix Route 用于記錄 IP 可達(dá)的網(wǎng)段信息。

Route 格式示例: [IPV4-PREFIX][ISIS-LEVEL-1][IDENTIFIER0][LOCAL[as100][bgp-ls-identifier192.168.102.3][ospf-area-id0.0.0.0][igp-router-id0000.0000.0001.00]][PREFIX[mt-id0][ospf-route-type0][prefix192.168.102.0/24]] Route 字段含義:

IPV4-PREFIX:標(biāo)識(shí)此 BGP-LS Route 是 Prefix Route 類(lèi)型,并且是 IPv4 Prefix Route,此外還支持 IPV6-PREFIX。注意,路由器不能本地產(chǎn)生 IPv6 地址前綴路由,但可以處理來(lái)自其他廠(chǎng)商的 IPv6 地址前綴路由。

ISIS-LEVEL-1:標(biāo)識(shí)收集拓?fù)湫畔⒌?IGP 協(xié)議類(lèi)型為 ISIS。

IDENTIFIER0:該 IGP 協(xié)議類(lèi)型中的 Node Routes 的唯一標(biāo)識(shí)。

LOCAL:標(biāo)識(shí)該 Node Route 為 Local Node 的信息。

AS:標(biāo)識(shí) BGP-LS 的 AS Number。

bgp-ls-identifier:標(biāo)識(shí) BGP-LS 的區(qū)域。

ospf-area-id:標(biāo)識(shí) OSPF 的區(qū)域。

igp-router-id:IGP 協(xié)議的 Router ID,由收集拓?fù)湫畔⒌?IGP 協(xié)議產(chǎn)生。

PREFIX:標(biāo)識(shí)一條 IGP Route。

mt-id:在 IGP 協(xié)議中用于標(biāo)識(shí)接口所綁定的拓?fù)洹?/p>

ospf-route-type:標(biāo)識(shí) OSPF 的路由類(lèi)型。

Intra-Area;

Inter-Area;

External 1;

External 2;

NSSA 1;

NSSA 2。

prefix:標(biāo)識(shí) IGP Route 的前綴地址。

BGP-LS 應(yīng)用示例

IGP Area 內(nèi)的網(wǎng)絡(luò)拓?fù)湫畔⑻崛?/strong>

如下圖所示。A、B、C、D 之間通過(guò) IS-IS 協(xié)議實(shí)現(xiàn) IP 可達(dá),并且同屬于 Area10,都是 Level-2 設(shè)備。

在這種情況下,只需要 A、B、C 和 D 中的任何一臺(tái)網(wǎng)絡(luò)設(shè)備部署 BGP-LS feature(特性)并與控制器建立了 BGP-LS 鄰居關(guān)系便可提取出整個(gè)網(wǎng)絡(luò)的拓?fù)湫畔ⅰ?

在 HA 場(chǎng)景中,會(huì)選擇兩臺(tái)或以上的設(shè)備來(lái)實(shí)施。由于網(wǎng)絡(luò)拓?fù)湫畔⑹窍嗤?,所以它們之間可以互為備份。

0ba0fd16-2f80-11ee-9e74-dac502259ad0.png

IGP Area 間的網(wǎng)絡(luò)拓?fù)湫畔⑻崛?/strong>

如下圖所示。A、B、C、D 之間通過(guò) IS-IS 協(xié)議實(shí)現(xiàn) IP 可達(dá)。其中,A、B 和 C 屬于 Area10,D 屬于 Area20。A、B 是 Level-1 設(shè)備,C 是 Level-1-2 設(shè)備,D 是 Level-2 設(shè)備。

雖然網(wǎng)絡(luò)拓?fù)淇缭搅?Area10 和 Area20 這 2 個(gè)域,但 BGP-LS 支持提取整個(gè)網(wǎng)絡(luò)的拓?fù)湫畔?,所以依舊只需要一臺(tái)網(wǎng)絡(luò)設(shè)備部署了 BGP-LS feature 并與控制器建立 BGP-LS 鄰居關(guān)系便可。

同樣,HA 場(chǎng)景中,可以使用 2 臺(tái)及以上的設(shè)備進(jìn)行實(shí)施,它們互為備份。

0bbae186-2f80-11ee-9e74-dac502259ad0.png

EGP AS 間拓?fù)湫畔⑻崛〉湫徒M網(wǎng) 1

如下圖所示。A 和 B 同屬 AS 100,兩者之間建立 IGP IS-IS 鄰居關(guān)系,并且 A 作為 AS 100 內(nèi)部的一臺(tái)非 BGP 設(shè)備。B 和 C 之間建立 EBGP 連接。

在這種情況下,由于(未使能 BGP-LS 的)BGP 協(xié)議本身不能提取網(wǎng)絡(luò)拓?fù)湫畔?,所以?AS 100 內(nèi)的設(shè)備和在 AS 200 內(nèi)的設(shè)備上收集的拓?fù)湫畔⒉煌ǘ贾荒苁占髯?AS 域的拓?fù)湫畔ⅲ?,所以此時(shí)要求至少 AS 100 和 AS 200 兩個(gè) AS 中都至少有一臺(tái)設(shè)備使能 BGP-LS 特性并都與控制器建立 BGP-LS 鄰居關(guān)系。

每個(gè) AS 中有兩臺(tái)或以上設(shè)備與控制器相連則可以保證 HA。

0bdfdc0c-2f80-11ee-9e74-dac502259ad0.png

EGP AS 間拓?fù)湫畔⑻崛〉湫徒M網(wǎng) 2

EGP AS 間拓?fù)湫畔⑻崛〉湫徒M網(wǎng) 2

若網(wǎng)絡(luò)中存在兩臺(tái)控制器,分別與兩個(gè) AS 中的設(shè)備相連,如下圖所示,此時(shí)若想兩臺(tái)控制器上都能收集到整個(gè)網(wǎng)絡(luò)的拓?fù)湫畔?,則需要兩臺(tái)控制器之間建立 BGP-LS 鄰居關(guān)系或與控制器相連的 B 和 C 之間建立 BGP-LS 鄰居關(guān)系。 此時(shí),為了減少與控制器連接的數(shù)量,可以選擇一臺(tái)(或幾臺(tái))設(shè)備作為 BGP-LS 反射器,需要與控制器建立 BGP-LS 鄰居的設(shè)備都與反射器建立鄰居關(guān)系。

0c071f42-2f80-11ee-9e74-dac502259ad0.png

BGP-LS 在 SR TE 中的應(yīng)用

在 SR TE 應(yīng)用場(chǎng)景中,需要在數(shù)據(jù)庫(kù)中儲(chǔ)存 Node、Link、Prefix、SR Policy、Ingress/Egress Node(端節(jié)點(diǎn))等一系列數(shù)據(jù),用于 SDN Controller 進(jìn)行路徑計(jì)算和驗(yàn)證。

在 RFC4655 中,提出了 SR-PCE(SDN 控制器)組件,它具有整個(gè)網(wǎng)絡(luò)的拓?fù)浜玩溌窢顟B(tài)信息數(shù)據(jù)庫(kù)的全局視圖。SR-PCE 通過(guò) BGP-LS 獲取所需要的信息(Node、Link、Prefix、SR Policy 等),以構(gòu)建其 SRTE 數(shù)據(jù)庫(kù),以此計(jì)算出 SRTE 所需的域間路徑。

每個(gè) Area 的 Edge Router 都需要與 SR-PCE 建立 BGP-LS 對(duì)等互連,提供網(wǎng)絡(luò)拓?fù)湫畔⒑玩溌窢顟B(tài)信息,包括:IGP 度量、TE 度量、管理組、SRLG 等。 每個(gè) Area 的本地信息通常來(lái)自 IGP(也可以是 BGP)協(xié)議,IGP 將本地信息匯總到 BGP-LS,然后通過(guò) BGP NRLI(網(wǎng)絡(luò)層可達(dá)性信息)傳遞給 SR-PCE。






審核編輯:劉清

聲明:本文內(nèi)容及配圖由入駐作者撰寫(xiě)或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀(guān)點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問(wèn)題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 交換機(jī)
    +關(guān)注

    關(guān)注

    20

    文章

    2571

    瀏覽量

    98235
  • OSPF協(xié)議
    +關(guān)注

    關(guān)注

    0

    文章

    17

    瀏覽量

    9368
  • BGP
    BGP
    +關(guān)注

    關(guān)注

    0

    文章

    83

    瀏覽量

    15289
  • WAN接口
    +關(guān)注

    關(guān)注

    0

    文章

    8

    瀏覽量

    6811
  • TCP通信
    +關(guān)注

    關(guān)注

    0

    文章

    146

    瀏覽量

    4184

原文標(biāo)題:網(wǎng)絡(luò)協(xié)議:BGP 邊界網(wǎng)關(guān)協(xié)議

文章出處:【微信號(hào):SDNLAB,微信公眾號(hào):SDNLAB】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏

    評(píng)論

    相關(guān)推薦

    動(dòng)態(tài)BGP與靜態(tài)BGP的區(qū)別

    動(dòng)態(tài)BGP與靜態(tài)BGP的區(qū)別 動(dòng)態(tài)BGP與靜態(tài)BGP的區(qū)別 1.靜態(tài)
    發(fā)表于 12-01 16:55

    華為BGP路由膠片.rar

    BGP是外部路由協(xié)議,用來(lái)在AS之間傳遞路由信息是一種距離矢量的路由協(xié)議,從設(shè)計(jì)上避免了環(huán)路的發(fā)
    發(fā)表于 06-24 13:10 ?45次下載

    BGP路由協(xié)議

    BGP是外部路由協(xié)議,用來(lái)在AS之間傳遞路由信息是一種增強(qiáng)的距離矢量路由協(xié)議可靠的
    發(fā)表于 06-24 16:21 ?7次下載
    <b class='flag-5'>BGP</b><b class='flag-5'>路由</b><b class='flag-5'>協(xié)議</b>

    Zebra與BGP路由監(jiān)測(cè)的實(shí)現(xiàn)

    主要研究邊界網(wǎng)關(guān)協(xié)議BGP)網(wǎng)絡(luò)拓?fù)?b class='flag-5'>動(dòng)態(tài)重構(gòu)及網(wǎng)絡(luò)穩(wěn)定性。通過(guò)路由軟件Zebra實(shí)現(xiàn)一個(gè)具有部分路由器功能的監(jiān)測(cè)代理,并將其連接到網(wǎng)絡(luò)中一
    發(fā)表于 12-25 16:58 ?13次下載

    動(dòng)態(tài)路由協(xié)議(RIP)配置

    動(dòng)態(tài)路由協(xié)議(RIP)配置 一. 實(shí)驗(yàn)原理1.1 動(dòng)態(tài)路由協(xié)議簡(jiǎn)介在
    發(fā)表于 09-24 13:50 ?4108次閱讀
    <b class='flag-5'>動(dòng)態(tài)</b><b class='flag-5'>路由</b><b class='flag-5'>協(xié)議</b>(RIP)配置

    路由器原理及路由協(xié)議

    路由器原理及路由協(xié)議 本文通過(guò)闡述TCP/IP網(wǎng)絡(luò)中路由器的基本工作原理,介紹了IP路由器的幾
    發(fā)表于 08-01 11:53 ?807次閱讀

    什么是動(dòng)態(tài)路由表/路由選擇協(xié)議

    什么是動(dòng)態(tài)路由表/路由選擇協(xié)議 動(dòng)態(tài)路由
    發(fā)表于 04-03 14:30 ?1852次閱讀

    BGP協(xié)議路由選擇原則

    BGP(Border Gateway Protocol)是一種自治系統(tǒng)間的動(dòng)態(tài)路由發(fā)現(xiàn)協(xié)議,目前在互聯(lián)網(wǎng)中使用非常廣泛,BGP
    發(fā)表于 01-24 09:52 ?3127次閱讀

    基于BGP協(xié)議屬性的路由策略

    BGP 作為一種廣泛使用的邊界網(wǎng)關(guān)路由協(xié)議從設(shè)計(jì)上提供了強(qiáng)大的路由過(guò)濾能力與一般的訪(fǎng)問(wèn)列表ACL 不同的是基于BGP屬性的
    發(fā)表于 07-07 15:31 ?11次下載
    基于<b class='flag-5'>BGP</b><b class='flag-5'>協(xié)議</b>屬性的<b class='flag-5'>路由</b>策略

    OSPF動(dòng)態(tài)路由協(xié)議的原理與特點(diǎn)介紹

    根據(jù)是否在一個(gè)自治域內(nèi)部使用,動(dòng)態(tài)路由協(xié)議分為內(nèi)部網(wǎng)關(guān)協(xié)議(IGP)和外部網(wǎng)關(guān)協(xié)議(EGP)。這里的自治域指一個(gè)具有統(tǒng)一管理機(jī)構(gòu)、統(tǒng)一
    的頭像 發(fā)表于 11-05 09:04 ?1.8w次閱讀

    路由協(xié)議及其工作原理的詳細(xì)PPT教程課件免費(fèi)下載

      本章將介紹目前常見(jiàn)的幾種動(dòng)態(tài)路由協(xié)議(包括RIP、OSPF、IS-IS和BGP)的一些基礎(chǔ)知識(shí),所采用的路由算法
    發(fā)表于 05-27 08:00 ?15次下載
    <b class='flag-5'>路由</b><b class='flag-5'>協(xié)議</b>及其<b class='flag-5'>工作原理</b>的詳細(xì)PPT教程課件免費(fèi)下載

    bgp路由協(xié)議路由屬性_BGP路由協(xié)議的優(yōu)勢(shì)

    BGP最新的版本是BGP第4版本(BGP4),它是在RFC4271中定義的;一個(gè)路由器只能屬于一個(gè)AS。AS的范圍從1-65535(64512-65535是私有AS號(hào)),RFC1930
    發(fā)表于 08-20 15:00 ?3682次閱讀
    <b class='flag-5'>bgp</b><b class='flag-5'>路由</b><b class='flag-5'>協(xié)議</b>的<b class='flag-5'>路由</b>屬性_<b class='flag-5'>BGP</b><b class='flag-5'>路由</b><b class='flag-5'>協(xié)議</b>的優(yōu)勢(shì)

    邊界網(wǎng)關(guān)協(xié)議BGP動(dòng)態(tài)路由的解析

    BGP是一種用于自治系統(tǒng)的AS之間的動(dòng)態(tài)路由協(xié)議,也叫邊界網(wǎng)關(guān)協(xié)議(國(guó)家網(wǎng)之間基本都用),由EGP構(gòu)建優(yōu)化而成,唯一能夠給跨網(wǎng)段、跨區(qū)域(A
    的頭像 發(fā)表于 04-15 20:46 ?4283次閱讀
    邊界網(wǎng)關(guān)<b class='flag-5'>協(xié)議</b>之<b class='flag-5'>BGP</b><b class='flag-5'>動(dòng)態(tài)</b><b class='flag-5'>路由</b>的解析

    動(dòng)態(tài)路由協(xié)議的優(yōu)缺點(diǎn)及分類(lèi)

    路由表可以是由系統(tǒng)管理員手工設(shè)置好的靜態(tài)路由表,也可以是配置動(dòng)態(tài)路由選擇協(xié)議根據(jù) 網(wǎng)絡(luò)系統(tǒng)的運(yùn)行
    的頭像 發(fā)表于 08-31 15:03 ?1.1w次閱讀

    圖解BGP協(xié)議路由選擇與網(wǎng)絡(luò)安全

    BGP是一種路由協(xié)議,它定義了在AS(自治系統(tǒng))之間交換路由信息的方法。BGP 管理數(shù)據(jù)包如何在構(gòu)成互聯(lián)網(wǎng)的大型網(wǎng)絡(luò)之間傳輸,并使互聯(lián)網(wǎng)能夠
    的頭像 發(fā)表于 03-17 09:45 ?2988次閱讀