我有一台小型 Ubuntu 机器,我想用它来通过 VPN 将两个网络桥接在一起。
一个网络在 192.168.2.0/24 范围内。
另一个网络在 192.168.93/24 范围内。
所述 ubuntu 盒子物理上(通过 eth0)连接到后一个网络,并且 IP 为 192.168.93.11。另一方面,该盒子将与第一个网络的路由器建立 OpenVPN 连接,其中它将获得 IP 地址 192.168.2.162。
所以我有一个带有 2 个 IP 的盒子:
- eth0:192.168.93.11
- tap0:192.168.2.162
在两个网络中我都有一个路由器,可以在其中配置静态路由,以便其他网络的任何流量都转发到 ubuntu 框的本地 IP。
我的问题是,如何让 ubuntu 框(大概使用 iptables)将其他网络的流量从 eth0 转发到 tap0 以及反之亦然?
答案1
在您的路由器上设置好所有静态路由并将您的盒子连接到 VPN(以便tap0
可用)后,在您的盒子上尝试此操作:
root@yourbox:~# sysctl -w net.ipv4.ip_foward=1
root@yourbox:~# iptables -A FORWARD -s 192.168.2.0/24 -d 192.168.93.0/24 -j ACCEPT
root@yourbox:~# iptables -A FORWARD -s 192.168.93.0/24 -d 192.168.2.0/24 -j ACCEPT
上述 3 条命令的作用是
1)在内核中启用 IP 转发,以便在两个网络之间路由数据包
2)接受来自网络192.168.2.0/24
并发往192.168.93.0/24
网络的任何流量
3)接受来自网络192.168.93.0/24
并发往192.168.2.0/24
网络的任何流量
希望这可以帮助。 :)