目前我在 10.0.0.0/16 中有两个子网,分别是 10.40.20.0/24(假设为 A)和 10.32.80.0/24(假设为 B)。
我的 PC 在子网 A 中,我要做的是使用 Steam Link、Oculus Air Link 或类似的东西从子网 B 访问我的 PC。或者换句话说,让子网 A 中的远程 PC 在子网 B 中拥有本地 IP 地址。
我不知道 Steam Link 的具体工作原理,但我认为它与 ARP 有关。在我来这里之前,我做了一些尝试和研究。我尝试在子网 B 中放置一个 RPI,并使用 iptables 将其所有端口转发到 A 中的 PC,如下所示。
iptables -A INPUT -p tcp -m multiport --dports 1025:64000 -j ACCEPT
iptables -t nat -I PREROUTING -p tcp -m tcp --dport 1025:50000 -j DNAT --to-destination 10.40.20.100:1025-64000
iptables -A FORWARD -d 10.40.20.100/32 -i br-lan -p tcp -m tcp --dport 1025:64000 -j ACCEPT
结果证明它不起作用,Steam Link 无法按预期找到我的电脑。
我的下一次尝试是使用 PPTP 之类的 VPN 让 VR 头戴设备在子网 A 中拥有 IP。但是,只有当 VPN 客户端的“虚拟 IP 地址”与服务器的本地子网不同时,VPN 服务器才能工作。在这种情况下,VPN 客户端必须位于 10.40.20.0/24 以外的任何子网中。
子网A和B中的拓扑可以自由更改,例如在VR耳机顶部添加一个新的网关是可以的,只要它可以工作即可。
先谢谢了。
答案1
从“广播域”的角度来思考可能会很有用,或者:那些将接收广播消息的系统(例如,ARP 使用广播消息)
为了使 IP 子网发挥作用,它必须位于广播域中,可以是隐式的(例如同一交换机/交换机 VLAN),也可以是显式的(例如 VPN 或其他链路,在两个广播域之间明确转发(从技术上讲是桥接)流量)
我认为你是对的,你会希望为两个系统提供同一网络/子网上的 IP 地址,或者至少能够这样做。
有趣的是,您可以简单地桥接两个网络(使它们成为一个广播域),并且两个子网将继续运行(有一些注意事项,包括带宽)。这样您就可以简单地为该广播域上的任何机器分配任一子网上的 IP 地址。
如果你想做一些更复杂的事情,例如带过滤功能的桥梁,这可能需要更多的工作和学习,但它应该可以限制缺点/警告。从根本上说,这个决定归结为一个问题:你为什么首先要创建单独的网络?
简短回答一下:
- 这很复杂。但从技术上来说可能可行,甚至可能很容易。
必填图表:
当前网络:
10.40.20.0/24 [A]
|
{router}
|
10.32.80.0/24 [B]
桥接广播域(例如,在两个交换机之间运行电缆)(广播域包括通过 | 和 - 等线路连续连接的任何系统):
10.40.20.0/24 [A]
|
|--{router}
|
10.32.80.0/24 [B]