问题 -

问题 -

背景 -

插图 -https://i.stack.imgur.com/DFSMh.png

我们有一个嵌入式设备(前面称为 PC2),它在 C 类网络(上图中的网络 2)中托管 UI/网页。由于我们无法访问网络 1 设置,因此我们需要添加自己的 WiFi 路由器并创建网络 2,这有助于我们保持设备的 IP 静态。在这种情况下,我们需要从网络 1 中的 PC1 访问网络 2 中的 PC2 上托管的网页。

需满足的条件 -

  1. 我们必须能够为 PC2/嵌入式设备配置静态 IP,最好仅使用 WiFi 路由器 B。
  2. 位于网络 2 中的 PC2 必须可供 PC1 访问,以便 PC1 可以看到 PC2 上托管的网页。

迭代执行 -

  1. 迭代 1 -

    • 连接 - CAT5 从路由器 A 的 LAN 端口到路由器 B 的 WAN 端口。
    • 路由器 A 和路由器 B 均在 WiFi 路由器/NAT 模式下运行。
    • 观察结果 -
      i. 我无法从 PC1(192.168.0.100) 访问 PC2(192.168.1.100),但当我反过来尝试时,PC2 可以访问 PC1(这一定是因为 NAT)。ii
      . PC2 可以访问互联网
  2. 迭代 2 -

    • 连接 - CAT5 从路由器 A 的 LAN 端口到路由器 B 的 WAN 端口。
    • 路由器 A 和路由器 B 均在 WiFi 路由器/NAT 模式下运行。
    • 观察结果 -
      i. 我无法从 PC1(192.168.0.100) 访问 PC2(192.168.1.100),但当我反过来尝试时,PC2 可以访问 PC1(这一定是因为 NAT)。ii
      . PC2 可以访问互联网
    • 我尝试在路由器 A 中配置以下路由表,如下所示 -
ID 目的网络 子网掩码 网关 界面
1 192.168.1.1 255.255.255.255 0.0.0.0 局域网和广域网
2 192.168.1.0 255.255.255.0 192.168.1.1 局域网和广域网
3 192.168.0.0 255.255.255.0 0.0.0.0 局域网和广域网
  1. 迭代 3 -
    • 连接 - CAT5 从路由器 A 的 LAN 端口到路由器 B 的 LAN 端口。
    • 路由器 A 和路由器 B 均在 WiFi 路由器/NAT 模式下运行。
    • 观察 - i. 我能够从 PC1(192.168.0.100) 访问 PC2(192.168.1.100),即,PC2 上托管的网页将可见,但 PC2 无法访问互联网。
    • 我已在两个路由器中配置了以下路由表 -
      i. 路由器 A - 与上文相同(即迭代 2)
      ii. 路由器 B - \
ID 目的网络 子网掩码 网关 界面
1 192.168.0.1 255.255.255.255 0.0.0.0 局域网和广域网
2 192.168.1.0 255.255.255.0 0.0.0.0 局域网和广域网
3 192.168.0.0 255.255.255.0 192.168.1.1 局域网和广域网
  1. 迭代 4(路由器 B 作为接入点)-
    • 路由器 A(网络 -->192.168.0.0,路由器 IP --> 192.168.0.1)和路由器 B(网络 -->192.168.0.0,路由器 IP --> 192.168.0.100)
    • RJ45 以太网电缆将路由器 A 的 LAN 端口连接到路由器 B 的 WAN 端口。
    • 路由器 A 处于 WiFi 路由器/NAT 模式,路由器 B 处于接入点模式
    • 观察结果 -
      i. 我能够从 PC2(连接到路由器 B)访问 PC1(连接到路由器 A),反之亦然,两个设备都可以访问互联网。ii
      . 无法在负责分配 IP 地址的路由器 A 的客户端列表中看到 PC2,因为路由器 B 处于接入点模式。这使我无法从路由器 A 或 B 将 PC2 的 IP 设为静态。

问题 -

  1. 我的第三次迭代中的路由表是否正确?如果正确,那么它不能正常工作的原因是什么?
  2. 当路由器 B 配置为接入点时,迭代 4 中的行为是否可取?在路由器 A 的客户端列表中看不到连接到路由器 B 的设备是否正确?
  3. 鉴于我们正在寻找一种成本效益高且不需要添加昂贵的支持 VLAN 的路由器等的解决方案,是否有其他/更好的方法来解决这个问题?

答案1

是的,在 #1 和 #2 中,尽管路由尚未完全配置,但 PC2 仍可以访问 PC1,因为路由器 B 仍然启用了 NAT。

您的路由可能不起作用,因为“网关”地址(192.168.1.1)是在错误的一边。当您添加至路由器 A 的路由时,“网关”同样应该是“面向”路由器 A 的地址。

请记住路由器 B 有IP 地址 – LAN 接口上的 192.168.1.1192.168.0.??? 在 WAN 接口上,通过 DHCP 从路由器 A 接收。

所以你只需要这一条路线路由器 A

目的地 网络掩码 网关 界面
192.168.1.0 255.255.255.0 192.168。0.??? 局域网

对于受限访问(例如,仅在端口 80 上使用 HTTP),另一种方法是在路由器 B 中使用“端口转发”——也就是说,利用它本来就有的 NAT 支持。现在,在网络内部使用 NAT 确实有些不好看,但在创建“独立”单元的特定情况下,这是可以原谅的(毕竟,Docker 的运行方式大致相同)。

在 #3 中,我一般不推荐这种连接方式——直接连接 LAN 端口会创建一个大的物理子网,而这个子网恰好有两个 IP 子网在运行,虽然这技术上虽然完全有效,但由于广播数据包自由通过链路,因此可能会引起一些麻烦。例如,无法控制两个 DHCP 服务器中的哪一个将处理哪些设备 - 路由器 A 的 LAN 端口上的 PC 可以从路由器 B 获得租约,等等。

话虽如此,应该确实有效。

在#4中,结果确实正确。当路由器 B 处于“接入点”模式时,不是路由器– 它是一座桥梁,盲目地将所有内容(包括 DHCP 租约请求)中继到路由器 A。

在大多数路由器中,“连接设备”列表实际上主要由 DHCP 租约表构建,因此如果路由器 B 不再发出地址租约,则它将不会在此列表中显示任何设备。

(并且类似地,在也使用路由器的 ARP 缓存来扩充此列表的模型中,“接入点”也不会在其 ARP 缓存中有任何条目,因为它在 MAC 层而不是 IP 层转发所有内容。)

一般而言,以太网中没有强制的“问候”或“握手”来允许建立设备列表。(有很多选修的协议 – DHCP、LLDP、CDP、mDNS、MNDP……但您的嵌入式设备如果愿意的话可以保持完全安静。)

鉴于我们正在寻找一种成本效益高且不需要添加昂贵的支持 VLAN 的路由器等的解决方案,是否有其他/更好的方法来解决这个问题?

市面上有很多便宜的支持 VLAN 的路由器。其中一些在“专业消费者”/“家庭实验室”市场非常受欢迎(例如 ER-X 或 RB951G 或 RB750G),售价约为 50 美元,没有千兆以太网的旧型号可能价格更低。

话虽如此,你不需要需要VLAN,但这些路由器通常还有另一个优点,即没有严格的“WAN 和 LAN”配置,而是允许您创建例如网络。

最后,您可以使用几乎任何可以运行 Linux(或 FreeBSD)并具有足够以太网端口的设备构建自己的路由器。例如,运行 Raspbian 的 Raspberry Pi(用胶带将 USB 以太网加密狗粘在上面)或运行 pfSense/OpnSense 的二手 NUC 可以很好地处理有线以太网之间的路由。

相关内容