네임서버 구축을 위한 bind의 설치와 master 네임서버의 설정에 이어서 2차 네임서버의 설정에 대한 간단한 정리이다.
<1차 네임서버>
----- 중략 -----
zone "mydomain.tld" IN {
type master;
file "mydomain.tld.zone";
allow-update { 2차네임서버 ip주소; };
};
----- 중략 -----
<zone file>
$TTL 3H
@ SOA ns1.mydomain.tld. root. ( 2021050501 1D 1H 1W 1H )
IN NS ns1.mydomain.tld.
IN NS ns2.mydomain.tld.
IN A 1차 네임서버 IP
ns1 IN A 1차 네임서버 IP
ns2 IN A 2차 네임서버 IP
@ MX 10 mail.mydomain.tld.
mail IN A 메일서버 IP
www IN A 웹서버 IP
hostname IN A 호스트의 IP
존 파일의 형식은 대략 이런식일 것이다. 메일서버를 구축하지 않는다면 MX 레코드는 사용할 필요가 없을 것이고, ns1, ns2 이전에 정의했다면 @를 생략할 수 있을 것이다.
해당 도메인에 대한 2차 네임서버의 설정은 아래와 같다.
<2차 네임서버>
----- 중략 -----
zone "mydomain.tld" IN {
type slave;
masters { 1차 네임서버 IP주소; };
file "mydomain.tld.zone";
};
----- 중략 -----
<zone file>
$TTL 3H
@ SOA ns2.mydomain.tld. root. ( 2021050501 1D 1H 1W 1H )
IN NS ns2.mydomain.tld.
IN A 2차 네임서버 IP
ns2 IN A 2차 네임서버 IP
@ MX 10 mail.mydomain.tld.
mail IN A 메일서버 IP
www IN A 웹서버 IP
hostname IN A 호스트의 IP
zone 파일의 ownership은 named.named 이나 named.root로 named 대몬에게 있어야만 1차 네임서버와의 동기화가 가능해지며, named에게 소유권이 없다면 아래와 같은 권한이 없어서 발생하는 permission denied오류가 발생한다. (1차 네임서버와의 동기화를 위해서 2차 네임서버의 zone파일을 수정해야 하는데 대몬에게 수정할 권한이 없기 때문에 당연히 발생할 수 밖에 없다.)
[root@localhost named]# systemctl status named -l
● named.service - Berkeley Internet Name Domain (DNS)
Loaded: loaded (/usr/lib/systemd/system/named.service; enabled; vendor preset: disabled)
Active: active (running) since Fri 2021-05-07 09:11:00 KST; 5s ago
Process: 2683 ExecStop=/bin/sh -c /usr/sbin/rndc stop > /dev/null 2>&1 || /bin/kill -TERM $MAINPID (code=exited, status=0/SUCCESS)
Process: 2700 ExecStart=/usr/sbin/named -u named -c ${NAMEDCONF} $OPTIONS (code=exited, status=0/SUCCESS)
Process: 2695 ExecStartPre=/bin/bash -c if [ ! "$DISABLE_ZONE_CHECKING" == "yes" ]; then /usr/sbin/named-checkconf -z "$NAMEDCONF"; else echo "Checking of zone files is disabled"; fi (code=exited, status=0/SUCCESS)
Main PID: 2701 (named)
CGroup: /system.slice/named.service
└─2701 /usr/sbin/named -u named -c /etc/named.conf -4
May 07 09:11:00 localhost.localdomain named[2701]: zone careinfo.kr/IN: sending notifies (serial 2020112201)
May 07 09:11:00 localhost.localdomain named[2701]: zone ebomun.com/IN: Transfer started.
May 07 09:11:00 localhost.localdomain named[2701]: transfer of 'ebomun.com/IN' from 141.164.49.202#53: connected using 1.234.16.131#48156
May 07 09:11:00 localhost.localdomain named[2701]: managed-keys-zone: Key 20326 for zone . acceptance timer complete: key now trusted
May 07 09:11:00 localhost.localdomain named[2701]: resolver priming query complete
May 07 09:11:00 localhost.localdomain named[2701]: zone ebomun.com/IN: transferred serial 2021042901
May 07 09:11:00 localhost.localdomain named[2701]: zone ebomun.com/IN: transfer: could not set file modification time of 'ebomun.com.zone': permission denied
May 07 09:11:00 localhost.localdomain named[2701]: transfer of 'ebomun.com/IN' from 141.164.49.202#53: Transfer status: success
May 07 09:11:00 localhost.localdomain named[2701]: transfer of 'ebomun.com/IN' from 141.164.49.202#53: Transfer completed: 1 messages, 8 records, 209 bytes, 0.004 secs (52250 bytes/sec)
May 07 09:11:00 localhost.localdomain named[2701]: zone ebomun.com/IN: sending notifies (serial 2021042901)
[root@localhost named]#
파일의 소유권을 named.named로 변경하여 해결할 수 있으며, 보다 좋은 방법은 (bind-chroot를 설치했다면) zone파일의 위치를 /var/named에서 /var/named/chroot/var/named로 옮기는 것이다. (bind-chroot는 현재의 글을 편집하여 내용을 추가 정리하든지 별도로 정리할 계획이다.) 또한 2차 네임서버에서 언급한 ebomun.com에 대해서는 별도로 정리할 내용도 있다!
참고로 2차, 3차 서브도메인을 만들기 위한 네임서버의 (위임) 설정에 대해서는 아래의 글을 참고하자.
2022.05.19 - [Linux/DNS server] - 1,2,3차,..(n)차 서브도메인을 만들기 위한 네임서버[bind] 설정
'Linux > DNS server' 카테고리의 다른 글
1,2,3차,..(n)차 서브도메인을 만들기 위한 네임서버[bind] 설정 (0) | 2022.05.19 |
---|---|
네임서버를 직접 운영하는 이유 (feat. 한글도메인) (0) | 2021.06.17 |
DNSSEC (0) | 2020.11.30 |
네임서버의 기본 보안 설정 - bind (0) | 2020.02.12 |
DNS 서버의 최소 보안설정에 대해서... (0) | 2020.01.23 |
댓글