DNS 서버의 구조
DNS 서버의 구조
1. DNS란?
DNS 개념
┌─────────────────────────────────────────────────────────────┐
│ DNS (Domain Name System) │
├─────────────────────────────────────────────────────────────┤
│ │
│ 정의: │
│ • 도메인 이름을 IP 주소로 변환하는 시스템 │
│ • 인터넷의 "전화번호부" │
│ • 계층적 분산 데이터베이스 시스템 │
│ │
│ 핵심 기능: │
│ ───────────────────────────────────────── │
│ • 이름 해석 (Name Resolution) │
│ • 도메인 이름 → IP 주소 변환 │
│ • 사람이 기억하기 쉬운 이름 사용 │
│ │
│ 포트 번호: │
│ • 53 (UDP/TCP) │
│ │
│ 전송 계층: │
│ • 주로 UDP 사용 (빠른 조회) │
│ • 큰 응답이나 영역 전송은 TCP 사용 │
│ │
└─────────────────────────────────────────────────────────────┘이름 해석 (Name Resolution)
┌─────────────────────────────────────────────────────────────┐
│ 이름 해석 과정 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 문제: │
│ • IP 주소는 숫자라서 기억하기 어려움 │
│ 예: 142.250.185.78 ← 구글의 IP 주소 │
│ │
│ 해결: │
│ • 도메인 이름 사용 │
│ 예: www.google.com ← 기억하기 쉬움! │
│ │
│ │
│ 이름 해석 흐름: │
│ ───────────────────────────────────────── │
│ │
│ [사용자] │
│ │ │
│ │ 1. "www.google.com 방문하고 싶어!" │
│ ↓ │
│ [웹 브라우저] │
│ │ │
│ │ 2. "www.google.com의 IP 주소는?" │
│ ↓ │
│ [DNS 서버] │
│ │ │
│ │ 3. DNS 조회 (Name Resolution) │
│ │ www.google.com → 142.250.185.78 │
│ ↓ │
│ [웹 브라우저] │
│ │ │
│ │ 4. IP 주소로 웹 서버 접속 │
│ │ 142.250.185.78:443 │
│ ↓ │
│ [구글 웹 서버] │
│ │ │
│ │ 5. 웹 페이지 응답 │
│ ↓ │
│ [사용자에게 표시] │
│ │
│ │
│ 변환 예시: │
│ ───────────────────────────────────────── │
│ www.google.com → 142.250.185.78 │
│ www.naver.com → 223.130.200.107 │
│ www.github.com → 140.82.114.4 │
│ www.youtube.com → 142.250.207.174 │
│ │
└─────────────────────────────────────────────────────────────┘2. 도메인 이름 구조
도메인 이름과 호스트 이름
┌─────────────────────────────────────────────────────────────┐
│ 도메인 이름 구조 │
├─────────────────────────────────────────────────────────────┤
│ │
│ URL 분석: │
│ │
│ https://www.example.com/index.html │
│ └───┬──┘└───┬───┘ │
│ 호스트명 도메인 이름 │
│ └────────┬────────┘ │
│ FQDN (정규화된 도메인 이름) │
│ │
│ │
│ 구성 요소: │
│ ───────────────────────────────────────── │
│ │
│ 1. 호스트 이름 (Host Name) │
│ • www │
│ • 서버를 식별하는 이름 │
│ • "웹 서버"를 의미 (관례) │
│ • 생략 가능 (example.com = www.example.com) │
│ │
│ 2. 도메인 이름 (Domain Name) │
│ • example.com │
│ • 조직이나 서비스를 식별 │
│ • 계층 구조로 구성 │
│ │
│ │
│ FQDN (Fully Qualified Domain Name): │
│ ───────────────────────────────────────── │
│ • 완전한 도메인 이름 │
│ • 호스트 이름 + 도메인 이름 │
│ • 예: www.example.com │
│ │
│ │
│ 다양한 호스트 이름: │
│ ───────────────────────────────────────── │
│ www.example.com - 웹 서버 │
│ mail.example.com - 메일 서버 │
│ ftp.example.com - FTP 서버 │
│ blog.example.com - 블로그 서버 │
│ api.example.com - API 서버 │
│ dev.example.com - 개발 서버 │
│ │
│ → 같은 도메인에 여러 서비스 운영 가능! │
│ │
└─────────────────────────────────────────────────────────────┘계층적 도메인 구조
┌─────────────────────────────────────────────────────────────┐
│ 도메인 이름의 계층 구조 │
├─────────────────────────────────────────────────────────────┤
│ │
│ www.example.com. (끝에 점은 루트를 의미) │
│ └┬┘ └──┬──┘ └┬┘ │ │
│ 3 2 1 루트 │
│ │
│ │
│ 계층 구조: │
│ ───────────────────────────────────────── │
│ │
│ 루트 도메인 (.) │
│ │ │
│ ┌───────┼───────┬───────┬───────┐ │
│ │ │ │ │ │ │
│ .com .org .net .edu .kr ← 1단계 (TLD)│
│ │ │ │
│ ┌────┼────┬────┐ ┌──────┼──────┐ │
│ │ │ │ │ │ │ │ │
│ google │ amazon │ .co .or .go ← 2단계 │
│ example │ │
│ │ │ │
│ ┌────┼────┐ ┌────┼────┐ │
│ │ │ │ │ │ │ │
│ www mail ftp example naver │
│ │ │
│ ┌────┼────┐ │
│ │ │ │ │
│ www mail api ← 3단계 (호스트) │
│ │
│ │
│ 예시: │
│ ───────────────────────────────────────── │
│ │
│ • www.google.com │
│ - 루트: . │
│ - TLD: com (최상위 도메인) │
│ - 2단계: google (조직 이름) │
│ - 3단계: www (호스트 이름) │
│ │
│ • mail.example.co.kr │
│ - 루트: . │
│ - TLD: kr (국가 코드) │
│ - 2단계: co (상업용) │
│ - 3단계: example (조직 이름) │
│ - 4단계: mail (호스트 이름) │
│ │
└─────────────────────────────────────────────────────────────┘최상위 도메인 (TLD)
┌─────────────────────────────────────────────────────────────┐
│ 최상위 도메인 (Top-Level Domain) │
├─────────────────────────────────────────────────────────────┤
│ │
│ 1. 일반 최상위 도메인 (gTLD: Generic TLD) │
│ ───────────────────────────────────────── │
│ │
│ .com - 상업용 (Commercial) │
│ .org - 비영리 기관 (Organization) │
│ .net - 네트워크 (Network) │
│ .edu - 교육 기관 (Education) │
│ .gov - 정부 기관 (Government) │
│ .mil - 군사 기관 (Military) │
│ .int - 국제 기구 (International) │
│ │
│ │
│ 2. 국가 코드 최상위 도메인 (ccTLD: Country Code TLD) │
│ ───────────────────────────────────────── │
│ │
│ .kr - 대한민국 (Korea) │
│ .us - 미국 (United States) │
│ .jp - 일본 (Japan) │
│ .cn - 중국 (China) │
│ .uk - 영국 (United Kingdom) │
│ .de - 독일 (Germany) │
│ .fr - 프랑스 (France) │
│ │
│ │
│ 3. 새로운 일반 최상위 도메인 (New gTLD) │
│ ───────────────────────────────────────── │
│ │
│ .app - 애플리케이션 │
│ .blog - 블로그 │
│ .shop - 쇼핑 │
│ .tech - 기술 │
│ .dev - 개발자 │
│ .cloud - 클라우드 │
│ .ai - 인공지능 │
│ │
│ │
│ 한국의 2단계 도메인: │
│ ───────────────────────────────────────── │
│ │
│ .co.kr - 영리 기업 │
│ .or.kr - 비영리 단체 │
│ .go.kr - 정부 기관 │
│ .ac.kr - 대학 │
│ .re.kr - 연구소 │
│ .pe.kr - 개인 │
│ .ne.kr - 네트워크 │
│ │
└─────────────────────────────────────────────────────────────┘3. DNS 서버의 동작
DNS 쿼리 과정
┌─────────────────────────────────────────────────────────────┐
│ DNS 쿼리 기본 흐름 │
├─────────────────────────────────────────────────────────────┤
│ │
│ [사용자 PC] │
│ 192.168.1.10 │
│ │ │
│ │ 1. "www.example.com의 IP는?" │
│ ↓ │
│ [DNS 캐시 확인] │
│ │ │
│ ├─ 캐시에 있음? → 바로 응답 (빠름!) │
│ │ │
│ └─ 캐시에 없음? → DNS 서버 조회 │
│ │ │
│ │ 2. DNS 쿼리 (UDP 포트 53) │
│ ↓ │
│ [로컬 DNS 서버] │
│ (예: ISP DNS 또는 8.8.8.8) │
│ │ │
│ ├─ 캐시에 있음? → 응답 │
│ │ │
│ └─ 없음? → 상위 DNS 서버에 질의 │
│ │ │
│ │ 3. "example.com의 IP는?" │
│ ↓ │
│ [권한 있는 DNS 서버] │
│ (example.com의 공식 DNS) │
│ │ │
│ │ 4. IP 주소 응답 │
│ │ "93.184.216.34" │
│ ↓ │
│ [로컬 DNS 서버] │
│ │ │
│ │ - 캐시에 저장 (다음 조회 빠르게) │
│ │ - TTL 동안 유지 │
│ │ │
│ │ 5. IP 주소 응답 │
│ ↓ │
│ [사용자 PC] │
│ │ │
│ │ 6. IP 주소로 웹 서버 접속 │
│ │ 93.184.216.34:80 │
│ ↓ │
│ [웹 서버] │
│ │
└─────────────────────────────────────────────────────────────┘재귀적 쿼리와 반복적 쿼리
┌─────────────────────────────────────────────────────────────┐
│ 재귀적 쿼리 (Recursive Query) │
├─────────────────────────────────────────────────────────────┤
│ │
│ 클라이언트는 한 번만 요청, DNS 서버가 모든 작업 수행 │
│ │
│ [클라이언트] [로컬 DNS] [루트 DNS] [권한DNS]│
│ │ │ │ │ │
│ │ 1. www.example.com?│ │ │ │
│ ├───────────────────→│ │ │ │
│ │ │ │ │ │
│ │ │ 2. .com은? │ │ │
│ │ ├──────────────→│ │ │
│ │ │ 3. .com DNS │ │ │
│ │ │←──────────────┤ │ │
│ │ │ │ │ │
│ │ │ 4. example.com은? │ │
│ │ ├──────────────────────────→│ │
│ │ │ 5. IP 주소 │ │ │
│ │ │←──────────────────────────┤ │
│ │ │ │ │ │
│ │ 6. 93.184.216.34 │ │ │ │
│ │←───────────────────┤ │ │ │
│ │ │ │ │ │
│ │
│ 특징: │
│ • 클라이언트는 한 번만 요청 │
│ • DNS 서버가 알아서 처리 │
│ • 클라이언트 입장에서 간편 │
│ │
└─────────────────────────────────────────────────────────────┘
┌─────────────────────────────────────────────────────────────┐
│ 반복적 쿼리 (Iterative Query) │
├─────────────────────────────────────────────────────────────┤
│ │
│ DNS 서버가 다른 DNS 서버를 알려주면, 클라이언트가 다시 요청│
│ │
│ [클라이언트] [로컬 DNS] [루트 DNS] [권한DNS]│
│ │ │ │ │ │
│ │ 1. www.example.com?│ │ │ │
│ ├───────────────────→│ │ │ │
│ │ │ 2. .com은? │ │ │
│ │ ├──────────────→│ │ │
│ │ 3. .com DNS 주소 │ 4. .com DNS 주소 │ │
│ │←───────────────────┤←──────────────┤ │ │
│ │ │ │ │ │
│ │ 5. example.com은? │ │ │ │
│ ├──────────────────────────────────────────────→│ │
│ │ 6. IP 주소 │ │ │ │
│ │←──────────────────────────────────────────────┤ │
│ │ │ │ │ │
│ │
│ 특징: │
│ • 클라이언트가 여러 번 요청 │
│ • DNS 서버는 다음 DNS 주소만 알려줌 │
│ • 일반적으로 사용하지 않음 (비효율적) │
│ │
└─────────────────────────────────────────────────────────────┘전체 DNS 조회 과정
┌─────────────────────────────────────────────────────────────┐
│ www.example.com 조회 상세 과정 │
├─────────────────────────────────────────────────────────────┤
│ │
│ [클라이언트] │
│ │ │
│ │ 1. 로컬 캐시 확인 │
│ │ - 브라우저 캐시 │
│ │ - OS DNS 캐시 │
│ │ → 없음! │
│ ↓ │
│ [로컬 DNS 서버] │
│ (예: 8.8.8.8 또는 ISP DNS) │
│ │ │
│ │ 2. 로컬 DNS 캐시 확인 │
│ │ → 없음! 상위 서버에 질의 │
│ ↓ │
│ [루트 DNS 서버] │
│ (전 세계 13개 클러스터) │
│ │ │
│ │ 3. ".com TLD는 어디있어?" │
│ │ 응답: "a.gtld-servers.net (192.5.6.30)" │
│ ↓ │
│ [.com TLD DNS 서버] │
│ │ │
│ │ 4. "example.com은 어디있어?" │
│ │ 응답: "ns1.example.com (93.184.216.1)" │
│ ↓ │
│ [example.com 권한 있는 DNS 서버] │
│ │ │
│ │ 5. "www.example.com의 IP는?" │
│ │ 응답: "93.184.216.34" (A 레코드) │
│ ↓ │
│ [로컬 DNS 서버] │
│ │ │
│ │ 6. 캐시에 저장 (TTL: 3600초) │
│ │ 다음 조회는 빠르게! │
│ ↓ │
│ [클라이언트] │
│ │ │
│ │ 7. IP 주소 수신: 93.184.216.34 │
│ │ 8. 웹 서버 접속 │
│ ↓ │
│ [웹 서버: 93.184.216.34] │
│ │
│ │
│ 총 소요 시간: │
│ • 캐시 없음: 100~300ms (여러 DNS 서버 조회) │
│ • 캐시 있음: 1~10ms (즉시 응답) │
│ │
└─────────────────────────────────────────────────────────────┘4. DNS 서버 계층 구조
DNS 서버 유형
┌─────────────────────────────────────────────────────────────┐
│ DNS 서버의 종류 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 1. 루트 DNS 서버 (Root DNS Server) │
│ ───────────────────────────────────────── │
│ • 최상위 DNS 서버 │
│ • 전 세계 13개 클러스터 (실제로는 수백 대) │
│ • TLD DNS 서버 위치 제공 │
│ • 예: a.root-servers.net ~ m.root-servers.net │
│ │
│ │
│ 2. TLD DNS 서버 (Top-Level Domain DNS Server) │
│ ───────────────────────────────────────── │
│ • 최상위 도메인 관리 │
│ • .com, .net, .org, .kr 등 │
│ • 2단계 도메인의 DNS 서버 위치 제공 │
│ • 예: a.gtld-servers.net (.com용) │
│ │
│ │
│ 3. 권한 있는 DNS 서버 (Authoritative DNS Server) │
│ ───────────────────────────────────────── │
│ • 특정 도메인의 공식 DNS 서버 │
│ • 실제 IP 주소 정보 보유 │
│ • 도메인 소유자가 관리 │
│ • 예: ns1.example.com │
│ │
│ │
│ 4. 로컬 DNS 서버 (Recursive DNS Server) │
│ ───────────────────────────────────────── │
│ • 클라이언트의 질의를 처리 │
│ • 재귀적 쿼리 수행 │
│ • 캐시 저장 │
│ • 예: ISP DNS, 8.8.8.8 (구글), 1.1.1.1 (Cloudflare) │
│ │
└─────────────────────────────────────────────────────────────┘DNS 계층 구조
┌─────────────────────────────────────────────────────────────┐
│ DNS 서버 계층 구조 │
├─────────────────────────────────────────────────────────────┤
│ │
│ [루트 DNS 서버] │
│ . │
│ │ │
│ ┌────────────────┼────────────────┐ │
│ │ │ │ │
│ [.com TLD] [.net TLD] [.kr TLD] │
│ │ │ │
│ ┌────┼────┐ ┌────┼────┐ │
│ │ │ │ │ │ │ │
│ google │ amazon .co .or .go │
│ example │ │
│ │ │ │
│ [권한 있는 DNS] [권한 있는 DNS] │
│ ns1.example.com ns.example.co.kr │
│ │ │ │
│ ┌────┼────┐ ┌────┼────┐ │
│ │ │ │ │ │ │ │
│ www mail ftp www mail api │
│ │
│ │
│ 조회 흐름 (www.example.com): │
│ ───────────────────────────────────────── │
│ │
│ [클라이언트] │
│ ↓ │
│ [로컬 DNS] → [루트 DNS] → ".com은 여기!" │
│ ↓ │
│ [로컬 DNS] → [.com TLD] → "example.com은 여기!" │
│ ↓ │
│ [로컬 DNS] → [ns1.example.com] → "93.184.216.34!" │
│ ↓ │
│ [클라이언트] ← "93.184.216.34" │
│ │
└─────────────────────────────────────────────────────────────┘5. DNS 레코드 타입
주요 DNS 레코드
┌─────────────────────────────────────────────────────────────┐
│ DNS 레코드 타입 │
├──────────┬──────────────────────────────────────────────────┤
│ 레코드 │ 설명 │
├──────────┼──────────────────────────────────────────────────┤
│ A │ • IPv4 주소 │
│ │ • 도메인 → IPv4 매핑 │
│ │ • 예: example.com → 93.184.216.34 │
├──────────┼──────────────────────────────────────────────────┤
│ AAAA │ • IPv6 주소 │
│ │ • 도메인 → IPv6 매핑 │
│ │ • 예: example.com → 2606:2800:220:1:... │
├──────────┼──────────────────────────────────────────────────┤
│ CNAME │ • 별칭 (Canonical Name) │
│ │ • 도메인 → 다른 도메인 │
│ │ • 예: www.example.com → example.com │
├──────────┼──────────────────────────────────────────────────┤
│ MX │ • 메일 서버 (Mail eXchange) │
│ │ • 메일 전송 목적지 │
│ │ • 우선순위 포함 │
│ │ • 예: example.com → mail.example.com (10) │
├──────────┼──────────────────────────────────────────────────┤
│ NS │ • 네임 서버 (Name Server) │
│ │ • 권한 있는 DNS 서버 │
│ │ • 예: example.com → ns1.example.com │
├──────────┼──────────────────────────────────────────────────┤
│ TXT │ • 텍스트 정보 │
│ │ • 도메인 검증, SPF, DKIM 등 │
│ │ • 예: example.com → "v=spf1 ..." │
├──────────┼──────────────────────────────────────────────────┤
│ PTR │ • 역방향 조회 (Pointer) │
│ │ • IP → 도메인 매핑 │
│ │ • 예: 34.216.184.93.in-addr.arpa → example.com │
├──────────┼──────────────────────────────────────────────────┤
│ SOA │ • 권한 시작 (Start Of Authority) │
│ │ • 도메인 관리 정보 │
│ │ • 시리얼, TTL, 리프레시 등 │
├──────────┼──────────────────────────────────────────────────┤
│ SRV │ • 서비스 레코드 │
│ │ • 특정 서비스 위치 지정 │
│ │ • 예: _http._tcp.example.com │
└──────────┴──────────────────────────────────────────────────┘DNS 레코드 예시
example.com DNS 레코드:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
A 레코드 (IPv4):
example.com. IN A 93.184.216.34
www.example.com. IN A 93.184.216.34
AAAA 레코드 (IPv6):
example.com. IN AAAA 2606:2800:220:1:248:1893:25c8:1946
CNAME 레코드 (별칭):
www.example.com. IN CNAME example.com.
blog.example.com. IN CNAME example.github.io.
MX 레코드 (메일 서버):
example.com. IN MX 10 mail1.example.com.
example.com. IN MX 20 mail2.example.com.
└─┬─┘ └──────┬───────┘
우선순위 메일 서버
NS 레코드 (네임 서버):
example.com. IN NS ns1.example.com.
example.com. IN NS ns2.example.com.
TXT 레코드 (텍스트):
example.com. IN TXT "v=spf1 include:_spf.example.com ~all"
_dmarc.example.com. IN TXT "v=DMARC1; p=quarantine;"
레코드 형식:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
도메인이름 TTL 클래스 타입 값
example.com. 3600 IN A 93.184.216.34
└────┬────┘ └┬─┘ └┬┘ └┬┘ └─────┬──────┘
이름 수명 인터넷 타입 IP 주소
TTL (Time To Live):
• 캐시에 저장되는 시간 (초)
• 3600 = 1시간
• 짧으면: 빠른 업데이트, DNS 서버 부하 증가
• 길면: 캐시 효율 증가, 업데이트 느림6. DNS 캐시
DNS 캐시 동작
┌─────────────────────────────────────────────────────────────┐
│ DNS 캐시 (Cache) │
├─────────────────────────────────────────────────────────────┤
│ │
│ 목적: │
│ • 반복 조회 방지 │
│ • 응답 속도 향상 │
│ • DNS 서버 부하 감소 │
│ │
│ │
│ 캐시 계층: │
│ ───────────────────────────────────────── │
│ │
│ 1. 브라우저 캐시 │
│ • 웹 브라우저 내부 │
│ • 가장 빠름 (1~2ms) │
│ • 짧은 TTL (수분) │
│ │
│ 2. OS DNS 캐시 │
│ • 운영체제 레벨 │
│ • 빠름 (5~10ms) │
│ • 중간 TTL (수십분) │
│ │
│ 3. 로컬 DNS 서버 캐시 │
│ • ISP 또는 공용 DNS │
│ • 보통 (20~50ms) │
│ • 긴 TTL (수시간) │
│ │
│ │
│ 캐시 조회 순서: │
│ ───────────────────────────────────────── │
│ │
│ [사용자] │
│ │ │
│ │ 1. www.google.com 접속 │
│ ↓ │
│ [브라우저 캐시] → 있음? → 즉시 반환 ✓ │
│ │ │
│ └─ 없음 │
│ ↓ │
│ [OS DNS 캐시] → 있음? → 즉시 반환 ✓ │
│ │ │
│ └─ 없음 │
│ ↓ │
│ [로컬 DNS 캐시] → 있음? → 반환 ✓ │
│ │ │
│ └─ 없음 │
│ ↓ │
│ [상위 DNS 서버 조회] → IP 주소 획득 │
│ ↓ │
│ [각 계층에 캐시 저장] │
│ │
└─────────────────────────────────────────────────────────────┘캐시 관리
캐시 확인 및 삭제:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Windows:
# DNS 캐시 확인
> ipconfig /displaydns
# DNS 캐시 삭제
> ipconfig /flushdns
성공적으로 DNS 해석 캐시를 플러시했습니다.
Linux:
# systemd-resolved 사용 시
$ sudo systemd-resolve --flush-caches
$ sudo systemd-resolve --statistics
# nscd 사용 시
$ sudo /etc/init.d/nscd restart
# dnsmasq 사용 시
$ sudo systemctl restart dnsmasq
macOS:
# DNS 캐시 삭제
$ sudo dscacheutil -flushcache
$ sudo killall -HUP mDNSResponder
브라우저 DNS 캐시 삭제:
Chrome:
chrome://net-internals/#dns
→ "Clear host cache" 클릭
Firefox:
브라우저 재시작
캐시 삭제가 필요한 경우:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
• DNS 레코드 변경 후 (서버 이전 등)
• 웹사이트 접속 불가 시
• 잘못된 IP로 연결될 때
• 개발/테스트 중 DNS 변경 시7. 실무 활용
DNS 조회 명령어
nslookup (Windows/Linux/Mac):
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. 기본 조회
> nslookup www.google.com
Server: 8.8.8.8
Address: 8.8.8.8#53
Non-authoritative answer:
Name: www.google.com
Address: 142.250.185.78
2. 특정 DNS 서버 사용
> nslookup www.google.com 8.8.8.8
3. 레코드 타입 지정
> nslookup -type=mx google.com # MX 레코드
> nslookup -type=ns google.com # NS 레코드
> nslookup -type=txt google.com # TXT 레코드
4. 역방향 조회 (IP → 도메인)
> nslookup 142.250.185.78
dig (Linux/Mac):
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. 기본 조회
$ dig www.google.com
; <<>> DiG 9.10.6 <<>> www.google.com
;; ANSWER SECTION:
www.google.com. 300 IN A 142.250.185.78
2. 짧은 출력
$ dig www.google.com +short
142.250.185.78
3. 특정 레코드 타입
$ dig google.com MX # 메일 서버
$ dig google.com NS # 네임 서버
$ dig google.com AAAA # IPv6
4. 추적 (Trace)
$ dig www.google.com +trace
; 루트 DNS부터 단계별 조회 과정 표시
5. 특정 DNS 서버 사용
$ dig @8.8.8.8 www.google.com
6. 역방향 조회
$ dig -x 142.250.185.78
host (Linux/Mac):
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
1. 기본 조회
$ host www.google.com
www.google.com has address 142.250.185.78
2. 상세 정보
$ host -v www.google.com
3. 특정 레코드 타입
$ host -t MX google.com
$ host -t NS google.com
4. 역방향 조회
$ host 142.250.185.78공용 DNS 서버
┌─────────────────────────────────────────────────────────────┐
│ 주요 공용 DNS 서버 │
├──────────────────┬──────────────────────────────────────────┤
│ 제공자 │ IP 주소 │
├──────────────────┼──────────────────────────────────────────┤
│ Google │ 8.8.8.8, 8.8.4.4 │
│ Public DNS │ 2001:4860:4860::8888 (IPv6) │
│ │ • 빠르고 안정적 │
│ │ • 전 세계에서 사용 가능 │
├──────────────────┼──────────────────────────────────────────┤
│ Cloudflare │ 1.1.1.1, 1.0.0.1 │
│ │ 2606:4700:4700::1111 (IPv6) │
│ │ • 프라이버시 중시 │
│ │ • 가장 빠른 속도 │
├──────────────────┼──────────────────────────────────────────┤
│ Quad9 │ 9.9.9.9, 149.112.112.112 │
│ │ • 보안 중시 (악성 사이트 차단) │
├──────────────────┼──────────────────────────────────────────┤
│ OpenDNS │ 208.67.222.222, 208.67.220.220 │
│ (Cisco) │ • 필터링 기능 제공 │
│ │ • 가족 보호 옵션 │
├──────────────────┼──────────────────────────────────────────┤
│ KT │ 168.126.63.1, 168.126.63.2 │
│ │ • 국내 ISP DNS │
├──────────────────┼──────────────────────────────────────────┤
│ SKB │ 210.220.163.82, 219.250.36.130 │
│ │ • 국내 ISP DNS │
└──────────────────┴──────────────────────────────────────────┘
DNS 서버 변경 방법:
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
Windows:
1. 제어판 → 네트워크 및 인터넷 → 네트워크 연결
2. 네트워크 어댑터 우클릭 → 속성
3. "인터넷 프로토콜 버전 4 (TCP/IPv4)" 선택
4. "다음 DNS 서버 주소 사용" 선택
5. 기본 설정: 8.8.8.8
보조 DNS: 8.8.4.4
Linux:
$ sudo nano /etc/resolv.conf
nameserver 8.8.8.8
nameserver 8.8.4.4
macOS:
1. 시스템 환경설정 → 네트워크
2. 네트워크 선택 → 고급
3. DNS 탭 → + 클릭
4. 8.8.8.8 입력핵심 정리
| 개념 | 설명 |
|---|---|
| DNS | 도메인 이름을 IP 주소로 변환하는 시스템 |
| 이름 해석 | 도메인 이름 → IP 주소 변환 과정 |
| 도메인 이름 | 컴퓨터/네트워크 식별 이름 (example.com) |
| 호스트 이름 | 서버 식별 이름 (www) |
| FQDN | 호스트 이름 + 도메인 이름 (www.example.com) |
| 재귀적 쿼리 | DNS 서버가 모든 조회 수행 |
| DNS 캐시 | 조회 결과 임시 저장 (속도 향상) |
| TTL | 캐시 유지 시간 (Time To Live) |
DNS 핵심 개념
┌─────────────────────────────────────────────────────────────┐
│ DNS 요약 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 1. DNS의 역할 │
│ ───────────────────────────────────────── │
│ 도메인 이름 → IP 주소 변환 │
│ www.google.com → 142.250.185.78 │
│ │
│ 2. 계층 구조 │
│ ───────────────────────────────────────── │
│ 루트(.) → TLD(.com) → 도메인(example) → 호스트(www) │
│ │
│ 3. DNS 쿼리 과정 │
│ ───────────────────────────────────────── │
│ 클라이언트 → 로컬 DNS → 루트 DNS │
│ → TLD DNS → 권한 있는 DNS → IP 주소 반환 │
│ │
│ 4. 캐시로 속도 향상 │
│ ───────────────────────────────────────── │
│ 브라우저 → OS → 로컬 DNS 캐시 순서로 확인 │
│ 캐시 있으면 즉시 반환 (빠름!) │
│ │
│ 5. 주요 레코드 │
│ ───────────────────────────────────────── │
│ • A: IPv4 주소 │
│ • AAAA: IPv6 주소 │
│ • CNAME: 별칭 │
│ • MX: 메일 서버 │
│ • NS: 네임 서버 │
│ │
└─────────────────────────────────────────────────────────────┘용어 정리
- DNS (Domain Name System): 도메인 이름을 IP 주소로 변환하는 시스템
- 이름 해석 (Name Resolution): 도메인 이름을 IP 주소로 변환하는 과정
- 도메인 이름 (Domain Name): 컴퓨터나 네트워크를 식별하는 이름 (예: example.com)
- 호스트 이름 (Host Name): 서버를 식별하는 이름 (예: www, mail)
- FQDN (Fully Qualified Domain Name): 호스트 이름 + 도메인 이름 (예: www.example.com)
- TLD (Top-Level Domain): 최상위 도메인 (.com, .org, .kr 등)
- 재귀적 쿼리 (Recursive Query): DNS 서버가 완전한 답을 찾아 반환하는 방식
- 반복적 쿼리 (Iterative Query): DNS 서버가 다음 DNS 서버만 알려주는 방식
- DNS 캐시 (DNS Cache): DNS 조회 결과를 임시 저장하는 메모리
- TTL (Time To Live): 캐시에 저장되는 시간 (초 단위)
- 권한 있는 DNS 서버 (Authoritative DNS Server): 특정 도메인의 공식 DNS 서버