他のVPNクライアント(たとえば、Cisco、OpenVPNなど)に接続するいくつかのクライアントサーバーがあります。各サーバーにUbuntu 14 VM(VPNクライアントが永続的に接続されている)を設定してすべてのトラフィックをルーティングしようとしています。サーバーに接続しているため、さまざまなVPNクライアント間で切り替えを続ける必要はありません。
VMには2つの固定IP(LAN上のブリッジ)があり、静的IPに転送されるすべてのトラフィックをリモートサーバーにルーティングしたいとeth0
思います。10.1.1.200
tun0
10.50.1.1
私は次の規則を設定しましたiptables
。
iptables -t nat -A POSTROUTING -s 10.1.1.200 -j SNAT --to-source 10.50.1.1
iptables -t nat -A PREROUTING -d 10.50.1.1 -j DNAT --to-destination 10.1.1.200
iptables -A FORWARD -s 10.50.1.1 -j ACCEPT
iptables -A FORWARD -d 10.1.1.200 -j ACCEPT
私が理解したように、LAN IP(10.1.1.200
)とリモートサーバーのIP(OpenVPN接続を介して)(10.50.1.1
)の間に1:1 NATが作成され、net.ipv4.ip_forward = 1
VMからホストサーバーに接続できます。 。
ホストシステムでローフィング、Telnet、SSHを試しましたが、10.1.1.200
接続が拒否されました。
ソース/ターゲットIPのいくつかの他の置換を試しましたが、インターフェイスを明示的に設定しましたが、-i
何-o
も機能しません。
どんなアイデアがありますか?
答え1
問題を解決しました。同じサブネット上に複数のサーバーを持つクライアントに対して、LAN IP範囲全体を宛先サーバーIP範囲にマッピングして、パケットが正しいLAN IPに戻るようにしました。
iptables -v -t nat -A PREROUTING -i eth0 -d 192.168.2.0/24 -j NETMAP --to 10.50.1.0/24
iptables -v -t nat -A POSTROUTING -o tun0 -j MASQUERADE