VPN 사용자에게 올바른 DNS로 여겨지는 구성은 세 가지입니다. 운영자 리졸버로의 질의, 직접 고른 암호화 리졸버로의 질의, 그리고 업무용 이름을 조직으로 보내는 split DNS입니다. 유출 테스트는 리졸버 하나를 보고하며, 그 하나의 이름표로는 실제로 어떤 구성인지 알 수 없습니다. 먼저 의도한 정책을 정하고 그에 비추어 테스트하세요. 그러지 않으면 숫자와 느낌을 비교하게 됩니다.

결과를 읽기 전에 무엇을 원했는지 정하세요

정책을 한 문장으로 말해 보세요. 모든 이름을 VPN 리졸버로 보내기, 모든 이름을 선택한 암호화 리졸버로 보내기, 또는 내부 이름을 조직으로 보내는 split DNS입니다. 각각은 다른 사용자에게 정당화되며 각각 다른 기대 답을 냅니다. 그 문장이 없으면 포럼 게시물의 스크린샷과 다른 결과는 무엇이든 불안해 보입니다. 첫 테스트 전에 정책을 적어 두세요.

정책을 정하기 전에 한 테스트는 아무것도 측정하지 않습니다. 기준점 없는 리졸버 이름만 내놓습니다.

리졸버 이름은 경로도 수신자도 증명하지 않는다

두 가지 질문이 중요합니다. 누가 질의를 받았는지, 어떤 경로가 그것을 실어 날랐는지입니다. 설정 화면에 공급자 주소가 보여도 터널을 통해 제삼자 리졸버에 도달할 수 있습니다. 유출 테스트 페이지의 이름표는 관찰자의 관점을 설명할 뿐, 당신의 라우팅 테이블이 아닙니다.

브라우저는 사이트 트래픽이 터널을 지나는 동안 자체 암호화 DNS를 쓸 수 있고, 캐시된 응답이 있으면 새 조회 없이 페이지가 로드될 수 있습니다. 그래서 공인 IP 결과는 DNS에 대해 아무것도 말하지 않습니다. DoH와 DoT는 리졸버까지 가는 동안 질의를 보호하지만 그 리졸버는 여전히 이름을 봅니다.

resolvectl status
resolvectl query example.com
dig +short example.com

split DNS는 여러 리졸버를 올바르게 만든다

조직은 내부 이름을 자체 DNS로, 나머지는 다른 곳으로 보낼 수 있습니다. 그래서 여러 리졸버를 나열하는 테스트는 결함이 아니라 의도한 정책을 설명할 수 있습니다. 무엇이든 비활성화하기 전에 관찰된 집합을 문서화된 split DNS 규칙과 비교하세요. 테스트 페이지를 더 깔끔하게 보이려고 내부 리졸버를 끄면 사설 이름이 깨집니다.

split tunneling과 split DNS는 다른 선택입니다. 하나는 패킷을, 다른 하나는 질문을 라우팅합니다. 터널 경로를 바꿔도 이름 조회는 움직이지 않고, 리졸버를 바꿔도 웹사이트 경로는 고쳐지지 않습니다. IPv6는 세 번째 질문입니다. 의도하지 않은 IPv6 연결이 자동으로 DNS 유출은 아니기 때문입니다.

결과를 조사로 바꾸세요

테스트 전에 의도한 정책과 브라우저의 보안 DNS 설정을 기록하세요. 터널을 켠 상태로 테스트를 실행하고, 그것이 지목하는 모든 리졸버를 적고, 집합을 단일 기대 주소가 아니라 정책과 비교하세요.

증상이 재연결 시 나타난다면 재연결 후 반복하세요. 연결 시 적용된 정책은 나중에 사라질 수 있습니다. 설정을 추측하지 말고 내부 DNS 예외에는 클라이언트 문서를 사용하세요.

찾은 불일치를 고치세요. 브라우저 선택, VPN DNS 설정, 또는 split DNS 규칙입니다. 터널이 실패할 때 질의가 멈춰야 한다면 kill switch는 별도 설정이며 DNS 구성만으로는 제공되지 않습니다. 암호화 리졸버가 무엇을 숨기고 숨기지 않는지 설명해야 할 때 RFC 8484 사양이 유용합니다.

관련 글