재귀 DNS 조회, 단계별로 살펴보기
브라우저
example.com 요청
리졸버
내 ISP / 1.1.1.1
루트 + TLD
.com 운영 주체는?
권한 네임서버
실제 응답
체인의 각 단계도 DNS 조회이며 이후 캐시됩니다
DNS의 작동 원리: 도메인 이름에서 IP 주소까지
브라우저에 example.com을 입력하면 페이지가 거의 즉시 나타납니다. 그 두 순간 사이에 지구 전체에 걸친 분산 데이터베이스가 한 가지 질문에 답했습니다. 이 이름에 해당하는 IP 주소는 무엇인가? 이 시스템이 바로 DNS(Domain Name System)입니다.
제대로 이해해 둘 가치가 있습니다. 적용되지 않는 변경, 사라지는 이메일, 한 기기에서는 되는데 다른 기기에서는 안 되는 사이트처럼 웹사이트에서 헷갈리는 문제 대부분이 DNS 확인과 캐싱이 실제로 동작하는 방식에서 비롯되기 때문입니다.
재귀 DNS 조회, 단계별로 살펴보기
브라우저
example.com 요청
리졸버
내 ISP / 1.1.1.1
루트 + TLD
.com 운영 주체는?
권한 네임서버
실제 응답
체인의 각 단계도 DNS 조회이며 이후 캐시됩니다
네 명의 참여자
- 스텁 리졸버: 운영체제에 내장된 작은 DNS 클라이언트입니다. 아는 것이 거의 없어 즉시 다른 곳에 위임합니다.
- 재귀 리졸버: 보통 ISP가 운영하거나
1.1.1.1,8.8.8.8같은 공개 리졸버입니다. 응답을 쫓아가 캐시하는 핵심 역할을 합니다. - 루트 및 TLD 서버: 답을 알지는 못하지만 누가 아는지는 압니다. 루트는
.com을 가리키고,.comTLD 서버는 해당 도메인의 네임서버를 가리킵니다. - 권한 네임서버: 도메인의 실제 레코드를 보유한 서버입니다. 이 서버가 말하는 것이 정의상 진실입니다.
조회 과정을 단계별로
먼저 로컬 캐시 확인
브라우저에는 자체 DNS 캐시가 있고 OS에도 있습니다. 둘 중 하나라도
example.com에 대한 만료되지 않은 응답을 갖고 있다면 조회는 마이크로초 안에 끝나며 네트워크 트래픽은 전혀 발생하지 않습니다.재귀 리졸버에 질의
캐시에 없으면 스텁 리졸버가 질의를 설정된 재귀 리졸버로 보냅니다. UDP 패킷 하나이며 보통 53번 포트를 사용합니다.
리졸버가 루트 서버에 질의
리졸버에 캐시된 것이 없으면 최상단에서 시작합니다. 루트 서버는
example.com을 알지 못하지만.com의 네임서버는 여기라고 응답합니다.리졸버가 TLD 서버에 질의
.com서버는example.com의 권한 네임서버는 이것들이라는 리퍼럴로 응답합니다. 아직 답이 아니라 또 다른 포인터입니다.리졸버가 권한 네임서버에 질의
이 서버에 실제 존 파일이 있습니다.
A레코드93.184.216.34를 반환하며, 응답을 얼마나 재사용할 수 있는지 알려 주는 TTL도 함께 보냅니다.응답이 캐시되고 반환됨
리졸버는 TTL 기간 동안 결과를 캐시하고 OS에 전달하며, OS가 이를 브라우저에 전달합니다. 이제야 서버로의 TCP 연결을 시작할 수 있습니다.
재귀와 권한: 중요한 구분
사람들은 이 둘을 자주 혼동하며, 이는 실제 디버깅 실수로 이어집니다.
| 재귀 리졸버 | 권한 네임서버 | |
|---|---|---|
| 역할 | 사용자를 대신해 응답을 찾음 | 응답을 저장하고 게시함 |
| 예시 | 1.1.1.1, 8.8.8.8, 사용 중인 ISP | Cloudflare DNS, Route 53, 도메인 등록 대행사 |
| 캐시하나요? | 예. 이것이 주된 역할입니다 | 아니요. 원천입니다 |
| 누가 설정하나요? | 사용자 또는 사용자의 네트워크 | 도메인 소유자 |
실무적인 결과는 이렇습니다. DNS 레코드를 변경하면 권한 서버는 즉시 갱신됩니다. 하지만 전 세계의 모든 재귀 리졸버는 TTL이 만료될 때까지 캐시된 사본을 계속 제공합니다. 이 간격이 바로 흔히 말하는 DNS 전파입니다.
리졸버가 실제로 반환하는 것
응답에는 주소 외에도 더 많은 정보가 담겨 있습니다. 레코드 유형, 값, TTL이 포함되며, 응답이 권한 서버의 것인지 캐시에서 제공된 것인지를 알려 주는 플래그도 있습니다. 하나의 도메인은 여러 레코드 유형을 동시에 게시합니다. 주소에는 A와 AAAA, 메일 라우팅에는 MX, 네임서버에는 NS, 인증과 정책에는 TXT를 씁니다.
example.com. 3600 IN A 93.184.216.34
example.com. 3600 IN AAAA 2606:2800:220:1::248
example.com. 3600 IN MX 10 mail.example.com.
example.com. 86400 IN NS ns1.example.com.이름 뒤의 숫자는 초 단위 TTL입니다. IN은 인터넷 클래스를 뜻합니다. 나머지는 레코드 유형과 그 값입니다.
실제로 DNS에서 문제가 생기는 경우
- 변경이 전파되지 않음. 권한 서버는 올바르지만 사용자와 그 사이의 어느 캐시는 그렇지 않습니다. 고칠 것은 없고 기다리면 됩니다.
- 네임서버가 엉뚱한 제공업체를 가리킴. 도메인 등록 대행사에서 레코드를 수정했지만 도메인은 호스팅 업체의 네임서버에 위임되어 있어 수정 내용이 무시됩니다.
- 끝의 점 누락. 존 파일에서 끝의 점이 없는
mail.example.com은 존 기준 상대 이름으로 해석되어mail.example.com.example.com이 될 수 있습니다. AAAA레코드가 없는데 IPv6 전용 클라이언트가 있음. 다른 모든 사람에게는 완벽하게 동작하지만 그들에게는 사이트에 접속할 수 없습니다.
핵심 요약
DNS 문제가 한 기기에서는 나타나고 다른 기기에서는 나타나지 않는다면, 거의 항상 레코드가 고장 난 것이 아니라 캐시 때문입니다. 무엇이든 바꾸기 전에 권한 응답부터 확인하세요.
홈페이지의 조회 도구로 모든 도메인의 이 레코드들을 전부 볼 수 있습니다. 각각 독립적으로 조회하므로 한 유형이 없는 도메인도 나머지는 그대로 표시됩니다.
도메인의 공개 DNS 주소를 확인해야 하나요? Domain IP Lookup 도구를 사용해 보세요.
자주 묻는 질문
관련 글
재귀 DNS 조회, 단계별로 살펴보기
브라우저
example.com 요청
리졸버
내 ISP / 1.1.1.1
루트 + TLD
.com 운영 주체는?
권한 네임서버
실제 응답
체인의 각 단계도 DNS 조회이며 이후 캐시됩니다
네임서버란? 도메인 위임의 원리
어느 제공업체가 내 DNS를 제어할지 결정하는 단 하나의 설정이며, 레코드를 수정해도 아무 효과가 없는 이유이기도 합니다.
거의 모든 존에서 만나게 되는 레코드
DNS 레코드 유형 총정리: 완전한 레퍼런스
알아 둘 가치가 있는 모든 레코드 유형의 역할, 모양, 그리고 흔히 저지르는 실수를 한 페이지에 정리했습니다.
실무에서 TTL 정하기
DNS TTL이란? 적절한 값 정하기
숫자 하나가 변경 사항이 반영되는 속도와 DNS 트래픽의 양을 좌우합니다. 의도적으로 값을 정하는 방법을 소개합니다.