IP數據包的路由轉發

 

IP路由器是連接多個IP網絡的設備,其主要的工作就是爲經過IP路由器的每個IP數據包尋找一條最佳傳輸路徑。

 

路由表就是記錄了各種傳輸路徑的數據的一張表,分爲靜態路由表和動態路由表。

靜態路由表是事先固定好的路由表,不會隨着網絡結構的改變而改變。

動態路由表一定的路由選擇算法自動調整的路由表。

IP數據包轉發過程:

IP數據包根據ARP緩存中查看是不是有目的主機的MAC地址,如果有就直接封裝成幀發送到目的主機,如果沒有就在本地局域網廣播一個ARP請求,然後目的IP主機返回一個ARP數據包,裏面有目的主機的MAC地址。

當IP數據包的目的IP不再本地網段時,A要向“缺省網關”發出ARP包,而“缺省網關”的IP地址已經在A系統軟件中設置。這個IP地址實際上對應路由器M的入口的IP地址。所以A對“缺省網關”的IP地址廣播出一個ARP請求時,路由器M的E0口的MAC回覆給A,此時A數據包封裝成幀,目的MAC替換爲M的E0口MAC。然後再鏈路層發送給默認路由器數據幀,到達路由器之後再解包到IP網絡層,得到目的IP的網段,然後就需要用到上圖路由表中的信息了。

根據路由表查找到相關表項,得到下一跳及入口出口的MAC地址,所以IP包再封裝爲源mac是當前路由器出口MAC,目的MAC是下一跳路由器的數據幀(幀的重寫),再經過鏈路層發送,直到到達目的網段。到達目的網段後再根據目的IP到達目的主機。

 

路由器的詳細工作:

注意路由表中的getway值是直接轉發和下一跳路由器地址,如果目的IP命中了路由表, 就直接轉發,getway就顯示爲爲*。

route命令查看路由表信息

請看下圖路由表相關信息

路由表的作用:

這裏一個目的網段對應一個出口

這臺主機有兩個網絡接口,一個網絡接口連到192.168.10.0/24網絡,另一個網絡接口連到
192.168.56.0/24網絡;
路由表的Destination是目的網絡地址,Genmask是子網掩碼,Gateway是下一跳地址,Iface是發送接
口,Flags中的U標誌表示此條目有效(可以禁用某些 條目),G標誌表示此條目的下一跳地址是某個路由器的
地址,沒有G標誌的條目表示目的網絡地址是與本機接口直接相連的網絡,不必經路由器轉發;

 

轉發過程例1:

如果要發送的數據包的目的地址是192.168.56.3
跟第一行的子網掩碼做與運算得 到192.168.56.0,與第一行的目的網絡地址不符
再跟第二行的子網掩碼做與運算得 到192.168.56.0,正是第二行的目的網絡地址,因此從eth1接口發送出
去;
由於192.168.56.0/24正 是與eth1 接口直接相連的網絡,因此可以直接發到目的主機,不需要經路由器轉
發;

 

轉發過程例2:

如果要發送的數據包的目的地址是202.10.1.2
依次和路由表前幾項進行對比, 發現都不匹配;
按缺省路由條目, 從eth0接口發出去, 發往192.168.10.1路由器;
由192.168.10.1路由器根據它的路由表決定下一跳地址;

 

 

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