DNS 해석은 어떻게 작동하나요
Source: Dev.to

이 블로그에서는 다음을 다룹니다
- DNS가 무엇이며 이름 해석이 존재하는 이유
dig명령이 무엇이고 언제 사용되는지dig . NS와 루트 네임 서버 이해dig com NS와 최상위 도메인(TLD) 네임 서버 이해dig twitter.com NS와 권한 있는 네임 서버 이해dig twitter.com와 전체 DNS 해석 흐름 이해
DNS (도메인 네임 시스템)란?
DNS는 Domain Name System의 약자입니다.
주된 역할은 사람에게 친숙한 도메인 이름을 다음과 같이 변환하는 것입니다:
www.example.com
컴퓨터가 이해할 수 있는 IP 주소로:
192.168.1.1
DNS를 인터넷의 전화번호부라고 생각하면 됩니다 – 사람은 이름을 기억하고, 컴퓨터는 숫자로 통신합니다. DNS가 그 간극을 메워줍니다.
왜 이름 해석이 존재할까?
- 인간은
twitter.com같은 이름을 쉽게 기억할 수 있습니다. - 컴퓨터는
192.8.1.1같은 숫자를 이해합니다.
따라서 DNS는 인간과 기계 사이의 번역기 역할을 하여, IP 주소를 외우는 대신 이름으로 웹사이트에 접근할 수 있게 합니다.
dig 명령은 무엇인가요?
dig는 Domain Information Groper의 약자입니다.
DNS 서버에서 정보를 검색하는 데 사용되는 명령줄 도구입니다. 네트워크 관리자와 엔지니어는 일반적으로 dig를 사용하여:
- DNS 조회 수행
- DNS 구성 확인
- DNS 문제 해결
dig은 언제 사용하나요?
- DNS 해석 문제 디버깅
- 도메인에 대해 권한이 있는 DNS 서버 확인
- A, AAAA, CNAME, MX 등과 같은 DNS 레코드 검증
기본 구문
dig [server] [domain] [record_type]
예시
dig twitter.com A
Source: …
DNS 해석이 작동하는 방식 (단계별)
브라우저에 다음을 입력했을 때 실제로 무슨 일이 일어나는지 알아봅시다:
www.twitter.com
1. 루트 네임 서버
루트 네임 서버는 DNS 계층 구조의 시작점입니다.
- 13개의 논리적 루트 서버가 존재합니다 (A부터 M까지 명명됨).
- 각 논리 서버는 전 세계에 여러 물리 인스턴스를 가지고 있습니다.
- 루트 서버는 개별 웹사이트의 IP 주소를 알지 못합니다; 대신 해당 최상위 도메인(예: “.com”)을 담당하는 서버로 리졸버를 안내합니다.
루트 네임 서버 확인
dig . NS
이 명령은 루트 네임 서버 목록을 반환합니다.

2. TLD (최상위 도메인) 네임 서버
최상위 도메인 (TLD) 은 도메인 이름의 마지막 부분으로, 예를 들면:
.com.net.org.in
TLD 서버 역시 IP 주소를 반환하지 않으며, 특정 도메인을 담당하는 권한 있는 네임 서버로 안내합니다.
.com에 대한 TLD 네임 서버 확인
dig com NS
이 명령은 모든 .com 도메인을 담당하는 권한 있는 네임 서버를 반환합니다.

이 시점에서 리졸버는 다음에 어디로 가야 할지 정확히 알게 됩니다.
3. 권한 있는 네임 서버
권한 있는 네임 서버는 도메인의 실제 DNS 레코드를 보관합니다.
다음 명령을 실행하면:
dig twitter.com NS
twitter.com에 대해 권한 있는 네임 서버 목록이 반환됩니다.

이 서버들은 다음과 같은 레코드를 포함합니다:
A(IPv4 주소)AAAA(IPv6 주소)CNAME(정규 이름)MX(메일 교환)
실제 IP 주소 가져오기
dig twitter.com A

이 명령은 최종적으로 twitter.com의 IP 주소를 반환하여 DNS 해석 과정을 완료합니다.
예시 IP 주소
172.66.0.227
이제 브라우저는 어디에 연결해야 하는지 알게 되었으며, 트위터 웹사이트를 로드할 수 있습니다.
전체 DNS 해석 흐름 (요약)
- 브라우저에
www.twitter.com을 입력합니다. - 브라우저가 재귀 DNS 리졸버에 요청합니다.
- 리졸버가 루트 네임 서버에 질의합니다.
- 루트 서버는 “
.comTLD 서버에 문의하세요.” 라고 답합니다.
- 루트 서버는 “
- 리졸버가 TLD 네임 서버에 질의합니다.
- TLD 서버는 “
twitter.com에 대한 권한 있는 서버는 여기 있습니다.” 라고 답합니다.
- TLD 서버는 “
- 리졸버가 권한 있는 네임 서버에 질의합니다.
- 이 서버들은 실제 IP 주소를 반환합니다.
- 브라우저가 해당 IP에 연결하고 웹사이트를 로드합니다.
Final Notes
- Root 서버 → TLD가 어디에 있는지를 알고 있습니다.
- TLD 서버 → 어떤 서버가 권한이 있는지를 알고 있습니다.
- 권한 있는 서버 → 실제 IP 주소를 알고 있습니다.
- 재귀 DNS 서버는 이 전체 조회를 클라이언트를 대신하여 수행합니다.
Image Credits:
https://www.indusface.com/learning/what-is-dns/

