OpenVPN は、VPN トンネルが切断されたときにルート テーブルをクリアしないようです

OpenVPN は、VPN トンネルが切断されたときにルート テーブルをクリアしないようです

blitzen私は、ローカル ネットワーク上のすべてのコンピューターがインターネットにアクセスするために使用する VPN ゲートウェイとして機能する Raspberry Pi ( という名前で、Jessie がインストール済み) をローカル ネットワーク上にセットアップしました。

私はiptablesOpenVPN 接続 ( tun0) を NAT し、eth0そこからパケットを転送するために を使用しています。dnsmasqまた、DHCP を使用して、ネットワーク上のすべてのコンピューターがこのサーバーをインターネットへのデフォルト ルートとして使用するように構成しています。

これはうまく機能します。

しかし、ADSL モデルがクラッシュすると、問題が発生します。OpenVPN は、tun0欠陥があることを検出して切断します。その後、再接続を試みますが、VPN サーバーのホスト名を解決できないため失敗します。

Nov  3 17:27:20 blitzen ovpn-TunnelBearGermany[3020]: RESOLVE: Cannot resolve host address: de.tunnelbear-ios.com: Temporary failure in name resolution

調査してみると、トンネルが破壊されても、古いルート テーブルがアクティブなままになっているようです。

$ route -n
Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface
0.0.0.0         172.18.13.37    0.0.0.0         UG    0      0        0 tun0
46.101.162.205  192.168.2.1     255.255.255.255 UGH   0      0        0 eth0
169.254.0.0     0.0.0.0         255.255.0.0     U     202    0        0 eth0
172.18.13.1     172.18.13.37    255.255.255.255 UGH   0      0        0 tun0
172.18.13.37    0.0.0.0         255.255.255.255 UH    0      0        0 tun0
192.168.2.0     0.0.0.0         255.255.255.0   U     0      0        0 eth0

手動でデフォルト ルートを削除し、ADSL モデムを指すように再設定すると、Pi は VPN サーバー名を正常に解決し、すぐに再接続します。すべてが正常な状態に戻ります。

私の質問は、この動作が正常であると仮定すると、トンネルが崩壊したときにルート テーブルを元に戻す処理を自動化するにはどうすればよいかということです。これを行うための適切なフック (OpenVPN 内、または汎用ネットワーク パッケージ内) はありますか?

関連情報