想請問,Linux的route指令show出的rule理論上排列順序應該是由小網域,例如(192.168.10.0/24 是 Class C),逐漸到大網域(169.254.0.0/16 Class B) ,最後才是預設路由 (0.0.0.0/0.0.0.0)。
但在我的主機上,如下顯示
route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.20.129 0.0.0.0 UG 1 0 0 eth0
0.0.0.0 192.168.111.1 0.0.0.0 UG 10 0 0 br0
0.0.0.0 0.0.0.0 0.0.0.0 U 1014 0 0 eth7
0.0.0.0 0.0.0.0 0.0.0.0 U 1019 0 0 eth6
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth7
169.254.0.0 0.0.0.0 255.255.0.0 U 0 0 0 eth6
169.254.0.0 0.0.0.0 255.255.0.0 U 1000 0 0 eth3
172.16.131.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet8
172.17.0.0 0.0.0.0 255.255.0.0 U 0 0 0 docker0
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth2
192.168.3.0 0.0.0.0 255.255.255.0 U 0 0 0 eth3
192.168.4.0 0.0.0.0 255.255.255.0 U 0 0 0 eth4
192.168.5.0 0.0.0.0 255.255.255.0 U 0 0 0 eth5
192.168.20.128 0.0.0.0 255.255.255.224 U 0 0 0 eth0
192.168.111.0 0.0.0.0 255.255.255.0 U 0 0 0 br0
192.168.122.0 0.0.0.0 255.255.255.0 U 0 0 0 virbr0
排序第一筆卻是:
0.0.0.0 192.168.20.129 0.0.0.0 UG 1 0 0 eth0
這樣一來不是所有封包都會由eth0出去?
但如果我192.168.2.x 網域的主機又都ping的通,顯然是由eth2介面出去,所以並不是一律套用第一筆eth0規則
請問這是為什麼?