答案1
有没有什么方法可以连接路由器 A 和 B,以便 X 可以与 Y 通信,而不会影响两个网络中的其他节点?
如果您确实只关心让 Y 与 X 对话,并且要求 Y 不允许 Y 的 LAN 中的主机访问 Internet,那么您根本不需要涉及路由器。
在 Y 上安装第二个 NIC。
将 Y 上的第二个 NIC 连接到路由器 A 的 LAN - 例如,这可以是路由器 A 上的 LAN 端口之一。
就是这样。
Y 将能够与 X 对话,甚至可以从 X 的 LAN 上的 DHCP 服务器获取 IP。
除非您启用 Internet 连接共享(在 Windows 上)或 IP 转发(在 Linux 上)或 Mac 上的类似等效功能(不确定是什么),否则 Y 不会将流量从 X 的 LAN 转发到互联网。
您可以考虑在 Y 上设置防火墙配置来强制执行此操作。
有没有什么方法可以连接路由器 A 和 B,以便 X 可以与 Y 通信,而不会影响两个网络中的其他节点?
是的,但路由器需要的不仅仅是 LAN 和 WAN 接口。您需要在两个路由器上都配置第三个接口并在它们之间配置静态路由,以及支持您所需的 Internet 访问的防火墙/转发配置。
假设您使用的是普通家用路由器类型的硬件:
在大多数 4 端口家用路由器上,4 个 LAN 端口是一个交换机 - 从概念上讲都只是一个 LAN 接口。
如果您可以在这些路由器上安装 OpenWRT/LEDE,或者路由器具有基于 OpenWRT/LEDE 的固件(如华硕),并且路由器中的芯片组是 Broadcom 芯片组,您可能能够将 LAN 接口中的一个端口变成其自己的独立“第三”接口。此类硬件中的 5 个端口在技术上是一个交换机,并且可以使用实用程序在内部“关闭 VLAN”各个端口,以便它们在嵌入式 Linux 中显示为独特的独立接口。
OpenWRT/LEDE 为此提供了一个基于 Web 的界面 - 您可以更改交换机端口分配、分配静态路由、防火墙等。这是我发现的最简单的路线。
DD-WRT 和 AsusWRT 则不然——您必须登录路由器内置 Linux 操作系统的 shell 并发出命令——robocfg
这是配置硬件的奇怪命令。需要进行实验,因为端口号因平台而异。此外,Broadcom 不向 Linux 内核开发人员提供完整的硬件详细信息,因此robocfg
可能无法在所有 Broadcom 硬件版本等上运行。
答案2
您需要了解路由(第 2 层和第 3 层)的工作原理
阅读一下:
网络 X 和 Y 的 LAN 端地址空间应该不同。
假设如下:
- 设备 X 是 192.168.1.111(静态 IP)
- X 的网络为 192.168.1.0/24
- 路由器A是192.168.1.1
- 设备 Y 是 192.168.2.222(静态 IP)
- Y 的网络为 192.168.2.0/24
- 路由器B是192.168.2.1
你需要:
- 桥接路由器 A 和 B(在每台设备的 LAN 侧连接一根电缆)
- 在路由器 A 上,通过路由器 B 为站 Y 添加静态路由
在路由器 B 上,添加通过路由器 A 为站 X 提供的静态路由# ip route add 192.168.2.222/32 via 192.168.2.1
# ip route add 192.168.1.111/32 via 192.168.1.1