관리 메뉴

지식잡식

[리눅스] DNS 네임서버 설정 본문

IT 실무/리눅스

[리눅스] DNS 네임서버 설정

아이들링 2018.03.07 01:58

우리가 브라우저에 도메인을 입력하고 웹사이트에 접속 하는 것은, 누군가가 그 도메인이 어떤 아이피로 향하는지를 알려주기 때문에 가능한 것이다. 모든 호스트는 공인IP라는 주소가 필요하며, 도메인은 주소가 아닌 일종의 별칭이다. 예를 들어 "홍길동 집" 이라고 목적지를 세팅하면 "서울시 성북구 무슨동 무슨아파트 101동 1202호" 라고 상세한 주소를 알려주는 일종의 주소록이 필요한 것이다.


그 역할을 하는 것이 DNS이다. 실제로 kr도메인이든 com도메인이든 도메인을 구입하면 네임서버를 적도록 되어 있다. 기본적으로 도메인을 판매하는 기관에서 세팅된 네임서버를 제공하지만 필요한 경우 직접 구축할 수도 있을 것이다. 그런 네임서버가 정확히 말하면 DNS서버이다. 구매한 도메인으로 접속 시 어떤 아이피로 접속이 되어야 하는지를 알려주는 서버인 것이다.



도메인을 판매하는 사이트들은 다 이렇게 기본적으로 구축되어 있는 네임 서버를 제공한다. 모든 사용자가 네임서버를 구축할 여력이 안되니 기본적인 설정되어 있는 네임서버를 지원해 주는 것이다.


1차 ~ 4차까지 있는데 이는 안전성을 위한 것이다. 네임서버는 아래와 같이 나뉠 수 있다.


Primary Name Server : Master DNS라 부른다. 가장 먼저 참조되는 네임서버이다.

Secondary Name Server : Slave DNS라고도 부른다. Master DNS의 zone파일을 백업해두고 Master DNS가 다운되는 등의 유사시에 참조된다.

Caching Name Server : 도메인 관리 없이 리졸빙만 캐싱한다. 속도 향상을 위한 보조 네임서버이다.



리눅스 기반의 DNS는 bind 프로그램을 주로 사용한다.


bind기반의 DNS는 크게 named.conf와 zone파일들로 구성되어 있다.



/etc/named.conf


directory    "/var/named";

# zone파일이 위치한 디렉터리이다.


dump-file "/var/named/data/cache_dump.db";

# 실질적으로 참조하는 db파일의 위치이다.


forward only|first


forwarders { 주소; 주소2; .. }

allow-query { 주소 }


zone "도메인명" IN {

  type (master | slave | hint);

  file "존 파일명";

};

# 도메인별로 zone파일의 지정하는 구문


# 주석은 /* */, //도 사용 가능하다.



*.zone


기본구조

$TTL    1D

@ IN SOA nameserver contact-email-address (

serial_number    ; serail

refresh_number    ; refresh

retry_number    ; retry

expire_number    ; expire

minimum_number )     ;minimum

)

도메인    TTL    class    tyle    Rdata


zone파일 예시


# vi example.zone


@        IN    SOA      q.fran.kr.   contact.fran.kr.  (

                    20010504            ; serial

                    10800               ; refresh

                    3600                ; retry

                    3600000             ; expire

                    43200  )            ; mininum

          IN   NS        name.fran.kr

          IN    A          192.168.123.254

          IN    MX 10     mail.fran.kr

www     IN    A          192.168.123.254

www1    IN   CNAME    www


CNAME은 alias를 지정하는 건데, 쉽게 생각해서 일종의 링크나 포워딩으로 생각해주면 된다. www1로 접속하면 그냥 www로 보내 버리는 것이다.


10800, 3600 과 같이 적혀 있는 것은 refresh, retry 등의 시간을 초로 표현한 것이다. 꼭 초로 표현할 필요는 없다.

3H, 2D, 1W 등으로도 표현 가능하다.


reverse zone파일 예시


# vi revexample.zone


@        IN    SOA      ns1.rootman.co.kr.   yunil.rootman.co.kr.  (

                    20010504            ; serial

                    10800               ; refresh

                    3600                ; retry

                    3600000             ; expire

                    43200  )            ; mininum

22      IN   PTR       q.fran.kr


역존 파일은 존파일과 구성이 동일하나 PTR(PoinTer Record)라는 별도의 type을 쓴다. 도메인을 IP로 바꾸는 것이 아니라 IP를 도메인으로 바꿔주는 것이다.



관련 유틸

named_checkconf : named.conf의 문법적 오류를 찾는다.

named_checkzone : zone파일의 문법적 오류를 찾는다.

0 Comments
댓글쓰기 폼