Я использую Ubuntu 16.04.2 LTS и заметил, что, когда я поднимаю соединение VPN с GUI (сервер является openvpn), я добавил маршрут хоста к шлюзу VPN, в дополнение к маршруту к подсети VPN. У меня есть опции "Ignore automatically obtained routes" и "Use this connection only for resources on its network" оба выбранные.
Вот то, на что смотрит моя таблица маршрутизации сначала:
$ ip route show | grep -v linkdown
default via 192.168.1.1 dev wlp2s0 proto static metric 600
192.168.1.0/24 dev wlp2s0 proto kernel scope link src 192.168.1.184 metric 600
Теперь я поднимаю соединение VPN, и я добираюсь:
$ ip route show | grep -v linkdown
default via 192.168.1.1 dev wlp2s0 proto static metric 600
10.8.0.0/24 dev tun0 proto kernel scope link src 10.8.0.4 metric 50
52.90.159.97 via 192.168.1.1 dev wlp2s0 proto static metric 600
192.168.1.0/24 dev wlp2s0 proto kernel scope link src 192.168.1.184 metric 600
Новый маршрут для 10.8.0.0/24
имеет смысл мне, потому что это - подсеть VPN, но почему я также получаю маршрут для 52.90.159.97
(шлюз VPN)?
До сих пор это просто таинственно, но если я теперь поднимаю вторую VPN, которая туннелирует по первой VPN, у меня есть настоящая проблема:
$ ip route show | grep -v linkdown
default via 192.168.1.1 dev wlp2s0 proto static metric 600
10.8.0.0/24 dev tun0 proto kernel scope link src 10.8.0.4 metric 50
10.8.0.2 via 192.168.1.1 dev wlp2s0 proto static metric 600
10.9.0.0/24 dev tun1 proto kernel scope link src 10.9.0.2 metric 50
52.90.159.97 via 192.168.1.1 dev wlp2s0 proto static metric 600
192.168.1.0/24 dev wlp2s0 proto kernel scope link src 192.168.1.184 metric 600
Второй шлюз VPN 10.8.0.2
и, как Вы видите, новые маршруты записи хоста wlp2s0
, который является неправильным (это должно быть tun0
). Я должен вручную удалить эту запись для устанавливания применимой связи.
Возможно, я должен зарегистрировать это как ошибку, но я хотел бы услышать любую обратную связь здесь сначала.
После размышления об этом в течение нескольких недель я пришел к заключению, что это сделано для предотвращения любых маршрутов, полученных по VPN из соответствия самому шлюзу VPN, создав цикл, где ядро пытается направить по VPN для достижения шлюза VPN. Самый очевидный случай - то, при получении маршрута по умолчанию по VPN.
Так, в моем случае, я теперь убежден, что это - ошибка. Логика имеет смысл, но должна быть применена более разумно. Возможно, добавьте маршрут к шлюзу VPN только после проверки, что Вы иначе направили бы трафик шлюза по VPN.