解释未指定网关的路由

解释未指定网关的路由

以下行是输出的一部分ip route show

10.244.0.0/24 dev kube-bridge proto kernel scope link src 10.244.0.1

上述路由未指定网关。这是否意味着它所做的只是指定下一个数据包直接跳转到目的地时要使用的接口和要记录的源?具体来说,以这种方式为路由指定接口到底有什么作用?

答案1

具体来说,以这种方式为路由指定接口到底起什么作用?

这称为“设备路由”,意思是“网络 10.244.0.0/24 直接连接到设备kube-bridge”。发往该网络的流量将直接从指定设备发出,而无需通过中间系统路由。

您的系统上有一个设备路由,用于系统直接连接到的每个网络;例如,我的本地系统通过桥接设备连接到我的家庭网络 (192.168.1.0/24) 和多个虚拟网络(用于容器和虚拟机)。我的主要路由表包含以下设备路由,代表我的系统连接到的不同网络:

127.0.0.0/8 dev lo proto kernel scope link src 127.0.0.1 metric 30
172.17.0.0/16 dev docker0 proto kernel scope link src 172.17.0.1 metric 427 linkdown
172.19.0.0/16 dev br-a005d70d926e proto kernel scope link src 172.19.0.1 metric 428 linkdown
172.22.0.0/16 dev br-de1557ba233e proto kernel scope link src 172.22.0.1 metric 429 linkdown
192.168.1.0/24 dev eth0 proto kernel scope link src 192.168.1.55 metric 600
192.168.1.1 dev eth0 proto static scope link metric 50
192.168.122.0/24 dev virbr0 proto kernel scope link src 192.168.122.1 metric 431 linkdown

如果您的本地网络使用多个地址范围,则同一设备可能具有多个设备路由。例如,如果我的家庭网络上有另一台地址为的设备10.88.0.10,我可以创建如下设备路由:

ip route add 10.88.0.0/24 dev eth0

现在,即使分配给我的本地系统的唯一地址是192.168.1.55,我仍然可以:

$ ping 10.88.0.10
PING 10.88.0.10 (10.88.0.10) 56(84) bytes of data.
64 bytes from 10.88.0.10: icmp_seq=1 ttl=64 time=0.867 ms
64 bytes from 10.88.0.10: icmp_seq=2 ttl=64 time=1.05 ms

相关内容