通过OpenVPN转发来自一个IP地址的所有流量

通过OpenVPN转发来自一个IP地址的所有流量

我拥有一台有两个 IP 地址的虚拟机,分别称为 1.1.1.1 和 1.1.1.2,分别作为 eth0 和 eth0:1。它现在正在运行 OpenVPN,仅使用 eth0 就可以很好地完成常规操作。

我想要的是... 使用 eth0:1 上的第二个 IP 地址来传输所有进出的 VPN 流量,并将所有 TCP、UDP 甚至 ICMP 数据包通过 VPN 路由到内部受保护的主机 10.8.0.10。因此,基本上所有指向 1.1.1.2 的流量都会转到 10.8.0.10。

听起来很简单。但我什么也没做。数据包转发对我来说不起作用,路由也不起作用(虽然我可以让入站流量进入 1.1.1.2 - 呃,这很简单 - 我无法让它使用 1.1.1.2 出站)。

提示?指向“RTFM”(比“这是 OpenVPN 文档,这是 iptable 文档,这是路由命令”更好)?

答案1

如果我理解你的正确的话,你想要这样的网络设计:

eth0 - 1.1.1.1
eth0:1 - 1.1.1.2
eth0:2 - 1.1.1.3
eth0:3 - 1.1.1.4

然后,您希望所有到达 1.1.1.2 的流量路由到 10.8.0.10 等等。

如果您使用 OpenVPN 没有遇到任何问题,那么您应该使用 NAT!您的一个地址的规则应如下所示nat

-A PREROUTING -d 1.1.1.2/32 -p tcp -m tcp --dport 80 -j DNAT --to-destination 10.8.0.10:80
-A PREROUTING -d 1.1.1.2/32 -p tcp -m tcp --dport 443 -j DNAT --to-destination 10.8.0.10:443
-A POSTROUTING -p tcp -m tcp --dport 80 -j MASQUERADE
-A POSTROUTING -p tcp -m tcp --dport 443 -j MASQUERADE

当然,您应该在sysctl设置中启用转发。

相关内容