小编Ber*_*ITS的帖子

具有多个相同 LAN 的 1:1 NAT

我想连接位于远程建筑物上的多个 LAN。
“中央”站点有一台运行 OpenVPN 的 Linux 计算机。每个远程站点也运行 OpenVPN。

  1. 中心站点有一个编号为 192.168.0.0/24 的 LAN
  2. 几个远程站点也编号为 192.168.0.0/24
  3. 我不能/不会/不想/无论如何修改 LAN 编号
  4. 我无法控制大多数远程 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-natOpenVPN 功能。
也许我必须强制路由ip route?或者用veth?循环两次进入网络堆栈?

注意:我不想使用伪装。只有 1/1 NAT。

编辑:
常规的 openVPN 设置是不可能的。因为来自远程站点的数据包与来自另一个站点的数据包无法区分:两者具有相似的源地址和目标地址,并且都来自相同的 tun(或 tap)接口。所以不可能对它进行源 NAT。

解决方案 1:在远程站点上进行 NAT。在我的情况下是不可能的。我必须只在中央站点上执行此操作。

解决方案 2:为每个远程站点设置一个 VPN。所以我会给每人一桶。我认为这可以。内存效率不是很高,但还可以。 …

linux routing openvpn

13
推荐指数
1
解决办法
4959
查看次数

如何从 Linux 运行引导加载程序?

我想从 Linux 重新启动到另一个系统(满足我当前需要的可启动 CD)。
我不想修改当前的引导加载程序,也不想修改 BIOS 设置。

某些 Linux CD 可以从 Windows 运行(Windows 停止,而 Linux 从 CD 运行)。
我怎样才能从 Linux 做同样的事情?

linux boot-loader

7
推荐指数
2
解决办法
2952
查看次数

标签 统计

linux ×2

boot-loader ×1

openvpn ×1

routing ×1