路由命令输出:
$ route -n
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.2.10 0.0.0.0 UG 0 0 0 eth0
192.168.2.0 0.0.0.0 255.255.255.0 U 0 0 0 eth0
$
从上面的输出来看,我有以下疑问:
- 目的地和网关列中的 0.0.0.0 是什么意思
- 如果数据包从 192.168.2.36 ip 发送,那么它的网关是什么。它使用 192.168.2.10 或 0.0.0.0
- 假设我还有一个网络,其 IP 为 192.168.1.0。如果数据包是从该网络中的任何主机发送的,那么该 IP 的网关是什么。
- 什么是默认网关。
答案1
目的地和网关列中的 0.0.0.0 是什么意思
“destination” 列与 “genmask” 一起构成面具目标地址必须匹配: 。因此,带有目标和掩码的(packet_destination & route_mask) == route_destination
路由将匹配所有内容 - 它是默认路由。0.0.0.0
0.0.0.0
在“网关”列中,0.0.0.0
只是一个占位符,表示根本没有网关,所有匹配的主机都可以直接访问。因此,第二条路由是当地的一。
按以下格式书写路由表会更清晰一些ip route
:
$ ip -n route show
0.0.0.0/0 via 192.168.2.10 dev eth0
192.168.2.0/24 dev eth0
如果数据包从 192.168.2.36 ip 发送,那么它的网关是什么。它使用 192.168.2.10 或 0.0.0.0
你的路由表没有描述来源,唯一目的地,因此,仅基于这一点是无法回答这个问题的。
如果数据包被发送到 192.168.2.36
,那么它将匹配192.168.2.0/24
路由并且不会使用任何网关。
如果你真的想传入数据包,那么你的路由表根本不适用于这些数据包——只有发件人的路由表决定网关,而不是接收者的网关。
假设我还有一个网络,其 IP 为 192.168.1.0。如果数据包是从该网络中的任何主机发送的,那么该 IP 的网关是什么。
如果你是接收那么你的路由表就无关紧要了。因此,这个问题只能基于发件人的路由表。
如果你是发送数据包至 192.168.1.x
,它们只匹配0.0.0.0/0
路由,所以它们会用作192.168.2.10
网关。
什么是默认网关。
“默认网关”是指默认路由有。
“默认路由”是0.0.0.0/0
(目标0.0.0.0
掩码0.0.0.0
)。
因此您的“默认网关”是192.168.2.10
。