Computer Science/네트워크

[네트워크] DNS - local DNS server

바보1 2023. 4. 14. 13:11

앞의 글을 읽으시면 이해에 도움이 됩니다.

 

 

2023.04.14 - [Computer Science/네트워크] - [네트워크] DNS - Distributed, Hierarchical Database

 

[네트워크] Distributed, Hierarchical Database

앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.04.14 - [Computer Science/네트워크] - [네트워크] DNS [네트워크] DNS 앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.04.08 - [Computer Science/네트워크] - [네트

hi-guten-tag.tistory.com


1. local DNS server

 

 

  • 앞선 글에서처럼 DNS server의 종류는 root, TLD, Authoritative DNS 서버를 제외하고, 다른 중요한 DNS 서버가 있는데 이 서버를 Local DNS server라고 합니다.
  • local DNS server는 서버의 계층에 엄격히 속해있지 않지만, DNS architecture에서 중요한 역할을 합니다.
  • 일반적으로 ISP에서 관리하는 local DNS server는 호스트가 ISP로 접속할 때, ISP는 호스트에게 한 개 이상의 자신의 local DNS server의 IP address를 제공합니다.
  • 호스트가 DNS query를 만들면, 해당 쿼리는 local DNS server에게 보내집니다. 이때 DNS server는 proxy server와 같이 쿼리를 진행하여 IP address를 찾습니다.

2. Iterative Query

 

 

출처 : Computer Networking 2장. Figure 2.19

  • Iterative Query는 말 그대로 반복적인 쿼리입니다.
  • Host가 Local DNS server에게 DNS query message를 전송하면, Local DNS server는 IP address를 찾아줍니다.
  • 해당 방식은 반복적으로 DNS server들에게 물어보면서 점점 찾아나가는 방식입니다.
  • Iterative query는 DNS 클라이언트가 Root Server부터 TLD Server, Authoritative Server까지 차례대로 쿼리를 보내고, 각각의 서버에서는 다음 쿼리할 서버의 IP 주소를 클라이언트에게 반환하며, 클라이언트는 이 정보를 바탕으로 다음 쿼리를 보냅니다. 이 과정은 계속 반복되며, 최종적으로 클라이언트는 해결된 IP 주소를 받게 됩니다.
  • 8개의 DNS message가 전송되었으며, 4개의 쿼리와 4개의 응답 메시지가 있습니다.

3. Recursive Query

 

 

출처 : Computer Networking 2장. Figure 2.20

  • Recursive Query는 재귀를 이용한 쿼리입니다.
  • Host가 Local DNS server에게 DNS query message를 전송하면, Local DNS server는 IP address를 찾아줍니다.
  • 해당 방식은 재귀적으로 DNS server들에게 물어보면서 점점 찾아나가는 방식입니다.
  • Recursion query는 DNS 클라이언트가 Root Server부터 Authoritative Server까지 쿼리를 보내면, Authoritative Server는 자신이 아는 IP 주소를 반환하거나, 모른다면 경우 하위 DNS 서버에 대한 추가 쿼리를 수행합니다. 이 과정은 더 이상 하위 서버가 없을 때까지 반복됩니다. 최종적으로 클라이언트는 해결된 IP 주소를 받게 됩니다.
  • 8개의 DNS message가 전송되었으며, 4개의 쿼리와 4개의 응답 메시지가 있습니다.

4. Iterative Query VS Recursive Query

 

 

  • 두 방법 모두 Hostname-IP Address mapping을 위해 사용될 수 있지만, Recursive query는 보안 취약점을 가지고 있을 수 있습니다. 공격자는 Recursive query를 이용하여 DNS 서버를 공격하거나, 사용자 정보를 탈취할 수 있습니다.
  • Recursive Query는 클라이언트가 요청하는 쿼리 과정에서 Authoritative Server에 대한 추가 쿼리를 수행하기 때문에, 이러한 추가 쿼리 과정에서 중간에 위치한 DNS 서버들이 악성 코드나 위조된 DNS 정보를 제공할 가능성이 있습니다. 이 경우, 악의적인 DNS 서버를 통해 해커가 사용자의 트래픽을 중간에 가로채거나 조작할 수 있습니다. 이를 통해 man-in-the-middle attack을 수행하여 사용자 정보를 탈취하거나 조작할 수 있습니다.
  • 따라서, 대부분의 DNS 서비스 제공업체들은 Recursive query를 제한하고, Iterative query를 권장하고 있습니다. 하지만, Recursive query는 성능 측면에서는 더 빠를 수 있습니다.
  • 결론적으로, Iterative query와 Recursive query 중 어떤 것이 더 좋은지는 사용자의 요구사항, 보안 및 성능 상황에 따라 다를 수 있습니다.

참고

 

 

경북대학교 컴퓨터학부 COMP0414-001 컴퓨터 망 수업

Computer Networking: A Top Down Approach / James F. Kurose, Keith W. Ross 저 / PEARSON / 2021년

Chat GPT, Bing AI


이번 글을 끝으로 DNS에 대해서 모두 알아봤습니다.

다음 글에서는 P2P에 대해 알아보겠습니다.

 

2023.04.14 - [Computer Science/네트워크] - [네트워크] Peer-to-peer (P2P) Architecture

 

[네트워크] Peer-to-peer (P2P) Architecture

앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.04.08 - [Computer Science/네트워크] - [네트워크] Application-Layer Protocols [네트워크] Application-Layer Protocols 앞의 글을 읽으시면 이해에 도움이 됩니다. 2023.04

hi-guten-tag.tistory.com

감사합니다.

지적 환영합니다.