Infra/Network

# [Network] DNS

leehi0110 2023. 7. 6. 19:14
반응형

1. DNS ( Domain Name Server ) 란?

  -  등장 배경

  • 네트워크 안에서 host들을 식별하기 위한 목적으로 IP 주소를 사용한다.
  • 사람의 경우 특정 웹 사이트에 접속 시 IP가 아닌 도메인 이름을 사용하는데, 도메인 이름을 사용하는 경우에도 최종적으로 IP 주소를 알아야 상대
    장비와 연결이 가능하다.
  • 네트워크에서 도메인이나 호스트 이름을 IP 주소로 해석 해주는 TCP/IP Network Service인 DNS는 이를 위해 등장했다.

  -  DNS의 과거와 현재

  • 초창기 호스트 수가 많지 않을 때는 local의 hosts.txt 파일을 이용했지만, 호스트 수의 폭발적 증가로 hosts 파일의 수정 및 업데이트가 힘들어졌다.
  • 이를 해결하기 위해, 계층 구조를 가지는 분산 데이터베이스 구조의 DNS가 나오게 되었다.

2. DNS의 기본 원리

  ※  실제 DNS의 동작 과정은 아래의 5. DNS 동작 과정을 참고하자.

  -  사용자가 특정 웹사이트에 접속 하기 위해서는 아래 이미지와 같은 과정을 수행한다. ( 실제로 이렇게 단순하지는 않지만 개념 설명을 위해 단순화 )

  1.   사용자가 www.google.com을 입력 후 검색하면
  2.   DNS 서버에 해당 도메인과 연결된 IP가 있는지 확인한 후에, 사용자에게 IP를 전달해주면,
  3. 그 값을 이용해 www.google.com으로  로 접속한다. 

  -  실제로는 너무 많은 도메인 개수로 인해서 DNS 서버 종류를 계층화 하여 단계적으로 처리한다.

3. DNS 구성 요소

  -  도메인 네임 스페이스 ( Doamin Name Space )

  • DNS가 저장, 관리하는 계층적 구조를 의미한다.
  • 도메인 네임 스페이스는 최상위에 루트 DNS 서버가 존재하고, 그 하위로 인터넷에 연결된 모든 노드가 연속해서 이어진 계층 구조로 구성되어 있다.

  -  네임 서버 ( Name Server )

  • 문자열로 표현된 도메인 이름을 실제 컴퓨터가 통신할 때 사용할 수 있는 IP 주소로 변환시키기 위한 서버
  • 변환을 위해 도메인 네임 스페이스의 트리 구조에 대한 정보가 필요하기 때문에, 네임 서버는 이러한 정보를 가지고 있다.
  • 리졸버 ( Resolver )로 부터 요청 받은 도메인 이름에 대한 IP 정보를 다시 리졸버로 전달해주는 역할을 수행한다.

  -  리졸버 ( Resolver )

  • DNS 클라이언트의 요청을 네임 서버로 전달하고, 네임 서버로부터 전달 받은 정보 ( 도메인에 대한 IP 주소 )를 클라이언트에게 제공하는 기능을 수행한다.
  • 하나의 네임 서버에 DNS 요청을 전달하고, 해당 서버에 정보가 없으면 다른 네임 서버에게 요청을 보내 정보를 받아온다.
  • 자원의 한계로 리졸버의 모든 기능을 단말에 구현하는 것이 어려워 대부분의 기능은 DNS 서버에 구현하고, 클라이언트 호스트에는 리졸버의 단순한 기능만을 지닌 리졸버 루틴을 구현하는 옵션이 있다.

  -  스터브 리졸버 ( Stub Resolver )

  • 리졸버의 대부분의 기능을 DNS 서버에서 구현하고, 클라이언트 호스트에는 리졸버의 단순한 기능만을 지닌 리졸버 루틴을 구현
  • 스터브 리졸버는 수 많은 네임 서버의 구조를 파악할 필요 없이 리졸버가 구현된 네임 서버의 IP 주소만 파악하면 된다.
  • 스터브 리졸버는 설정된 네임 서버로 DNS 질의를 전달하고 네임 서버로부터 최종 결과를 응답 받아 웹 브라우저로 전달하는 인터페이스 기능을 수행한다.

4. DNS 서버 ( = Name Server ) 종류

  -  Root DNS Server

  • ICANN이 직접 관리하는 최상위 서버로, TLD DNS 서버 IP들을 저장해두고 안내하는 역할을 한다.

  -  TLD DNS Server

  • 도메인 등록 기관 ( Registry )이 관리하는 서버로, Authoritative DNS 서버 주소를 저장해두고 안내하는 역할을 한다.
  • 도메인 판매 업체의 DNS 설정이 변경 되면, 도메인 등록 기관으로 전달되기 때문에 어떤 도메인이 어떤 판매업체를 통해 구매 되었는지 확인이 가능하다.

  -  Authoritative ( 혹은 Second-Level Domain [ SLD ] ) DNS Server

  • 실제 도메인과 IP 주소의 관계가 기록되어 있는 서버
  • 일반적으로 도메인 / 호스팅 업체의 네임서로를 의미하며, 개인 DNS Server 구축시에도 여기에 해당된다.

  -  Recursive DNS Server

  • 인터넷 사용자가 가장 먼저 접근하는 DNS 서버로 관리 / 위임 받은 도메인 없이 모든 질의에 대해 응답하는 서버이다.
  • ISP 업체에서 제공하는 DNS 서버로 Local DNS Cache에 존재하는 경우 정보를 제공해주고, 그렇지 않은 경우 Authoritative DNS Server에 질의한다.

5. DNS 동작 과정

  -  가장 먼저, hosts file에 도메인과 IP가 매핑 되어 있는지 확인한다.

  -  다음으로 자체 DNS cache table을 조회한다.

  -  찾는 IP 정보가 없을 경우 Local DNS 서버에 도메인에 해당되는 IP 주소를 요청한다.

      ✓ Local DNS ? 가입한 통신사의 DNS 서버를 의미하며 컴퓨터의 LAN 선을 통해 인터넷이 연결 되면, 각 통신사 기지국의 DNS 서바가 등록된다.

  -  DNS Server 참조

  • Local DNS Server -> Root DNS Server
    1. Local DNS Server에 IP 정보가 없는 경우, Root DNS Server에 "www.naver.com"의 IP 주소를 요청한다.
    2. Root DNS Server는 TLD DNS Server 주소만 관리하기 때문에, ".com" 최상위 도메인을 관리하는 TLD DNS Server의 주소를 안내해준다.
  • Local DNS Server -> TLD DNS Server
    1. Local DNS Server는 ".com" 도메인을 관리하는 TLD Server에게 "www.naver.com"의 IP 주소를 요청한다.
    2. TLD DNS Server는 요청 도메인에 해당하는 IP가 없기 때문에, "naver.com"을 관리하는 SLD DNS Server의 주소를 안내해준다.
  • Local DNS Server -> SLD DNS Server
    1. Local DNS Server는 SLD DNS Server에게 "www.naver.com"의 IP 주소를 요청한다.
    2. SLD DNS Server는 요청 도메인에 대한 IP를 가지고 있으므로 Local DNS 서버에게 해당 IP를 알려준다.

  -  Local DNS -> Root DNS -> TLD DNS -> SLD DNS 순서로 도메인에 대한 IP 주소를 찾는 과정을 Recursive Query 라고 한다.

 

 

참조 : 
https://gentlysallim.com/dns%EB%9E%80-%EB%AD%90%EA%B3%A0-%EB%84%A4%EC%9E%84%EC%84%9C%EB%B2%84%EB%9E%80-%EB%AD%94%EC%A7%80-%EA%B0%9C%EB%85%90%EC%A0%95%EB%A6%AC/

 

DNS란 뭐고, 네임서버란 뭔지 개념정리 | 살살살림

DNS란 건 뭐고, DNS 서버란 건 뭐고, 네임서버란 건 뭐고 이름부터 혼란스러운 개념. 사용자의 입장에서 왜 DNS 역할이 필요한지와 추천할 만한 무료 네임서버에 대해서 알.아.보.자.

gentlysallim.com

https://m.blog.naver.com/PostView.naver?isHttpsRedirect=true&blogId=gaegurijump&logNo=110186376474

 

DNS(Domain Name System) 란?

DNS (Domain Name System)  인터넷을 이용할때 사용자는 외우기 어려운 IP주소 대신 외우기 ...

blog.naver.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://peemangit.tistory.com/52

 

DNS (Domain Name System)란?

1. DNS (Domain Name System) 1) DNS 등장 배경 인터넷 표준 프로토콜은 TCP/IP이다. TCP/IP 프로토콜을 사용하는 네트워크 안에서 Host들을 식별하기 위한 목적으로 IP 주소를 사용한다. 사람의 경우 숫자보다

peemangit.tistory.com

 

 

🙋‍♂️ 궁금한 점이나 잘못된 내용을 댓글로 적어주시면 감사하겠습니다 !!

반응형

'Infra > Network' 카테고리의 다른 글

# [Network] LAN ( Local Area Network )  (0) 2023.07.28
# [Network] 이더넷 (Ethernet)  (0) 2023.07.19
# [Network] 허브 ( Hub )  (0) 2023.06.27
# [Network] 스위치 ( Switch )  (0) 2023.05.22
# [Network] 게이트웨이 (Gateway)  (0) 2023.03.28