ipv4 및 ipv6 클라이언트가 혼합 된 OpenVPN


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 master (2.4-to-be) 또는 3.0 (OpenVPN Connect) 클라이언트에서 getudrinfo ()를 올바르게 호출하고 서버와 네트워크가 지원하는 모든 IP 프로토콜을 사용하기 때문에 "udp"를 사용할 수 있습니다. getaddrinfo () 결과 순서를 통해 기본 설정으로 OS 신호를 사용하여 다른 신호로 넘어갑니다.

거트


2.4 이전의 OpenVPN의 참고 자료는 이중 스택을 수행 할 수 없습니다. "proto udp6"을 설정하면 이중 스택에 바인딩되지 않습니다. OpenVPN 2.4에서는 표시된대로 "proto udp"를 사용할 수 있습니다.
벤 프랜 스케

이 주제에 대한 몇 가지 모순 된 문서를 발견했습니다. 사전 설정에서 OpenVPN 2.4의 "proto udp6"은 이중 스택이됩니다. 적어도 이것은 내 서버의 동작입니다. 적어도 wiki.archlinux.org/index.php/… 는 같은 내용입니다.
마틴
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.