IP路由表的標誌

前言

本文主要整理了下IP路由表的幾個標誌的意思,至於IP選路機制及詳細過程,如有需要建議查閱相關資料。

查看IP路由表

  • windows系統

        netstat -r或者route PRINT,route PRINT命令後也可指定匹配信息,具體可看幫助信息(route --help)

  • linux系統

        netstat -r或者route.

    其實兩個系統的命令都差不多。本文以ubuntu示例說明。

路由表搜索步驟

        發送本機數據報(或者轉發分組),需要搜索路由表確定從哪個網絡接口發送到下一跳路由或目的地。下面是搜索步驟,按序(參考自《TCP/IP詳解 卷一》:

1. 搜索匹配的主機地址;

2. 搜索匹配的網絡地址;

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

       下面提供個示例說明:

       我自己的筆記本上,裝了個虛擬機Ubuntu系統,路由表如下(使用了-n參數,不看網絡名):

  1. 0.0.0.0是默認路由項,如果不加-n參數,就是default
  2. 39.156.66.18(百度的IP)是主機路由表項,打開百度,從路由先搜索到這個匹配的主機地址,就從接口eth0發送了;
  3. 如果目的IP是192.56.76.8,主機路由表項沒有匹配的,就會搜索網絡路由表項,匹配到192.56.76.0,從接口eth0發送出去(就這一個網卡,湊合理解吧,反正只能從這個網卡走)
  4. 如果目的IP是172.88.88.88,主機路由表項不匹配,網絡路由表項不匹配,就走默認路由了(0.0.0.0),好吧還是從接口eth0出去了。

IP路由表包含的標誌

        上面截圖Flags那一列的標誌字段。

        p.s. 下面的標誌,只是其中的大部分,還有個別及不確定的未包含。

  • U:路由可用。看上面的示例截圖,除了感嘆號那個,其它是都有這個標誌。
  • H:目標是一個主機。主機路由:該路由是到一個主機,目的地址是一個完整的主機地址。如果主機匹配,直接走這個路由。反之,如果不存在這個標誌,如截圖中的網絡路由,說明目的地址是一個網絡號或者網絡號與子網號的組合。
  • G:該路由是路由到一個網關(如路由器)。該項存在,說明是間接路由,下一跳到一個網關,多次路由後可能到達目標主機,與之相反的是直接路由(不存在G標誌)。直接路由與間接路由的區別是:直接路由的目的IP地址和目的mac地址都指向最終目的地,而間接路由的話,目的IP地址指向最終目的地的IP,但是目的mac地址是網關的地址。個人認爲其實還是因爲鏈路層數據幀傳輸不關心IP 。
  • R:恢復動態路由的路由
  • D:由選路守護進程或重定向報文創建的路由,比如重定向報文是不允許主機發送(只能是路由器),在同一局域網下,主機A發送一個報文到了路由器A,路由查找路由後發給了路由器B,這個報文主機是可以直接發送給路由器B的,路由器A就是發送一個重定向的ICMP報文給主機,主機在路由表中新增一條到路由器B的路由項
  • M:被重定向報文或選路守護進程修改的路由項
  • !:這個上面截圖有,強制路由失敗的,打個比方,有個主機(或網絡)如果在路由表中匹配不到,最終走默認路由,但是如果指定了!這個操作(拒絕),其實在路由表中找到了,不會走默認路由,但作爲路由失敗處理(強制路由失敗操作)。

 

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