我在 OVH 租用了一台专用服务器,分配了 /27 IP 地址。我的所有服务器都安装了 Debian 8,我想使用 VPN(OpenVPN)通过 VPN 将一些公共 IP 地址路由到另一个远程位置。我知道我可以使用iptables
VPN 客户端的 IP 地址转发数据包,但这不是我想要的。我想在我的远程服务器上使用我的 OVH IP 地址,在使用容器的设置中,每个容器都可以有自己的(受 DDoS 保护的)OVH IP 地址,并且在容器中它会显示它有 OVH IP 地址 - 而不是私有 IP 地址。这可能吗?如果可以,怎么做?
答案1
您应该能够使用 OpenVPN 上的 TAP 接口来执行此操作 -即将两个网络桥接在一起,但这似乎是一种缓慢、容易出错且通常很糟糕的方法。
另一种方法是将 /27 分成 2 个 /28,并将其中一个 /28 路由到远程位置。这会浪费相当多的 IP,但会提供一个不错的逻辑框架,您可以在配置中将其与 TUN 接口和一些路由命令一起使用。
话虽如此,并且对您计划运行的流量类型做出可能错误的假设,使用某种负载平衡器 [ 即使是像 iptables 这样粗糙的负载平衡器 ] 是 100 次中有 99 次完成此类工作的更好方法。
答案2
这可以通过使用 openvpn 中的 tap0 接口来实现。
我成功地完成了我所要求的事情,因此我将向其他人发布答案。
我的 OVH 机器在不同的子网上有一个指定的 IP,与我的额外 IP 分配不同。
OVH:主 IP(158.69.1.18)OVH:额外子网:192.99.1.208-223
服务器2:72.34.43.34
请按照以下说明开始:https://openvpn.net/index.php/open-source/documentation/howto.html#install
安装 openvpn 并创建密钥。为服务器 2/vpn 客户端创建密钥,并将其复制到服务器 2 的 /etc/openvpn 文件夹中(或您想要的任何位置)
找到上述 URL 中提到的服务器配置文件,并将其从原始位置复制到您的 vpn 服务器上的 /etc/openvpn/server.conf。
确保其具有以下设置:
dev tap0
server-bridge 10.8.0.0 255.255.255.0 10.8.0.5 10.8.0.5
push "redirect-gateway def1 bypass-dhcp"
client-to-client
其余均保留默认设置。10.8.0.5 10.8.0.5 使其池中只有 1 个 lan ip 可供分配。这是针对桥接 1 个客户端的 vpn。您可能需要更改此设置,但可能不会更改
在客户端服务器上设置配置
client
dev tap0
proto udp
remote 158.69.1.18 1194
resolv-retry infinite
nobind
persist-key
persist-tun
ns-cert-type server
comp-lzo
verb 3
ca /etc/openvpn/ca.crt
cert /etc/openvpn/client1.crt
key /etc/openvpn/client1.key # This file should be kept
启动服务器和客户端。
在 ovh 服务器上创建桥接
brctl addbr br0
brctl addif br0 tap0
brctl addif br0 eth0 (main ethernet interface)
为你的 Tap 设备和桥接器添加一个 IP
ip addr add 18.8.0.1 dev tap0
ip addr add 10.8.0.2 dev br0
route add -net 10.8.0.0/24 dev br0
如果您的主 IP 不在您的 IP 分配子网中,请将来自该子网的 IP 添加到您的网桥。如果是,请跳过此步骤。
ip addr add 192.99.1.208 dev br0
在 vpn 客户端上向 tap0 接口添加一个 ip
ip addr add 10.8.0.6 dev tap0
将您的 OVH IP 添加到 vpn 客户端上的 tap 接口
ip addr add 192.99.1.210 dev tap0
为 tap0 添加默认网关
route add default gw 192.99.1.208 dev tap0
登录 OVH 或 SYS 并转到您管理 IP 地址的地方,选择一个 IP 并为其创建一个虚拟 MAC,然后等待 MAC 出现并将该 MAC 地址设置为您的 VPN 客户端上 Tap0 接口的 MAC。
ifconfig tap0 hw ether 02:00:00:xx:yy:zz
现在您的 OVH ip 应该可以在您的 vpn 客户端上运行。