當 VPN 隧道損壞時,OpenVPN 似乎不會清除路由表

當 VPN 隧道損壞時,OpenVPN 似乎不會清除路由表

我在本地網路上設定了一個 Raspberry Pi(名為blitzen,與 Jessie 一起安裝)作為 VPN 網關,供本地網路上的所有電腦用來存取互聯網。

我正在使用iptablesNAT OpenVPN 連接 ( tun0) 並將資料包轉發到eth0它。我正在使用dnsmasqDHCP 來配置網路上的所有計算機,以使用該伺服器作為 Internet 的預設路由。

這效果很好。

但是,如果 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 中,或可能在通用網路包中)來執行此操作?

相關內容