1.自治系統
1)為了采用分層次的路由選擇協議,因特網將整個互聯網划分成許多自治系統,簡稱為AS
2)為什么要采取分層次的路由協議:
- 因特網規模很大,如果要讓所有路由器知道所有的網絡應該怎么到達,則這種路由表將非常大,處理起來很花時間
- 許多單位不願意外界了解自己單位所采取額路由選擇協議
3)內部網關協議IGP:在一個自治系統AS內部使用的路由協議,常見的有RIP、OSPF
4)外部網關協議EGP:在AS之間使用的路由協議,常見的有BGP
2.內部網關協議
2.1RIP協議
1)RIP(Routing Information Protocol)路由信息協議,是一個基於距離向量的路由協議
2)每個運行RIP的路由器維持着一張路由表,路由表的內容是從它自己到其他每個目的網絡的距離和下一跳(最大距離為15,距離為16表示此路由不可達。也就是說一條路徑上最多只能包含15個路由器,可見,RIP只適用於小型網絡),距離是指本路由器要到達目的網絡要經過的路由器數量加1,加1是因為路由器到直連網絡的距離被定義為1
3)路由器會定期地向它的鄰居路由器發送它的路由表
4)每一個接收者通過把接收到的路由信息與自己路由表中的路由信息比較,並根據Bellman-Ford算法,選出最好的路由來更新自己的路由表
5)RIP使用UDP傳送,因為只和鄰居交換信息,不容易丟,可以用UDP,就算丟了,由於是定期地發送路由表,又何妨,同時UDP開銷小
5)優點:實現簡單
6)缺點:
- 最大距離限制,只適用於小型網絡
- 路由信息收斂速度慢,由於相互欺騙會引起“累加到無窮”的問題:
- 無法根據鏈路性能選路
- 不能進行負載平衡,因為只保留了一條最短路徑
2.2OSPF協議
1)OSPF(Open Shortest Path First)開放式最短路徑優先,是一個基於鏈路狀態的路由協議
2)鏈路狀態:一個路由器的鏈路狀態是指它與哪些網絡或路由器相鄰,以及到這些網絡或路由器的度量,度量可以是時延、帶寬、距離、費用等等,這由管理人員來定
3)每一台路由器的鏈路狀態都會被本自治系統AS中的所有路由器知道,使用的方法是洪泛法,首先本路由器向所有相鄰路由器發送鏈路狀態,然后每一個相鄰路由器又將此信息發往它的所有相鄰路由器,不斷地進行下去,最后所有的路由器都收到了
4)OSPF用鏈路狀態通告LSA(Link - State Advertisement)來描述鏈路狀態,路由器通過與網絡中其他路由器交換LSA來建立和更新鏈路狀態數據庫
5)只有當鏈路狀態發生變化時路由器才發送鏈路狀態,不像RIP那樣每隔一定時間就發
6)由於各路由器都可以收到其他所有路由器鏈路狀態信息,因此所有的路由器都能建立一個相同的鏈路狀態數據庫,也就是全網的拓撲圖
7)各個路由器根據這張全網拓撲圖,采用dijkstra算法,以自己為根,構造最短路徑樹,於是就得到了路由表
8)OSPF協議由三個子協議組成:Hello協議、交換協議和擴散協議
9)OSPF五種類型的分組
- Hello報文,通過周期性地向相鄰路由器發送來建立和維護鄰居關系,網絡中傳輸的絕大多數OSPF報文都是Hello報文,因為每10秒就要發一個Hello報文
- DD(數據庫描述)報文,攜帶自己數據庫的摘要,向鄰居路由器發送
- LSR(鏈路狀態請求)報文,向對方請求本地沒有的LSA
- LSU(鏈路狀態更新)報文,攜帶更新的LSA
- LSAck(鏈路狀態確認)報文,對LSU的確認
10)Hello協議:
- 路由器定期地給相鄰路由器發送Hello報文來建立和維護鄰居關系(維護是指定期確認相鄰的路由器之間的可達性)
- Hello報文同時完成指派路由器DR及備份指派路由器BDR:在多路訪問網絡上可能存在多個路由器,為了減少廣播的信息量,OSPF要求在區域中選舉一個DR,每個路由器都與之建立完全相鄰關系,DR負責收集所有的鏈路狀態信息,並發布給其他路由器。選舉DR的同時也選舉出一個BDR,在DR失效的時候,BDR擔負起DR的職責
11)擴散協議:每一個路由器一旦發現鏈路狀態變化,就告知所有的相鄰路由器,相鄰路由器又將此信息發往它的所有相鄰路由器,不斷地進行下去,這樣就可以使得整個自治系統AS內的所有路由器的鏈路狀態數據庫都相同
12)交換協議:
- 由於雙方的數據庫內容有可能部分重合,為了減少流量,OSPF首先進行的不是整個數據庫的交換,而是利用DD報文發送自身數據庫的摘要,通過交換摘要信息,發現數據庫中沒有的項,然后向鄰居路由器請求該項的完整信息,最終達到數據庫的同步
- 交換的過程是非對稱的:存在主 / 從路由器,雙方在交換之前首先根據路由器id進行主從路由器的選擇(選擇id更大的為主),主路由器負責序列號的增加和重傳,從路由器負責應答
13)OSPF直接用IP數據報傳送,洪泛法導致在網絡上發送的信息很多,直接使用IP數據報就可以讓開銷盡可能地降到最低
14)優點:
- 沒有跳數限制,適用於大型網絡
- 收斂速度快,沒有“好消息傳得快,壞消息傳得慢的問題”
- 能夠根據鏈路性能(度量)選路,度量可以自己設定
- 提供多路徑負載均衡
- OSPF交換的分組支持鑒別(身份驗證,通過一個校驗碼進行保護)功能,提高的了網絡的安全性
3.外部網關協議
3.1BGP協議
1)BGP(Border Gateway Protocol)邊界網關協議,是一種基於路徑向量的路由協議
2)BGP並不尋找最佳路由,而是尋找一條比較好(不兜圈子就行)的路由:
- 一是因為因特網規模大,找出最佳路由太難實現,比較合理的做法就是在AS之間只交換可達性信息,即到達目的網絡要經過哪些AS,並不強調距離
- 二是因為不同AS的網絡性能相差很大,根據最短距離找出來的路由可能不合適
3)每一個自治系統AS選出一個路由器作為本AS的BGP發言人(往往是BGP邊界路由器,但也可以不是),由代表們進行信息交換
4)BGP使用TCP連接,建立了連接的兩個BGP發言人稱為對方的對等體,在開始時向鄰站交換整張BGP路由表,但之后只需要交換有變化的部分;正由於開始時交換整張路由表,所以要采用TCP保證完整性
5)BGP有四種報文:
- Open(打開)報文:用來和另一個BGP發言人建立關系,使通信初始化
- Keepalive(保活)報文:BGP會周期性地向對等體發出Keepalive報文,用來保持對等體的連通性
- Update(更新)報文:用來在對等體之間交換路由信息,既可以發布新的路由,也可以撤銷過時的路由
- Notification(通知)報文:用來發送檢測到的差錯,之后BGP連接會立即中斷
6)BGP克服循環選路的方法:AS之間,依靠AS_PATH屬性,AS_PATH會把經過的AS號都記錄下來