Computer Science/Computer Network

[CN] 2장: The Domain Name System, DNS

kyxxn 2024. 5. 13. 17:54
728x90

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 주소를 얻는 절차

  1. 유저 컴퓨터에 DNS 클라이언트가 계속 돌고있음
  2. URL로부터 호스트 이름을 DNS 클라이언트에 보냄
  3. DNS 클라이언트가 DNS 서버에 호스트 이름을 포함한 쿼리 보냄
  4. DNS 클라이언트는 DNS 서버로부터 IP주소를 응답 받음
  5. 브라우저가 DNS로부터 IP 주소를 받으면, 해당 IP주소와 80번 포트에 있는 HTTP 서버 프로세스로 TCP 연결

DNS 개요2

DNS 서비스

  • 호스트 이름을 IP 주소로 변환

  • 호스트 별칭

  • 메일 서버 별칭

  • 부하 분산
    호스트 이름 (1) : IP 주소 (N)
    www.naver.com도 호스트 이름은 1개지만,

    위 호스트 이름과 연결된 IP주소는 여러 개임

DNS가 중앙 집중 방식이 아닌 이유 ?

→ 확장성이 전혀 없음 (하루에 수십 조 단위의 DNS 처리)

  • 서버의 고장
  • 트래픽 양
  • 먼 거리 DB
  • 유지 관리

DNS: 분산 계층 데이터베이스

3개의 계층 구조임

  1. 루트
  2. 최상위 레벨 도메인 (TLD)
  3. 책임

클라이언트가 www.naver.com의 호스트 이름으로 IP 주소를 요구하는 상황

  1. 루트 DNS 서버에 질의함
  2. 루트로부터 .com에 대한 TLD DNS 서버에 질의함
  3. TLD DNS 서버로부터 naver.com에 대한 책임 DNS 서버의 IP 주소 획득

루트 DNS 서버

  1. 로컬 DNS 서버가 호스트 이름으로 IP 주소를 질의하기 위해 접속
  2. TLD DNS 서버의 IP 주소를 제공함
  3. 루트 DNS는 필수적으로, 전 세계 1000개 이상있음
  4. 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 > Computer 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