DNS 국가 라벨이 VPN 유출을 증명하지 못하는 이유
한 테스트가 주소를 국가에 매핑할 뿐, 경로에 대해서는 거의 말해 주지 않습니다. 무엇이든 바꾸기 전에 리졸버와 전달 체인, 정책을 읽어 보세요.
해외로 보이는 리졸버 주소는 DNS 테스트 결과에 끊임없이 나타나며, 사람들이 내리는 결론은 늘 같습니다. 쿼리가 터널 밖으로 새어 나갔다는 것입니다. 실제로 그런 경우도 있습니다. 그러나 더 자주 보고서가 설명하는 것은 어떤 재귀 서비스가 응답했는지, 데이터베이스가 그 주소를 어디로 보는지이며, 그것은 패킷이 아니라 인프라에 대한 진술입니다. 관찰과 추론을 분리하려면 세 가지 사실이 필요합니다. 누가 응답했는지, 이름이 어떻게 이동했는지, 그리고 실제로 어떤 정책을 설정했는지입니다.
테스트가 실제로 관찰한 것을 읽어 보세요
대부분의 테스트 페이지는 같은 방식으로 동작합니다. 클라이언트에 고유한 호스트 이름을 확인하게 한 뒤 어떤 리졸버가 그것을 가져왔는지 보거나, 클라이언트가 보고하는 리졸버 주소를 그대로 돌려줍니다. 이는 재귀 서비스를 식별하고, 쿼리가 클라이언트 서브넷 정보를 실었다면 대략적인 네트워크 위치도 알려 줍니다. 하지만 쿼리가 터널 밖으로 기기를 떠났다는 것을 증명하지 못하며, 모든 이름에 같은 경로가 쓰였다는 것도 물론 증명하지 못합니다. 한 번의 조회에 대한 한 번의 관찰이 전체 트래픽에 대한 주장으로 일반화되는 것입니다.
리졸버 주소를 보여 주는 테스트는 주소를 클라이언트가 실제로 받은 리졸버 목록과 비교할 수 있으므로 국가 배지보다 유용합니다.
애니캐스트와 전달이 대부분의 의외성을 설명한다
대형 공용 리졸버는 같은 주소를 여러 위치에서 알리며, 네트워크는 각 쿼리를 라우팅상 가장 가까운 사이트로 보냅니다. 그러면 지리 위치 데이터베이스가 그 주소를 한 위치에 매핑하는데, 그것이 다른 대륙의 기업 등록 주소일 수도 있고 응답한 곳이 아닌 데이터 센터일 수도 있습니다. RFC 4786은 애니캐스트 서비스의 운영 관행과 그러한 주소를 하나의 물리적 장소에 연결하기 어렵다는 점을 다룹니다. 지도는 라우팅 결정을 단순화한 것이며, 경고를 부르는 결과가 나오는 방향으로 단순화합니다.
전달은 두 번째 층을 더합니다. 로컬 스텁 리졸버나 라우터, ISP 리졸버가 쿼리를 상위 서비스로 넘길 수 있고, 테스트에 나타나는 이름은 그 체인의 첫 번째가 아니라 마지막 운영자를 반영합니다. 클라이언트 서브넷 확장은 상위 응답을 당신의 네트워크에 맞추는 동시에 보고되는 위치를 한 번도 가 본 적 없는 곳처럼 보이게 할 수 있습니다.
따라서 설정된 리졸버가 올바르면서도 해외로 보이는 결과를 낼 수 있고, 자기 나라의 리졸버가 당신이 고르지 않은 당사자의 것이라서 틀린 것일 수도 있습니다.
누가 그 이름을 받았고, 어떤 경로로
실무적인 부분에는 두 가지 질문이 답합니다. 클라이언트가 어느 서버를 쓰는지, 그리고 그 서버에 터널을 통해 도달하는지입니다. 라우팅에 대해 결론을 내리기 전에 리졸버 목록과 테스트 결과의 주소를 비교하고, 그다음 그 주소로 가는 쿼리가 터널 인터페이스로 나가는지 확인하세요. 두 주소가 다르다면 흥미로운 발견은 무언가가 의도한 리졸버를 다시 썼거나 우회했다는 것이며, 이는 국가 이름보다 주의 깊게 볼 만합니다.
resolvectl query example.com
resolvectl status | grep -A3 'DNS Servers'
dig +short TXT whoami.akamai.net
첫 번째 명령은 어느 서버가 이름에 응답했는지 보여 주고, 두 번째는 설정된 목록과 그 범위를 보여 주며, 세 번째는 공용 서비스가 보는 리졸버 주소를 보고합니다. 셋이 일치하면 국가 라벨이 무엇이라 하든 정책은 설정된 대로 동작하고 있습니다.
당신이 고른 정책과 비교하세요
리졸버를 강제하는 VPN, 자체 암호화 DNS를 쓰도록 설정된 브라우저, 그리고 한 인터페이스의 설정을 우선하는 운영 체제는 각각은 올바를 수 있지만 함께 놓이면 서로 충돌합니다. 최신 브라우저는 암호화된 전송으로 브라우저에서 고른 공급자에게 쿼리를 보낼 수 있고, 이는 시스템의 리졸버 목록을 의도적으로 우회합니다. 그것은 끊긴 터널이라는 의미의 유출이 아니라 다른 곳에서 선택된 정책이며, 그것이 어디서 선택되었는지 찾는 것이 실제 작업입니다.
업무 기기는 도메인별 규칙을 추가합니다. 내부 이름은 조직의 리졸버로 가야 하고 나머지는 기본값을 따르는데, 테스트 페이지가 예상치 못한 국가를 보여 주었다고 그 체계를 바꾸는 것이 바로 팀 전체에서 내부 이름이 확인되지 않게 되는 길입니다.
테스트는 좁고 안전하게 유지하세요
내부 호스트 이름을 공용 테스트 서비스에 질의하면 그 이름을 볼 이유가 없는 당사자에게 노출되며, 답은 리졸버 목록을 로컬에서 읽는 것 이상을 알려 주지 않습니다.
대신 인프라를 드러내는 이름을 쓰고, 리졸버 주소와 범위, 사용한 인터페이스를 기록하고, 그 기록을 문서화된 의도와 비교하세요. 지도의 라벨은 대화를 위한 맥락이지 통과나 실패의 결과가 아니며, 그것을 판결처럼 다루면 진단 대신 설정 변경이 생깁니다.