91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

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

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

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

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

SDNLAB ? 來源:云物互聯(lián) ? 2023-07-31 17:00 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

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

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

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

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

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

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

計算路由階段:每臺 Router 都會自身的配置,運行各自的路由算法,計算出最終的路由表/樹。

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

動態(tài)路由協(xié)議的類型

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

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

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

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

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

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

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

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

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

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

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

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

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

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

常見的動態(tài)路由協(xié)議

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

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

配置簡單;

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

BGP 和 Internet

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

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

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

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

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

1~64511:是全球唯一的 Internet 編號。

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

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

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

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

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

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

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

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

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

支持 IPv4 和 IPv6;

支持 CIDR(Classless Inter-Domain Routing);

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

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

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

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

BGP Router 和 Routes

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

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

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

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

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

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

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

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

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

Output Policy:BGP Router 通過 Output Policy 來控制那些 Routes 是需要且允許對外進(jìn)行宣告的。Local RIB 存儲的結(jié)果在進(jìn)行了一些 Output Policy 處理后,再把允許輸出的 Routes 存儲到 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 就會判定為這是一條自己發(fā)出的 Route,就會將這條 Route 丟棄掉。

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

BGP Message 類型和格式

BGP Message(消息),由 Header 和 Data 這兩部分組成,最大長度為 4096Bytes。BGP Message 類型和格式的細(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 驗證的計算。不使用驗證時為全 1。

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

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

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

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

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

Notification Msg:用于錯誤信息通告,斷開對等體鄰居;

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

BGP Msg Data

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

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

My AS:指示本地的 AS Number;

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

BGP Identifier:BGP 標(biāo)識符,IP 地址形式,用來識別一個 BGP Router。

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

Keepalive Msg

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

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

Update Msg

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

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

Withdrawn Routes Length:指示 Withdrawn Routes 字段的長度。其值為零時,表示沒有需要撤銷的路由。

Withdrawn Routes:指示需要撤銷的路由。

Total path attribute length:指示 Path Attributes 字段的長度。

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

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

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

兩個 AS 的 BGP Router 之間通過 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 運維信息的通知,例如:當(dāng) BGP Router 檢測到錯誤狀態(tài)時,就會向 Peer 發(fā)出 Notification Msg,并中斷 BGP Session。

Error Code、Error Subcode:指示錯誤碼、錯誤子碼,用于描述錯誤類型;

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

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

Route-refresh Msg

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

通常的,在 BGP Router 改變了自身的路由策略(Input/Output Policy)后就會請求 BGP Peers 重新發(fā)送 Routes。以此來實現(xiàn) Peers 之間動態(tài)的交換路由刷新請求,并在后續(xù)的過程中使相關(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ā)送的連接請求。只有在收到本設(shè)備的 Start 事件后,BGP Router 才開始嘗試和其它 BGP Peers 進(jìn)行 TCP Connection,并轉(zhuǎn)至 Connect 狀態(tài)。

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

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

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

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

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

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

Active(行動狀態(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 超時,BGP 仍沒有收到 Peer 的響應(yīng),那么就轉(zhuǎn)到 Connect 狀態(tài)。

OpenSent(發(fā)送狀態(tài)):BGP Router 等待 Peer 的 Open Msg,并對收到的 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 與路由選擇

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

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

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

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

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

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

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

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

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

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

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

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

LOCAL_PREF(Local Preference,本地優(yōu)先級):Update Msg 可以攜帶這個屬性并將其發(fā)給 I-BGP 鄰居,用于 AS 內(nèi)部的 BGP Router 作為參考,具有較高的 LOCAL_PREF 值的 Routes 將在路由選擇過程中被優(yōu)先考慮。僅在 I-BGP 對等體之間交換,不通告給其他 AS。當(dāng) BGP 的路由器通過不同的 IBGP 對等體得到目的地址相同但下一跳不同的多條路由時,將優(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)行路由聚合時,由于會產(chǎn)生一條新的聚合路由,因此精細(xì)路由所攜帶的 AS-path 屬性將會在聚合時被丟失。用來通告路由接收者,該路由是經(jīng)過聚合的。有時 BGP 發(fā)布者會收到兩條重疊的路由,其中一條路由包含的地址是另一條路由的子集。一般情況下 BGP 發(fā)布者會優(yōu)選更精細(xì)的路由(前者),但是在對外發(fā)布時,如果它選擇發(fā)布更粗略的那條路由(后者),這時需要附加上 ATOMIC_AGGREGATE 屬性,以知會對等體。它實際上是一種警告,因為發(fā)布更粗略的路由意味著更精細(xì)的路由信息在發(fā)布過程中丟失了。在進(jìn)行路由聚合時,對于聚合的路由信息會添加 ATOMIC_AGGREGATE 屬性。

可選傳遞屬性(Optional transitive)

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

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

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

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

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

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

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

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

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

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

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

路由選擇原則

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

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

AS2 → AS3

AS6 → AS5 → AS4 → AS3

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

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

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

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

AS 路徑長度:如果沒有當(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 下一跳開銷:若都是 I-BGP,選擇下一跳最近的。

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

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

對等體 IP 地址最小長度:如果 Router-id 相同,選擇鄰居 IP 地址最小的。

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

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

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

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

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

Client Peer

Non-Client Peer

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

以及支持了下列多種路由類型:

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

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

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

下圖為一個 MPLS VPN 場景中的 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 間的若干個 IGP 網(wǎng)絡(luò)拓?fù)湫畔⒉⑸蠄蠼o集中控制器。

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

BGP NLRI

BGP Path Attribute

在 BGP-LS 誕生之前,路由器可以通過使用 IGP 路由協(xié)議(e.g. OSPF、IS-IS)來收集網(wǎng)絡(luò)的拓?fù)湫畔ⅰ_@種拓?fù)湫畔⑻崛》绞剑嬖谝韵聨c不足:

IGP 協(xié)議將各個 Area 的拓?fù)湫畔为毶纤徒o上層控制器,在跨 IGP Area 的場景中,控制器無法得到完整的拓?fù)湫畔?,所以也無法計算出跨 Area 的端到端最優(yōu)路徑;

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

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

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

BGP 協(xié)議可以匯總跨 IGP AS 域的拓?fù)湫畔?,直接將完整的拓?fù)湫畔⑸纤徒o控制器,有利于路徑選擇和計算;

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

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

BGP-LS Route Msg

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

Node Route

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

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)識此 BGP-LS Route 是 Node Route 類型。

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

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

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

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

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

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

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

Link Route

Link Route 用于記錄兩臺設(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)識此 BGP-LS Route 是 Link Route 類型。

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

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

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

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

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

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

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

REMOTE:標(biāo)識該 Route 的對端節(jié)點的信息。

if-address :Local 接口地址。

peer-address:Remote 接口地址。

mt-id:在 IGP 協(xié)議中用于標(biāo)識接口所綁定的拓?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)識此 BGP-LS Route 是 Prefix Route 類型,并且是 IPv4 Prefix Route,此外還支持 IPV6-PREFIX。注意,路由器不能本地產(chǎn)生 IPv6 地址前綴路由,但可以處理來自其他廠商的 IPv6 地址前綴路由。

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

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

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

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

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

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

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

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

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

ospf-route-type:標(biāo)識 OSPF 的路由類型。

Intra-Area;

Inter-Area;

External 1;

External 2;

NSSA 1;

NSSA 2。

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

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

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

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

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

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

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

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

如下圖所示。A、B、C、D 之間通過 IS-IS 協(xié)議實現(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 個域,但 BGP-LS 支持提取整個網(wǎng)絡(luò)的拓?fù)湫畔ⅲ砸琅f只需要一臺網(wǎng)絡(luò)設(shè)備部署了 BGP-LS feature 并與控制器建立 BGP-LS 鄰居關(guān)系便可。

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

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)部的一臺非 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ù)湫畔ⅲ?,所以此時要求至少 AS 100 和 AS 200 兩個 AS 中都至少有一臺設(shè)備使能 BGP-LS 特性并都與控制器建立 BGP-LS 鄰居關(guān)系。

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

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

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

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

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

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






審核編輯:劉清

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

    關(guān)注

    23

    文章

    2904

    瀏覽量

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

    關(guān)注

    0

    文章

    18

    瀏覽量

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

    關(guān)注

    0

    文章

    88

    瀏覽量

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

    關(guān)注

    0

    文章

    10

    瀏覽量

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

    關(guān)注

    0

    文章

    146

    瀏覽量

    4846

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

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

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關(guān)推薦
    熱點推薦

    動態(tài)BGP與靜態(tài)BGP的區(qū)別?

    BGP(邊界網(wǎng)關(guān)協(xié)議,Border Gateway Protocol) 是互聯(lián)網(wǎng)中用于自治系統(tǒng)(AS)之間路由信息交換的核心協(xié)議。在實際部署中,BG
    發(fā)表于 06-24 06:57

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

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

    華為BGP路由膠片.rar

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

    BGP路由協(xié)議

    BGP是外部路由協(xié)議,用來在AS之間傳遞路由信息是一種增強的距離矢量路由協(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)測的實現(xiàn)

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

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

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

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

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

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

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

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

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

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

    BGP 作為一種廣泛使用的邊界網(wǎng)關(guān)路由協(xié)議從設(shè)計上提供了強大的路由過濾能力與一般的訪問列表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動態(tài)路由協(xié)議的原理與特點介紹

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

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

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

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

    BGP最新的版本是BGP第4版本(BGP4),它是在RFC4271中定義的;一個路由器只能屬于一個AS。AS的范圍從1-65535(64512-65535是私有AS號),RFC1930
    發(fā)表于 08-20 15:00 ?4261次閱讀
    <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)勢

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

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

    圖解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 ?4906次閱讀