IP選路

IP路由選擇主要要解決的問題是:
在給定的主機上運行何種路由協議;
如何在相鄰路由器上交換選路信息;
選錄協議是如何工作的。

這章,主要要了解單個IP層如何做出路由決策

============================================

選路的原理:
當路由器收到一個需要它轉發的IP包的時候,它會搜索路由表
其步驟(按先後順序):
1)搜索匹配的主機地址
2)搜索匹配的網絡地址
3)搜索默認選項
然後決定將該IP包發往何處。

============================================

一個簡單的路由表:

Destination Gateway Flags Refcnt Use Interface
140.252.13.65 140.252.13.35 UGH 0 0 emd0
127.0.0.1 127.0.0.1 UH 1 0 lo0
default 140.252.13.33 UG 0 0 emd0
140.252.13.32 140.252.13.34 U 4 25043 emd0

當路由器收到一個IP包,它會將該IP包的目的IP地址與Destination匹配,然後通過本機的Interface接口,發往相對應的Gateway。
對於該路由表中,127.0.0.1時環回接口。名字始終時lo0。
而default時默認路由。當無法搜索到匹配選項的時候,IP包均發往該處。
如果路由表中沒有匹配項,也沒有默認項,就會給發送數據報的應用程序返回一個差錯,“主機不可達差錯”或者“網絡不可達差錯”

該路由表中,Flag字段的5種標誌是:
U:該路由可以使用(在搜索路由表時,可以被搜到)
G:該路由是到一個網關(路由器)的。有這個標誌,表示該路由是一個間接路由,數據報將發往下一個路由器。
H:該路由是到一個主機的。就是目的地址是一個完整的主機地址,在搜索路由表時IP地址要全部匹配。如果沒有該標誌,說明這個是一個網絡地址,搜索路由表時只要匹配網絡號。
D:該路由是由重定向報文創建的
M:該路由已被重定向報文修改

Refcnt:列出正在使用路由的活動進程個數。
Use:通過該路由發送的分組數。

============================================

ICMP重定向差錯:
當主機啓動時,一般只有一個默認選項,指向默認路由。當主機向外部目的地發包時,包都會先發往默認路由。
默認路由會發現主機和目的地之間存在更好的路由選項。默認路由器就會通知主機,進行重定向,主機會對路由表做相應的改動。以後主機再發包給目的地時,主機會選擇重定向後的較優路由。
因此,雖然主機啓動的時候只有一個默認路由。但主機可以通過重定向報文,來逐步學習,完善主機的路由表。

ICMP重定向報文格式:

類型(5) 代碼(0-3) 檢驗和
應該使用的路由器IP地址
IP首部(包括選項)+原始IP報中數據前8字節

代碼項中不同值的含義:0表示網絡重定向;1表示主機重定向;2表示服務類型和網絡重定向;3表示服務類型和主機重定向。
ICMP重定向報文,只能由路由器生成,不能由主機生成。ICMP重定向報文是爲主機使用的。

============================================

ICMP路由器發現報文:
主機引導後,會廣播或多播傳送一份路由器請求報文。一臺或更多的路由器響應一份路由器通告報文。
ICMP路由器請求報文格式:

類型(0) 代碼(0) 檢驗和
未用(置爲0發送)

另外,路由器會定期的廣播或多播傳送他們的路由通告報文,允許監聽的主機更新他們的路由表。
ICMP路由器通告報文格式:

類型(9) 代碼(0) 16位檢驗和
地址數 數據項長度 生存時間
路由器地址【1】
優先級【1】
路由器地址【2】
優先級【2】
…………

地址數:報文中所含的地址數
地址項長度:始終爲2
生存時間:通告地址有效的時間(秒數)
然後是一對或多對IP地址和優先級。IP地址必須是發送路由器的某個地址。
優先級指出該IP地址作爲默認路由器地址的優先等級(值越大,優先級越高)。

路由守護程序(daemon):一般都是一個用戶進程(例如是路由程序和網關程序)。在系統引導時啓動,在系統運行期間一直存在。
路由器發現報文一般由用戶進程(守護程序)創建和處理。

發佈了10 篇原創文章 · 獲贊 12 · 訪問量 6萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章