DNS(Domain Name Syetem)
- 웹사이트에 접속 할 때 우리는 외우기 어려운 IP 주소 대신 도메인 이름을 사용한다.
- 도메인 이름을 사용했을 때 입력한 도메인을 실제 네트워크상에서 사용하는 IP 주소로 바꾸고 해당 IP 주소로 접속하는 과정이 필요하다.
DNS 구성 요소
- 도메인 네임 스페이스(Domain Name Space)
- 네임 서버(Name Server) = 권한 있는 DNS 서버
- 리졸버(Resolver) = 권한 없는 DNS 서버
도메인 네임 스페이스(Domain Name Space)
- DNS는 전세계적인 거대한 분산 시스템이다.
- 도메인 네임 스페이스는 이러한 DNS가 저장 관리하는 계층적 구조를 의미한다.
- 도메인 네임 스페이스는 최상위에 루트 DNS 서버가 존재하고 그 하위로 연결된 모든 노드가 연속해서 이어진 계층 구조로 되어있다.
도메인 주소 구조(IPv4)
- 주소의 영역을 . 으로 구분한다.
- 주소의 해석은 오른쪽부터 시작하며, 최상의 주소는 항상 가장 오른쪽에 있는 . 이다.
루트 도메인 (Root Domain)
최상위 도메인 (Top Level Domain = TLD)
- 국가 코드 최상이 도메인 (ccTLD : country code TLD) : .kr, .jp 등
- 일반 최상위 도메인 (gTLD = global TLD) : .net, .com, org 등
- ARPA : 역방향 조회 시 사용되는 최상위 도메인 : in-addr.arpa
2차 도메인 (Second Level Domain, Sub Domain)
- TLD 하위에서 관리되는 서브 도메인
- 국가 도메인 하위에 기관 유형에 따른 분류 : .co (일반회사), .ac (교육기관), .go (정부기관) 등
서브 도메인 (Sub Domain)
- 상위 도메인에 소속되는 각 기관 또는 회사별 도메인 : google, naver 등
네임 서버(Name Server)
- 네임서버(Name server)는 도메인 이름과 IP의 상호변환을 가능하게 해주는 서버이다.
- '캐시 서버’라 하여 한 번 방문이 있었던 웹페이지의 정보를 일정 시간 저장하였다가 재요청이 있는 경우 즉시 응답한다.
리졸버(Resolver)
- 리졸버(Resolver)는 웹 브라우저와 같은 DNS 클라이언트의 요청을 네임 서버로 전달하고, 네임 서버로부터 도메인 이름과 IP 주소를 받아 클라이언트에게 제공하는 기능을 수행한다.
- 이 과정에서 리졸버는 하나의 네임 서버에게 DNS 요청을 전달하고, 해당 서버에 정보가 없으면 다른 네임 서버에게 요청을 보내 정보를 받아 온다.
- 이렇듯 리졸버는 수많은 네임 서버에 접근하여 사용자에게 요청 받은 도메인의 IP 정보를 조회하는 기능을 수행 할 수 있어야 한다.
DNS 동작방식
- 클라이언트(리졸버)가 www.naver.com 에 대해 DNS 조회를 진행
- 캐시 네임 서버에 www.naver.com에 대한 값이 있다면 8번으로 진행. 없다면 루트 네임 서버에 www.naver.com 에 대한 응답을 요청
- 루트 네임 서버는 com 네임 서버의 IP 주소를 캐시 네임 서버에 전달
- 캐시 네임 서버는 com 네임 서버에 www.naver.com에 대한 응답을 요청
- com 네임 서버는 naver 네임 서버의 IP 주소를 Cache 네임 서버에 전달
- 캐시 네임 서버는 naver 네임 서버에 www.naver.com에 대한 응답을 요청
- naver 네임 서버는 www.naver.com의 IP 주소를 캐시 네임 서버에 전달
8 .캐시 네임 서버는 www.naver.com의 IP 주소를 클라이언트(리졸버)에게 전달
참고 문서 및 링크