본문 바로가기
SE 기초

[DNS] DNS 개념(개요, hosts 파일, dns 동작과정, 레코드,명령어)

by SE_123 2023. 6. 18.
반응형

 

DNS(Domain name system)는 도메인 이름을 IP 주소로 변환하는 데 사용하는 인터넷 프로토콜입니다. 복잡한 IP 주소를 기억하는 대신 "example.com"과 같은 도메인 이름을 사용하여 사용자가 웹 사이트 및 기타 리소스에 접속할 수 있도록 도와줍니다. 

  • DNS 서버는 기본적으로 UDP 53번 포트를 사용합니다. 
  • 주소길이가 길어지는경우 TCP를 사용합니다. (예를들어 쿠버 내에서 계속 질의되는 경우)
  • DR, 이중화, 백업등을 위해 여러대의 DNS서버를 사용하기도 합니다. 

 

01. Before DNS

DNS가 도입되기 전에 인터넷은 도메인에맞는 ip를 찾기 위해 ip주소와 도메인 이름이 매핑되어있는 hosts 파일에 의존했습니다. 

  • 개인:
    •  클라이언트 pc에서 서버pc에 접속할 때I P를 사용합니다. 
    • 도메인을 사용할 때는, 도메인주소와 IP 주소를 hosts 파일에 매핑해서 사용합니다. 
  • 기관:
    • 하나의 기관에서 하나의 hosts 파일로 전체 클라이언트의 도메인 내용을 관리할 수 있었습니다. 

현재에는 DNS 서버를 사용해서 자신의 서버pc에 특정 도메인 이름을 부여해 사용하는 방식을 사용하고 있습니다. 

 

02. DNS 동작 과정:

DNS(Domain name system)에서 상위 도메인서버는 하위 도메인서버의 IP를 모두 알고있습니다. 최상위 Root DNS서버 부터 최하위 Sub DNS 서버까지 차례대로 요청하여 최종적으로 해당 도메인의 IP를 응답받게 됩니다. 

Root DNS 서버

Root DNS 서버는 최상위에 위치하여 DNS 질의시에 시작점이 되는 서버입니다. 적절한 TLD(Top-level Domain)서버를 추천합니다. 루트힌트 파일에 13개의 루트 DNS 서버 (ex. a.root-server.net~h.root-server.net)가 명시되어있으며, 각 루트 DNS서버는 모두 다른 기관에서 관리하고 있습니다. 

 

루트 힌트(Root Hints)

  • 나에게 없는 영역에 대한 질의가 들어왔을 때 루트 힌트로 지정한 DNS Server에게 질의를 넘깁니다. 
  • 루트 힌트에는 Root DNS 서버들의 IP 주소가 포함되어 있습니다. 

TLD(top-level DNS) 서버

TLD 서버는 루트 서버 다음 수준의 최상위 도메인을 말합니다. TLD 서버는 .com, .org, .net 또는 .uk 또는 .jp와 같은 국가 코드로 구성됩니다. (TLD 서버에서 example.com/example.co.kr의 주소를 찾을 수 있습니다.)

 

03. DNS 레코드

DNS(Domain name system)는 다양한 레코드를 지원하며, 레코드는  도메인 이름과 관련된 특정 정보를 저장하는 역할을 합니다. 

  • SOA(Start of Authority) : DNS 영역에 대한 관리 정보인 기본 이름 서버, 책임자의 이메일 주소, 영역 변경을 위한 일련 번호 및 다양한 타이밍 매개 변수 등을 포함합니다. 
  • A(Host Record) : 도메인 이름을 IPv4 주소에 매핑합니다. 도메인 또는 하위 도메인이 호스팅되는 IP 주소를 지정합니다.
  • AAA(IPv6 DNS Record) : 도메인 이름을 IPv6 주소에 매핑합니다. 
  • CNAME(Aliad Record) : 메인 또는 하위 도메인에 대한 별칭을 생성합니다. 도메인 주소를 별칭 주소로 연결할 수 있게끔 해줍니다. 
  • NS(Name Server) : 도메인에 대한 DNS 서버를 식별합니다. 도메인에 대해 권한이 있는 DNS 서버를 지정합니다.
  • PTR(Reverse DNS) : IP 주소를 도메인 이름에 매핑하기 위한 역방향 조회에 사용합니다.
    • DNS 정방향 : 도메인 이름으로 IP 주소를 찾아줍니다.  (ex. google.com => 172.217.174.110)
    • DNS 역방향 : IP 주소로 도메인 이름을 찾아줍니다. (ex. 172.217.174.110 => google.com)
  • TXT: 도메인과 관련된 임의의 텍스트 데이터를 저장하고 정규화되어있지 않습니다.  이메일 인증(SPF, DKIM) 또는 도메인 소유권 확인(도메인 공급자에 대한 DNS 확인)과 같이 인증에 주로 사용합니다. 

 

04. DNS 명령어

nslookup

nslookup  exapmle.com
    • cache 서버에서 조회될 때는, non-autohritative answer라고 표시됩니다. 
    • -type=ns, -type=a로 레코드를 지정할 수 있습니다.

dig

dig trace nexon.com //루트서버부터 주소를 찾는 과정을 보여줌
  • 리눅스에서 사용하는  기본 DNS 질의 명령어 입니다. 
  • 윈도우에도 install해서 사용가능합니다. 

 


⭐️DNS 시리즈⭐️

[DNS] DNS 개념(개요, hosts 파일, dns 동작과정, 레코드,명령어)

[DNS] Public DNS와 Local DNS 개념

[DNS] DNS에서 도메인 경로와 DNS 캐싱