我想在Linux中询问有关route命令的问题。我在Linux终端中输入以下命令
> route
得到了输出:
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 1 0 0 eth0
192.168.122.0 * 255.255.255.0 U 0 0 0 virbr0
link-local * 255.255.0.0 U 1000 0 0 eth0
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
我不明白。这是否意味着任何具有ip 192.168.1.0
的数据包将从*
网关发出?
为什么写入DESTINATION不应该是源码,因为从我的主机发出的数据包的源IP是192.168.1.0
?
任何人都可以解释一下这个条目在包出去和来到我的主机方面的含义吗?
答案 0 :(得分:57)
让我们一个接一个地阅读:
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.1.0 * 255.255.255.0 U 1 0 0 eth0
这表示目的地为192.168.1.0到192.168.1.255的任何数据包都将在不使用网关的情况下发送eth0
(除非更具体的路由覆盖此网关)。
Destination Gateway Genmask Flags Metric Ref Use Iface
192.168.122.0 * 255.255.255.0 U 0 0 0 virbr0
这表示目的地为192.168.122.0到192.168.122.255的任何数据包都将在不使用网关的情况下发送出virbr0
。 (同样,除非更具体的路线覆盖了这一路线。)
Destination Gateway Genmask Flags Metric Ref Use Iface
link-local * 255.255.0.0 U 1000 0 0 eth0
这表示任何带有link-local address的数据包都会被发送到没有网关的接口eth0
。
Destination Gateway Genmask Flags Metric Ref Use Iface
default 192.168.1.1 0.0.0.0 UG 0 0 0 eth0
这表示任何没有其他路由的目的地的数据包将被发送出eth0
,使用192.168.1.1作为网关。
答案 1 :(得分:7)
“默认”表示如果在使用此规则之外的任何其他规则中找不到目的地。
如果路由表中有多个地址适用于传出数据包,则将使用具有更高子网掩码的规则。如果这些是绑定的,那么指标就会发挥作用,但根据使用的协议会有所不同。
例如,我目前使用的笔记本电脑有三个接口:
路由器通常每侧至少有2个接口,每个网络都有1个接口。对于大多数家用路由器,1个接口是家庭网络的一部分,另一个接口是通往ISP的外部网络的一部分。
如果目的地与发件人不在同一网络上,则会发送数据包。
如果值在“*”或“On-link”或当前设备的地址......这些都意味着相同的事情。这意味着数据包将寻址到当前主机可直接访问的设备。换句话说,它们位于同一网络上,因此实际上不会使用网关,因为主机将知道目的地的数据链路层(MAC)地址并能够直接在那里发送。在这种情况下,这些值仅用于人类可读性。
关于发送数据包的过程:
答案 2 :(得分:0)
192.168.1.0(-255)是本地目的地,一旦到达其本地目的地(很可能是192.168.1.1,您的路由器),它将被重新路由到外部IP目的地。这显示了您的计算机如何选择发送相对简单的数据包,因为离开计算机的大多数数据包都会在发送到目的地之前到达路由器。
一个更有趣的路由表将是您的路由器,它将处理许多外部和内部目的地。如果您对此进行调查,您将能够了解更多有关路由的信息。