OpenVPN із змішаними клієнтами ipv4 та ipv6


11

У мене сервер 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), це хороший спосіб зробити це?

Відповіді:


11

Добре.

На стороні сервера вказівка ​​"proto" двічі насправді нічого не робить - "proto udp6" змусить прив'язувати подвійний стек-сокет для обробки v4 + v6, замінивши "proto udp" у попередньому рядку.

Для клієнта 2.3, що має два пульти, з "udp6" і "udp" - це шлях, оскільки старий код сокета не може переробити себе належним чином.

На клієнті git (2.4), або 3.0 (OpenVPN Connect) клієнт, ви можете просто використовувати "udp", оскільки він буде правильно називати getaddrinfo () і використовувати будь-який IP-протокол, який підтримує сервер і мережа, намагаючись спочатку одну сім'ю та перехід на інший, використовуючи перевагу сигналів ОС (через упорядкування результатів getaddrinfo ()).

зародок


FYI на OpenVPN до 2.4, ви не можете зробити подвійний стек. Встановлення "proto udp6" не пов'язуватиметься з подвійним стеком. На OpenVPN 2.4 ви можете просто використовувати "proto udp", як зазначено.
Бен Франське

Я знайшов кілька суперечливих документацій на цю тему. У практичній установці "proto udp6" у OpenVPN 2.4 виходить подвійний стек. Принаймні, така поведінка мого сервера. Принаймні wiki.archlinux.org/index.php/… говорить про те саме.
Мартін
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.