CHAPTER 05 · NETWORK
인터넷의
주소록 DNS
사람이 기억하는 도메인 이름이 컴퓨터가 사용하는 IP 주소로 바뀌는 길을 따라갑니다.

01
google.com은 주소가 아니다
사람은 이름을 기억하지만 네트워크는 IP 주소로 목적지를 찾습니다.
브라우저에 도메인을 입력하면 운영체제와 DNS 리졸버가 해당 이름의 IP 주소를 찾습니다. 먼저 hosts 파일과 로컬 캐시를 확인하고 없으면 설정된 DNS 서버에 질의합니다.
DNS는 단순한 주소록이 아니라 여러 서버가 역할을 나누어 관리하는 계층적인 시스템입니다.
$ cat /etc/hosts
$ cat /etc/resolv.conf
$ resolvectl status
$ getent hosts google.com
02
루트부터 담당 서버까지
재귀 DNS 서버는 답을 모르면 루트, TLD, 권한 DNS 서버를 차례로 찾아갑니다.
루트 서버는 .com을 담당하는 TLD 서버를 알려 주고, TLD 서버는 google.com의 권한 서버를 알려 줍니다. 마지막 권한 서버가 실제 레코드를 응답합니다.
사용자는 이 긴 과정을 직접 수행하지 않고 재귀 DNS 서버에 한 번 요청합니다. 서버가 대신 찾아 최종 결과를 돌려줍니다.
Root최상위 출발점
TLD.com, .net, .kr 담당
Authoritative도메인의 실제 레코드 보유
Recursive Resolver사용자 대신 답을 찾아줌
03
DNS 레코드는 무엇을 기록할까?
DNS에는 IP 주소뿐 아니라 메일 서버, 별칭, 인증 정보 등 다양한 기록이 있습니다.
A도메인 → IPv4
AAAA도메인 → IPv6
CNAME다른 도메인의 별칭
MX메일을 받을 서버
NS도메인을 담당하는 DNS 서버
TXT인증·정책 문자열
PTRIP → 도메인 역방향 조회
$ dig google.com A
$ dig google.com MX
$ dig google.com NS
$ dig -x 8.8.8.8
$ nslookup google.com
04
캐시는 빠르지만 기억이 틀릴 수도 있다
DNS 결과는 TTL 동안 캐시에 저장되어 같은 질문에 빠르게 답합니다.
TTL이 끝나면 다시 권한 서버에 확인합니다. 변경 직후 예전 IP가 계속 보이는 이유는 각 장비와 DNS 서버에 남아 있는 캐시 때문일 수 있습니다.
DNS 스푸핑과 캐시 포이즈닝은 거짓 응답을 믿게 만들어 사용자를 가짜 사이트로 보냅니다. DNSSEC은 응답의 서명을 검증하여 변조 여부를 확인하는 기술입니다.
ping 8.8.8.8은 되는데 ping google.com이 안 된다면 인터넷 전체가 아니라 DNS 문제일 가능성이 크다.
CHAPTER REVIEW
이번 장에서 기억할 한 문장
DNS는 이름을 주소로 바꾸며, 캐시를 이용해 빠르게 응답하지만 잘못된 답을 믿으면 엉뚱한 곳으로 갈 수 있다.