Я использую подключение к OpenVPN и я хочу иметь доступ к некоторым IP (локальные и нелокальные) мимо VPN-соединения.
OS: Ubuntu 14.04
Пакет: network-manager-openvpn-gnome
Можно ли это как-то реализовать?
Предполагается, что есть три VPN-подключения к одному и тому же серверу, отличающиеся только роутингом:
1. Общий - все идет через VPN
2. Дом - все идет через VPN, кроме локальной сети
3. Работа - все идет через VPN, кроме локальной сети и некоторых внеших IP
Очень желательно, чтобы эти роуты сами создавались и удалялись автоматически при подключении и отключении к OpenVPN.
Возможно, есть путь указать сценарии, которые нужно запустить во время подключеия к VPN и отключения от него. Тогда можно было бы руками написать добавление/удаление роутов.
up "/etc/openvpn/route-bee.sh up"
down "/etc/openvpn/route-bee.sh down"
$ cat /etc/openvpn/route-bee.sh
#!/bin/bash
[ -x /sbin/ip ] || exit 0
case $1 in
up)
/sbin/ip route add 10.10.1.0/24 via 10.10.1.2 dev tun1 table beeline
/sbin/ip route add 10.10.1.0/24 via 10.10.1.2 dev tun1 table soyuz
;;
down)
/sbin/ip route del 10.10.1.0/24 via 10.10.1.2 dev tun1 table beeline
/sbin/ip route del 10.10.1.0/24 via 10.10.1.2 dev tun1 table soyuz
;;
esac
клиент конфигурируется через NetworkManager и конфиги подключений лежат в /etc/NetworkManager/system-connections в соответствующем формате (man nm-settings) :
Владимир: кнопка добавления роутов есть, но там негде прописать интерфейс
Вопрос "Пустить запросы к [IP-range] через VPN, а остальные мимо него" решаються с помощью прописывания роутов в этом окошке, но я не могу придумать как решить вопрос "Пускать все запросы через VPN, кроме запросов к [IP-range]"
так добавьте роут через кнопку в том подключении где нужно
интерфейс выбирать смысла нет
они будут иметь больший приоритет над дефолтным, взятым от openvpn
Владимир: Выше я показал скриншот с четырьмя полями. Не могли бы Вы указать мне по 4 значения для каждого роута, которые я должен вписать для того, чтобы
1. запрос к локальной сети (192.168.0.0/24) шел мимо VPN
2. запрос к серверу по IP 123.45.67.89 тоже шел мимо VPN
?
видно, что запросы все равно направляються на интерфейс `tun0`, что также подтверждает traceroute
если же после подключения к OpenVPN прописать роуты руками sudo ip route add 123.45.67.89 via 192.168.0.1
то в роуте указывается нужный интенфейс wlan0 или eth0 в зависимости подключен ли ethernet-кабель и тогда traceroute показывается ожидаемый трейс
делаем вывод, что роуты, добавленные через NM добаввляются в таблицу роутов с указанием интерфейса. потому я и поставил вопрос на счет указания интерфейса
Владимир: тоесть, взять роуты с "проводного" или "беспроводного" подключения без активированного VPN и добавить их в роуты VPN-подключения? в таком случае мне придется иметь два подключения на работе (wired, wireless) и то я не уверен, что упомянутый вариант работоспособен
в плане рабочей альтернативы я напишу скрипт с настройкой роутов и буду его запускать при подключении к VPN на рабочем месте
спасибо за желание помочь