본문 바로가기
야미스터디/Network

[Network] DNS

by 의정부핵꿀밤 2023. 3. 16.
728x90

🤔 DNS (Domain Name System)

  • IP 주소와 도메인 주소를 이어주는 환경/시스템이다
    • 도메인 주소란 IP 주소를 대신하여 사용하는 주소로, DNS를 이용하여 IP 와 도메인을 이어준다
    • DNS 시스템 안에서 IP와 도메인 매칭 역할을 하는 서버를 DNS 서버 또는 네임서버 라고 한다
  • 상위 기관에서 인증된 기관에게 도메인을 생성하거나 IP 주소로 변경할 수 있는 권한을 부여한다
  • DNS는 계층 구조를 갖는 분산 데이터베이스 구조를 갖는다
  • DNS 서버 통신은 기본적으로 UDP 방식인 DNS 프로토콜을 사용하며, 기본 포트로 53번을 사용한다
  • 모든 IP의 루트 네임 서버는 비영리 단체인 ICANN이 관리하며, 루트 서버는 전 세계 모든 도메인을 기억한다

 

🤔 DNS 구성 요소

 

  1. 도메인 네임 스페이스(Domain Name Space)
  2. 네임 서버(Name Server) = 권한 있는 DNS 서버
  3. 리졸버(Resolver) = 권한 없는 DNS 서버

 

1. 도메인 네임 스페이스(Domain Name Space)

  • 최상위에 루트 DNS 서버가 존재하고, 그 하위로 인터넷에 연결된 모든 노드가 연속해서 이어진 계층 구조로 구성되어 있다
  • 도메인 이름 저장을 분산한 계층 구조이다

 

2. 네임 서버(Name Server) = DNS 서버

  • 주소를 변환시키기 위해 도메인 네임 스페이스의 트리구조에 대한 정보가 필요한데, 해당 정보를 가지고 있는 서버이다
  • 해당 도메인 이름의 IP 주소를 찾는다
  • 데이터베이스(저장, 관리) 역할, 찾아주는 역할, 요청 처리 응답을 구현한다
  • 마스터-슬레이브 구조를 갖는다 → 마스터 네임서버 - 보조 네임서버

 

💡 네임서버 구성

Root DNS 서버

  • ICANN이 직접 관리하는 최고 레벨 서버
  • 서버 IP 주소를 저장하고 안내하는 역할

 

Top-Level Domain(TLD) DNS 서버

  • 도메인 등록 기관이 관리하는 서버
  • Authoritative DNS 서버의 주소를 저장하고 안내하는 역할

 

Second-Level/Sub Domain(SLD) DNS 서버 (=Authoritative DNS 서버)

  • TLD 하위에서 관리되는 서브 도메인
  • 실제 개인 도메인과 IP 주소의 관계가 기록(저장, 변경)되는 서버
  • 권한의 의미인 Authoritativce가 붙었고 일반적으로 도메인/호스팅 업체의 네임서버로, 개인 DNS 구축도 이에 해당된다

 

권한 없는 DNS 서버 (리졸버 서버, 리컬시브 서버, 리커서)

  • DNS 서버는 도메인 네임 스페이스를 위한 권한 있는 DNS 서버와 권한이 없는 DNS 서버로 구분되는데, 위의 서버들은 권한이 있는 서버이다
  • 권한이 있는 DNS 서버는 IP 주소와 도메인 이름을 매핑하고, 권한이 없는 DNS 서버는 질의를 통해 IP 주소를 알아내거나 캐시한다

 

 

3. 리졸버 (Resolver)

  • DNS 클라이언트의 요청을 네임 서버로 전달하고 찾은 정보를 클라이언트에게 제공하는 기능을 수행한다
  • 어떤 네임서버에서 찾아야 하는지, 이미 캐시되어 있는지 등 클라이언트에게 찾았을 경우 찾은 것을 전달하고, 못찾았을 경우 못찾았다고 전달한다

 


🤔 DNS 동작 순서

💡 DNS Query 란?

  • DNS 클라이언트와 DNS 서버는 DNS 쿼리를 교환한다
  • DNS 쿼리는 Recurisve(재귀적) 또는 Iterative(반복적)으로 구분된다
  • 다음과 같은 방식으로 요청과 응답을 한다

 

Recursive Query (재귀적 질의)

  • 응답 결과물(IP 주소)를 돌려주는 쿼리(작업)이다
  • 결과적으로 Recursive 서버가 Recursive 쿼리를 웹 브라우저 등에게 돌려주는 역할을 한다
  • Recursive 쿼리를 받은 Recursive 서버는 Iterative하게 권한 있는 네임 서버로 Iterative 쿼리를 보내서 결과적으로 IP 주소를 찾게 되고 해당 결과물을 응답한다

 

Iterative Query (반복적 질의)

  • Recursive DNS 서버가 다른 DNS 서버에게 쿼리를 보내어 응답을 요청하는 작업이다
  • Recursive 서버가 권한 있는 네임 서버들에게 반복적으로 쿼리를 보내서 결과물(IP 주소)을 알아낸다
  • Recursive 서버에 이미 IP 주소가 캐시되어 있다면 이 과정은 생략한다

 


DNS 동작 순서 예시

 

예시 도메인 이름 : www.naver.com

  1. 웹 브라우저에 www.naver.com 을 입력하면, 먼저 Local DNS에게 www.naver.com 이라는 homename에 대한 IP 주소를 질의하고, Local DNS에 없으면 Root DNS 네임서버 정보를 받는다
  2. Root DNS 서버에 www.naver.com 을 질의하고, Root DNS 서버로부터 com 도메인을 관리하는 TLD(Top-Level Domain) 이름 서버 정보를 전달받는다
  3. TLD에 www.naver.com 을 질의하고, naver.com 을 관리하는 DNS(SLD) 정보를 전달한다
  4. www.naver.com 도메인을 관리하는 DNS 서버에 www.naver.com 호스트 네임에 대한 IP 주소를 질의한다
  5. Local DNS 서버에게 www.naver.com 에 대한 IP 주소인 222.122.195.6 을 응답한다
  6. Local DNS는 www.naver.com에 대한 IP 주소를 캐싱하고 IP 주소를 전달한다

 

 

 


참고)

https://github.com/InJun2/TIL/blob/main/CS-topic/network/DNS.md

 

GitHub - InJun2/TIL: todo-list

todo-list. Contribute to InJun2/TIL development by creating an account on GitHub.

github.com

https://hanamon.kr/dns%EB%9E%80-%EB%8F%84%EB%A9%94%EC%9D%B8-%EB%84%A4%EC%9E%84-%EC%8B%9C%EC%8A%A4%ED%85%9C-%EA%B0%9C%EB%85%90%EB%B6%80%ED%84%B0-%EC%9E%91%EB%8F%99-%EB%B0%A9%EC%8B%9D%EA%B9%8C%EC%A7%80/

 

DNS란? (도메인 네임 시스템 개념부터 작동 방식까지) - 하나몬

이 게시물의 중요 포인트 DNS(도메인 네임 시스템)이 사람이 읽을 수 있는 도메인 이름(www.hanamon.kr)을 IP 주소로 변환하는 시스템이라는 것은 쉽게 알 수 있습니다. 이번 글에서는 이렇게 도메인

hanamon.kr

 

+ 추가)

https://www.inflearn.com/course/lecture?courseSlug=%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%ED%95%B5%EC%8B%AC%EC%9D%B4%EB%A1%A0-%EA%B8%B0%EC%B4%88&unitId=126845 

 

학습 페이지

 

www.inflearn.com

널널한 개발자님의 무료 강의를 통해서 어려운 DNS구조도 간단하게 이해하였습니다!

좋은 강의인거 같아 여기도 남기니까 이해가 어려우신 분들은 이를 보고 이해하시길 바라겠습니다! 야미 :)

728x90

'야미스터디 > Network' 카테고리의 다른 글

[Network] 로드밸런스  (0) 2023.03.30
[Network] IP, TCP/UDP, HTTP  (0) 2023.03.24
[Network] OSI L4  (0) 2023.03.16
[Network] OSI 7계층  (0) 2023.03.15
[Network] HTTP Status code 📌  (0) 2022.11.19

댓글