网关设置为 * 的静态路由表行为(linux)

网关设置为 * 的静态路由表行为(linux)

我有一台 Linux PC 的以下路由表。(我已启用 ip_forward 选项)

Destination     Gateway         Genmask         Flags   MSS Window  irtt Iface
10.0.1.0        10.0.1.11       255.255.255.0   UG        0 0          0 p1p1
10.0.1.0        *               255.255.255.0   U         0 0          0 p1p1
10.0.2.0        *               255.255.255.0   U         0 0          0 p1p2
10.0.3.0        10.0.2.1        255.255.255.0   UG        0 0          0 p1p2
192.168.1.0     *               255.255.255.0   U         0 0          0 em1
  1. 网关 * 是什么意思?它和 是同一个东西吗0.0.0.0?如果不是,那它们有什么区别?

  2. 当 PC 收到数据包时,它会发送到哪个网关10.0.2.0?我听到有人说它会将数据包转发到所有可用的网关。这个说法正确吗?如果正确,它如何知道哪些网关可用?

  3. 当 PC 收到数据包时,它将使用哪个路由条目10.0.1.0?(第一个还是第二个?我不认为这是最长前缀匹配的示例)

答案1

  1. Gateway *表示目标网络直接连接,不必经过路由器。

  2. 它不会经过网关到达 10.0.2.0/24,而是通过接口 p1p2 直接发送到目的地。

  3. 我认为它应该使用 10.0.1.0/24 的直接连接路由条目。否则它将产生无限递归,因为 10.0.1.0/24 的网关位于 10.0.1.0/24 上。

回答您评论中的问题,0.0.0.0/0 是默认路由,用于任何没有更具体路由的事情。

答案2

广告 1*对于不需要网关的网络,会打印星号 ( ),因为它们直接连接到您的计算机。

广告 2您将通过p1p2接口发送您的数据包。

广告 3我认为它会遵循*规则,因此它会通过接口将其发送到目标主机。

相关内容