Архив рубрики: linux

VPN в Linux host route

Дано:
Linux s1 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt25-2+deb8u3 (2016-07-02) x86_64 GNU/Linux
pppd version 2.4.6
ISP1: eth1:100.100.100.1, gw: 100.100.100.254
ISP2: eth2:200.200.200.1, gw: 200.200.200.254
VPN сервер: 1.1.1.1

По умолчанию используется первичный канал через ISP1, с Linux подключена VPN в качестве PPTP клиента, в какой-то момент времени ISP1 «падает», переключаем на ISP2, но VPN не поднимается:

Посмотрим куда ведет маршрут к VPN серверу:

Видно, что VPN смотрит через ISP1. Остальной трафик через ISP2:

ISP1 лежит:

Отключаем VPN (хотя он и не работает)

Посмотрим таблицу маршрутизации:

Удаляем этот маршрут:

Пробуем подключится:

Снова появился хостовой маршрут через ISP2, который также не удаляется при выключении VPN:

Тоже самое делает и Windows, но корретно за сабой его убирает

Решение:
vpn1 соответствует имени VPN подключения в /etc/ppp/peers/. Параметр: $6 соотвествует параметру: ipparam в /etc/ppp/peers/vpn1:

Создаем файл который будет выполнятся при «падении» тунеля:

Если в ipparam передаем IP, dig не нужен в данном случае.