主机的默认网关通过交换机连接到两个路由器

网络工程 路由 数据包追踪器
2021-07-30 00:03:50

在此处输入图片说明

我想让这个网络完全连接,所以我需要为路由器的所有接口和所有主机分配 IP 地址。但是,我应该为每个主机分配一个默认网关地址,但是,我应该如何为 PC0 主机执行此操作,因为它连接到交换机,并且交换机连接到两个路由器,这可能是默认网关的情况吗?不需要?或者还有什么我应该在这里做的吗?任何帮助表示赞赏!

2个回答

因为您没有星形网络,所以您必须定义到达每个网络的路径。

您的路线可以是:

192.168.2.0/24 via 192.168.1.254
Default via 192.168.1.253

或者

192.168.2.0/24 via 192.168.1.254
10.0.1.0/30 via 192.168.1.253
192.168.3.0/24 via 192.168.1.253

或者

Default via 192.168.1.254
10.0.1.0/30 via 192.168.1.253
192.168.3.0/24 via 192.168.1.253

取决于您将网络的哪一部分视为 PC0 的“外部”。

另一种解决方案是通过路由器将 PC0 连接到 192.168.1.0/24 并为其设置默认路由,这些路由表将在此路由器上。

你说你“应该为每个主机分配一个默认网关地址”,但没有要求这样做。

相反,主机只需要为它需要连接的每个主机设置路由。在您的特定网络中,有 10 个 IP 地址(假设交换机的管理地址)。这意味着主机 PC0 可以有 9 条主机路由,而根本没有其他路由。或者,如另一个答案中所建议的那样,任何聚合它们的方法。

如果主机需要将数据包发送到其网络中的每个主机,则它只需要一个默认路由。当然,大多数主机都在互联网上,所以潜在主机的数量是巨大的,所以我们使用默认路由。

在您的特定网络中,您可以将 PC0 上的默认路由设置为连接到它的两个连接的路由器之一,如果该路由器具有足够完整的路由表,则将其转发。这通常被认为是错误的路由,因为它对于数据包来说肯定不是最佳的。但有时会在管理简单性比数据包效率更重要的网络中看到。

值得注意的是,互联网的“核心”被广泛认为是“无默认区域”:互联网的一个子集,其中没有路由器具有默认路由。相反,他们有到每个已知公共网络的路由。(而且,可以假设,他们的运营商的私人网络。) 维基百科文章

[编辑] 这里有几个问题重叠。

  1. 默认路由本身并不重要:重要的是设备的路由表是否有所有的路由,以及它们是否是好的路由。
  2. 最终用户计算机拥有比通常由 DHCP 获取的单个默认路由更复杂的路由的情况并不常见。路由器拥有复杂的、通常是动态的路由表是很常见的。

如果您的限制是 PC0、1 和 2 只有一条默认路由,并且路由器的路由数量最少,那么通常的方法是确保所有路由器对所有感兴趣的地址都具有完全连接性。然后将所有主机指向任何本地连接的路由器。

有很多方法可以解决连续三个路由器的路由问题,但这里是最简单的一种。

R0: 192.168.2.0/24 -> R2,  192.168.3.0/24 -> R1, no default route
R1: default -> R0
R2: default -> R0

(在实际路由中,需要使用路由器的近端IP地址。我使用名称只是为了更容易阅读。)

此外,所有三个路由器都将自动拥有两个接口路由,每个启用的接口对应一个。(即,他们知道他们当地的路线。)

两个终端主机只有一个选择:

PC1: default -> R2 # your PC and router names are funny way round
PC2: default -> R1

最后一个是问题所在。

除非我们在 PC0 上放置合适的多条路由,否则它的一些传出数据包将走“错误”的道路。例如,默认 -> R0,从 PC0 到 PC1 的数据包将通过 PC0->R0->R2->PC1。从数据包的角度来看,这是完全正确的:它到达了它要去的地方,尽管比直接去的要慢一点。当路由器注意到它从与到达的接口相同的接口发送了一个数据包时,它通常会发出 ICMP 重定向消息,告诉发送者有更好的路由可用。在这种情况下,它是 R) 告诉 PC0。PC0 可以选择忽略此 ICMP,或者使用它来学习新路由。请注意,许多 PC 操作系统不会通过 ICMP 学习新路由,因为这是一个攻击媒介;此外,许多路由器禁用了 ICMP 重定向消息。

如果将 PC0 上的默认路由放置到另一台路由器,则行为是对称的。