Назад | Перейти на главную страницу

Проблема маршрутизации OpenVPN (кеш в таблицах маршрутизации)

Я добавляю route IP_ADDRESS NETMASK net_gatewayв файл конфигурации OpenVPN (локально), поэтому сервер не отправляет его и работает отлично.

Однако когда я удалять линию маршрутизации из файла конфигурации и переподключитесь к серверу OpenVPN, она останется в таблицах маршрутизации (согласно route PRINT (в cmd.exe) в Windows 7). Это означает, что OpenVPN не удаляет ранее созданный маршрут.

Я хотел бы знать, как этого избежать. Ниже я добавил образец файла конфигурации (который не слишком особенный).

client
dev tap
proto tcp-client
resolv-retry infinite
nobind
persist-key
persist-tun
ca ca.crt
comp-lzo
verb 3
auth-user-pass
route 192.168.1.100 255.255.255.255 net_gateway
  1. Вы можете настроить DHCP-сервер и использовать его для отправки маршрутов: https://superuser.com/questions/874671/how-can-i-inform-mac-os-and-ios-clients-of-vpn-routes
  2. удалять persist-tun и отправка IP клиенту в файл конфигурации VPN-сервера.

У меня эта установка в компании, о которой я забочусь, работает отлично. Основная идея этого решения заключается в том, что Windows будет деконфигурировать интерфейс VPN после отключения и настроить его снова после успешного подключения. Никаких прав администратора, никаких скрытых задач, просто работа. Совместимость? Все, кроме MacOS.

Определить повторное подключение? Как вы переподключаетесь?

Ты используешь persist-tun в вашей конфигурации, что означает, что туннельное устройство остается включенным во время стандартной перезагрузки. Поскольку интерфейс никогда не выходит из строя, связанные с ним маршруты никогда не исчезают.

Клиентский компьютер Windows 7, скорее всего, кэширует запись IP в своей таблице ARP или таблице маршрутизации. В этой статье Microsoft описывается поведение ARP по умолчанию в Windows 7. http://support.microsoft.com/kb/949589, включая время по умолчанию, в течение которого сохраняется запись. Чтобы проверить эту гипотезу, я бы подключился с помощью OpenVPN, отключился, затем очистил таблицу ARP и / или также очистил таблицу маршрутизации и посмотрел, сохраняется ли маршрут. Если он сразу исчез, посмотрите, сколько времени потребуется Windows 7, чтобы удалить маршрут без ручной очистки. Если это так, вам нужно будет найти способ изменить время жизни по умолчанию для записи маршрута / arp либо через OpenVPN, либо через параметр Windows 7, либо очистить таблицу при отключении OpenVPN от клиента.