카테고리 없음

DNS와 작동방식

Lulung 2024. 12. 24. 20:41

DNS(Domain Name System)는 인터넷에서 사용되는 "주소록" 역할을 하는 시스템으로, 사람이 이해하기 쉬운 도메인 이름(예: www.example.com)을 컴퓨터가 이해할 수 있는 IP 주소(예: 192.168.1.1)로 변환한다. DNS는 인터넷 통신에서 핵심적인 역할을 하며, 프론트엔드 개발자가 반드시 이해해야 할 중요한 개념이다.

 

역할

  • 도메인 이름 변환: 사용자가 입력한 URL(예: www.google.com)을 서버의 IP 주소(예: 142.250.190.14)로 변환.
  • 리소스 로드: 웹페이지, API 호출, 이미지 로드 등에서 리소스의 IP를 찾아 통신을 가능하게 함.
  • 분산된 데이터베이스: DNS는 전 세계적으로 분산된 서버 네트워크로 구성되어 고속 처리와 안정성을 보장.

 

구성 요소

 

  • DNS 클라이언트(Resolver) : 사용자가 웹 브라우저나 애플리케이션에 도메인을 입력하면, 이를 처리하는 요청 주체. 보통 인터넷 서비스 제공업체(ISP)에서 제공.
  • DNS 서버 : 요청을 처리하고 IP 주소를 반환하는 서버.
    • DNS 서버의 종류:
      • 루트 네임서버: 최상위 수준의 네임서버로, TLD(Top-Level Domain) 정보를 제공.
      • TLD 네임서버: .com, .net 등 최상위 도메인의 정보를 저장.
      • 권한 있는 네임서버(Authoritative Nameserver): 특정 도메인의 최종 IP 정보를 제공.
      • 캐싱 네임서버(Caching Nameserver): 요청 결과를 캐싱하여 동일 요청 시 더 빠르게 응답.

 

요청 단계

 

1. 사용자가 도메인 입력 :사용자가 브라우저에 www.example.com을 입력.

2. 캐싱 확인 :  운영 체제(OS)나 브라우저에 저장된 DNS 캐시와  ISP의 캐싱 네임서버에서 최근 요청이 있었는지 확인.

3. DNS 쿼리 실행 : 만약 캐시에 없다면, DNS 클라이언트가 다음 단계를 거침:

  • 1단계: 루트 네임서버 조회 : 루트 서버는 TLD 네임서버의 주소를 반환.
    • 예: .com 도메인을 담당하는 TLD 네임서버 주소를 반환.
  • 2단계: TLD 네임서버 조회. TLD 서버는 권한 있는 네임서버 주소를 반환.
    • 예: example.com에 대한 권한 있는 네임서버 주소를 반환.
  • 3단계: 권한 있는 네임서버 조회. 권한 있는 네임서버는 최종적으로 www.example.com에 해당하는 IP 주소를 반환.

4. 결과 반환 및 연결 : DNS 클라이언트는 IP 주소를 브라우저에 전달. 브라우저는 해당 IP 주소로 요청을 보내고, 서버에서 데이터를 받아옴.

 

주요 개념

DNS 쿼리 유형

  1. 재귀적 쿼리 (Recursive Query) : DNS 클라이언트가 DNS 서버에 "내가 찾을 때까지 알아와!"라고 요청.
    • 예: 사용자 → ISP 캐싱 서버.
  2. 반복적 쿼리 (Iterative Query) : DNS 서버가 요청에 대해 "다음 서버에서 확인해봐!"라고 알려주는 방식.
    • 예: 루트 서버 → TLD 서버 → 권한 있는 네임서버.
  3. 역방향 조회 (Reverse Lookup) : IP 주소를 도메인 이름으로 변환하는 요청.
    • 예: 192.168.1.1 → www.example.com.

 

DNS 레코드 유형

  1. A (Address) 레코드 : 도메인 이름을 IPv4 주소로 매핑.
    • 예: www.example.com → 93.184.216.34.
  2. AAAA (IPv6 Address) 레코드 : 도메인 이름을 IPv6 주소로 매핑.
    • 예: www.example.com → 2606:2800:220:1:248:1893:25c8:1946.
  3. CNAME (Canonical Name) 레코드 : 도메인 이름을 다른 도메인 이름으로 매핑.
    • 예: blog.example.com → www.example.com.
  4. MX (Mail Exchange) 레코드 : 이메일 서버 정보를 제공.
    • 예: mail.example.com.
  5. TXT 레코드 : 텍스트 정보를 저장.
    • 예: 인증 정보(SPF, DKIM) 저장.

 

 

한계와 최적화

  • 한계 : DNS 서버가 다운되면 웹사이트 접속 불가. 전파 시간(propogation delay)이 길어질 수 있음.
  • 최적화 방법
    • CDN(Content Delivery Network) 사용: 전 세계 사용자에게 빠르게 콘텐츠 제공.
    • DNS 프리페칭: 브라우저가 미리 도메인의 IP 주소를 확인해 로딩 속도를 개선.