隧道公共IP到远程机器

我有一个Linux服务器A与一个5个公共IP地址块, 8.8.8.122/29 。 目前, 8.8.8.122被分配给8.8.8.123被分配给eth0:1

我在远程位置有另一台Linux机器B ,位于NAT后面。 我想在两者之间build立一个隧道,以便B可以使用IP地址8.8.8.123作为它的主IP地址。

OpenVPN可能是答案,但我不能完全弄清楚如何设置( topology subnettopology p2p可能是适当的,或者我应该使用以太网桥接?)。 安全和encryption在这一点上并不是一个大问题,所以GRE也可以,机器B将来自已知的IP地址,并且可以基于此进行authentication。

我该怎么做? 任何人都可以提出一个OpenVPN的configuration,或者其他的方法,可以在这种情况下工作? 理想情况下,它也能够处理多个客户端(例如,与其他机器共享所有四个备用IP),而不让这些客户端使用他们没有权限的IP。

我结束了与以太网桥接。 很多非常详细的例子可以通过在线浏览,但事实certificate非常简单:

首先,在A上/etc/network/interfaces被改为:

 auto eth0 iface eth0 inet static address 8.8.8.122 netmask 255.255.255.248 gateway 8.8.8.121 

至:

 auto br0 iface br0 inet static address 8.8.8.122 netmask 255.255.255.248 gateway 8.8.8.121 pre-up openvpn --mktun --dev tap0 bridge_ports eth0 tap0 bridge_fd 3 

为了在启动时桥接eth0 (真正的WAN接口)和tap0 (一个新的隧道接口)。

然后,在A上运行openvpn服务器:

 openvpn --dev tap0 

B上连接到:

 openvpn --remote 8.8.8.122 --dev tap0 --route-gateway 8.8.8.121 \ --redirect-gateway def1 --ifconfig 8.8.8.123 255.255.255.248 

这是我正在寻找的超级简单的configuration ,它的工作原理 – B现在可以在8.8.8.123公开访问,而传出的连接源自相同的地址。

当然,根据需要添加安全性( --secret--tls-server --secret --tls-server等)。

我想你会很难。 如果VPN的两端都在同一个子网中,大多数防火墙将难以路由OpenVPNstream量。

如果您尝试路由公共访问,我会将两个服务器从您的公共地址移动到不同的子网,然后使用虚拟IP(1到1纳特)来连接它们。 要连接这两个站点,OpenVPN将工作或IP-Sec隧道。

虚拟IP: http : //doc.pfsense.org/index.php/What_are_Virtual_IP_Addresses%3F

站点到站点: http : //doc.pfsense.org/index.php/VPN_Capability_IPsec

根据评论编辑:

我会亲自在A盒上安装pfSense,并为其WAN提供所需的端口。 然后在本地子网上设置一个OpenVPN服务器(这个服务器已经准备好进入pfSense网页界面),并且使用指向本地OpenVPN IP的虚拟IP设置另一台机器。 这会给你以后的扩展空间(增加更多的机器与虚拟IP,逻辑上转发特定的端口到不同的服务器,真的有一个完整的LAN / WAN / DMZ设置与OpenVPN的虚拟访问。更何况,你会有一个完整的路由器,所以它可能会更安全。