route路由的順序問題了數據包的轉發流程


2018-02-28   15:29:26

[root@linux ~]# route
Kernel IP routing table
Destination     Gateway           Genmask            Flags      Metric    Ref    Use   Iface
192.168.10.0     *                    255.255.255.0    U              0           0        0      eth0
169.254.0.0       *                    255.255.0.0        U              0           0        0      eth0
default              server.cluster   0.0.0.0              UG            0           0        0      eth0

此外,觀察一下上面的路由排列順序喔,依序是由小網域(192.168.10.0/24 是 Class C),逐漸到大網域(169.254.0.0/16 Class B) 最后則是預設路由 (0.0.0.0/0.0.0.0)。然后當我們要判斷某個網路封包應該如何傳送的時候,該封包會經
由這個路由的過程來判斷喔!舉例來說,我上頭僅有三個路由,若我有一個傳往 192.168.10.20 的封包要傳遞,那首先會找 192.168.10.0/24 這個網域的路由,找到了!所以直接由 eth0 傳送出去;如果是傳送到 Yahoo 的主機呢? Yahoo
的主機 IP 是 202.43.195.52,我通過判斷

1)不是 192.168.10.0/24,
2)不是 169.254.0.0/16 結果到達

3)0/0 時, OK !傳出去了,透過 eth0 將封包傳給 192.168.10.30 那部 gateway 主機啊!所以說,路由是有順序的。因此當你重復設定多個同樣的路由時,例如在你的主機上的兩張網路卡設定為相同網域的 IP 時,會出現什么
情況?會出現如下的情況:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
192.168.10.0 0.0.0.0 255.255.255.0 U 0 0 0 eth1
也就是說,由於路由是依照順序來排列與傳送的,所以不論封包是由那個介面 (eth0, eth1) 所接收,都會由上述的 eth0 傳送出去,所以,在一部主機上面設定兩個相同網域的 IP 本身沒有什么意義!有點多此一舉就是了。除非是
類似虛擬主機 (Xen, VMware 等軟體 ) 所架設的多主機時,才會有這個必要~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM