본문 바로가기

코딩연습/과제

DNS란?

DNS 개요

DNS란 인터넷 네트워크상에서 컴퓨터의 이름을 IP주소로 변환하거나 해석하는데 사용되는 분산 네이밍 시스템이다.

예) www.naver.com이라는 URL주소에 대해서 IP주소를 알려주는 서비스이다.

 

DNS를 간단하게 확인하는 방법은 nslookup이라는 도구를 사용해서 확인할 수 있다. 다음의 예는 www.naver.com이라는 는 URL에 대해서 125.209.222.142의 IP주소를 얻어 온것이다.

nslookup을 통한 DNS확인

 

DNS해석 과정

DNS가 어떻게 이름을 풀어내는지 확인해보자. DNS는 먼저 DNS Cache테이블에서 이름을 해석한다.

DNS Cache 테이블 확인

만약 DNS Cache 테이블에 없으면 hosts 파일을 사용해서 이름을 해석한다.

hosts 파일

hosts 파일에서도 해당 URL에 대한 IP 주소가 없으면 DNS서버에서 이름 해석을 의뢰하고 이것을 순환쿼리(Recursive Query)라고 한다. DNS서버는 DNS Cache 테이블을 유지하고 있기 때문에 DNS서버의 Cache테이블에 등록되어 있으면 바로 IP주소를 DNS Response 메시지로 전달한다.

 

만약 DNS가 이름을 해석할 수 없다면 다음과 같이 TOP level 도메인부터 Second Level로 이름 해석을 의뢰하고 이것을 반복쿼리(Iterative Query)라고 한다.

 

DNS 구조

-루트 서버 : 모든 도메인의 근본이 되는 최상 

-최상위 도메인 : com, org, kr등의 국가, 지역을 나타냄

-2단계 도메인 : 사용자가 도메인명을 신청해서 등록할 수 있는 영역

 

DNS 서비스 방식

DNS쿼리의 종류

- Recursive 쿼리(순환쿼리) : Local DNS 서버에 쿼리를 보내 완성된 답을 요청한다.

- Iterative 쿼리(반복쿼리) : Local DNS 서버가 다른 DNS서버에 다른 DNS서버에게 쿼리를 보내어 답을 요청하고 외부 도메인에서 개별적인 작업을 통해 정보를 얻어와 종합해서 알려준다.

 

'코딩연습 > 과제' 카테고리의 다른 글

10가지 언어들의 특징  (0) 2019.08.11
절대경로 : 상대경로  (0) 2019.08.04
객체와 클래스  (0) 2019.08.01
네트워크 전송에서 GET방식과 POST방식  (0) 2019.07.25
사설IP vs 공인IP, NAT  (0) 2019.07.12