(9)IP選路

一、簡介

    選路是IP最重要的功能之一。IP層工作流程如下所示:


二、選路的原理

    IP搜索路由表的幾個步驟爲:

    (1)搜索匹配的主機地址;
    (2)搜索匹配的網絡地址;

    (3)搜索默認表項(默認表項一般在路由表中被指定爲一個網絡表項,其網絡號爲0)。

    匹配主機地址步驟始終發生在匹配網絡地址步驟之前。IP層進行的選路實際上是一種選路機制,它搜索路由表並決定向哪個網絡接口發送分組。這區別於選路策略,它只是一組決定把哪些路由放入路由表的規則。IP執行選路機制,而路由守護程序則一般提供選路策略。

    netstat -r命令可以查看路由表。

    如果路由表中沒有默認項,又沒有找到匹配項。如果該IP數據報由本機產生,則給發送該數據報的應用程序一個差錯,或者是“主機不可達差錯”或者是“網絡不可達差錯”,如果該數據報是被轉發的,那麼就給原始發送端發送一份ICMP主機不可達差錯報文。

三、ICMP主機與網絡不可達差錯

    當路由器收到一份IP數據報但又不能轉發時,就要發送一份ICMP“主機不可達”差錯報文。

四、ICMP重定向差錯

    當IP數據報應該被髮送到另一個路由器時,收到數據報的路由器就要發送ICMP重定向差錯報文給IP數據報的發送端。重定向一般用來讓具有很少選路信息的主機逐漸建立更完善的路由表。

    ICMP重定向允許TCP/IP主機在選路時不需要具備智能特性,而把所有的智能特性放在路由器端。

    ICMP重定向報文的接收者必須查看三個IP地址:

    (1)導致重定向的IP地址(即ICMP重定向報文的數據位於IP數據報的首部);

    (2)發送重定向報文的路由器的IP地址(包含重定向信息的I P數據報中的源地址;

    (3)應該採用的路由器IP地址。

    在生成ICMP重定向報文之前這些條件都要滿足:
    (1)出接口必須等於入接口;
    (2)用於向外傳送數據報的路由不能被ICMP重定向報文創建或修改過,而且不能是路由器的默認路由;
    (3)數據報不能用源站選路來轉發;
    (4)內核必須配置成可以發送重定向報文。

    爲防止路由器或主機的誤操作,以及惡意用戶的破壞,導致錯誤地修改系統路由表,在修改路由表之前要作一些檢查
    (1)新的路由器必須直接與網絡相連接;
    (2)重定向報文必須來自當前到目的地所選擇的路由器;
    (3)重定向報文不能讓主機本身作爲路由器;
    (4)被修改的路由必須是一個間接路由。
    關於重定向最後要指出的是,路由器應該發送的只是對主機的重定向,而不是對網絡的重定向。子網的存在使得難於準確指明何時應發送對網絡的重定向而不是對主機的重定向。只當路由器發送了錯誤的類型時,一些主機才把收到的對網絡的重定向當作對主機的重定向來處理。 

五、ICMP路由器發現報文

    初始化路由表的方法,一種是在配置文件中指定靜態路由,這種方法經常用來設置默認路由。另一種方法時利用ICMP路由器通告和請求報文。一般,主機在引導後廣播或多播傳送一份路由器請求報文,一臺或多臺路由器響應一份路由器通告報文。這一廣播或多播路由器請求報文的行爲在路由器啓動後周期性的進行,一般週期在450秒和600秒間隨機選擇,以免與子網上其他路由器產生衝突。一個給定的通告報文默認生命週期是30分鐘。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章