说我正在配置 Ubuntu 系统的网络。所以我可以编辑/etc/network/interfaces
如下:
...
address x.x.x.x
netmask x.x.x.x
gateway 192.168.1.1
然后我执行命令route
,我可以得到这样的输出:
default gateway genmask
192.168.1.0 0.0.0.0 255.255.255.0
我不知道我怎么理解192.168.1.0
,0.0.0.0
和255.255.255.0
。
一个简单的例子可能会有所帮助。假设这个路由表条目(来自 Linux 下的“route -an”命令输出,并没有显示所有列,只有我们需要的那些 - 这是“获胜”条目,其他条目未显示):
现在假设我们正在路由一个目的 IP 为 192.168.69.25 的出站数据包。这些是发生的步骤。它们(理论上)出现在路由表中的每个条目上;我们只显示“获胜”条目。
匹配条目的网关字段为 0.0.0.0,表示“没有网关,不需要”。这意味着与此条目匹配的 IP 可直接用于此主机,并且可以使用指定的接口“eth7”访问。将 192.168.69.25 的 ARP 发送到 eth7 所连接的网络;应该有该主机的 MAC 的回复。将数据包发送到该 MAC 地址。
如果网关不是 0.0.0.0,它应该是在 eth7 网络上找到的设备的 IP。向 eth7 发送网关的 ARP 并获得回复。将数据包发送到该 ARP。这通常是一个路由器,它将接收数据包并将其转发到适当的下一跳网络。
这是一个简短而甜蜜的例子 - 你可以通过一些搜索找到更多详细信息......
路线手册页很好地解释了它:
所以 192.168.1.0 是您的目标网络,0.0.0.0 是您的网关,255.255.255.0 是您的网络掩码。
如果您不确定为什么您的网关是 0.0.0.0这个答案很好地解释了它。