何時使用動態選路協議
在小型網絡中一般使用靜態選路,在配置接口時,以默認方式生成路由表項(直連),通過route命令添加路由表項,或者通過ICMP重定向報文生成路由表項。
但是在網絡環境複雜或者以上的方法無法滿足的時候就會使用動態選路協議了
動態選路協議是用於路由器之間的通信
包括RIP,OSPF, BGP, 無分類域間選路
路由器上有個路有守護進程,用來運行選路協議,與其相鄰的一些路由器進行通信。該守護進程根據它從相鄰路由器接收到的信息,更新內核中的路由表
這時候 路由表是由路由守護進程動態的增加或刪除,而不再是通過route命令
選路機制
守護進程發現前往同一信宿(路由或主機)存在多條路由,那麼它以某種方式進行篩選,選擇最優路線,並增加到路由表中。
如果路由守護髮現某一條鏈路已經斷開,它可以刪除該路由或者增加另一條路由以繞過此問題
IGP
Internet採用的是自治系統的方式組織的。每個自治系統通常由單個管理。通常是一所大學或者一家公司定義爲自治系統。骨幹網也是一個自治系統
每個自治系統都可以選擇該自治系統中各個路由之間的選路協議。
這種協議稱爲IGP(內部網關協議或域內選路協議)
IGP 是一系列協議的分類名稱
IGP中最常用的是RIP協議
EGP / BGP
而外部網管協議是EGP, EGP有新版和舊版分別,同名。用於不同自治系統之間的路由器。
新EGP是骨幹網和連接到骨幹網的區域性網絡使用的邊界協議BGP
Unix選路守護程序
常常是routed路由守護程序,只提供RIP,這是一種小型到中型的網絡選路協議
另一個是gated支持IGP和EGP
RIP選路信息協議
描述文件RFC1058
報文格式
報文包含在UDP數據報中
RIP數據報格式
命令字段:
- 請求,要求其他系統發送全部或部分路由表項
- 應答 包含發送者的全部或部分路由表
- 捨棄不用
- 捨棄不用
- 輪詢(非正式命令)
- 輪詢表項(非正式命令)
版本字段:
1代表第一版,2代表第二版
地址系列字段爲2表示是IP地址。
度量是以跳計數
數據報長度
RIP報文長度爲20字節。可以發送最多25條路由。總長度就是20*25+4=504字節,小於512字節。經常,發送完整的路由表需要多個報文
運行過程
RIP常用的UDP端口爲520
初始化:
路由守護進程啓動時,先判斷啓動了那些接口,然後再這些端口上發送請求報文,要求其他路由器發送完整的路由表過來。如果是點對點,則對其他終端發,如果網絡支持廣播就以廣播形式發送。(520端口,報文命令字段1,地址系列爲0,度量字段爲16)這種報文是要求對方提供完整路由表的特殊報文。
接受到請求時:
如果企業接受到了路由請求報文,也就是上面說的這個報文。則會將完整的路由表發送過去。否則,會處理請求中的每一項:如果有連接到指名地址的路由,則將度量設置成我們的值。否則就設置成16,16是代表無窮大的意思。然後發送響應報文
接受到響應:
根據響應報文對路由表進行更新。
定期選路更新:
每30秒,路由器會將完整的路由表發給相鄰的路由器。廣播或點對點。
觸發更新:
每當一條路由的度量發生變化,就對它進行更新。然後發送該表項給相鄰的路由器
異常處理
如果運行RIP的系統發現有一條路由3分鐘內未更新,就將該路由的度量設置成16,並標註爲刪除。也就是說在6個30秒更新時間內沒收到通告該路由的路由更新了。在過60秒就在本地路由表中刪除該路由。
度量
以跳計算。直接連接接口爲1跳
R1跟N1, N2爲1跳
R2跟N3,N2爲1跳
R2跟R1爲2跳
數值最大跳數爲15,16表示無路由到達該IP地址
RIP缺點
- RIP沒有子網地址的概念。這樣有可能會出錯
- 當路由器或者鏈路法神故障時,如果故障發生超過3分鐘。有可能發生路由環路(數據報不停的在網路中傳輸。導致癱瘓)。
實現RIP時,必須採用很多措施來防止路由環路。 - 度量最大值爲15,限制了使用RIP網絡的大小。
RIP2
RPI2是RIP的擴充,由RFC1388定義。主要是利用那些RIP數據報中必須爲0的那些字段來加入額外的信息。如果忽略這些,俺麼RIP和RIP2可以互換。
選路域:指出了該數據報的所有者。它可以是一個進程號,允許單個路由器上運行多個RIP實例。每個實例對應1個進程號
路由標記(選路標記):爲了支持外部網關協議而存在。它攜帶一個EGP和BGP的自治系統號。
子網掩碼:對應IP地址。
下一站IP地址:指名下一跳IP地址(不是目的IP)。如果爲0則表明發往目的地址的報文應該發給發送RIP報文的系統。
RIP2提供了一種簡單的鑑別機制。 報文的前20字節中的地址系列設爲0xffff,路由標記爲2.其餘16字節包含1個明文口令。
支持多播(RIP不支持)
OSPF第二版
開放最短路徑優先 另一個內部網關協議。
由RFC1247描述
OSPF是鏈路狀態協議:
路由器並不與響鈴路由器交換距離協議,而是主動測試與相鄰的路由器測試其狀態。並將這些信息發送給其他相鄰的路由器,其他相鄰的路由將這些信息傳播出去。每個路由器都接受這些信息以此來完善路由表
與RIP不同點
- OSPF直接使用IP協議,而不是UDP或者TCP
- OSPF能夠對每個IP服務類型計算各自的路由集,也就是意味着可以有多個路由表項。
- 給每個接口指派一個無維數的開銷。可以通過吞吐率,往返時間, 可靠性或其他性能指標進行指派,可以給每個IP服務類型指派一個單獨的費用
- 當對同一個IP地址存在多個相同開銷的路由時,OSPF會平均分配流量。
- 支持子網:子網掩碼與每個通告路由相連。這樣允許一個任何類型的IP地址分割成不同大小的子網(變長子網)。到一個主機的路由是全1子網掩碼,到默認路由就是全0(IP地址0.0.0.0,掩碼也是全0)
- 點對點之間不需要每端都有IP地址。 也就是無編號網絡。
- 採用多播而不是廣播
OSPF逐漸替代RIP
BGP
邊界網關協議
替代EGP
RFC1267描述第三版協議,RFC1268描述如何在Internet中使用
RFC1467描述第四版
BGP之間交換的信息包括數據到達這些網絡所必須經過的自治系統AS中所有的路徑。這些信息足以構造一幅自治系統的連接圖。然後根據這連接圖刪除選路環,制定選路策略
將IP數據報分爲本地流量和通過流量
- 本地流量是指數據在從本自治系統發出。或者本自治系統最終接受處理的IP數據報
- 其他的稱爲通過流量
Internet使用BGP的目的是減少通過流量
自治系統分類
- 殘樁自治系統(stub AS):與其他自治系統只有單個連接。只有本地流量
- 多接口自治系統(multihomed AS):與其他自治系統有多個連接,但拒絕傳送通過流量
- 轉送自治系統(transit AS):與其他自治系統有多個連接,在一些策略規則下可以傳送本地流量和通過流量
Internet的拓撲結構就是這3個AS任意相連
stub AS和multihomed AS用EGP,不用BGP
BGP允許自治系統管理員制定選路策略。
BGP基於TCP傳輸。兩個BGP通過TCP建立連接,然後交換路由表。當路由表發生變化時再發送更新信號
BGP是距離向量協議。但他列舉了每個目的地址的路由(到達目的地址的序列號)
系統標識爲16bit數字
BGP定期發送keepalive報文給相鄰站檢測TCP連接對端的鏈路或主機失敗。報文發送間隔爲30秒。應用層的keepalive和TCP的keepalive是獨立的東西
CIDR
無類型域間選路
是一個防止Internet路由表膨脹的方法。也稱爲超網。RFC1518和RFC1519對他進行定義和描述.RFC1467對開發狀況進行小結
CIDR的基本觀點
將路由表中的多項總和成更少的數目。
比如,8個不同的站點通過同一個Internet服務商的同一個連接點接入Internet的。那就將這8個不同IP地址路由表進行總和。那麼對與這8個站點。只需要單個路由表項即可
採用這種方法的條件:
- IP地址必須具有相同的高位地址比特
- 路由表和選路算法必須拓展成根據32bitIP地址和32bit子網掩碼做出選路決策
- 必須擴展選路協議使其除32bit地址外,還要有32bit掩碼。OSPF和RIP-2都行
另一種技術,使最佳匹配總是最長的匹配。
”無類型“的意思是選路決策是基於整個32BitIP地址的掩碼操作,而不管是A類還是B類還是C類
這個是一個短期解決方案。