web-dev-qa-db-ja.com

iptablesを使用したサブネット間のトラフィックのルーティング

他の仮想(そして最終的には物理)マシンのネットワークへのVPNゲートウェイとして機能するKVM仮想マシンがあります。各マシンのタップとブリッジを使用してハイパーバイザーを設定していますそれらを接続して、すべてが同じサブネットを共有し、相互に通信できるようにします。次に、VPNゲートウェイが、タップインターフェイスからネットワークの他の部分にパケットを転送する必要があります。たとえば、VPNサブネットが192.168.15.0/24であるとします。 、仮想マシンのサブネットは192.168.10.0/24です。VPNゲートウェイは192.168.15.1にあり、リモートコンピューターの例のアドレスは192.168.15.5です。リモートコンピューターにip route add 192.168.10.0/24 via 192.168.15.1 dev <tap device>を使用して静的ルートを設定すると、パケットがVPNゲートウェイにリダイレクトされると思います。 VPNゲートウェイにiptables -A FORWARD -s 192.168.15.0/24 -d 192.168.10.0/24 -j ACCEPTのようなiptablesルールがあると、ip_forwardが有効になっている限り、パケットが宛先に到達できます。パケットがリモートコンピューターからゲートウェイに到着していることを示すことができますが、リモートからping 192.168.10.5 eコンピュータが返す:From 192.168.10.5 icmp_seq=1 Destination Net Unknown.

これを解決する方法について何か考えはありますか?

編集1:リモートコンピュータには、VPN経由でゲートウェイへの適切なルートがあります。

2
PyroAVR

わかった!問題はVPNルーティングにありました。 VPNはスイッチモードで設定されていなかったため、ゲートウェイを介した転送が必要なパケットをルーティングすることはできませんでした。私はtincvpnを使用しているので、ゲートウェイのMode = switchtinc.confを追加すると、クライアントがうまくいきました。

1
PyroAVR