Routing

是否沒有環回地址的路由條目?

  • March 26, 2019
$ /sbin/route -n 
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         192.168.122.1   0.0.0.0         UG    0      0        0 ens3
192.168.122.0   0.0.0.0         255.255.255.0   U     0      0        0 ens3

$ /sbin/ifconfig
ens3: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
       inet 192.168.122.202  netmask 255.255.255.0  broadcast 192.168.122.255
       inet6 fe80::5054:ff:fe99:5eee  prefixlen 64  scopeid 0x20<link>
       ether 52:54:00:99:5e:ee  txqueuelen 1000  (Ethernet)
       RX packets 14906  bytes 18020195 (17.1 MiB)
       RX errors 0  dropped 0  overruns 0  frame 0
       TX packets 7390  bytes 786783 (768.3 KiB)
       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 35568

lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
       inet 127.0.0.1  netmask 255.0.0.0
       inet6 ::1  prefixlen 128  scopeid 0x10<host>
       loop  txqueuelen 1  (Local Loopback)
       RX packets 496  bytes 39840 (38.9 KiB)
       RX errors 0  dropped 0  overruns 0  frame 0
       TX packets 496  bytes 39840 (38.9 KiB)
       TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0

當一個數據包到達主機並且該數據包的目的地是環回地址(127.0.0.1)時,

  • 根據路由表中的第一條規則,它會被傳輸到 ens3(192.168.122.202)然後到網關(192.168.122.1)嗎?
  • 如果是,那是不是錯了,因為預期的目的地(127.0.0.1)在本地主機中?

當目標地址是環回地址時,真的沒有路由條目嗎?

謝謝。

當核心處理一個數據包時,路由表並不是首先考慮的。有一個首先出現的規則表,您可以使用ip rule list. ip route list(和棄用的route)列出主表,但有一個本地表具有更高的優先級,並列出了所有涉及環回介面的路由;跑去ip route show table local看他們。

發往環回地址的數據包不會離開系統。

引用自:https://unix.stackexchange.com/questions/508737