我遇到了一个问题,经过几天的调查,我意识到我需要一些建议。我的网络技能水平仍然很低。
我有两个路由器,两个局域网。我已经通过 LAN <-> WAN 连接将其中一个路由器连接到另一个,创建了一个单独的网络来包含控制器和设备。两个路由器的主要原因是我可以为路由器 B 的连接提供一个单独的 DCHP 服务器。见下图:
我可以通过路由器 A 的网络访问控制器,我可以通过在路由器 B上设置端口/虚拟服务器来访问基于 Web 的 GUI,以查看网络上的所有设备。但是,我在控制器上有需要监控的代码路由器上的设备作为LAN。该代码需要访问子网,以便将 IP 解析为 MAC 地址(ARP 请求)。目前我可以从路由器 B 的设备 ping 到路由器 A 的设备,但无法将 IP 解析为 MAC 地址(我使用的是 NMAP)。我相信这是因为 ARP 请求只能在同一个子网中工作。
是否可以在与路由器 A 的 LAN(A 的 DHCP 范围之外)相同的子网中将第二个静态 IP添加到路由器 B网络上的控制器,并以某种方式通过路由器 B将其路由,以便解析请求并将其发回?
如果没有,是否有替代方案?
附加信息:
控制器: Linux - Raspbian
路由器 A: Belkin Modem-Router
路由器 B: Edimax 路由器
网络 A 正在使用保留的私有(不可路由)C 类网络 (192.168.xx) 的一个 24 位子网。网络 B 正在使用不同的网络,但不在保留的私有 C 类中。如果您在 192.168.3.x 上使用网络 B 对其进行重新处理,您可能会发现运气好一些。
网络 B 的外部连接的地址应为 192.168.2.x。路由器 B(和所有网络 B 主机)应该将该地址作为外部网关。所有网络 B 主机的地址应为 192.168.3.x。如果路由器 B 不做 NAT,你需要在它上面设置 IPTables 来做 NAT。
我认为您还需要为 A->B(在路由器 A 上)和 B->A(在路由器 B 上)构建静态路由,因为您使用的是不可路由的 IP。
另一种选择是移除路由器 B 并用交换机替换它,并在网络 A 上为每个网络 B 系统使用 DHCP 保留。然后他们都在同一个IP网络上。
我得出的结论是,如果控制器没有直接连接到路由器作为网络,我将无法解析 MAC 地址。不确定是否可以使用静态路由来允许控制器 ARP 请求直接传递到路由器 A 的网络,但是当我可以配置以下内容并且它可以按需要工作时,这似乎是很多手动配置。
解决方案
唯一的缺点是路由器 B网络上的设备无法访问互联网,但这可以通过将路由器 B 的WAN 连接连接到路由器 A 的LAN 连接来解决,应该不会引起任何头疼的问题。
使用当前设置,我无法直接从Router As网络访问Router B 的Web 界面,但可以在控制器中配置静态路由以允许访问Router B 的网关。或者将路由器 B连接到路由器 A ,然后通过路由器 A分配的 DHCP 访问它。