OpenVPN: ROUTE: route addition failed using CreateIpForwardEntry

При подключении VPN туннеля, посредством OpenVPN, не происходит добавления маршрута до удалённой локальной сети (IPv4 Local network(s)). При этом, в журнале OpenVPN при установке соединения присутствует запись: route addition failed using CreateIpForwardEntry.
Скорее всего, программе не хватило прав для добавления записи в таблицу маршрутизации. Чтобы это исправить, необходимо отключить установленное соединение, и закрыть OpenVPN GUI в системном трее (ПКМ на его иконке в правом нижнем углу экрана → Выход). Далее следует выбрать и выполнить один из пунктов:

  • На ярлыке OpenVPN GUI кликаем правой кнопкой мыши → выбираем пункт Свойства → в открывшемся окне выбираем вкладку Совместимость → установливаем галочку на пункте Выполнять эту программу от имени администратора → нажимаем кнопку Ok.
  • Запускайте OpenVPN GUI не двойным кликом по ярлыку, а одинарным кликом правой кнопкой мыши по ярлыку и выбирайте пункт Запуск от имени администратора.

Автоматическое подключение VPN для доступа в удалённые ЛВС

Имеется VPN подключение к удалённой ЛВС поверх Интернет подключения. За удалённой сетью находятся другие ЛВС, к которым также необходимо иметь доступ по имеющемуся VPN соединению. Помимо этого требуется настроить автоматическое подключение VPN при запуске операционной системы.

Заходим в Пуск и в строку поиска вписываем taskschd.msc, после чего запускаем taskschd. Или же идём в Пуск → Все программы → Стандартные → Служебные → Планировщик задач.
В меню выбираем пункт Действия → Создать задачу.
На вкладке Общие вводим в поле ИмяVPN.
Переходим на вкладку Триггеры. Нажимаем на кнопку Создать. В выпадающем списке Начать задачу выбираем значение При входе в систему и нажимаем ОК.
Переходим на вкладку Действия и нажимаем кнопку Создать. В выпадающем списке Действие ставим значение Запуск программы. Вводим в поле Программа или сценарий команду:

rasdial «название VPN подключения» логин пароль

Полный путь до программы rasdial C:\Windows\System32\rasdial.exe
Нажимаем кнопку ОК.
Переходим на вкладку Параметры и ставим галочки напротив:

    Немедленно запускать задачу, если пропущен плановый запуск
    При сбое выполнения перезапускать через: 1 мин.
    Количество попыток перезапуска: 99.

Снимаем галочку Останавливать задачу выполняемую дольше.

Выполняем перезагрузку и убеждаемся, что подключение происходит нормально. Заходим в Пуск → Панель управления → Центр управления сетями и общим доступом → Изменение параметров адаптера, выделяем VPN подключение и нажимаем ПКМ, затем выбираем пункт Состояние. В открывшемся окне нажимаем Сведения, в новом окне смотрим IP адрес шлюза по умолчанию (если шлюз по умолчанию не указан, то в качестве адреса шлюза, при настройке статических маршрутов, описанной ниже, следует использовать адрес сети, к которой относится IP адрес, полученный при подключении к VPN сети).

Заходим в Пуск и в строку поиска вписываем cmd, после чего запускаем консоль. Или же идём в Пуск → Все программы → Стандартные → Командная строка.
Пишем команду route print. В списке интерфейсов смотрим номер интерфейса VPN. Теперь добавим все удалённые ЛВС, к которым мы не получаем доступ напрямую при подключении VPN. Для каждой ЛВС пишем команду:

route add IP_адрес_удалённой_сети mask маска_удалённой_сети IP_адрес_шлюза_VPN if номер_интерфейса -p

Если хотим использовать Интернет по VPN, то необходимо иметь ещё один маршрут, с метрикой меньше, чем установлена у шлюза Интернет для адреса 0.0.0.0 в таблице активных маршрутов (таблица отображается по команде route print). Это можно настроить в настройках подключения (Пуск → Панель управления → Центр управления сетями и общим доступом → Изменение параметров адаптера, выделяем VPN подключение и нажимаем ПКМ → Свойства → закладка Сеть → выделяем Протокол Интернета TCP/IP и нажимаем кнопку Свойства → в открывшемся окне нажимаем кнопку Дополнительно → устанавливаем галочку Использовать основной шлюз в удалённой сети) или в командной строке, выполнив команду:

route add 0.0.0.0 0.0.0.0 IP_адрес_шлюза_VPN metric метрика if номер_интерфейса -p

По умолчанию, при создании нового VPN подключения, эта галочка в настройках установлена. Соответственно, если не нужно отправлять Интернет запросы по VPN, а использовать для Интернета сразу текущее локальное подключение, то нужно снять данную галочку или изменить метрику маршрута для адреса 0.0.0.0 через шлюз VPN, набрав в командной строке:

route change 0.0.0.0 mask 0.0.0.0 IP_адрес_шлюза_VPN metric метрика -p

указав значение метрики больше, чем у маршрута через локальный шлюз.