The Domain Name System, DNS
DNS 개요1
IP Address
일반적인 IP 주소(IPv4)는 32비트,
0~255 사이의 4개 숫자로 표시 됨
IP 주소는 기억하기 어렵지만,
google.com과 같은 호스트 이름은 기억하기 쉬움
DNS (Domain Name System)
DNS 서버들의 계층 구조로 구현된 분산 데이터베이스
애플리케이션 계층 프로토콜로 구현된 핵심 인터넷 기능
호스트가 분산 DB로 질의 허용
UDP 상에서 수행되고, 포트번호는 53번
사용자가 웹 서버의 호스트 이름을 입력하여, 웹 서버의 IP 주소를 얻는 절차
- 유저 컴퓨터에 DNS 클라이언트가 계속 돌고있음
- URL로부터 호스트 이름을 DNS 클라이언트에 보냄
- DNS 클라이언트가 DNS 서버에 호스트 이름을 포함한 쿼리 보냄
- DNS 클라이언트는 DNS 서버로부터 IP주소를 응답 받음
- 브라우저가 DNS로부터 IP 주소를 받으면, 해당 IP주소와 80번 포트에 있는 HTTP 서버 프로세스로 TCP 연결
DNS 개요2
DNS 서비스
호스트 이름을 IP 주소로 변환
호스트 별칭
메일 서버 별칭
부하 분산
호스트 이름 (1) : IP 주소 (N)
www.naver.com도 호스트 이름은 1개지만,위 호스트 이름과 연결된 IP주소는 여러 개임
DNS가 중앙 집중 방식이 아닌 이유 ?
→ 확장성이 전혀 없음 (하루에 수십 조 단위의 DNS 처리)
- 서버의 고장
- 트래픽 양
- 먼 거리 DB
- 유지 관리
DNS: 분산 계층 데이터베이스
3개의 계층 구조임
- 루트
- 최상위 레벨 도메인 (TLD)
- 책임
클라이언트가 www.naver.com의 호스트 이름으로 IP 주소를 요구하는 상황
- 루트 DNS 서버에 질의함
- 루트로부터 .com에 대한 TLD DNS 서버에 질의함
- TLD DNS 서버로부터 naver.com에 대한 책임 DNS 서버의 IP 주소 획득
루트 DNS 서버
- 로컬 DNS 서버가 호스트 이름으로 IP 주소를 질의하기 위해 접속
- TLD DNS 서버의 IP 주소를 제공함
- 루트 DNS는 필수적으로, 전 세계 1000개 이상있음
- ICANN에서 관리함
TLD DNS 서버
- .com, .net, .org과 같은 상위 레벨 도메인
- .kr, .cn, .uk와 같은 국가의 상위 레벨 도메인
- 책임 DNS 서버의 IP 주소 제공
책임 DNS 서버
- 호스트 이름을 IP 주소로 매핑하는 공개적인 DNS 서비스 제공
- 기관 또는 서비스 제공업체에 의해 유지 관리됨
로컬 DNS 서버
- 호스트 DNS 질의는 로컬 DNS 서버로 전달됨
- 프록시(전달) 역할을 하고, 질의를 DNS 서버 계층으로 전달
- 이미 간 적이 있는 호스트 이름이면, 루트까지는 갈 필요 없음 (캐싱)
DNS 반복적, 재귀적 확인
반복적 질의
로컬 DNS가 반복해서 각 계층의 DNS에 쿼리 요청
재귀적 질의
로컬 DNS는 한 번만 루트 DNS 서버에 쿼리 날림
실제로 로컬 DNS 서버가 루트 서버보다 양이 훨씬 많기에
재귀적 방법을 쓰면 루트 서버에 트래픽 양 증가,
반복적 질의 방식을 사용함
DNS 캐싱
DNS 서버는 (호스트 이름) - (IP주소) 짝으로 캐싱함
같은 질의인 경우 바로 IP주소 전달
장점
- 응답 시간 이득
- DNS 메세지 수 감소
단점
- 최신 항목이 아닐 수 있음
- 변경이 일어나도, TTL 동안 수정이 안될 수 있음
로컬 DNS 서버에 TLD DNS 서버의 IP 주소들이 캐싱돼 있음
TTL: 캐싱이 일정 시간 뒤에 사라지는 시간
DNS Security
디도스 공격
TLD 서버 공격
스푸핑 공격
- DNS 질의를 가로채고, 가짜 응답을 반환
- DNS 캐시 중독 (가짜를 캐싱하게 함)
'🖥️ Computer Science > Network' 카테고리의 다른 글
[CN] 2장: CDNs (0) | 2024.05.17 |
---|---|
[CN] 2장: Peer-To-Peer Applications (0) | 2024.05.15 |
[CN] 2장: E-mail, SMTP, IMAP (0) | 2024.05.11 |
[CN] 2장: Web and HTTP (0) | 2024.05.10 |
[CN] 2장: Principles of network applications (0) | 2024.05.10 |