공부하면서 자주 헷갈렸던 DNS 구조랑 설정 내용들을 한 번 싹 정리했다.
특히 a.b.google.com.처럼 복잡한 도메인 구조가 실제로 어떻게 해석되는지부터,
zone 파일 안에 있는 RR(Resource Record) 구성까지 쭉 정리!
🧱 DNS 도메인 구조
예시 도메인: a.b.google.com. ← 맨 끝에 점(.)은 root를 의미함
DNS는 트리 구조처럼 위에서부터 아래로 점점 좁혀지면서 이름을 해석함
🔹 Root Name Server (.)
- 인터넷 DNS 체계의 가장 상위
- **TLD 정보(com, net, kr 등)**를 가지고 있음
- root IP 주소운영 기관
A.root-servers.net | 198.41.0.4 | VeriSign, Inc. |
B.root-servers.net | 199.9.14.201 | University of Southern California (ISI) |
C.root-servers.net | 192.33.4.12 | Cogent Communications |
D.root-servers.net | 199.7.91.13 | University of Maryland |
E.root-servers.net | 192.203.230.10 | NASA Ames Research Center |
F.root-servers.net | 192.5.5.241 | Internet Systems Consortium, Inc. |
G.root-servers.net | 192.112.36.4 | U.S. Department of Defense (NIC) |
H.root-servers.net | 198.97.190.53 | U.S. Army Research Lab |
I.root-servers.net | 192.36.148.17 | Netnod |
J.root-servers.net | 192.58.128.30 | VeriSign, Inc. |
K.root-servers.net | 193.0.14.129 | RIPE NCC |
L.root-servers.net | 199.7.83.42 | ICANN |
M.root-servers.net | 202.12.27.33 | WIDE Project (Japan) |
🔹 1차 도메인 서버 (TLD 서버)
- 최상위 도메인 서버
- TLD = Top-Level Domain
종류
- 🌍 일반 TLD (gTLD): com, net, org, info...
- 🏳️🌈 국가 코드 TLD (ccTLD): kr, jp, us, uk, cn...
🔹 2차 도메인 (Second-Level Domain)
- 보통 기업이나 기관 이름이 여기에 해당
예: google, naver, daum
국가 도메인(ccTLD) 아래엔 분류 도메인도 있음
- 예: ac.kr(대학), co.kr(회사), go.kr(정부), or.kr(비영리)
🔹 서브 도메인
- 2차 도메인 아래 추가로 붙는 도메인
예: mail.google.com, docs.naver.com 등
🧭 사용자의 도메인 질의 흐름
사용자 → 웹브라우저(도메인 입력) → Resolver → DNS 질의 순서대로 처리
Resolver가 하는 일
- /etc/hosts 파일 먼저 확인
- 시스템에 남아 있는 DNS 캐시 확인
- 없다면 네임 서버에 질의 요청
💬 네임 서버가 질의 처리하는 방식
- 자신의 zone 파일 먼저 확인
- DNS 캐시에 응답 데이터 있으면 전달
- 없으면 반복 질의 or 응답 실패 처리
⚙️ DNS 설정 파일들 (Linux 기준)
파일 경로 역할
/etc/named.conf | DNS 서버 프로그램 기본 설정 |
/etc/named.rfc1912.zones | 서비스할 zone 목록 등록 |
/var/named/ | 실제 zone 파일 저장 위치 |
named 데몬을 실행해야 DNS 서비스가 시작됨!
📄 Zone 파일 구조와 RR(Resource Record)
Zone 파일은 도메인 정보를 담고 있는 핵심 파일
그 안에 있는 하나하나의 정보가 RR (리소스 레코드)
RR 기본 형식:
이름 TTL Class Type Option Data
예시:
ns IN A 192.168.50.200
각 항목 설명
📛 name
- 질의 받을 도메인 이름
- kh.com이라는 존에서 name이 www이면 → www.kh.com
※ 도메인 이름 끝에 .이 없으면 존 이름이 자동으로 붙음
⏱ TTL (Time To Live)
- 해당 RR 정보가 DNS 캐시에 저장되는 시간(초 단위)
- TTL 지나면 다시 질의하게 됨
🌍 Class
- 네트워크 환경 지정 (대부분 IN → Internet)
📘 Record Type (RR Type)
타입 설명
SOA | Start Of Authority. 존의 시작. 동기화 설정 포함 (serial 등) |
NS | Name Server. 이 존을 관리하는 DNS 서버의 도메인 주소 |
A | IPv4 주소 매핑 |
AAAA | IPv6 주소 매핑 |
CNAME | 별칭(별명) 레코드. 다른 도메인 이름을 가리킴 |
MX | 메일 서버 정보 |
⚙️ Option
- 특정 레코드에서만 사용하는 설정 값
- 보통은 생략되는 경우가 많음
📨 Data
- RR의 진짜 값, 즉 질의에 대한 응답 내용
- A 레코드라면 → IP 주소
- NS 레코드라면 → DNS 서버 도메인 주소
📌 SOA 레코드 안에 들어가는 동기화 관련 값
@ IN SOA ns.kh.com. admin.kh.com. (
2025041601 ; serial
3600 ; refresh
600 ; retry
86400 ; expire
60 ; minimum
)
- serial: 존 파일이 변경됐는지 확인하는 숫자
- refresh: 보조 네임서버가 언제 주기적으로 동기화 시도할지
- retry: 동기화 실패 시 재시도 간격
- expire: 완전히 실패했을 때 몇 초까지 기존 데이터 유지할지
- minimum: 캐시에 저장할 최소 시간 (※ TTL 없을 때 적용)
💡 TTL이 있으면 TTL이 우선이고, 없을 때만 minimum 사용
✅ 마무리 요약
- 도메인은 root부터 서브도메인까지 점(.) 기준으로 단계적으로 이름 해석됨
- DNS 질의는 hosts → cache → name server 순서로 진행됨
- zone 파일에는 RR이 들어 있고, 정확한 문법에 따라 작성해야 함
- SOA 레코드는 동기화 관련 핵심 설정값이 들어있는 RR
'Linux' 카테고리의 다른 글
리눅스 파일 다운로드,패키지 관리 프로그램 (RPM, DNF) (0) | 2025.04.16 |
---|---|
리눅스 권한 (0) | 2025.04.16 |
리눅스의 확장 권한, 파일 속성, 프로세스 관리, 백그라운드 실행 방식 (0) | 2025.04.16 |
DNS 서버 종류 & 영역 전송 정리 (0) | 2025.04.16 |
🌐 DHCP 개념, DORA 정리, 서버-클라이언트 설정방법 (리눅스) (0) | 2025.04.16 |