# dns query의 여정

> Clean Markdown view of GeekNews topic #17756. Use the original source for factual precision when an external source URL is present.

## Metadata

- GeekNews HTML: [https://news.hada.io/topic?id=17756](https://news.hada.io/topic?id=17756)
- GeekNews Markdown: [https://news.hada.io/topic/17756.md](https://news.hada.io/topic/17756.md)
- Type: news
- Author: [frogred8](https://news.hada.io/@frogred8)
- Published: 2024-11-14T11:47:04+09:00
- Updated: 2024-11-14T11:47:04+09:00
- Original source: [frogred8.github.io](https://frogred8.github.io/docs/036_dns_basic)
- Points: 18
- Comments: 0

## Summary

DNS 요청은 기본적으로 hosts 파일, 캐시, 그리고 DNS 서버 순으로 처리되며, 리눅스에서는 /etc/nsswitch.conf 파일을 수정하여 이 순서를 변경할 수 있습니다. DNS 탐색 과정은 사용자로부터 시작하여 재귀적 리졸버, 루트 서버, TLD 서버, 그리고 최종적으로 권한 있는 DNS 서버로 이어지며, 캐시를 먼저 확인하여 효율성을 높입니다. 루트 서버는 전 세계에 13개가 있으며, TLD 서버는 도메인 정보를 소유한 권한 있는 DNS 서버 목록을 반환하고, 권한 있는 DNS 서버는 도메인에 설정된 IP를 반환하는 역할을 합니다.

## Topic Body

- dns 요청 순서 변경  
  - 기본 순서는 hosts -> 캐시 -> dns 서버 요청  
  - 리눅스에서는 /etc/nsswitch.conf 파일의 변경으로 이 순서를 변경할 수 있음  
- dns 탐색  
  - user -> RR(recusive resolver) -> root -> tld -> authoritative dns server 순서로 확인  
  - RR에서는 root, tld, authoritative dns에 대해 순차적으로 요청하는데 받은 응답을 참고하여 다음 요청을 보냄  
  - 보통 캐시를 먼저 확인하여 효율성을 높임  
- root 서버  
  - .com, .kr 등의 도메인을 보고 적절한 TLD 서버 목록을 반환하는 역할  
  - 전세계에 13개 서버군이 있음 (a-m)  
    - ex. a.root-servers.net  
  - dns 512byte 패킷 제한으로 현재 13개에서 더 이상의 추가는 불가능하다고 함  
- TLD 서버 (top-level dns)  
  - 도메인 정보를 소유한 authoritative dns 서버 목록을 반환하는 역할  
  - gTLD, ccTLD에 대한 설명  
  - 좋은 국가 코드를 받은 나라는 의외로 수익원이 되기도 함 (.ai, .io)  
- 인증받은 dns 서버 (authoritative dns)  
  - 도메인에 설정된 ip를 반환하는 역할  
  - cloudflare, godaddy처럼 도메인의 등록과 관리 주체를 인증받은 서버  
  - 빅테크에서는 따로 인증받아서 사용하기도 함 (aws, google..)

## Comments



_No public comments on this page._
