본문으로 바로가기

DNS서버(네임서버)의 이해

category 리눅스/Linux 일반 2013. 6. 22. 02:07

DNS 설정에 앞서 DNS에 대한 이해를 넓혀보자.

DNS란 무엇인가?

DNS는 도메인네임서버를 일컫는다. 인터넷은 서버들을 유일하게 구분할 수 있는 IP주소를 기본체계로 이용하는데 숫자로 이루어진 조합이라 인간이 기억하기에는 무리가 따른다. 따라서 DNS를 이용해 IP주소를 인간이 기억하기 편한 언어체계로 변환하는 작업이 필요한데 이 역할을 DNS가 하는 것이다.

도메인이름의 체계와 DNS 질의 과정

인터넷 도메인은 하나의 역트리 구조를 하고 있다.

도메인 구조

인터넷 도메인의 체계에서 최상위는 루트(root)로서 인터넷도메인의 시작점이 된다. 그리고 이 루트도메인 바로 아래단계에 있는 것을 1단계도메인이라고 하며 이를 최상위도메인이라고 한다. 이를 약어로 TLD(Top Level Domain)이라고 한다. 최상위도메인은 국가명을 나타내는 국가최상위도메인과 일반적으로 사용되는 일반최상위도메인으로 구분된다.

도메인을 구입할 경우 1단계의 도메인중에 하나를 선택하고 원하는 도메인명을 지정하여 등록한다.

도메인 질의 과정

도메인 질의는 /etc/resolv.conf 에 지정된 네임서버로 접속하여 아래와 같은 질의 과정을 거치게 된다.

1) 클라이언트(브라우저)에서 /etc/resolv.conf 에 지정되있는 네임서버로 www.yahoo.com에 대한 요청을 전달한다.

2) 일반 네임서버는 루트네임서버의 IP주소를 기록한 'hint 파일'을 가지고 있는데 이것을 참조하여 루트네임서버에www.yahoo.com에 대한 요청을 전달한다. 루트네임서버는 최상위네임서버들의 네임서버명(NS레코드)과 IP주소(A레코드)를 가지고 있는데 이를 글루레코드(glue record)라고 한다. 이 글루레코드를 참조하여 .com네임서버를 참조하라고 응답한다(루트 네임서버는 전세계에 13개뿐이다).

3) .com네임서버에는 .com을 최상위도메인으로 사용하는 도메인들의 글루레코드를 가지고 있기에 이를 참조하여 www.yahoo.com의 네임서버를 참조하라고 응답한다.

4) yahoo.com의 네임서버는 yahoo.com 도메인에 대한 존(zone)파일을 참조하여 www.yahoo.com의 IP주소(A레코드)를 클라이언트가 최초 요청을 한 네임서버로 되돌려 준다.

5) 최초 요청을 받은 네임서버는 클라이언트에게 www.yahoo.com의 IP주소를 전송한다.  

DNS서버는 한 번 검색한 결과는 메모리의 캐시에 기록하며, 같은 정보가 요청되면 캐시에 있는 정보를 전송한다. 이때, 캐시에는 유효기간(TTL:Time To Live)이 정해져 있으므로 유효기간이 지난 정보는 캐시에서 삭제된다.