Domain IP Lookup

“DNS 서버”라는 이름을 공유하는 세 계층

스텁 리졸버

내 기기 자체

재귀 리졸버

ISP, 라우터, 1.1.1.1

권한 네임서버

도메인 자체의 DNS

DNS 기초

재귀 리졸버와 권한 네임서버의 차이

읽는 시간 3분

“DNS 서버”라는 표현은 실제로는 서로 다른 두 가지 역할을 느슨하게 가리킬 때 쓰입니다. 둘을 구분해 두면 전체 시스템을 훨씬 쉽게 이해할 수 있습니다.

재귀 리졸버: 수고스러운 일을 대신 합니다

재귀 리졸버는 내 기기가 실제로 통신하는 대상입니다. 흔히 ISP나 공유기가 지정하거나, 1.1.1.1 또는 8.8.8.8 같은 공개 서비스로 직접 설정합니다. 하는 일은 쿼리를 받아 답을 찾는 데 필요한 모든 작업을 수행하는 것입니다. 먼저 자체 캐시를 확인하고, 없으면 루트 서버에서 TLD 서버, 그리고 도메인 자체의 권한 서버로 이어지는 체인을 따라가서 최종 답을 돌려줍니다.

권한 서버: 실제 답을 가지고 있습니다

권한 네임서버는 특정 도메인 레코드의 진실의 원천입니다. 해당 도메인의 실제 A, AAAA, MX 등 레코드가 존재하는 유일한 곳입니다. 대신 무언가를 찾아 주지는 않으며, 자신이 책임지는 도메인에 대해서만 직접 응답하고 그 외의 것은 거부하거나 다른 곳으로 전달합니다.

  • 재귀 리졸버는 공유 인프라이며, 보통 특별한 관계가 없는 수백만 개의 서로 다른 도메인에 응답합니다.
  • 도메인의 권한 서버는 보통 수가 적고 해당 도메인(또는 관련된 소수의 도메인)에 한정됩니다.
  • 직접 조회를 수행하는 도구는, 예를 들어 Node.js 자체 DNS 리졸버로 공개 재귀 리졸버를 통해 도메인을 곧바로 확인하는 경우 브라우저가 사용하는 것과 같은 재귀-권한 체인을 사용하는 것이며, 브라우저가 둘러싸고 있지 않을 뿐입니다.

사실 세 번째 역할이 있습니다: 스텁 리졸버

내 기기가 전체 체인을 직접 따라가는 일은 드뭅니다. 대신 경량 스텁 리졸버를 실행합니다. 자체 로직이 거의 없는 OS 수준의 작은 소프트웨어로, 애플리케이션의 DNS 질문을 설정된 재귀 리졸버(ISP의 것, 공유기의 것, 1.1.1.1 같은 수동 설정)에 전달하고 응답을 돌려주는 것이 유일한 일입니다. 노트북이나 휴대폰에서 “DNS 설정”을 바꿔도 DNS의 작동 방식은 전혀 달라지지 않고, 스텁 리졸버가 어느 재귀 리졸버로 전달하는지만 바뀌는 이유가 이것입니다. 점점 더 이 전달 단계 자체가 암호화된 채널, 즉 DNS-over-HTTPS나 DNS-over-TLS로 이루어지고 있어, 로컬 네트워크의 관찰자는 어떤 도메인을 조회하는지 평문으로 읽을 수 없게 되었습니다.

또한 이 구분은 “내 DNS 제공업체”와 “내 도메인의 권한 네임서버”가 보통 같은 것을 가리키는 반면, “내가 쓰는 DNS 서버”(예: 1.1.1.1)는 내 도메인에 대해 아무 특별한 지식이 없는 완전히 다른 범용 재귀 리졸버, 즉 단순한 전달자임을 설명해 줍니다.

역할실행되는 곳아는 것
스텁 리졸버내 기기의 OS아무것도 모름, 질문을 전달할 뿐
재귀 리졸버ISP, 공유기 또는 1.1.1.1 같은 공개 서비스모든 도메인을 알지만 어느 것도 특별하지 않음, 모두를 위해 수고를 대신함
권한 네임서버도메인 소유자의 DNS 제공업체도메인 하나(또는 소수)를 완전하고 확정적으로 앎

이 구분이 많은 혼란을 푸는 이유

DNS 문제 해결의 상당 부분은 이 세 계층 중 어느 곳이 혼란스러운 동작에 실제로 책임이 있는지 파악하는 일로 귀결되며, 셋 모두 흔히 “DNS 서버”라고 불리기 때문에 사람들이 자주 잘못 짚습니다. 도메인 자체의 권한 네임서버에 직접 질의하면 올바르게 확인되는데 특정 ISP의 재귀 리졸버를 거치면 잘못 확인된다면, 문제는 도메인 소유자가 통제하는 어떤 것이 아니라 정확히 그 리졸버의 캐시나 설정을 가리킵니다. 반대로 어느 재귀 리졸버에 물어도 도메인이 잘못 확인된다면 문제는 권한 쪽에 있습니다. 이 구분을 몇 초 안에 깔끔하게 해낼 수 있는지가 효율적인 DNS 디버깅과 짐작에 의존하는 것을 가르는 대부분의 차이입니다.

도메인의 공개 DNS 주소를 확인해야 하나요? Domain IP Lookup 도구를 사용해 보세요.