192.168.1.0にネットマスク255.255.255.0のローカルネットワークがあります。 OpenVPNを介して(クライアントとして)VPNに接続すると、既存のルートを覆い隠す192.168.1.0のルートがプッシュされ、ローカルネットワークにアクセスできなくなります。リモートマシンの192.168.1.0では何にもアクセスしません。プッシュされた他のルートを受け入れながら、それを無視したいと思います。私のクライアントはUbuntu10.10です。
1つの問題のあるルートをスキップするにはどうすればよいですか?
使用
--route-up --route-noexec
openvpnのオプションを選択し、プッシュされているルートを完全に無視します。代わりに、トンネルを介してアクセスする特定のホストに静的ルートを追加します。
openvpn --route-noexec --route-up /tmp/myscript --config ./client.ovpn
ここで、/ tmp/myscriptは
route add -Host 192.168.1.69 gw ${route_net_gateway}
それに似たもので、私は実際にこれをテストしていませんが、動作するはずです。切断したときにもルートを削除することをお勧めします。
@hellomynameisjoelの answer に加えて、環境変数を介してroute-up
スクリプトでプッシュされたルートにアクセスできることに注意してください。したがって、必要なルートのみを追加できます。
または、OpenVPN構成ファイルのデフォルトゲートウェイを使用してルートを追加することもできます。
route 192.168.1.0 netmask 255.255.255.0 net_gateway
この後、同一のプッシュルートの追加は失敗します。
P.S. ArchLinux/OpenVPN2.3.5でテスト済み。
ローカルネットワークは非常に大きいですか?ネットワークの番号を競合しない範囲に変更するのが最も簡単な場合があります。
それ以外の場合は、OpenVPNの起動後にルートを修正するスクリプトでopenvpn起動コマンドをラップすることができます。