[Network] DNS - 네트워크 세계의 주소록

·2024년 2월 5일
0

Network

목록 보기
4/5
post-thumbnail

DNS

DNS는 Domain Name System 의 약자로 도메인의 주소를 통해 IP로 변환하는 작업을 수행한다. 우리가 자주 접하는 www.naver.com , www.google.com 모두 IP 주소를 사람이 파악하기 쉽도록 변환시킨 내용이라 할 수 있다.

서비스도메인 주소IP 주소
다음(Daum)daum.net203.133.167.81
네이버(Naver)naver.com223.130.200.104
구글(Google)google.com142.250.207.14

DNS 구성요소

Local DNS

ISP (KT, SKT)가 제공하는 서버로 권한이 존재하지 않는 DNS 이며, 실제 DNS 에 대한 프록시 서버로서, 다음과 같은 기능을 수행한다.

  • 방문한 이력이 있는 IP 주소를, 캐시 테이블에 저장하여 불필요한 IP 탐색 과정을 생략한다.
  • 실제 DNS 서버에 직접적인 접속으로 나타날 수 있는 보안 요소를 줄일 수 있다.

네임 서버

실제 도메인 주소에 대한 권한을 책임지는 DNS 서버이다. 초기에는 하나의 파일에 도메인 정보를 저장한 txt 파일을 다운받아 사용했으나, IP 주소 혹은 도메인 주소가 변경되는 경우, 업데이트가 반영되지 않는다는 문제가 생기며 이를 관리하는 네임 서버가 등장했다.

향후 웹 시장이 커지면서, 하나의 네임 서버로도 관리하기 어려워지자 Top Level 을 시작으로 계층 구조 형태를 가진 네임 서버들이 추가적으로 나타났다. 각각의 네임 서버는 다음 계층(자식) 서버에 대한 IP 주소를 가지고 있으며, Local DNS 가 여러 네임 서버를 탐색하는 과정을 진행하며 이동하려는 도메인 주소의 최종적인 IP 를 찾게 된다.

  • Root Name 서버 : 모든 DNS 의 루트 노드로 도메인 주소 정보를 바탕으로 적절한 TLD 네임 서버 주소를 반환한다.

  • TLD (Top Level Domain) Name 서버 : .com , .net 등 도메인 주소의 마지막 점 뒤에 오는 확장자를 관리하는 서버이다. 도메인 주소 정보를 바탕으로 적절한 2LD 혹은 Sub Domain 네임 서버를 반환한다.

    TLD 서버의 종류는 크게 2가지인데, 국가별로 고유한 도메인을 관리하는 ccTLD(country code Top Level Domain) ex).kr,.jp,.us,.uk 등 과 그 외 일반적으로 알려진 도메인을 관리하는 gTLD(generic Top Level Domain) ex).com,.org,.net 등 으로 나뉜다.

  • 2LD, 3LD Name 서버 : 도메인 주소의 첫 점 이후 혹은 첫 점 전에 오는 확장자를 관리하는 서버이다. 도메인 주소 정보를 바탕으로 2LD3LD 혹은 Sub Domain 네임 서버에 대한 주소를, 3LDSub Domain 네임 서버 주소를 반환한다.

  • Sub Domain Name 서버 : 실질적으로 최종적인 도메인 주소에 대한 IP를 가진 서버로서, 주로 gabia, cafe24, route53과 같이, 도메인을 판매하는 회사에서 이를 관리한다. 우리가 실제로 도메인을 구입하여 IP , 타입, 별칭 등을 설정하는 경우, 실제로 설정 값이 반영되는 서버가 바로 이곳이다.

Local DNS와 DNS Recursive Resolver

실제 도메인 주소를 통해, DNS 서버를 탐색하며 IP 주소를 찾아가는 과정을 DNS Recursive Query, DNS 재귀 질의 라고 한다. 이러한 DNS 재귀 질의 를 수행하는 장치를 DNS Recursive Resolver 라고 한다. 일반 가정의 경우 ISP가 제공하는 Local DNS 네트워크 내에 DNS Recursive Resolver 가 내장되어, DNS 재귀 질의 가 수행된다.

DNS 동작원리

검색하려는 주소가 www.naver.com 인 경우, 다음의 과정이 DNS 를 통해 수행된다.

  1. 브라우저, 라우터, local DNS 의 캐시 테이블을 통해 이전 방문을 통해 IP 주소가 존재하는지 확인한다.
  2. 캐시 테이블에서 원하는 IP 정보를 찾을 수 없다면, local DNSDNS 재귀 질의를 수행한다.
  3. 가장 먼저 Root DNS 에서 요청하여, com 을 관리하는 TLD 네임 서버의 위치를 local DNS 에게 전달한다.
  4. local DNSTLD 네임 서버에게 질의를 보내고, TLD 네임 서버는 naver 를 관리하는Sub Domain 네임 서버의 위치를 local DNS 에게 전달한다.
  5. local DNSSub Domain 네임 서버에게 질의를 보내면, Sub Domain 네임 서버는 CNAME 을 통해 www 의 여부를 확인 한 후, www.naver.com 과 연결된 naver.comIP 주소를 local DNS 에게 보낸다.
  6. local DNS 는 최종적인 IP 주소를 통해, 해당 사이트를 불러온다.

참고
[10분 테코톡] 엘리의 DNS
DNS의 기본 개념과 동작 방식
DNS
DNS란 무엇입니까? – DNS 소개 - AWS

profile
새로운 것에 관심이 많고, 프로젝트 설계 및 최적화를 좋아합니다.

0개의 댓글