设置路由,将对子网的请求转发到某个路由器

设置路由,将对子网的请求转发到某个路由器

我的家庭网络设置如下:

在此处输入图片描述

有一个 ISP 提供的网关为 提供 DHCP 192.168.29.0/24。我将两个路由器作为客户端连接到此网关(R1 和 R2,分别具有 IP 192.168.29.2192.168.29.3)。

路由器在192.168.0.0/24和下执行 DHCP 192.168.1.0/24

作为 R2 上的客户端 ( 192.168.1.3),我希望访问 R1 上的客户端(打印机192.168.0.2)。我在 R2 中设置了一条静态路由,让它将192.168.0.x请求转发到192.168.29.2,即 R1:

在此处输入图片描述

但是,R1 似乎不接受该请求。我猜它看起来像是从 WAN 到 R1 的请求(它有点像),而且我不知道要查找什么设置才能让它接受它。而且,接受什么?我要尝试接受什么——“从外部到内部的数据包”?我甚至不知道如何描述这一点。

对 R1 客户端运行跟踪路由显示它正在到达 R1。然后什么也没发生,这是超时。

joseph@MBA : ~
[130] % traceroute 192.168.0.5 
traceroute to 192.168.0.5 (192.168.0.5), 64 hops max, 52 byte packets
 1  r2 (192.168.1.1)  4.888 ms  4.537 ms  3.970 ms
 2  192.168.29.2 (192.168.29.2)  5.185 ms  5.291 ms  7.068 ms

我接下来要去哪里?

答案1

对您来说,最简单的选择是将所有设备放在 192.168.29.0/24 子网中。不要使用 R1 或 R2 上的 WAN 端口,并将所有电缆连接到 LAN 端口。

您还需要禁用 DHCP 服务器,R1以便R2只有 GW 通过 DHCP 提供 IP 地址。

这样您根本就不需要考虑路由。


原始答案:

我假设您没有在 R1 或 R2 中启用 NAT,一定是这种情况。

为了使不同网络中的两个客户端之间的路由能够正常工作,两端都必须设置正确的路由表条目:

R2 必须具有以下条目:

通过 192.168.29.2 路由网络 192.168.0.0/24

R1 必须有条目

通过 192.168.29.3 路由网络 192.168.1.0/24

您需要双向拥有这些条目,因为 IP 数据包以无状态方式转发 - 每个路由器仅查看 IP 数据包目标地址并查阅该地址的路由条目。

因此,如果另一个路由器没有正确的条目,它将把回复数据包转发到错误的路由器,在本例中是 GW,这是路由器中分配的默认路由。

答案2

您没有提到路由器的品牌和型号,所以答案只是一般性的......

正如您在前一个端口的评论中提到的那样,而在原始请求中没有提到,存在 NAT,这是问题中相当重要的部分...

R1

route 192.169.1.0/24 via 192.168.29.3

R2

route 192.168.0.0/24 via 192.168.29.2

NAT

一般来说,所有“跨网络”流量都会和其他(比如说互联网)流量进入同一个接口,所以对于你问题的最后一部分,它将进入“下一个”路由器外部接口。物理上它将使用转变设备在原始帖子的架构中说明 - 请求。最有可能的是,您必须允许此流量不被阻止。

防火墙/NAT 必须改变才能反映您的期望...

  • 您可以保留传出流量的 NAT 而不做任何更改,这样来自 192.169.1.0/24 的所有流量都将被 sNAT 到 192.168.29.3(包括目的地为 192.168.0.0/24 的流量)。您将无法区分 R2 后面的源设备。要允许传入流量,您需要允许源 IP 192.168.29.3 @R1。

  • 您可以排除目标为 192.168.0.0/24 的流量在 R2 上进行 sNAT,这样在 R1(以及 192.168.0.0/24 上的设备上)上,您将看到流量的原始源 IP。要允许传入流量,您需要允许源 IP 192.168.1.0/24 @R1,如果您想允许源自 R2 的流量,您还需要允许源 IP 192.168.29.3 @R1。

  • 另一个选项可能是在 R1 和 R2 之间创建隧道(例如 ipsec),在这种情况下,您可以使用虚拟接口路由或使用加密映射(如果是 ipsec)来绕过此 NAT/防火墙“问题”。如果是此选项,您甚至可以通过加密映射处理静态路由。但在这里,指出“正确”的关键词以搜索更多信息或提供具体提示会更针对品牌。

相关内容