是否没有环回地址的路由条目?

是否没有环回地址的路由条目?
$ /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)位于本地主机中?

当目的地址是环回地址时,真的就没有路由条目了吗?

谢谢。

答案1

当内核处理数据包时,路由表并不是首先考虑的事情;路由表并不是内核处理数据包时首先考虑的事情。首先有一个规则表,您可以使用 来查看ip rule listip route list(以及已弃用的route)列出了主表,但有一个本地表具有更高的优先级,并列出了涉及环回接口的所有路由;跑去ip route show table local看他们。

发送至环回地址的数据包不会离开系统。

相关内容