Я подключен к Интернету через сеть кампуса: диапазон IP-адресов, скажем, 10.42.0.0/16
и все должно проходить через прокси-сервер 10.42.0.42
.
Иногда я подключаюсь к этой сети через точку беспроводного доступа в локальном диапазоне IP-адресов 192.168.0.0/24
, этот беспроводной маршрутизатор подключен к сети кампуса.
Я также использую персональный VPN, основанный на OpenVPN. Мой диапазон IP-адресов VPN - 10.8.0.0/24
.
Когда я подключен к этой беспроводной сети, моя таблица маршрутизации:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 192.168.1.1 0.0.0.0 UG 304 0 0 wlan0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
192.168.1.0 0.0.0.0 255.255.255.0 U 304 0 0 wlan0
И когда я запускаю VPN в этой беспроводной сети:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.8.0.41 128.0.0.0 UG 0 0 0 tun0
0.0.0.0 192.168.1.1 0.0.0.0 UG 304 0 0 wlan0
10.8.0.0 10.8.0.41 255.255.255.0 UG 0 0 0 tun0
10.8.0.41 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
128.0.0.0 10.8.0.41 128.0.0.0 UG 0 0 0 tun0
10.42.0.0 192.168.1.1 255.255.0.0 UG 0 0 0 wlan0
10.42.0.42 192.168.1.1 255.255.255.255 UGH 0 0 0 wlan0
192.168.1.0 0.0.0.0 255.255.255.0 U 304 0 0 wlan0
Как видите, я настроил VPN так, чтобы сеть кампуса не перенаправлялась на tun0
, чтобы серверы в этой частной зоне оставались доступными.
Но тут возникает проблема: беспроводная связь нестабильна (и я ничего не могу с этим поделать), я регулярно отключаюсь и снова подключаюсь. Во время этого процесса все записи в таблице маршрутизации о wlan0
сбрасываются, и моя таблица выглядит следующим образом:
Kernel IP routing table
Destination Gateway Genmask Flags Metric Ref Use Iface
0.0.0.0 10.8.0.41 128.0.0.0 UG 0 0 0 tun0
0.0.0.0 192.168.1.1 0.0.0.0 UG 304 0 0 wlan0
10.8.0.0 10.8.0.41 255.255.255.0 UG 0 0 0 tun0
10.8.0.41 0.0.0.0 255.255.255.255 UH 0 0 0 tun0
127.0.0.0 0.0.0.0 255.0.0.0 U 0 0 0 lo
128.0.0.0 10.8.0.41 128.0.0.0 UG 0 0 0 tun0
И больше ничего не работает: весь трафик перенаправляется на tun0, который больше не существует, и openVPN не может переподключиться к моему серверу (No route to host.
). Единственный обходной путь, который я нашел, - это перезапустить мой клиент OpenVPN вручную.
Можно ли это стабилизировать и как?
Я работаю на Gentoo Linux, управляю своей сетью с помощью Wicd.