網路層 AS 間路由選擇協議

2022-03-08 22:28:48 字數 4404 閱讀 1192

禁止碼迷,布布扣,豌豆**,碼農教程,愛碼網等第三方爬蟲**爬取!

目錄bgp 路由資訊

路由選擇

路由選擇策略

bgp 報文

為什麼有 as 內/間路由選擇協議?

參考資料

bgp 對於每一台路由器來說,需要完成 2 個任務:

從臨近的 as 獲得字首可達性資訊:bgp 允許每個子網向網際網路的其他部分告知自己的存在,同時 bgp 確保在網際網路中所有的 as 都知道該子網;

確定到達子網的最佳路由:路由器將在本地允許 bgp 路由選擇過程,此時 bgp 協議需要基於網路字首的可達性資訊,向路由器提供最佳路由。

現在我們的問題是:**表需要 as 內部路由演算法與 as 間路由演算法共同配置,則不同的自治系統之間如何通訊?首先考慮簡單的情況,將整個 as 看做乙個整體,假設現在需要向所有路由器通告 3d 的可達性資訊。首先 as3 向 as2 傳送 bgp 報文,告知 3d 為與 as3 中,接著 as2 向 as1 傳送 bgp 報文告知 as1 可以通過 as2 訪問 3d。通過這種我們熟悉的互動方式,就可以使所有 as 知曉 3d 的存在並得到路徑。

下面就來看看這個功能具體怎麼實現,首先我們需要引入一些說法。對於每個 as,每台路由器只有 2 種情況,即內部路由器或閘道器路由器,其中內部路由器僅鏈結在 as 中的主機和路由器。閘道器路由器位於 as 邊緣,通過鏈路連線其他的 as 的閘道器路由器。在 bgp 中,沒對路由器都是使用 179 埠的半永久 tcp 連線交換路由資訊,每條連線及其通過連線的報文被稱之為bgp 連線。由於 bgp 連線可能是 as 內的,也可能存在於 as 間,因此我們把跨越 2 個 as 的 bgp 連線稱之為外部 bgp(ebgp),相同 as 中的兩台路由器間的 bgp 連線稱之為內部 bgp(ibgp)連線。

如圖就給出了閘道器路由器、ebgp 和 ibgp 的示意,注意 ibgp 連線並不一定要與物理鏈路對應。

這裡再提一下什麼是 bgp 會話,就是兩個 bgp 路由器交換 bgp 報文,通告去往不同目的字首的路徑。此時為了傳播可達性資訊,就可以通過 ebgp 和 ibgp 會話,還是剛才的例子,如圖我們就可以看出可達性資訊的實際傳播流程。當路由器獲得了新的字首可達性資訊時,就在其**表中增加**該字首的入口。

實際情況往往會更為複雜,例如從某一路由器到某一目的地可能存在多條路徑,通過了不同的 as。此時 bgp 也允許 2 條路徑同時存在,並且都有相關的路由資訊被記錄。

如上文所述,從乙個路由器到達乙個目的子網可能存在多條路徑,bgp 是怎麼在這些路徑中選擇路徑呢?

bgp 連線通告字首時,字首及其屬性被稱之為路由,字首中包含一些稱之為「屬性」的資訊。我們著重關注 2 個重要的屬性:

as-path:包含字首通告所經過的 as 序列,例如在上文中的 「as2 as3」。同時這個屬性還可以用於檢測和防止通告環路,尤其是路由器在該屬性中發現包含了自己所在的 as,這種通告會被直接拒絕;

有了這 2 個屬性,對於一條 bgp 路由就包含了 3 個重要的元件:as-path、next-hop 和目的字首。

對於 as 間的路由選擇,路由器要如何學習到那些網路可供**?bgp 路由選擇的原理是熱土豆路由選擇,即從所有路由中選擇到開始該路由的 next-hop 路由器具有的最小開銷作為學習的資訊。通過熱土豆路由選擇新增 as 外字首的步驟如圖所示,當 路由表學習可達性資訊時,bgp 協議和 as 內路由選擇協議(ospf 協議)需要協同工作

熱土豆路由選擇的思想是:將分組發給最近的閘道器路由器,用盡可能最低開銷將分組送出其所在 as。之所以稱之為熱土豆,就是當分組被模擬為「熱土豆」時,由於燙手,所以我們要盡可能快地把「熱土豆」扔給下乙個人。因此熱土豆路由選擇是一種自私的演算法,它只考慮到減小自己 as 內傳輸分組的開銷,但是忽略了 as 外端到端的其他開銷。

bgp 路由選擇的原理是熱土豆路由選擇,下面就看一下 bgp 實際使用的路由選擇演算法。首先如果只有一條路由,則 bgp 只能選擇這條路由進行傳輸。當存在多條路由時,按照下面的消除規則,直到剩下一條路由:

比較本地偏好:路由會擁有乙個本地偏好屬性,該屬性的值是一種策略性決定,它取決於 as 的網路管理員。本地偏好資訊可能從該路由器設定,或者相同 as 中的其他路由器學習到,擁有較高本地偏好的路由會被選擇;

選擇最短as-path:值得一提的是若 bgp 只使用這個規則來選擇路由的話, bgp 會使用 dv 演算法來決定路徑,此時度量路徑的是 as 的跳數;

使用熱土豆路由選擇:選擇具有最靠近 next-hop 路由器的路由;

如果仍然剩下多條路由,參考 bgp 識別符號選擇。

通過這種演算法,bgp 的路由選擇可以考慮到盡可能低的開銷,而不是自私的路由選擇。

我們可以看到在路由選擇演算法中,首先是根據本地偏好來選擇路由,本地偏好將由本地 as 策略來決定。為了理解本地偏好起到的作用,我們來看乙個情景。其中 a、b、c 是提供商網路,x、w、y 是客戶網路,其中 w、y 由於只和乙個 as 相連線被稱之為樁網路,x 連線 2 個 as 被稱之為雙宿網路

首先我們關注雙宿網路 x。由於提供商網路會提供 as 間的路由服務,因此它們會互動彼此之間知道的路由資訊。由於 b->c 的路由有 2 條,可以是 b->x->c,但是 x 作為乙個客戶只想要享受服務,而不願意** b->c 的流量。此時 x 將不會通告 b 或 c 關於存在 b->x->c 路徑的事實,規避** b->c 流量。

接下來關注提供商網路 b、c。由於提供商網路會提供 as 間的路由服務,因此 a 會向 b 通告路徑 a->w,而 x 是 b 的客戶,b 會向 x 通告路徑 b->a->w。

此時 b 會向 c 通告 b->a->w 路徑嗎?絕對不會,因為 w 和 c 都不是 b 的客戶,b **非客戶的資料報不會產生任何收益,b 希望強制 c 向 w **資料報時不通過 b。

雖然沒有強制主幹 isp 之間的路由選擇標準,但是商業執行的 isp 們擁有約定俗成的規則——任何穿越 isp 主幹網的流量必須是源或目的位於該 isp 的某個客戶網路中。通俗的說,就是 isp 僅為自己的客戶提供服務,否則會出現蹭網路的「白嫖」行為。具體的協定,由 isp 雙方自行磋商,而且往往是對外保密的。

bgp-4 共使用四種報文:

開啟 (open) 報文,用來與相鄰的另乙個閘道器路由器建立關係。

更新 (update) 報文,用來傳送某一路由的資訊,以及列出要撤消的多條路由。

保活 (keepalive) 報文,用來確認開啟報文和周期性地證實鄰站關係。

通知 (notification) 報文,用來傳送檢測到的差錯。

通用首部如下:

最後我們解決乙個問題:為什麼所使用的的 as 間和 as 內路由選擇協議是不同的?對於這個問題,我們從以下 3 個方面展開。

在 as 之間,策略會起到主導作用。乙個給定的 as 產生的流量不能穿過另乙個特點的 as,乙個給定的 as 也許會向控制它承載的其他 as 之間穿越的流量。在乙個 as 內部,一切都是在相同的管理控制下進行的。

通過層次路由可以節省路由表的大小,減少路由產生的流量。通過將單個較大的 isp 分成多個 as,可以適應大規模的網際網路。

as 間路由選擇是面向策略的,因此路由的效能問題往往不是首要的。但是在乙個 as 內部就可以忽視策略問題,把重心放在選擇效能更好的路由上。

《計算機網路(第七版)》 謝希仁 著,電子工業出版社

《計算機網路 自頂向下方法》 [美] james f.kurose,keith w.ross 著,陳鳴 譯,機械工業出版社

網路層路由選擇協議(RIP OSF)

路由選擇協議的核心是路由選擇演算法,也即路由選擇與更新演算法。網際網路絡由選擇協議可以分為兩大類 路由資訊協議 rip 使用距離向量法更新路由表,常用於小型自治系統。距離向量演算法要求每個路由器在路由表中列出到所有已知目的網路的最佳路由,並且定期把自己的路由表副本傳送給與其直接相連的其他路由器。為了...

網路層 AS 內路由選擇協議

禁止碼迷,布布扣,豌豆 碼農教程,愛碼網等第三方爬蟲 爬取!目錄自治系統 ospf 協議 ospf 資料報 協議優勢 參考資料 在開始閱讀之前,請先閱讀部落格 網路層 路由選擇演算法。rip 協議是分布式的基於 dv 演算法的路由選擇協議,下面我們分析一下 rip 協議在 dv 演算法的基礎上提出怎...

網路層 路由協議

不存在一種絕對的最佳路由演算法.所謂 最佳 只能是相對於某一種特定要求下得出的較為合理的選擇而已 實際的路由選擇演算法,應盡可能接近於理想的演算法 路由選擇是非常複雜的問題,是網路中的所有結點共同協調工作的結果 路由選擇的環境往往是不斷變化的,而這種變化有時無法事先知道 定義 當路由表中與包的目的位...