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

OpenVPN со смешанными клиентами ipv4 и ipv6

У меня есть VPN-сервер, обслуживающий различных клиентов; некоторые только с ipv4, некоторые с ipv4 и ipv6, а некоторые будут только с ipv6. Некоторые из этих клиентов находятся в роуминге, поэтому в идеале они должны подключиться к ipv6, если он доступен, и вернуться к ipv4, если он отсутствует.

В моей текущей настройке OpenVPN слушает ipv4 и ipv6:

proto udp
proto udp6
dev tun

Мой первый вопрос здесь: хотя это, кажется, работает, безопасно и правильно ли иметь оба прототипа в одном файле конфигурации?

У моих клиентов в конфигурации два удаленных экземпляра:

remote vpn.domain.tld port udp6
remote vpn.domain.tld port udp

Мой вопрос здесь, так как это, похоже, работает (сначала попробуйте udp6, если это не удастся, вернется к udp), это хороший способ сделать это?

Хорошо.

На стороне сервера указание «proto» дважды на самом деле ничего не дает - «proto udp6» заставит его привязать сокет с двойным стеком для обработки v4 + v6, перезаписав «proto udp» в предыдущей строке.

На клиенте 2.3 иметь два пульта ДУ с «udp6» и «udp» - это правильный выбор, поскольку старый код сокета не может правильно переключиться на отказ.

На клиенте git master (2.4-to-be) или 3.0 (OpenVPN Connect) вы можете просто использовать «udp», так как он будет правильно вызывать getaddrinfo () и использовать любой IP-протокол, поддерживаемый сервером и сетью, сначала пробуя одну семью и переход к другому, используя предпочтение сигналов ОС (через упорядочение результатов getaddrinfo ()).

Герт