[CentOS 8] DNS 서버

1. DNS 설정 파일

/etc/named.conf : 네임서버 주 설정 파일

/etc/named.rfc1912.zones : 존 정보 설정 파일

/etc/named.root.key : DNSSEC에서 루트 존을 위해 사용되는 DNSKEY가 보관됨

/var/named : 네임서버의 데이터베이스 파일(존 파일)을 보관하는 디렉토리

/etc/resolv.conf : 사용하는 네임서버 주소

/etc/host.conf : 호스트 정보를 찾는 우선순위가 정의된 파일

​ multi on -> 도메인 정보를 찾는 순위가 hosts, bind

​ order bind,hosts-> 도메인 정보를 찾는 순위가 bind, hosts

​ alert -> IP 스푸핑 시도를 syslog 파일에 저장

2. DNS 서버 구축

yum -y install bind bind-utils bind-libs

  1. /etc/named.conf 수정
  2. /etc/named.rfc1912.zones 수정
  3. /var/named/존파일 수정
  4. 도메인 설정 체크
  5. 방화벽 설정

1) /etc/named.conf

options {}

listen-on : bind 데몬이 listen할 포트와 인터페이스 주소

allow-query : dns 쿼리 질의를 허용할 인터페이스 주소

recursion : 자기가 관리하지 않는 도메인에 대한 요청이 들어오면 대답할 것인지

forwarders : 자기가 관리하지 않는 도메인에 대한 요청이 들어오면 어디로 포워딩 할것인지

forward only : 포워드 서버가 응답이 없을 경우 자신도 응답하지 않는다

​ first : 포워드 서버가 응답이 없으면 자신이 응답한다.

recursion 과 forwarders의 차이

recursion은 자기가 모르는 도메인에 대한 요청이 들어오면 자기가 recursive하게 쿼리를 보내 정보를 알아내 응답해준다.

forwarders는 클라이언트로부터 온 dns 쿼리를 다른 dns 서버에게 전달한다.

zone “.” IN {} : 참조할 루트 힌트가 작성되어있는 파일명을 가리킴. 이 파일에는 전세계 루트 도메인에 대한 정보가 있다.

2) /etc/named.rfc1912.zones

type master : 해당 존에 대한 마스터 서버

​ slave : 해당 존에 대한 보조서버

​ forward : 해당 존에 대한 질의를 다른 서버로 포워드

​ hint : 루트 도메인 서버 지정

file : /var/named/ 밑에 도메인에 대한 실제 정보가 있는 파일

allow-update : 동적 업데이트를 허용할 IP 주소, 보조서버의 IP 적음

allow-transfer : 존파일 전송을 허용할 IP 주소, 보조서버의 IP 적음

masters : 해당 서버가 보조서버일 경우 마스터 서버 주소를 적음

# Master Server
-------------------------------------------------------
zone "chul.com" IN {
        type master;
        file "chul.zone";
        allow-update { 192.168.111.200; };
        allow-transfer { 192.168.111.200; };
};

zone "111.168.192.in-addr.arpa" IN {
        type master;
        file "100.zone";
        allow-update { 192.168.111.200; };
};

# Slave Server
---------------------------------------------------------
zone "chul.com" IN {
        type slave;
        file "chul.zone.slave";
        masters { 192.168.111.100; };
};
zone "111.168.192.in-addr.arpa" IN {
        type slave;
        file "100.zone.slave";
        masters { 192.168.111.100; };
};

3) /var/named/존파일

# chul.zone
--------------------------------------------------------
$TTL 1D
# @는 /etc/named.rfc````에서 지정된 이름, 여기선 chul.com을 의미
	    #네임서버주소      #관리자이메일
@  IN SOA ns.chul.com. admin.chul.com. (
         2019122701      ; serial
         1D              ; refresh  slave와 master가 데이터를 동기화하는 기간
         1H              ; retry    master가 응답이 없으면 1시간동안 다시 확인
         1W              ; expire   그걸 1주일동안 반복
         3H )            ; minimum  이 zone파일을 복제해간 캐싱 dns 서버는 적어도 3시간 동안 이 zone파일을 보관한다.
 
         NS      ns.chul.com.
         NS		 ns2.chul.com.
         MX 10   ms.chul.com.
         IN A    192.168.111.100
ns      IN A    192.168.111.100
ns2		IN A	192.168.111.200
ms      IN A    192.168.111.100
www     IN A    192.168.111.100
ftp     IN A    192.168.111.100
web     IN CNAME www
# 100.zone
---------------------------------------------------------
$TTL 1D
@  IN SOA ns.chul.com. root.chul.com. (
         2019122701      ; serial
         1D              ; refresh
         1H              ; retry
         1W              ; expire
         3H )            ; minimum

        NS      ns.chul.com.
        NS		ns2.chul.com.
        MX 10   ms.chul.com.
        PTR     chul.com.
100     PTR     ns.chul.com.
200		PTR		ns2.chul.com.
100     PTR     ms.chul.com.
100     PTR     www.chul.com.
100		PTR		ftp.chul.com

4) 설정 체크

chown root.named /var/named/존파일

named-checkconf /etc/named.rfc1912.zones

named-checkzone 도메인 /var/named/존파일

5) 방화벽 해제

53/udp : 단일 dns 서버일 경우 사용

53/tcp : master와 slave 사이에서 사용

카테고리:

업데이트:

댓글남기기