1 minute read

DNS란

영문/한글 주소를 IP 네트워크에서 찾아갈 수 있는 ip 주소로 변환해 준다

DNS 서버

  • Root DNS Server: ICANN이 직접 관리하는 절대 존엄 서버로, TLD DNS 서버 IP들을 저장해두고 안내하는 역할을 함.
  • TLD(최상위 도메인) DNS Server: 도메인 등록 기관(Registry)이 관리하는 서버로, Authoritative DNS 서버 주소를 저장해두고 안내하는 역할을 함. 어떤 도메인 묶음이 어떤 Authoritative DNS Server에 속하는지 아는 이유는 도메인 판매 업체(Registrar)의 DNS 설정이 변경되면 도메인 등록 기관(Registry)으로 전달이 되기 때문임. (.com, .net, ….)
  • Authoritative DNS Server: 실제 개인 도메인과 IP 주소의 관계가 기록/저장/변경되는 서버. 그래서 권한의 의미인 Authoritative가 붙음. 일반적으로 도메인/호스팅 업체의 ‘네임서버’를 말하지만, 개인 DNS 서버 구축을 한 경우에도 여기에 해당함.
  • Recursive DNS Server:
    • 위 3개의 DNS 서버를 매번 거친다면 효율이 구데기일 수밖에 없으니, 한 번 거친 후 얻은 데이터를 일정 기간(TTL/Time to Live) 동안 캐시라는 형태로 저장해 두는 서버임.
    • 직접 도메인과 IP 주소의 관계를 기록/저장/변경하지는 않고 캐시만을 보관하기 때문에, Authoritative와 비교되는 의미로 반복의 Recursive가 붙음.
    • 대표적인게 KT/LG/SK와 같은 ISP(통신사) DNS 서버가 있고, 브라우저 우회 용도로 많이 쓰는 구글 DNS, 클라우드플레어와 같은 Public DNS 서버가 있음.

리눅스에서의 DNS 통신과정

  • /etc/hosts
    • 전화번호부같은 느낌
    • DNS에 접속하기 전에 host 파일을 먼저 까본다.
    • ex) localhost
    • 접속에 문제가 발생했을 때 확인해보면 좋다.
  • /etc/resolv.conf
    • dns 주소가 설정되어있다.

      164.124.101.2 (LG DNS IP)

      168.126.63.1 (KT DNS IP)

  • /etc/host.conf
    • 도메인 요청시 Domain 검색 순서
    • order hosts, bind인데 해석하자면 /etc/hosts에서 먼저 찾아보고 없으면 /etc/resolv.conf의 DNS를 사용

Leave a comment