网络层:控制平面总结
網絡層:控制平面總結
之前說到了網絡數據平面的部分,但是網絡層并不只有數據平面部分還有控制平面的部分。那么其實數據平面部分是什么意思呢?概括來說就是分組交換機網絡設備的轉發部分。而控制平面則包括了SDN控制器還有應用層上面的服務器來操作SDN控制器的信息來控制網絡設備。而現在要講解的是網絡層的控制平面,控制平面中最重要的功能是路由選擇,路由選擇需要算法的支撐完成當前的功能。
1. 路由選擇算法的介紹
首先要講解的是路由選擇算法的一個分類,有集中式路由算法(經典的代表是ls鏈路狀態路由選擇算法)和分散式的路由算法(dv距離向量路由選擇算法),那么他們有什么不同呢?集中式的路由選擇算法需要把所有的路由信息集中,也就是說每臺路由器都需要具備全局的信息并計算出網絡拓撲圖最后計算出轉發表。而分散式路由算法只需要鄰居路由的信息,并通過這些信息計算出最低開銷的路徑。
除此之外路由算法還分了靜態和動態的,靜態其實就是人工配置,動態是能夠計算拓撲圖并且自動算出轉發表。還有一種是負載敏感型的分類,這里不再仔細介紹。
接下來就進入詳細的路由算法分析。
第一種鏈路狀態路由算法簡單總結這種算法其實就是依靠Dijkstra算法來算出最低的開銷路徑。并且可以通過鏈路狀態廣播來發送報文來讓每個節點都可以掌握整個路由信息并且可以計算出網絡拓撲圖,利用算法來計算出路徑并安裝好轉發表。(詳細的過程可以參考自頂向下,這里主要是算法的步驟分析與網絡拓撲圖的結合計算。)
第二種算法是路徑向量路由選擇算法這種與上一種不同,它是一個依靠鄰居路由信息來計算出最低開銷的路由選擇路徑。它的步驟其實非常簡單,首先是初始化,知道本節點與鄰居節點的距離,第二步交換信息并且進行計算,這里的計算只是計算當前節點與其他節點的距離,第三步再次交換信息。其實總結來說就是交換鄰居路由信息,并且做好計算再進行交換。但是路徑向量選擇算法很容易出現路由選擇環路,這是什么意思呢?(先給個圖)
可以看看這個圖,現在我們可以知道y到x的最小開銷路徑是y->x,并且是1的開銷。但是如果開銷變大了呢?y->x變成了60會發生什么事情?首先就是y知道改變了所以會通知z它到x的距離發生了變化,但是同時它也知道z->x的最短開銷距離是3。也就是說z其實還是原來的樣子,并沒有更新,而這個時候y->x的距離并不是直接變成60而是通過之前的信息得知z->x為3,那么y就很自然的把y->x的最短開銷距離變成y->z>x。但是y并不知道之前的z->y->x才能夠有這樣的最小開銷,也就是說z的信息沒有更新,它是錯誤的新開銷。而且z也會認為y->x的距離更新為3+1,所以z的距離也會更新為z->y->x,也就是y剛剛更新的好的3+1變成3+1+1。上面的操作其實就是,y以為這樣最短y->z>x,而z以為z->y->x最短。最后的結果就是y->z->y->z->…直到大于50。其實就是z與y之間不斷地循環直到這個數值大于50的時候z才會更新成功。這個就是路由選擇環路。
那么怎么解決這個問題呢?如果只是3個以下(不包括三個)節點產生了這樣的路由循環其實可以通過毒性逆轉來解決。其實就是z向y撒謊到x的距離是正無窮,這樣y就無法通過z來到達x。就會解除這個問題。但是3個以上的節點情況就會非常復雜難以解決。
2. 自治系統區域內的路由選擇:OSPF
為什么需要這個OSPF鏈路狀態協議呢?因為因特網上面的路由器非常多,想想如果我們采用的是鏈路狀態路由選擇協議會出現什么樣的問題。我們每個路由器都需要知道所有的路由信息,那么廣播所需要發送的報文是非常龐大的,這種負擔非常大。而OSPF協議可以通過分多個AS自治系統,分別在這些系統設置路由選擇算法進行路由選擇的管理。OSPF與之前的不一樣,它不僅僅是發生變化的時候會發送廣播更新,并且會周期性廣播增加了鏈路狀態算法健壯性。并且OSPF協議的報文由IP直接承載,實現了報文的可靠性傳輸和鏈路狀態廣播等功能。
3. ISP之間的路由選擇BGP
其實BGP就是自治區之間的路由選擇協議。那么為什么AS內與AS間需要各自的協議呢?原因是他們所需要實現的功能側重點不同。AS內更注重的是性能,也就是計算出表的速度,信息傳輸的速度等性能。而AS間就更注重策略和規模。規模其實就是隨著AS的增多,所需要的數據結構與算法都需要優化。而策略其實就是類似于,哪些客戶給了錢可以通過主干ISP,哪些沒有付費是不能經過的,這些都需要通過策略進制定。那么為什么AS內不注重規模呢?原因就是可以分多幾個AS啊。
那么BGP的作用其實就是管理AS之間的一個路由選擇。這里先介紹一些術語,前綴:子網或者子網集合。屬性:其實就是BGP中的一些描述,比如AS-PATH,NEXT-HOP等。路由:前綴+屬性。
BGP可以通過AS間的鄰居來獲取前綴可達性信息(某個AS的邊界路由器的前綴),并且可以通過路由選擇算法來確定最好的前綴路由。那么首先是第一個問題,BGP是怎么來通告這些路由信息的(用于路由選擇的算法計算的信息),BGP通過AS邊界路由器之間的半永久TCP連接來發送BGP報文,這種連接也叫BGP連接。對于每個AS路由器不是網關路由器就是內部路由器。如果這個時候需要鏈路信息改變,那么這個路由器就會通過內部傳輸iBGP把報文送到網關路由器,并由網關路由器通過eBGP外部連接送到所有的AS通告路由信息。
BGP的路由選擇算法
這里先介紹了一下屬性,AS-PATH其實就是記錄通告過的路由器的前綴,這個屬性可以防止循環問題的發生。,NEXT-HOP在AS-PATH中的初始路由器的IP地址其實就是距離路徑最近的接口。
①熱土豆路由選擇算法,為什么要叫熱土豆呢?因為這種算法需要快速把報文送出,并且在本AS中開銷最少,而不會管端到端的路徑是不是最優的。它的步驟是通過AS間路由選擇協議來學習所有的路由前綴可達性。然后就是選擇這里AS內最小開銷的路徑,選擇最小開銷路徑的網關,并且把這個前綴與對應的接口記錄到轉發表上面。總結來說就是選擇AS內最小開銷的路徑,再來通過AS間路由選擇下一個路徑。
②BGP的路由選擇算法規則。熱土豆路由選擇算法其實就是包含在這里。這里必須要介紹一個屬性本地偏好,其實就是通過人工設置這個值,主要用于路由策略。回到規則。首先第一個規則就是根據本地偏好來進行選擇,如果還有多余的路由那么就要通過就要通過最短的AS-PATH來選擇,第三個規則是通過熱土豆路由算法,最后還剩下路由的話就使用BGP路由器的標識來進行選擇。
BGP還可以用于IP任播,IP任播其實就是有多個服務器擁有同一IP地址,可以通過路由選擇選擇指定的服務器。這種服務通常可以用在DNS和CDN中。但是現在不用于CDN中,因為這種路由轉發可能會把相同的TCP連接中不同分組發送到不同的服務器進行處理,這樣很明顯是不行的。
最后談談路由策略。在我的理解路由策略其實就是客戶與提供商的一個關系,并且需要根據這個關系來進行人工調整這個路由選擇算法和一些路徑的選擇。比如沒有付費的用戶是不能通過某主干ISP,那么就需要一定的路由策略來避免這種流量的經過。
4. SDN控制平面
SDN的體系結構包括流的轉發、數據平面與控制平面的分離,網絡控制功能(SDN控制器),可編程網絡(應用程序)。他們之間的關系是什么呢?可編程網絡可以使用網絡控制功能層的信息和提供的方法來控制網絡設備。
而網絡控制功能也分了三個層,第一層是通信層,其實就是SDN控制器與網絡設備之間的通信接口,需要協議來實現這里報文傳輸。第二層是網絡范圍狀態管理其實就是保存鏈路狀態信息,主機信息和流表等。第三層就是類似于應用接口的層,SDN控制為應用提供方法與接口。能夠讓SDN控制器與應用層進行通信。
接下來就談談通信層上面的其中一個協議openFlow協議,它有多個重要報文,比如配置(配置參數信息的報文),讀狀態(讀網絡設備的狀態),修改狀態(修改網絡設備的狀態),發送分組(把網絡設備中的分組指定端口發送)這些都是控制器發送到網絡設備的,還有一些流刪除(網絡設備通知控制器刪除流表項),端口狀態,分組入等都是由網絡設備通知SDN控制器的報文。
5. ICMP因特網控制報文協議
這個協議其實就是路由器與主機之間的交互溝通。它運行在IP之上。ICMP最重要的一個功能就是差錯報告,如果HTTP會話找不到對應的主機,那么就會返回一條ICMP報文去通告主機。并且可以完成ping程序,ICMP回顯請求與回顯應答。還可以完成TraceRoute中的報文丟棄的告警和告訴Traceroute的主機何時停止發送的不可達ICMP報文。ICMP還有其他功能和作用,這里不再介紹。
6. 最后要介紹的是網絡管理與SNMP協議
現在講講網絡管理的體系結構。①網絡管理服務器(計算與控制信息)②被管理設備③MIB被管理對象數據庫④代理⑤協議(SNMP用于服務器與代理之間的通信的應用層協議)。
最后介紹的是SNMP協議
它是一個應用層的協議,并且是客戶-服務器結構的一個協議。它的報文有getRequestPDU(獲取網絡設備信息請求),setRequest(設置網絡設備信息請求),response PDU(返回數據)還有SNMPv2 PDU(陷阱報文,告知有異常)等。再聯合我們上面學習到的知識,這個應用層服務器管理控制SDN控制器來控制網絡設備信息來完成網絡管理的功能,其實這些應用協議與整個SDN控制平面息息相關。
總結
以上是生活随笔為你收集整理的网络层:控制平面总结的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 3种工厂模式详解
- 下一篇: 牛年上班第一天,祝大家工作顺利,还在路上