Маршрутизация и VPN

В связи с тем, что macOS не принимает таблицу маршрутизации по расширениям протокола DHCP часто возникает проблема корректировки маршрутов при установки связи по VPN. Проблема возникает при необходимости использования соединения VPN в качестве маршрута по-умолчанию (при установки флажка "Отправлять весь трафик через VPN" в настройках соединения).

Для решения можно использовать up/down скрипты, вызываемые pppd: ip-up и ip-down. В качестве примера рассмотрим корректировку маршрутов на подсеть 10.0.0.0/8.

Немного теории

Скрипту ip-up передаются шесть параметров:

  • ifname - название нового ppp интерфейса

  • ttyname (у меня пустая строка)

  • ttyspeed (у меня пустая строка)

  • localip - ip, присвоенный ppp интерфейсу

  • remoteip - ip шлюза

  • oldgateway - ip прежнего шлюза по-умолчанию

Эти параметры могут помочь при написании логики работы скрипта.

Изменение маршрутов при подключении VPN

Запускаем терминал. Для удобства запускаем оболочку с правами root-а:

sudo csh

Переходим в каталог /etc/ppp:

Создаем файл ip-up:

Жмем клавишу i (режим вставки) и набираем следующий текст:

Сохраняем файл - Esc : w q Enter.

Изменяем права доступа к файлу для того, чтобы разрешить выполнение скрипта:

Теперь при подключении VPN в таблицу маршрутизации будет добавлена запись на локальные подсети через прежний шлюз.

Изменение маршрутов при отключении VPN

Обратные действия реализуются с помощью скрипта ip-down. В том же каталоге /etc/ppp создаем файл ip-down:

Изменяем права доступа к файлу для того, чтобы разрешить выполнение скрипта:

Теперь при отключении мы получим начальную таблицу маршрутов.

Last updated

Was this helpful?