DNS (Domain Name System)

  • 도메인 이름과 IP주소를 매핑해주는 서버
  • 특정 컴퓨터의 주소를 찾기 위해 사람이 이해하기 쉬운 주소로 변환해줌
  • 특정 IP주소를 도메인 주소로 저장해두기 때문에 해당 도메인의 IP가 변경되어도 사용자들은 같은 도메인 주소로 접속하면 바뀐 IP와 상관없이 접속이 가능하다
  • DNS는 신뢰성보다 속도가 중요하기 때문에 UDP를 사용한다
    • 웹 페이지는 신뢰성이 중요하기 때문에 TCP를 사용한다

DNS 서버 종류

  • Root DNS Server: ICANN이 직접 관리하는 절대 존엄 서버로, TLD DNS 서버 IP들을 저장해두고 안내하는 역할을 함.

  • TLD(최상위 도메인) DNS Server: 도메인 등록 기관(Registry)이 관리하는 서버로, Authoritative DNS 서버 주소를 저장해두고 안내하는 역할을 함. 어떤 도메인 묶음이 어떤 Authoritative DNS Server에 속하는지 아는 이유는 도메인 판매 업체(Registrar)의 DNS 설정이 변경되면 도메인 등록 기관(Registry)으로 전달이 되기 때문임.

  • Authoritative DNS Server: 실제 개인 도메인과 IP 주소의 관계가 기록/저장/변경되는 서버. 그래서 권한의 의미인 Authoritative가 붙음. 일반적으로 도메인/호스팅 업체의 ‘네임서버’를 말하지만, 개인 DNS 서버 구축을 한 경우에도 여기에 해당함.

  • Recursive DNS Server: 인터넷 사용자가 가장 먼저 접근하는 DNS 서버임. 위 3개의 DNS 서버를 매번 거친다면 효율이 구데기일 수밖에 없으니, 한 번 거친 후 얻은 데이터를 일정 기간(TTL/Time to Live) 동안 캐시라는 형태로 저장해 두는 서버임. 직접 도메인과 IP 주소의 관계를 기록/저장/변경하지는 않고 캐시만을 보관하기 때문에, Authoritative와 비교되는 의미로 반복의 Recursive가 붙음. 대표적인게 KT/LG/SK와 같은 ISP(통신사) DNS 서버가 있고, 브라우저 우회 용도로 많이 쓰는 구글 DNS, 클라우드플레어와 같은 Public DNS 서버가 있음.

DNS 동작 원리

  1. 브라우저에서 Nesite.com을 검색하고, 사용하고 있는 통신사인 KT DNS 서버에게 도메인 주소에 해당하는 IP 주소를 요청함
    (브라우저 기본 DNS 설정이 통신사 DNS 서버이기 때문)
  2. ISP 서버에선 캐시 데이터가 없다는 걸 확인하고 루트 DNS 서버에게 어디로 가야 하는지 요청함(캐시가 있다면 8.로 건너 뜀.)
  3. 루트 서버는 TLD DNS 서버 주소만 관리하기 때문에, ***.com 도메인을 보고는 COM 최상위 도메인을 관리하는 TLD DNS 서버 주소를 안내함.
  4. ISP 서버는 COM 서버에게 어디로 가야 하는지 다시 요청함.
  5. COM 서버는 가비아 DNS 서버에서 해당 도메인이 관리되고 있는 걸 확인하고 안내함.
  6. ISP 서버는 가비아 서버에게 또 다시 요청함.
  7. 가비아 서버는 “Nesite.com = 12.123.123.123”이라는 정보를 확인하고 이 IP를 알려줌. 동시에 ISP 서버는 해당 정보를 캐시로 기록해 둠.
  8. ISP 서버는 브라우저에게 힘들게 알아 낸 12.123.123.123 주소를 안내함.
  9. 브라우저는 12.123.123.123 IP 주소를 갖고 있는 호스팅 서버에게 웹사이트를 출력하라고 요청함.
  10. 드디어 보임.

참고

DNS 쿼리에는 Recursive 쿼리와 Iterative 쿼리가 있다
Recursive 쿼리는 다른 DNS서버에게 쿼리를 보내어 답을 요청하는 작업
Iterative 쿼리는 Recursive 서버가 다른 DNS 서버에 쿼리를 반복적으로 요청하는 작업이다.
Recursive 서버에 이미 IP주소가 캐시 되어 있다면 Iterative 쿼리는 건너 뛴다.

예상 질문

  • DNS 작동 원리에 대해 설명해주세요

출처

profile
hello dev!!

0개의 댓글

Powered by GraphCDN, the GraphQL CDN