개발자 노트북에서 터널을 겹쳐 놓는 데는 두 가지 정당한 이유가 있습니다. 기업 클라이언트가 특정 국가에서 오는 것처럼 보여야 하거나, 두 사설 네트워크에 동시에 접근할 수 있어야 하는 경우입니다. 두 경우 모두 바깥 터널이 안쪽 클라이언트 자체의 연결을 실어 날라야 합니다.

두 클라이언트를 어떤 순서로 실행해도 그것은 되지 않습니다. 라우팅이 그것을 해냅니다.

가능한 두 순서를 비교하십시오

바깥 계층은 엔드포인트에 공용 인터넷에서 접근할 수 있는 터널로 고릅니다. 안쪽 계층은 서버가 그 출구를 통해서만 응답하는 터널입니다. Windows에서 실무적인 구분은 바깥이 WireGuard, 안쪽이 기업 클라이언트입니다. 결정적인 요소는 통제입니다.

공식 WireGuard 클라이언트는 라우트와 DNS를 포함한 전체 설정 파일을 적용합니다. 상용 기업 클라이언트는 보통 둘 다 감춥니다. 감춰진 클라이언트를 바깥에 두면 그 아래 경로를 짐작해야 합니다.

반대 순서도 불가능하지는 않습니다. 다만 바깥 클라이언트가 결코 보이지 않는 일정에 따라 라우트를 다시 쓰기 때문에 생각하기가 더 어렵습니다.

AllowedIPs가 기업 대역만 가리키게 하십시오

AllowedIPs 는 WireGuard가 터널로 보내는 목적지를 나열합니다. 겹쳐 놓는 데는 안쪽 서버 주소와 기업 프리픽스만 있으면 됩니다. 나머지는 모두 로컬 네트워크에 남으며 프린터와 하이퍼바이저도 포함됩니다. 이것은 설계상 분할 터널이고, 제외 문제를 완전히 피합니다.

전체 터널 바깥 계층에는 0.0.0.0/0 에서 로컬 대역을 뺀 것이 필요합니다. 이 형식은 제외를 표현할 수 없습니다. 따라서 보수를 계산해 붙여 넣어야 합니다.

[Interface]
PrivateKey = ...
Address = 10.99.4.2/32

[Peer]
PublicKey = ...
Endpoint = 198.51.100.44:51820
AllowedIPs = 198.51.100.44/32, 10.20.0.0/16, 10.21.0.0/16

안쪽 클라이언트가 자체 라우트를 설치하지 않으면 기업 프리픽스를 직접 나열하십시오. 그 줄에서 빠진 프리픽스는 바깥 터널이 결코 실어 나르지 않는 목적지입니다. 목록의 오래된 사본은 없느니만 못합니다. 여전히 올바르게 보이기 때문입니다.

순서, 메트릭, 두 번째 어댑터

먼저 바깥 터널에 연결한 뒤 기업 클라이언트를 시작하십시오. 그러면 그 엔드포인트 연결이 로컬 게이트웨이 대신 WireGuard를 통해 나갑니다. 기업 인터페이스에 더 낮은 메트릭을 주어 그것이 소유한 주소에서 그 프리픽스가 이기게 하십시오.

# which interface currently claims the corporate prefix?
Find-NetRoute -RemoteIPAddress 10.20.10.5 | Select-Object -First 1

# prefer the corporate interface for its own prefixes
Set-NetIPInterface -InterfaceAlias 'Corp VPN' -InterfaceMetric 3
Set-NetIPInterface -InterfaceAlias 'wg-personal' -InterfaceMetric 40

wg show interfaces

메트릭은 사람들이 건너뛰는 단계입니다. 순서가 없으면 겹치는 프리픽스에서는 마지막에 설치된 라우트가 이깁니다. 이것은 부팅마다 바뀌므로 문제가 간헐적으로 보입니다.

OpenVPN 2.6을 기반으로 한 클라이언트는 자체 함정을 더합니다. 데이터 채널 오프로드 어댑터가 이미 사용 중이면 두 번째 인스턴스는 시작을 거부합니다. 프로필에 disable-dco 를 더하면 이전 TAP 경로로 돌아가고, 그러면 둘이 나란히 동작합니다.

겹친 경로가 끊기는 곳

바깥 터널의 연결을 끊으면 안쪽도 죽습니다. 안쪽 클라이언트만 다시 연결하면 흔히 곧바로 인터넷으로 나가 조용히 겹침을 없앱니다. 매번 두 터널을 모두 멈춘 상태에서 순서를 처음부터 시험하십시오.

사용 가능한 MTU가 더 작아진다고 보십시오. 계층마다 부가 비용이 붙으므로 1420과 1400 부근의 시작 조합이 출발점입니다. 큰 패킷에서 멈추는데 작은 요청은 성공하는 전송이 흔한 징조입니다. 기업 정책이 또 다른 한계입니다. 관리되는 기기를 요구하는 클라이언트는 겹친 경로를 위반으로 볼 수 있습니다.

양쪽 끝이 고정 네트워크라면 게이트웨이 사이의 사이트 간 터널이 순서 문제를 관리하는 대신 없애 줍니다. 노트북 한 대에서는 두 터널이 각자 인터페이스와 프리픽스별 목적지 선택 규칙을 가질 때만 함께 존재합니다.

관련 글