ip層路由決策一般由路由守護程式來實現,通常這是乙個使用者程序.路由守護程式大約每30秒就更新一次路由表,當收到icmp重定向時,路由表也會被更新.
ip選路原理
1.搜尋匹配的主機位址
2.搜尋匹配的網路位址
3.搜尋預設表項(預設表項一般被設定為乙個網路表項,其網路號為0)
路由表
用netstat -rn命令可以搜尋主機sun的路由表
sun % netstat -rn
routing tables
destination gateway flags refcnt use inte***ce
140.252.13.65 140.252.13.35 ugh 0 171 le0
127.0.0.1 127.0.0.1 uh 1 766 lo0
140.252.1.183 140.252.1.29 uh 0 0 sl0
default 140.252.1.183 ug 1 2955 sl0
140.252.13.32 140.252.13.33 u 8 99551 le0
其中,destination 代表目的位址,gateway 代表閘道器,flags代表路由器的不同標誌,refcnt 列出正在使用路由的活動程序個數, use代表通過該路由器傳送的分組數, inte***ce代表本地介面的名字.
五種不同的flags標誌
1.u 該路由可以使用
2.g 該路由是到乙個閘道器(路由器)
3.h 該路由是到乙個主機
4.d 該路由是由重定向報文建立的
5.m 該路由已經被重定向報文修改
對該路由表的分析
第一行是特定主機路由表項.140.252.13.65目的位址,閘道器把分組**給140.252.13.35(間接閘道器).
第二行是環迴介面,h標誌說明目的位址(127.0.0.1)是乙個主機位址,而不是乙個網路位址.沒有g標誌,說明是乙個直接路由,閘道器列給出的是外出的位址.
第三行是直接到達主機的位址,對應於點到點鏈路.閘道器位址為外出的本地介面的ip位址(140.252.1.29).
第四行是預設路由表項,到達另乙個網路的間接路由.閘道器位址是另一端的路由器ip位址,而不是本地ip位址.
第五行的目的位址是網路位址,其主機位址為0,閘道器位址為外出ip位址.
初始化路由表
1.在系統引導時顯式地使用route初始化時用命令.這種方法通常用來設定預設路由表項.
2.執行路由守護程式或用較新的路由器發現協議.
3.利用icmp路由器通告和請求報文.主機在引導以後通過廣播或多播傳送乙份路由請求報文,一台或多台路由器響應路由請求報文.路由器也定期是廣播或多皤傳送它們的路由器通告報文,允許每個監聽的主機更新它們的路由表.
在主機引導期間會傳送三份路由器請求報文,每三秒鐘傳送一次.一旦收到有效的通告報文,就停止傳送請求報文.同時主機也監聽來自路由器的通告報文,以隨時更新自己的預設路由.
路由器隨機地傳送通告報文,每兩次通告之間間隔450-600秒,其生命週期是30分鐘.預設路由器每10分鐘就傳送乙份通告報文,文章這說明預設表項是不會超時的.
icmp重定向差錯
當ip資料報應該被傳送到另乙個路由器時,收到資料報的路由器就要傳送icmp重定向差錯報文給傳送ip資料報的傳送端.icmp重定向一般用來給具有很少選路資訊的的主機建立更完善的路由表.主機啟動時路由表中可以只有乙個預設表項,通過icmp重定向不斷的更新路由表,從而使主機的路由表隨著網路拓撲結構而變化.
1.假設主機傳送乙份資料報給預設路由器r1.
2.預設路由器檢查它的路由表,發現路由器r2是傳送該資料報的下一站.當它把資料報傳送給r2時,r1檢測到它正在傳送的介面與資料報到達的介面是相同的,這樣就給路由器傳送重定向報文給原始傳送端提供了線索.
3.r1傳送乙份icmp重定向報文給主機,告訴它以後把資料報傳送給r2而不是r1.
BGP路由決策過程
1.如果下一跳無法到達,則不考慮 2.首選具有最大weight的路由 3.如果路由具有相同weight,則使用最高本地優先順序的路由 4.如果具有相同本地優先順序,則首選來自該路由器的bgp路由 5.如果沒有來自該路由器上的bgp路由,則選擇as長度最短的路由 6.如果所有的路由具有相同的as長度,...
網路層IP路由的負載均衡實現思路
equalize補丁可以解決路由的負載均衡問題,然而其實現的代價卻是禁用了均衡路由的快取,每次都要查詢路由表,查詢路由表的開銷抵消了一部分負載均衡帶來的效能提公升。因此最好的方法就是既實現了路由的負載均衡,又實現了路由快取,實現思路如下 為每一系列需要在其間做負載均衡的路由準備乙個均衡鍊錶t,新增路...
網路層IP路由的負載均衡實現思路
equalize補丁可以解決路由的負載均衡問題,然而其實現的代價卻是禁用了均衡路由的快取,每次都要查詢路由表,查詢路由表的開銷抵消了一部分負載均衡帶來的效能提公升。因此最好的方法就是既實現了路由的負載均衡,又實現了路由快取,實現思路如下 為每一系列需要在其間做負載均衡的路由準備乙個均衡鍊錶t,新增路...