DNS Server는 도메인 네임을 IP 주소로 변환하는 작업을 담당한다.

도메인 네임은 사용자가 인터넷 접속을 할 때 사용하는 알기 쉬운 문자로 만들어진 주소이며, DNS의 순방향 질의와 역방향 질의를 통하여 DNS 응답 메시지를 받을 수 있다.

 

아래 그림은 DNS의 동작 형태를 설명한다.
실선은 DNS 순방향 질의과정(DNS Forward Lookup)을 보여주고, 점선은 DNS 역방향 질의과정(DNS Reverse Lookup)을 보여준다.
이때 순방향 질의는 도메인 네임을 이용하여 IP 주소로 변환하는 과정이고, 역방향 질의는 IP 주소를 이용하여 도메인 네임으로 변환하는 과정이다.

 

 

 

아래 그림은 존 파일의 구조를 보여준다.
순방향 질의는 도메인 네임을 순방향 존 파일에서 정보를 검색한 후 해당 IP 주소로 변환하여 응답해준다.
그리고 역방향 질의는 IP 주소를 역방향 존 파일에서 검색한 후 도메인 네임으로 변환하여 응답해준다.

 

 

 

이번 포스팅의 DNS Server 구축 및 테스트 환경 구성은 아래 그림과 같다.

 

 

 

Web Server인 192.168.0.102 서버에 접속하면, 다음과 같이 Apache2의 메인 페이지가 동작하는 것을 확인할 수 있다.

이를 DNS Server를 구축하여 도메인 네임(http://programist.com)으로 접속 가능하도록 아주 간단한 환경 구축 및 테스트를 설명한다.

 

 

 

  - Bind 패키지 설치

$ sudo apt-get install bind9 bind9utils bind9-doc 


 

 

  - IPv4 모드 설정

$ sudo vi /etc/default/bind9

 

 

 

  - 로컬 존 파일 환경 구성

$ sudo vi /etc/bind/named.conf

 

  - 순방향 존 파일 파일 경로 설정

    = 순방향 존 파일은 사용할 도메인네임을 지정하여 작성한다.

 

 

  - 역방향 존 파일 경로 설정

    = 역방향 존 파일은 사용할 DNS 서버의 IP를 역으로 지정하여 작성한다.

      ex)192.168.0.xxx이 사용할 DNS 서버의 IP 주소라면 역으로 0.168.192.in-addr.arpa로 작성한다. 

 

 

 

    = 수정된 named.conf는 아래와 같다.

 

 

 

  - BIND 설정 구문 검사

$ sudo named-checkconf


    = named.conf 설정에 대한 구문이 올바르게 작성되었다면 아래와 같이 메시지가 뜨지 않는다.

 

 

 

    = named.conf 설정에 대한 구문이 올바르게 작성되지 않았다면 아래와 같이 오류 메시지가 출력되는 것을 확인할 수 있다.

 

 

 

  - named.conf에서 작성된 경로인 "/etc/bind/zones" 디렉토리를 생성

$ sudo mkdir /etc/bind/zones

 

  - 순방향/역방향 존 파일 템플릿을 복사 

$ cp /etc/bind/db.local db.programist.com

$ cp /etc/bind/db.local db.192.168.0 


/etc/bind/db.local 파일에서 복사한 기본 템플릿은 아래와 같다.

 

 

 

  - 순방향 존 파일 작성

$ sudo vi /etc/bind/zones/db.progrmist.com

 

DNS Server IP는 192.168.0.101이며, Web Server IP는 192.168.0.102이므로 다음과 같이 존 파일을 수정한다.

다음과 같은 설정으로 ns.programist.com은 192.168.0.101으로 매핑될 것이며,

programist.com, www.programist.com는 192.168.0.102로 매핑되어 동작할 것이다.

 

 

 

  - 역방향 존 파일 작성

$ sudo vi /etc/bind/zones/db.192.168.0

 

순방향과 동일하게 매핑하여 192.168.0.101는 ns.programist.com으로 192.168.0.102는 programist.com, www.programist.com으로 작성한다.

 

 

 

  - 작성된 순방향/역방향 존 파일 구문 검사

$ sudo named-checkzone programist.com db.programist.com

 

 

 

$ sudo named-checkzone 0.168.192.in-addr.arpa db.192.168.0

 

 

  - BIND Service 재시작

$ sudo service bind9 restart

 

  - Client의 /etc/resolv.conf 설정 변경

$ sudo vi /etc/resolv.conf


Client에서 DNS Server의 도메인 네임 질의를 위하서 DNS 서버의 IP 주소와 도메인 네임을 변경한다.

 

 

 

  - nslookup를 활용한 순방향 DNS 조회

$ sudo nslookup programist.com

 

 

 

  - nslookup를 활용한 역방향 DNS 조회

$ sudo nslookup 102.168.0.101 


 

  - dig을 활용한 순방향 DNS 조회

$ sudo dig programist.com

 

 

 

  - dig을 활용한 역방향 DNS 조회

$ sudo dig 192.168.0.101

 

 

 

$ sudo dig 192.168.0.102

 

 

 

  - Client 웹 브라우저에서의 도메인 네임으로 Web Server 접근

 

 

 

테스트 환경 : Ubuntu 16.04

 

+ Recent posts