他の仮想(そして最終的には物理)マシンのネットワークへの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経由でゲートウェイへの適切なルートがあります。
わかった!問題はVPNルーティングにありました。 VPNはスイッチモードで設定されていなかったため、ゲートウェイを介した転送が必要なパケットをルーティングすることはできませんでした。私はtincvpnを使用しているので、ゲートウェイのMode = switch
にtinc.conf
を追加すると、クライアントがうまくいきました。