장치 관리자는 TAP-Windows Adapter V9을 표시하는데 프로필은 dev tun이라고 되어 있고, 터널은 동작합니다. 이 조합은 잘못된 구성이 아니며, 모드를 앞뒤로 바꿔도 달라지지 않습니다. 어댑터 이름은 클라이언트가 어떤 Windows 드라이버를 로드했는지를 보여 줄 뿐, 터널이 어떤 패킷을 나르는지는 알려 주지 않습니다. 무엇이든 바꾸기 전에 클라이언트 로그에서 드라이버 줄을 읽으십시오.

레이어 3 터널에 Ethernet 어댑터가 붙는 이유

클라이언트의 Windows 역사 대부분에서 쓸 만한 가상 레이어 3 어댑터는 없었습니다. 유일한 선택지는 Ethernet 인터페이스를 제공하는 TAP-Windows 드라이버였습니다. 그래서 클라이언트는 빠진 레이어 2 동작을 에뮬레이션해 Windows가 그것을 구성할 수 있게 했습니다. 어댑터가 여전히 네트워크 카드처럼 보이는 이유가 바로 이 에뮬레이션입니다.

그 에뮬레이션의 두 가지는 눈에 띕니다. 클라이언트가 터널 주소에 대해 ARP에 응답하고, 로컬 머신에 작은 DHCP 임대를 제공합니다. 그래서 Windows는 MAC 주소와 NDIS 드라이버를 갖춘 평범한 Ethernet 어댑터로 보지만, 터널 자체는 생 IP 패킷을 나릅니다. Ethernet 의상은 드라이버에 속한 것이지 터널 모드에 속한 것이 아닙니다.

이름으로 판단하지 말고 드라이버 줄을 찾으십시오

드라이버 버전이 다르면 두 어댑터가 같은 이름을 공유할 수 있으므로 이름만으로는 무엇이 실행되었는지 알 수 없습니다. 클라이언트 로그는 연 장치의 이름을 적고, 최신 빌드에서는 선택한 드라이버 이름도 적습니다. 읽어야 할 줄은 그것입니다.

로그에서 세 가지를 이 순서로 확인하십시오. 클라이언트가 어댑터를 열었는지, 어떤 드라이버를 보고하는지, 실패 후 다른 드라이버로 물러났는지. 물러난 줄은 놓치기 쉽습니다. 연결은 그대로 맺어지고, 사용자는 새 드라이버가 활성이라고 믿는 동안 터널은 옛 드라이버로 동작하기 때문입니다.

레이어 3 드라이버로 전환하고 무엇이 있어야 하는지 확인하십시오

WireGuard 프로젝트가 배포하는 레이어 3 드라이버는 클라이언트 버전 2.5부터 사용할 수 있지만 선택 사항입니다. 지시문 하나를 추가하면 선택됩니다.

windows-driver wintun

드라이버가 머신에 설치되어 있어야 하며, 공식 빌드에는 서명된 사본이 들어 있습니다. 클라이언트를 직접 패키징한다면 그 서명된 릴리스를 배포하십시오. 개인적으로 빌드한 드라이버는 다른 VPN 제품이 설치하는 사본과 충돌합니다. 그 충돌은 원인을 밝히기 어려운 장애를 만들고, 보통 두 번째 VPN 클라이언트가 머신에 들어온 뒤에 나타납니다. 반대로 드라이버가 없으면 로그에 분명한 줄이 남습니다.

드라이버는 더 엄격한 권한도 강제하므로, 클라이언트는 권한 있는 계정으로 실행되는 대화형 서비스를 통해 어댑터를 만듭니다. 그 서비스 없이 일반 사용자 프로세스로 클라이언트를 시작하면 지시문이 실패할 수 있고, 그러면 이전에 설치된 어댑터가 그대로 보여 전환이 무시된 것처럼 보입니다.

TAP이 여전히 정답인 경우

터널이 Ethernet 프레임, 브로드캐스트 트래픽, IP가 아닌 프로토콜을 실어야 한다면 레이어 2 어댑터가 필요하고 TAP 드라이버는 그 요구에서 나옵니다. Windows의 브리지 설계도 같은 제약을 받습니다. 인터페이스가 레이어 2 도메인에 들어가야 하기 때문입니다.

어댑터 이름 수준에서 한쪽을 다른 쪽보다 고를 이유로 성능은 적절하지 않습니다. 버전 2.6은 패킷 처리를 커널로 옮기는 데이터 채널 오프로드 드라이버를 추가하며, 처리량 특성을 바꾸는 선택지는 그것입니다. 연결을 위한 필수 조건이 아니라 기능상의 결정이며, 빌드와 설치된 패키지에 달려 있습니다. 그것 없이도 동작하는 프로필은 계속 동작합니다.

What the tunnel must carryAdapter familyWhere it is selected
IPv4 and IPv6 packetsLayer-3 driver, or the older TAP emulationClient directive plus installed signed driver
Ethernet frames, non-IP protocolsTAP-WindowsProfile mode and the TAP driver package
Higher throughput on a supported buildData-channel offload driverClient build and driver package, separately from the profile

전환 후 정리하십시오

옛 어댑터를 제거하는 일은 새 어댑터를 추가하는 일만큼 중요합니다. 남은 TAP 인터페이스는 이전 세션의 주소와 경로를 그대로 유지할 수 있습니다. 그 항목은 그것을 만든 연결보다 오래 남습니다. 장치 관리자에서 오래된 장치를 삭제한 뒤 다시 연결하고, 라우팅 테이블에 더 이상 그것이 나오지 않는지 확인하십시오.

VPN 제품이 여러 개 설치되어 있다면 프로필을 디버깅하기 전에 각 제품이 어떤 드라이버 패키지를 포함하는지 적어 두십시오. 같은 드라이버의 다른 빌드를 두 클라이언트가 설치하는 것은 프로필 편집으로는 풀리지 않는 충돌입니다. 쓰지 않는 클라이언트를 제거하고 재부팅한 뒤 장치 관리자에서 중복 어댑터를 찾으십시오. 그 뒤에야 두 제품의 로그 줄을 비교할 가치가 있습니다.

관련 글