我需要你的帮助解决以下问题:
我有一台带有 3 个网卡的 CentOS 服务器:
eth0: IP ADDRESS=192.168.4.102 /24
GW = 192.168.4.1
eth1: IP ADDRESS=192.168.2.101 /24
GW = 192.168.4.1
192.168.4.1 是用于互联网出口的路由器。
这里的路由一切正常。我添加了另一个连接到路由器 (192.168.20.1) 的 nik,其中配置了 VPN:
eth2: IP ADDRESS=192.168.20.100 /24
no gateway defined because I get network nonfunctional if I put one.
在该路由器上我与 10.96.0.0/16 网络建立了连接。
我希望在 eth1 上路由 192.168.20.0/24 和 10.96.0.0/16,以便从我的 LAN 进行访问(我使用 192.168.2.101 作为网关)。
我怎能这样做?
答案1
您必须在服务器上将路由添加到 VPN 路由器的 10.96.0.0/16,您没有提到该 IP。我们将其称为 192.168.20.1。然后您有 2 个选择:
- 将路由放在您的 VPN 路由器上,以便访问您在本地局域网中使用的所有网络。例如:
- 192.168.4.0/24 -> 192.168.20.100
- 192.168.2.0/24 -> 192.168.20.100
- 如果您无法更改 VPN 路由器配置,则另一个选项是将 192.168.2.0/24 和 192.168.2.0/24 网络 NAT 到 192.168.20.100。此配置的缺点是,您将能够访问 LAN -> VPN,但不能访问 VPN -> LAN。
答案2
写出最终的解决方案:
iptables -t nat -A POSTROUTING -o eth2 -j MASQUERADE
iptables -A FORWARD -i eth2 -o eth1 -m state --state RELATED,ESTABLISHED -j ACCEPT
iptables -A FORWARD -i eth1 -o eth2 -j ACCEPT
echo > /etc/sysconfig/network-scripts/route-eth2
nano /etc/sysconfig/network-scripts/route-eth2
并输入:
ADDRESS0=10.96.0.0
NETMASK0=255.255.0.0
GATEWAY0=192.168.20.1
全部完成。最终:从 LAN 我能够访问 192.168.20.0/24 网络和 10.96.0.0/16 网络。反向(我不需要 VPN->LAN)