《計算機網絡 自頂向下方法》整理(五)網絡層:控制平面

一、概述

轉發表和流表的計算、維護、安裝工作有兩種方法:

  • 每臺路由器控制:在每臺路由器中允許一種路由選擇算法,每臺路由器中都包含轉發和路由選擇功能;
  • 邏輯集中式控制:邏輯集中式控制器計算並分發轉發表以供每臺路由器使用;

二、路由選擇算法

①路由選擇算法的目標是找出從源到目的地間的最低開銷路徑。路由選擇算法的一種分類方式是根據該算法是集中式還是分散式來劃分的:

  • 集中式路由選擇算法:該算法以所有節點之間的連通性及鏈路的開銷作爲輸入,即在開始計算前必須知道鏈路的全局信息,這種算法被稱作鏈路狀態算法
  • 分散式路由選擇算法:路由器以迭代、分佈式的方式計算出最低開銷路徑,每個節點僅有與其直接相連鏈路的信息,通過迭代計算過程及相鄰節點的信息交換,一個節點逐漸計算出到達目的節點或一組目的節點的最低開銷路徑,後面我們將學習距離向量算法

②路由選擇算法的第二種廣義分類方式是根據算法是靜態的還是動態的進行分類:

  • 靜態路由選擇算法:路由隨時間變化非常緩慢,通常是人工進行調整;
  • 動態路由選擇算法:隨着網絡流量負載或鏈路開銷的變化而運行,易於對網路變化做出反應,但更易收到路由選擇循環或路由振盪之類問題的影響;

③路由選擇算法的第三種分類方式根據它是負載敏感的還是負載遲鈍的做出劃分:

  • 負載敏感算法:鏈路開銷會動態的變化以反映出底層鏈路的當前擁塞水平;
  • 負載遲鈍算法:鏈路的開銷不明確的反映當前的擁塞水平;

1、鏈路狀態路由選擇算法

在實踐中通過讓每個節點向網絡中的所有其他節點廣播鏈路狀態分組來完成,每個鏈路狀態分組包含它所連接的鏈路的標識和開銷,通常由鏈路狀態廣播算法完成。鏈路狀態選擇算法叫做Dijkstra算法,其性質是經算法的第k次迭代後,可知道到k個目的節點的最低開銷路徑。在到達所有目的節點的最低開銷路徑中,這k條路徑具有k個最低開銷。

在第一次迭代中,我們需要搜索n個節點;在第二次迭代中,我們需要搜索n-1個節點;以此類推,在所有迭代中需要搜索的節點總數爲n(n+1)/2,其複雜性最低爲O(n^2)。另外考慮以下可能存在的問題,鏈路開銷可能是非對等的,即(u,v)和(v,u)是不等的;此外擁塞敏感的路由選擇可能會出現選擇的振盪,一種常用的方法是確保並非所有的路由器都同時運行LS算法。但實際中英特網的路由器能在它們之間進行自動同步,導致執行算法執行時機變爲同步,一種避免辦法是讓路由器發送鏈路通告的事件隨機變化。

2、距離向量路由選擇算法

距離向量(DV)算法是一種迭代的、異步的和分佈式的算法,每個節點都要從一個或多個直接相鄰鄰居接受某些信息,執行計算然後將其計算結果分發給鄰居。迭代是因爲需要一直持續到鄰居之間無更多信息要交換爲止,異步是因爲不要求節點相互之間步伐一致地操作。其主要步驟爲:從鄰居接受更新距離向量、重新計算路由選擇表項和通知鄰居到目的地的最低開銷路徑的開銷已經變化的過程繼續下去,直到無更新報文發送爲止,這時算法將進入靜止狀態,直到一條鏈路開銷發生改變。

2.1、距離向量算法:鏈路開銷改變與鏈路故障

在某些時刻,我們會遇到路由選擇環路的問題,該選擇過程會不斷迭代直到判斷開銷過大不符合條件纔會跳出,這類問題被稱爲無窮計數問題;

2.2、距離向量算法:增加毒性逆轉

上述特定循環的場景可以通過使用一種毒性逆轉的技術而加以避免。其思想爲:如果z通過y路由選擇到目的地x,則z將通告y,它到x的距離是無窮大的,只要z經y路由選擇到x,z就持續地向y講述這個謊言,最終y將永遠不會試圖經由z路由選擇到x。

毒性逆轉並沒有解決一般的無窮計數問題,涉及3個或更多節點的環路將無法使用毒性逆轉技術檢測到,因爲不只是兩個直接相鄰的鄰居節點。

2.3、LS與DV路由選擇算法的比較

N爲路由器節點的集合,E爲鏈路的集合:

  • 報文複雜性:LS算法要求無論何時一條鏈路的開銷改變,必須向所有節點發送新的鏈路開銷,這要求發送O(|N||E|)個報文;DV算法僅當在新的鏈路開銷導致與該鏈路相連節點的最低開銷路徑發生改變時,才傳播已經改變的鏈路開銷;
  • 收斂速度:LS算法的實現是一個要求O(|N||E|)個報文的O(|N|^2)算法;DV算法收斂較慢,且在收斂時會遇到路由選擇環路,還會遇到無窮計數的問題;
  • 健壯性:如果一臺路由器發生故障,作爲LS廣播的一部分,一個節點可能損壞或丟第它收到的任何LS廣播分組,但一個LS節點僅計算自己的轉發表,其他節點自行計算,因而某種程度上是分離的,提供了一定程度的健壯性;在DV算法中,一個不正確的節點計算值會擴散到整個網絡。

三、因特網中自治系統內部的路由選擇:OSPF

當路由器的數量變得龐大時,通信、計算和存儲路由信息所涉及的開銷就變得非常大。顯然必須採取措施來降低像Internet這樣大的網絡中路由計算的複雜性。互聯網是由ISP組成的網絡,每個ISP由自己的路由器網絡組成。一個組織應該能夠按照自己的意願操作和管理其網絡,同時仍然能夠將其網絡連接到其他外部網絡。上述兩個問題可以通過將路由器組織進自制系統(AS)來解決,每個AS由一組通常處在相同管理控制下的路由器組成。在相同AS中的路由器都運行相同的路由器選擇算法並且有彼此的信息,在一個自治系統內運行的路由選擇算法叫做自治系統內部路由選擇協議

開放最短路優先(OSPF)路由選擇及其關係密切的協議IS-IS都被廣泛應用於因特網的AS內部路由選擇。OSPF使用洪泛鏈路狀態信息和Dijkstra最低開銷路徑算法。 一臺路由器構建了整個自治系統的完整拓撲圖。每個路由器在本地運行Dijkstra的最短路徑算法 ,然後以自己爲根節點,確定通往所有子網的最短路徑樹。各條路徑的開銷由網絡管理員配置。OSPF的優點如下:

  • 安全:OSPF路由器之間的交換可以進行認證,只有受信任的路由器才能參與AS內的OSPF協議,從而防止惡意入侵者;
  • 多條相同路徑的開銷:當到達某目的地的多條路徑具有相同的開銷時,OSPF允許使用多條路徑;
  • 對單播與多播路由選擇的綜合支持:多播OSPF(MOSPF)提供對OSPF的簡單擴展,以便提供多播路由選擇;
  • 支持在單個AS中的層次結構:一個OSPF自治系統能夠層次化地配置多個區域,每個區域都允許自己的OSPF鏈路狀態路由選擇算法;

四、ISP之間的路由選擇:BGP

當分組跨域多個AS進行路由時,我們需要一個自治系統間路由選擇協議。在因特網中,所有AS運行相同的AS間路由選擇協議,稱爲邊界網關協議(BGP)。BGP是一種分佈式和異步的協議,該協議將因特網中以千計的ISP粘合起來。

1、BGP的作用

在BGP中,數據包不是被路由到一個特定的目的地址,而是被路由到CIDR化的前綴,每個前綴代表一個子網或子網的集合。路由器的轉發表將有形式爲(x, I)的表項,其中x是一個前綴(如138.16.68/22),I是路由器的一個接口的接口號。作爲一種AS間的路由選擇協議,BGP爲每臺路由器提供了一種完成以下任務的手段:①從鄰居AS獲得前綴的可達性信息;②確定到該前綴的“最好的”路由

2、通告BGP路由信息

對於每個AS,每臺路由器要麼是一臺網關路由器,要麼是一臺內部路由器。網關路由器是一臺位於AS邊緣的路由器,它直接連接到在其他AS中的一臺或多臺路由器,內部路由器僅連接在它自己AS中的主機和路由器。

在BGP中,每臺路由器通過使用179端口的半永久TCP連接交換路由選擇信息,每條直接連接以及所有通過該連接發送的BGP報文,稱爲BGP連接。跨域兩個AS的BGP稱爲外部BGP連接,而在相同AS中的兩臺路由器之間的BGP會話被稱爲內部BGP連接。爲了傳播可達性信息,會使用多條BGP連接。

3、確定最好的理由

當一個路由器在BGP連接通告前綴時,它在前綴中包含了一些BGP屬性,其中比較重要的兩個屬性是AS-PATH和NEXT-HOP。在BGP中前綴及其屬性稱爲路由AS-PATH屬性包含了通告已經通過的AS列表。在AS間和AS內部路由選擇協議之間提供關鍵鏈路方面,NEXT-PATH屬性具有敏感而重要的作用。NEXT-HOP是AS-PATH起始的路由器接口的IP地址。下面討論BGP路由選擇算法。

3.1、熱土豆路由選擇

其思想爲:對於路由器x,儘可能快的將分組送出其AS(用可能的最低開銷),而不擔心其AS外部到目的地的餘下部分的開銷。它試圖減小它自己AS中的開銷,而忽略在其他AS之外的端到端開銷的其他部分。

3.2、路由器選擇算法

對於任何給定的目的地前綴,進入BGP的路由器選擇算法的輸入是到某前綴的所有路由的集合,該前綴是被已知路由器學習和接受的,如有多條則採用以下規則:

  1. 路由被指派一個本地偏好值最爲其屬性之一,它的設置完全取決於AS的網絡管理員,具有最高本地偏好值的路由將被選擇;
  2. 從餘下的路由中選擇具有最短AS-PATH的路由,如果該規則是路由選擇的唯一規則,則BGP將使用距離向量算法決定路徑,距離測度使用AS跳數而非路由器跳數;
  3. 從餘下的路由中使用熱土豆路由選擇,即選擇具有最靠近NEXT-HOP路由器的路由;
  4. 如果仍留下多條路由,該路由使用BGP標識符來選擇路由

4、IP任播

除了作爲因特網的AS間路由選擇協議外,BGP還常被用於實現IP任播服務,該服務通常用於DNS中。IP任播被DNS系統廣泛用於將DNS請求指向最近的根DNS服務器。當一個用戶訪問複製的內容(不同服務器上的相同內容),可以將該用戶指向具有複製內容的最近服務器,BGP路由器選擇算法爲其提供了一種最爲容易和自然的機制。

5、路由選擇策略

在路由選擇算法中,實際上首先根據本地偏好屬性選擇路由,本地偏好值由本地AS的策略所確定。實際會存在經由多個不同的提供商連到網絡的其餘部分的ISP,稱爲多宿接入ISP,如何防止轉發連接它的ISP呢?可以通過控制BGP路由的通告方式來實現,即該多宿接入ISP通告它沒有通向任何其他目的地的路徑,那麼它將起到一個接入ISP的作用。目前沒有主幹ISP之間如何路由選擇的官方標準,商業運行的ISP都遵循一個經驗法則:任何穿越某ISP主幹網的流量必須是其源或目的位於該ISP的某個客戶網絡中,不然流量會免費搭車通過該ISP的網絡。

爲什麼使用的AS間和AS內部路由選擇協議是不同的:

  • 策略:AS間,策略問題起主導作用,而在AS內部選擇策略中起到的作用不大;
  • 規模:擴展一個路由選擇算法及其數據結構以處理大量網絡或大量網絡之間的路由選擇能力,是AS間路由選擇的關鍵問題,而在AS內部,總是能將其分成N個AS;
  • 性能:AS間路由選擇是面向策略的,因此所用路由的質量通常是關心的次要問題,而AS內部路由對策略並不關心,它更多關注一條路由器實現的性能級別;

五、SDN控制平面

SDN體系結構具有4個關鍵特徵:

  • 基於流的轉發:SDN控制的交換機的分組轉發工作,能夠基於運輸層、網絡層或鏈路層首部中任意數量的首部字段值進行。
  • 數據平面與控制平面分離:數據平面由交換機組成,並在流表中執行匹配加動作的規則;控制平面由服務器以及決定和管理交換機流表的軟件組成;
  • 網絡控制功能:位於數據平面交換機外部;
  • 可編程的網絡:通過運行在控制平面中的網絡控制應用程序,該網絡是可編程的

SDN表示了一種意義重大的網絡功能的分類,即數據平面交換機、SDN控制器和網絡控制應用程序是分離的實體,該實體由不同的廠商和組織機構所提供。

1、SDN控制平面:SDN控制器和SDN網絡控制應用程序

控制器的功能大體組織爲3個層次,我們以一種非典型的自底層向上方式考慮這些層次:

  • 通信層:SDN控制器和受控網絡設備之間的通信,控制器和受控設備之間的通信跨越了一個接口,它現在被稱爲控制器的”南向”接口。OpenFlow是一種提供這種通信功能的特定協議,且在大多數SDN控制器中得到了實現;
  • 網絡範圍狀態管理層:由SDN控制平面所做出的最終控制決定,將要求控制器具有有關網絡的主機、鏈路、交換機和其他SDN設備的最新狀態信息,交換機的流表信息可以由網絡控制應用程序很好的使用;
  • 對於網絡控制應用程序層的接口:控制器通過它的“北向”接口與網絡控制應用程序交互,該API允許網絡控制應用程序在狀態管理層之間讀寫網絡狀態和流表
image-20201115190510024

2、OpenFlow協議

OpenFlow協議運行在SDN控制器和SDN控制器的交換機或其他實現OpenFlow API設備之間。OpenFlow協議運行在TCP上,使用6653的默認端口號。從控制器到受控交換機流動的重要報文有下列這些:

  • 配置:運行控制器查詢並設備交換機的配置參數;
  • 修改狀態:由控制器所使用,以增加/刪除或修改交換機流表中的表項,並且設置交換機端口特性;
  • 讀狀態:被控制器用於從交換機的流表和端口收集統計數據和計數器值;
  • 發送分組:被控制器用於在受控交換機從特定的端口發送一個特定的報文;

從受控交換機到控制器流動的重要報文有下列這些:

  • 流刪除:通知控制器已刪除一個流表項;
  • 端口狀態:交換機用該報文向控制器通知端口狀態的變化;
  • 分組入:用於將分組發送給控制器;

六、ICMP:因特網控制報文協議

因特網控制報文協議,被主機和路由器用來彼此溝通網絡層的信息。IMCP最典型的用途是差錯報告。當IP路由器不能找到一條通往HTTP請求所指定的主機的路徑,該路由器就會向該主機生成併發出一個ICMP報文以指示該錯誤。

從體系結構上將ICMP位於IP之上,因爲ICMP報文是承載在IP分組中的,即ICMP報文是作爲IP有效載荷承載的,就像TCP和UDP報文段作爲IP有效載荷被承載那樣。ICPM報文有一個類型字段和一個編碼字段,並且包含引起該ICMP報文首次生成的IP數據報的首部和前8個字節以便發送方能確定引起該差錯的數據報。

image-20201115193223004

七、網絡管理和SNMP

網絡管理包含了硬件、軟件和人類元素的設置、綜合和協調,以監視、測試、輪詢、配置、分析、評價和控制網絡及網元資源,用合理的成本滿足實時性、運營性能和服務質量的要求。

1、網絡管理框架

  • 管理服務器:它控制網絡管理信息的收集、處理、分析或顯示,正是在這裏,發起控制器網絡行爲的動作;
  • 被管設備:被管對象可以是一臺主機、路由器、交換機或其他聯網設備,一個被管設備中存在幾個被管對象,這些被管對象可以是被管設備的硬件的實際部分和用於這些硬件及軟件組件的配置參數;
  • 管理信息庫(MIB):一個被管設備中的每個被管對象的關聯信息被收集在這裏,這些值可以被管理服務器使用;
  • 網絡管理代理:每個被管設備中駐留有網絡管理代理,它是運行在被管設備的一個進程,該進程與管理服務器通信,在管理服務器的命令和控制下在被管設備中採取本地動作;
  • 網絡管理協議:該協議運行在管理服務器和被管設備之間,允許管理服務器查詢被管設備的狀態,並通過其代理間接地在這些設備上採取行動;

2、簡單網絡管理協議

簡單網絡管理協議(SNMP)是一個應用層協議,用於在管理服務器和代表管理服務器執行的代理之間傳遞網絡管理控制和信息報文。SNMP最常用的是請求響應模式,其中SNM管理服務器向SNMP代理髮送一個請求,代理接受到請求後執行某些動作,然後對該請求發送一個回答。SNMP第二常被使用的是代理向管理服務器發送的一種非請求報文,該報文稱爲陷阱報文,用於通知管理服務器。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章