4.1 KiB
4.1 KiB
Domain Name System, 도메인 이름 시스템 Domain을 IP로 변환하는 시스템
1. Public DNS server list
- 1.1.1.1 1.0.0.1 : Cloudflare DNS
- 8.8.8.8 8.8.4.4 : Google DNS
- 208.67.222.222 208.67.220.220 : Cisco OpenDNS
- 168.126.63.1 168.126.63.2 : KT DNS
2. Self-hosted DNS server list
- BIND
- CoreDNS
- dnsmasq
- AdGuard Home
- Pi-hole
- ...
3. 변환 과정
- 클라이언트가 Recursive DNS resolver에게 쿼리를 보냄
- Recursive DNS resolver의 캐시에 답변이 남아있으면 해당 답변을 답변함
- Recursive DNS resolver의 캐시에 답변이 없으면 클라이언트 요청에 해당하는 TLD name server 정보를 Root name server에 쿼리함
- Root name server는 TLD name server 정보를 Recursive DNS resolver에 답변함
- Recursive DNS resolver는 클라이언트 요청에 해당하는 도메인에 대한 Authoritative name server 정보를 답변받은 TLD name server에 쿼리함
- TLD name server는 Authoritative name server 정보를 Recursive DNS resolver에 답변함
- Recursive DNS resolver는 클라이언트 요청에 해당하는 도메인에 대해 Authoritative name server에 쿼리함
- Authoritative name server는 요청받은 도메인에 대해 DNS Zone 파일을 답변함
- Recursive DNS resolver는 답변받은 도메인 정보를 클라이언트에 답변함
4. DNS Zone file
도메인에 대한 정보를 기술해놓은 파일 파일의 각 줄(레코드)에는 여러 가지 정보를 기술할 수 있음
4.1. Zone file 형식
$ORIGIN (zone name)
$TTL (time in second)
domain [TTL] IN SOA DNS.address. admin.email.address. data
IN record data
$ORIGIN home.server.
@ 3600 IN SOA ns1.home.server. admin.home.server. (
2024082401 ; serial
7200 ; refresh
3600 ; retry
1209600 ; expire
3600 ; minimum
)
3600 IN NS ns1.home.server.
3600 IN A 192.168.200.10
www 3600 IN CNAME home.server.
Note
Zone file에서
@
기호는$ORIGIN
값과 동일한 의미이다.
4.2. Record
- SOA : Start of Authority
- 이름, 관리자 이메일 주소, 캐시 새로 고침 정보 등을 기술
- 모든 DNS Zone file은 SOA 레코드를 가지고 있어야 함
- TTL : Time to Live, 캐시 유효 기간
- A, AAAA : IP 주소, A는 IPv4, AAAA는 IPv6에 해당
- MX : 도메인 SMTP 이메일 서버
- CNAME : Canonical name, CNAME에 기록된 도메인은 해당 Zone file에 기술된 도메인과 같은 IP를 참조하도록 함
- NS : Name server, Authoritative name server 정보
- PTR : 역방향 DNS에 사용, IP 주소를 도메인에 매핑
- TXT : 아무 텍스트나 입력 가능
4.2.1. SOA Record
NAME [TTL] IN SOA DNS-address admin-email-address (
2024082401 ; serial
7200 ; refresh
3600 ; retry
1209600 ; expire
3600 ; minimum
)
- NAME : Zone 이름.
@
,home.server
와 같은 전체 존 이름이 들어갈 수 도 있고,www
등 기타 서브도메인이 들어갈 수 있음 - TTL : Time-to-live
- IN : Zone class로 IN은 인터넷을 의미
- SOA : Zone record type
- DNS-address : MNAME, Primary master name server address
- admin-email-address : RNAME, Email address of the admin for this zone.
- serial : 해당 DNS Zone 파일을 수정하면 바뀌는 번호, 보통 수정일+2자리 숫자로 구성
- refresh : 2차 DNS가 마스터 DNS 재 쿼리에 필요한 최소 시간(초)
- retry : 마스터가 응답하지 않는 경우 2차 DNS가 마스터로부터 일련 번호 요청을 재시도해야 하는 시간(초)
- expire : 마스터가 응답하지 않는 경우 2차 DNS가 이 영역에 대한 요청 응답을 중지해야 하는 시간(초)
- minimum : Negative TTL 값, 존재하지 않는 도메인에 대해 호스트가 존재하지 않는다는 답변을 캐싱하는 최소 시간
4.3. Wildcard
DNS Zone의 모든 subdomain을 가리키려면 DNS record에 wildcard를 추가하면 된다.
* IN CNAME @