我想连接位于远程建筑物上的多个 LAN。
“中央”站点有一台运行 OpenVPN 的 Linux 计算机。每个远程站点也运行 OpenVPN。
然后我需要:
1. 定义虚拟 LAN
2. 为每个站点配置 1:1 NAT
3. 必须在中央路由器上配置 1:1 NAT
.
因此可以看到每个站点都有一个 10.10.x.0/24 LAN。
当一台计算机想要到达站点 12 上的 192.168.0.44 时,它只需要向 10.10.12.44 发送一个数据包
操作 VPN 对我来说不是问题。我目前连接了 60 多个站点。但是我没有找到一种简单的方法来执行此 1:1 NAT。
以下是从中心站点发送到远程站点的数据包及其响应数据包的示例:
我用 iptables NETMAP 做了一些测试,但我无法让它工作,因为我没有找到在路由决定后修改源+目的地的方法。
我更喜欢避免使用新的--client-nat
OpenVPN 功能。
也许我必须强制路由ip route
?或者用veth
?循环两次进入网络堆栈?
注意:我不想使用伪装。只有 1/1 NAT。
编辑:
常规的 openVPN 设置是不可能的。因为来自远程站点的数据包与来自另一个站点的数据包无法区分:两者具有相似的源地址和目标地址,并且都来自相同的 tun(或 tap)接口。所以不可能对它进行源 NAT。
解决方案 1:在远程站点上进行 NAT。在我的情况下是不可能的。我必须只在中央站点上执行此操作。
解决方案 2:为每个远程站点设置一个 VPN。所以我会给每人一桶。我认为这可以。内存效率不是很高,但还可以。 …
我想从 Linux 重新启动到另一个系统(满足我当前需要的可启动 CD)。
我不想修改当前的引导加载程序,也不想修改 BIOS 设置。
某些 Linux CD 可以从 Windows 运行(Windows 停止,而 Linux 从 CD 运行)。
我怎样才能从 Linux 做同样的事情?