電商資源網站seo快速排名軟件平臺
網絡層:控制平面
記錄一些學習計算機網絡:自頂向下的學習筆記和心得
Github地址,歡迎star ??????????
控制平面作為一種網絡范圍的邏輯,不僅控制沿著從源主機到目的主機的端到端路徑間的路由器如何轉發(fā)數據報,而且控制網絡層組件和服務如何配置和管理
概述
- 轉發(fā)表(基于目的地轉發(fā)的場景)和流表(泛化轉發(fā)的場景)
- 計算、維護和安裝流表以及轉發(fā)表
- 每路由器控制
- 每臺路由器具有一個路由選擇組件,用于和其他路由器路由選擇組件通信
- 邏輯集中式控制
- 邏輯集中式控制器計算并分發(fā)轉發(fā)表以供每臺路由器使用
- 該控制器與每臺路由器中的控制代理(CA)進行交互,CA一般只具有與控制器通信并按照控制器命令行事這一種功能
- 與每路由器控制中的CA不同,這些CA之間不能直接相互交互,也不能主動參與計算轉發(fā)表
- 每路由器控制
路由選擇算法介紹以及劃分
-
路由選擇算法目的是從發(fā)送方到接收方的過程中確定一條通過路由器網絡的好路徑(最低開銷的路徑)
-
根據集中式和非集中式來劃分
- 集中式路由選擇算法
- 用完整的、全局的網絡知識計算出從源到目的地之間的最低開銷路徑
- 集中式算法具有關于連通性和鏈路開銷方面的完整信息
- 具有全局狀態(tài)信息的算法常被稱作鏈路狀態(tài)(LS)算法,該算法必須知道網絡中每條鏈路的開銷
- 分散式路由選擇算法
- 路由器以迭代、分布式的方式計算最低開銷路徑,沒有節(jié)點擁有關于所有網絡鏈路開銷的完整信息
- 每個節(jié)點僅有與其直接相連鏈路的開銷知識,然后通過迭代計算過程以及相鄰節(jié)點的信息交換來確定最低開銷路徑
- 距離向量(DV)算法,分散式路由選擇算法,每個節(jié)點維護到網絡中所有其他節(jié)點的開銷(距離)的向量
- 集中式路由選擇算法
-
根據靜態(tài)和動態(tài)來劃份
- 靜態(tài)路由選擇算法,路由隨時間變化非常緩慢,通常是人工進行調整
- 動態(tài)路由選擇算法,隨著網絡流量負載或拓撲發(fā)生變化而改變路由選擇路徑
- 易受到諸如路由選擇循環(huán)、路由振蕩之類問題的影響
-
根據負載敏感和負責遲鈍來劃分
- 負載敏感算法,鏈路開銷會動態(tài)地變化以反映出底層鏈路的當前擁塞水平
- 負載遲鈍算法,某條鏈路的開銷不明確反應當前或最近的擁塞水平(主流)
鏈路狀態(tài)路由選擇算法(LS)
- 通過鏈路狀態(tài)廣播算法,向每個節(jié)點向網路中所有其他節(jié)點廣播鏈路狀態(tài)分組,每個分組包含它所連接的鏈路的標識和開銷
- 每個節(jié)點都具有網絡的統(tǒng)一、完整視圖,然后每個節(jié)點都能夠運行LS算法并計算出相同的最低開銷路徑集合
- 鏈路狀態(tài)路由選擇算法(LS):Dijkstra算法
- Djkstra算法計算出某節(jié)點到所有其他節(jié)點的最低開銷路徑
- 當同一鏈路兩個方向負載不同時,會出現振蕩情況
- 該情況不僅出現在LS中,它出現在任何使用擁塞或基于時延的鏈路測度算法中
- 讓所有路由器并非同時運行LS算法來解決這種問題
- 為了避免自同步,將通告時間隨機化
距離向量算法DV
- 距離向量算法是一種迭代的、異步的和分布式算法
- 分布式:每個節(jié)點都要從相鄰節(jié)點獲取信息、計算然后向鄰居分發(fā)
- 迭代:此算法一直持續(xù)到沒有信息交換為止
- 異步:不要求所有節(jié)點相互之間步伐一致
- Bellman-Ford算法
- 節(jié)點唯一具有的信息是它到直接相連鄰居的鏈路開銷和它從這些鄰居接收到的信息,每個節(jié)點具有初始路由選擇表
- 從鄰居接受更新距離向量、重新計算路由選擇表項和通知鄰居到目的地的最低開銷路徑的開銷,循環(huán)往復直到沒有更新,該算法進入靜止狀態(tài)
- 為了避免路由選擇環(huán)路
- 如果z通過y路由到達x,則z將通告y,z到x的距離是無窮大的即,Dz(x)為無窮
- 只要z經y路由選擇到x,z就持續(xù)這樣做
LS和DV路由選擇算法比較
- 報文復雜度:LS每次鏈路狀態(tài)發(fā)生改變就要向所有節(jié)點發(fā)送新的鏈路開銷,DV算法僅當新的鏈路開銷導致與該鏈路相連的最低開銷路徑發(fā)生變化時才傳播新的開銷
- 收斂速度:DV慢,且在收斂時會遇到路由選擇環(huán)路以及無窮計數問題
- 健壯性:
- LS,路由計算在某種程度上是分離的,提供了一定的健壯性
- DV,一個不正確值會擴散到整個網絡
因特網自治系統(tǒng)內部路由選擇:OSPF
-
隨著路由器數目變得巨大,成本和規(guī)模將會高的不可實現
-
因特網時ISP的網絡,每個ISP都有自己的路由器網絡
-
引入自治系統(tǒng)(AS)
- 每個AS由一組在相同管理控制下的路由器組成,通常在一個ISP和互聯他們的鏈路構成一個AS
- 一個ISP可以拆分為多個AS
- 每個AS都有唯一的ASN號標識
- 一個自治系統(tǒng)AS內部的路由選擇算法叫做自治系統(tǒng)內部路由選擇協議
-
開放最短路優(yōu)先(OSPF)
- OSPF是一種鏈路狀態(tài)協議,洪泛鏈路狀態(tài)信息和Dijkstra最低開銷路徑算法,使用OSPF,一臺路由器構建了一幅關于整個自治系統(tǒng)的完整拓撲圖
- OSPF提供了一種機制來讓網絡管理員為給定的鏈路權值集合確定最低開銷的路由選擇
- 管理員設置不同的權重來實現不同的功能,最少跳等
- OSPF路由器向AS內所有路由器廣播路由選擇信息,即使狀態(tài)未發(fā)生改變,它也周期性的廣播鏈路狀態(tài)(增加了健壯性)
- OSPF通告包含在IP報文中,對OSPF其上層協議的值為89,因此OSPF必須自己實現諸如可靠報文傳輸、鏈路狀態(tài)廣播等功能
- OSPF的優(yōu)點:
- 安全:能夠鑒別OSPF路由器之間的交換
- 多條相同開銷的路徑:存在多條相等開銷路徑時,無需選擇單一路徑承載所有流量
- 單播和多播路由選擇的綜合支持
- 支持在單個AS中的層次結構:一個OSPF自治系統(tǒng)能夠層次化配置多個區(qū)域
- 每個區(qū)域,一臺或多臺區(qū)域邊界路由器負責為該區(qū)域以外的分組提供路由選擇
- 每個AS中,只有一個OSPF區(qū)域被配置為主干區(qū)域,主干區(qū)域為該AS中其余區(qū)域之間的流量提供路由選擇
- 該主干包含所有的區(qū)域邊界路由器和部分非邊界路由器
- AS中的路由選擇要求,分組先到達區(qū)域邊界路由器,然后通過主干區(qū)域到達目的區(qū)域的區(qū)域邊界路由器,進而到最終目的地
ISP之間的路由選擇:BGP
-
當分組跨越多個AS進行路由時,需要一個自治系統(tǒng)間路由選擇協議
-
在因特網中所有的AS運行相同的AS間路由選擇協議,稱為邊界網關協議
-
BGP將因特網中數以千計的ISP粘合起來(因特網中協議唯一可能競爭者是IP協議)
-
BGP是一種分布式和異步的協議
BGP作用
-
每個路由器具有一臺轉發(fā)表,對于位于相同AS的目的地而言,轉發(fā)表表項由AS內部路由協議決定,對于AS外部的目的地由AS間協議決定
-
BGP中分組路由到一個CIDR化的前綴,其中每個前綴代表一個子網或一個子網的集合
- (x,i)形式
- x代表前綴(138.16.68/22),i代表路由器的接口之一的接口號
-
BGP需要完成
- 從鄰居AS獲得前綴的可達性信息,BGP允許每個子網向因特網其余所有部分通告它的存在,BGP確保因特網中過的所有AS知道該子網
- 確定到該前綴的最好的路由,一臺路由器可能直到多條通往同一前綴的不同路由,路由器本地運行一個BGP路由選擇過程(使用從相鄰路由器獲得的的前綴可達信息),該最好的路由基于策略以及可達性信息來確定
-
通告BGP路由信息
- 每個AS內部每臺路由器要么是一臺網關路由器,要么是一臺內部路由器
- 網關路由器位于AS邊緣,它鏈接到其他AS的一臺或多臺路由器
- 內部路由器僅連接在他自己AS中的主機和路由器
- 在BGP中每臺路由器使用179端口的半永久TCP鏈接交換路由選擇信息
- 每條直接連接以及所有通過該鏈接發(fā)送的BGP報文稱為BGP鏈接
- 跨越兩個AS的BGP鏈接稱為外部BGP鏈接(eBGP)
- 相同AS內部的BGP鏈接稱為內部BGP鏈接(iBGP),iBGP不總是與物理鏈路相對應
- 每個AS內部每臺路由器要么是一臺網關路由器,要么是一臺內部路由器
-
確定最好的路由
- 路由器通過BGP鏈接通告前綴時,前綴包括一些BGP屬性,前綴及其屬性稱為路由
- 兩個重要的屬性是
AS-PATH
和NEXT-HOP
- AS-PATH包含通告已經通過的AS的列表
- BGP路由器還通過該屬性檢測和防止通告環(huán)路(在通告中發(fā)現了它自己,拒絕該通告)
- NEXT-HOP是AS-PATH起始的路由器接口的IP地址
- AS-PATH包含通告已經通過的AS的列表
- 熱土豆路由選擇
- 從所有可能的路由中選擇到開始該路由的NEXT-HOP路由器具有最小開銷的路由
- 相同AS內部的兩臺路由器到達一個目的地可能具有不同AS路徑
- 轉發(fā)表增加AS向外前綴時,AS間路由選擇協議和AS內部路由選擇協議都要用到
- 路由器選擇算法
- 實際的BGP路由選擇算法更為復雜
- 進入BGP路由選擇算法的輸入是到某前綴的所有路由的集合,該前綴是已被路由器學習和接受的,僅有一條時選擇該路由,否則順序調用以下規(guī)則
- 路由被指派一個本地偏好值作為其屬性之一,它取決于該AS的網絡管理員,最高本地偏好值路由被選擇
- 最短AS-PATH路由,如果該規(guī)則是唯一規(guī)則,BGP將使用距離向量算法決定路徑,其中距離測度使用的是AS跳的跳數,而不是路由器跳數
- 使用熱土豆路由選擇,最靠近NEXT-HOP路由器的路由
- 使用BGP標識符選擇路由
- 進入BGP路由選擇算法的輸入是到某前綴的所有路由的集合,該前綴是已被路由器學習和接受的,僅有一條時選擇該路由,否則順序調用以下規(guī)則
- 實際的BGP路由選擇算法更為復雜
-
IP任播
- BGP還常被用作實現IP任播服務,DNS常使用該服務
- CDN為他的多臺服務器指派相同的IP地址,并使用BGP來通告這些服務器的IP地址,而處于不同的客戶訪問該IP會被引導至不同的不同的服務器(最近)
- DNS中,根服務器具有13個IP地址,但是每一個IP地址具有多臺服務器,這些服務器分布在各地,用戶訪問這些根服務器時將通過IP任播路由到最近的根服務器
- BGP還常被用作實現IP任播服務,DNS常使用該服務
SDN控制平面
- 控制分組在網絡的SDN使能設備中轉發(fā)網絡范圍邏輯
- SDN四個關鍵特征
- 基于流的轉發(fā):能夠基于運輸層、網絡層或鏈路層中任意數量的首部字段值進行;SDN控制平面的工作是計算、管理和安裝所有網絡交換機中的流表項
- 數據平面和控制平面分離
- 數據平面由網絡交換機組成,執(zhí)行”匹配+操作“的規(guī)則
- 控制平面由服務器以及決定和管理交換機流表的軟件組成
- 網絡控制功能:位于數據平面交換機外部,控制平面本身有兩個組成
- 一個SDN控制器(網絡操作系統(tǒng))
- 控制器維護準確的網絡狀態(tài)信息,為網絡控制應用程序提供這些信息
- 提供方法來讓應用程序能夠監(jiān)視、編程和控制下面的網絡設備
- 控制器是邏輯上集中,通常由幾臺服務器實現
- 若干網絡控制應用程序:
- 一個SDN控制器(網絡操作系統(tǒng))
- 可編程的網絡:
- 運行在控制平面上的網路控制應用程序,使用了SDN控制器提供的API來定義和控制網絡設備的數據平面
- SDN促進了網絡的分類,讓計算硬件、系統(tǒng)軟件和應用程序的分類,為計算機網絡領域的創(chuàng)新提供了豐富、開放的生態(tài)系統(tǒng)
SDN控制器
- 通信層:SDN控制器和受控網絡設備之間的通信,需要一個協議來傳送控制器與這些設備之間的信息(OpenFlow)
- 網絡狀態(tài)管理層:由SDN控制平面所作出的最終控制決定,具有各類最新狀態(tài)信息
- 對于網絡控制應用程序的接口:控制器通過他的”北向“接口和應用程序交互,該API允許應用程序在狀態(tài)管理層之間讀/寫網絡狀態(tài)和流表,當狀態(tài)改變事件出現時,應用程序能夠注冊進行通告
OpenFlow協議
- OpenFlow協議運行在SDN控制器和SDN控制的交換機或其他實現OpenFlow API的設備之間
- 運行在TCP之上,使用6653默認端口
- 控制器流向受控交換機重要報文:
- 配置:該報文允許控制器查詢并設置交換機的配置參數
- 修改狀態(tài):該報文由控制器使用,以增加/刪除或修改交換機流表中的表項,并設置交換機端口特性
- 讀狀態(tài):從交換機的流表和端口收集統(tǒng)計數據和計算器的值
- 發(fā)送分組:在受控交換機從特定的端口發(fā)送一個特定的報文
- 受控交換機流向控制器重要報文:
- 流刪除:通知控制器已刪除一個流表項
- 端口狀態(tài):通知端口狀態(tài)變化
- 分組入:一個分組不與所有流表項匹配,這個分組被發(fā)給控制器進行額外處理
ICMP:因特網控制報文協議
- ICMP被主機和路由器用來彼此溝通網絡層的信息
- ICMP的最典型用途是差錯報告
- ICMP作為有效載荷承載在IP報文段中
- 指明上層協議為ICMP的IP數據報,分解出該數據報內容給ICMP
- ICMP報文由一個類型字段和一個編碼字段,并且包含引起該ICMP報文首次生成的IP數據報的首部和前8個字節(jié)(以便發(fā)送方能確定引起該差錯的數據報)
- ICMPv6還增加了新興IPv6功能所需的新類型和編碼
- 分組太大
- 未被認可的IPv6選項
- 。。。