일단 centos7 을 dns 서버로 설치하였다.
dns 서버로 설치하였으므로 이미 bind* 패키지가 설치되어 있다.
** 가정
dns서버는 ns1.aaaa.com 111.111.111.111 이라하고
이 dns서버에서 처리할 도메인(zone)은 aaaa.com bbbb.co.kr 이라고 가정한다.
** bind 패키지 설치
** hostname 영구 설정
hostnamectl set-hostname ns1.aaaa.com
이 파일 수정하면 /etc/resolv.conf 가 바뀌더라.
hostname ns1.aaaa.com 이렇게만 해버리면 다음 부팅 때 원복된다 그랬나?
** /etc/named.conf 수정
listen-on port 53 { any; };
allow-query { any; };
자세한 내용은 인터넷에서
** /etc/named.rfc1912.zones 수정. 도메인(zone) 설정
이 파일은 /etc/named.conf 하단에 보면 include 설정이 되어 있다.
이 파일의 맨 마지막에 설정하고자 하는 zone 을 설정한다.
zone 파일(forward. 도메인으로 ip 찾아가기)만 설정하고
rev 파일(reverse. ip 로 도메인 찾아가기)은 설정할 필요가 없단다.
zone "aaaa.com" IN {
type master;
file "aaaa.com.zone";
allow-update { none; };
};
zone "bbbb.co.kr" IN {
type master;
file "bbbb.co.kr.zone";
allow-update { none; };
};
** vi /var/named/aaaa.com.zone
$TTL 값을 짧게 설정해서 당분간은 변경내용이 바로바로 등록되도록 한다.
$TTL 10M; default 1D
한국통신 dns 보관 기간. 너무 작으면 dns 서버 과부하 나므로 주의하란다.
https://www.linux.co.kr/home/lecture/?leccode=374
@ IN SOA ns1.aaaa.com. webmaster.mailserver1.com. (
2018030801 ; serial
10M ; refresh
1H ; retry (default 1D)
1W ; expire
3H ) ; minimum
IN NS ns1.aaaa.com.
IN MX 10 mail.mailserver1.com.
IN A 222.222.222.111
mail IN A 222.222.222.111
blog IN A 222.222.222.111
music IN A 222.222.222.333
www IN A 222.222.222.333
ftp IN A 222.222.222.333
** vi /var/named/bbbb.co.kr.zone
@ IN SOA ns1.aaaa.com. webmaster.mailserver1.com. (
2018030801 ; serial
10M ; refresh
1H ; retry (default 1D)
1W ; expire
3H ) ; minimum
IN NS ns1.aaaa.com.
IN NS ns2.aaaa.com.
IN MX 10 mail.mailserver1.com.
IN A 333.333.333.111
ftp IN A 444.444.444.333
aaa IN A 444.444.444.333
bbb IN A 444.444.444.333
** zone 파일 설명
소유자.그룹이 root.named 이어야 한다.
chown root.named /var/named/aaaa.com.zone
;(세미콜론은 주석)
@ 은 /etc/named.rfc1912.zones 파일에서 설정했던
zone "aaaa.com" IN {
"aaaa.com" 요부분이다. 실제로는 aaaa.com. 이다. 마지막 .(점) 주의
예를 들어
** zone 파일 설명(SOA 파트)
@ IN SOA ns1.aaaa.com. webmaster.mailserver1.com. (
에서
@ 는 도메인명(zone) 이고
SOA 는 이 zone 의 시작 소유권이며
ns1.aaaa.com. (마지막 점 주의)는 primary nameserver 를 적고
webmaster.mailserver1.com. 는 관리자 이메일이다. webmaster@mailserver1.com 이지만 @ 는 다른 용도로 쓰이므로 . 으로 데체
SOA 나머지 부분은 인터넷에서 찾아보세요
** zone 파일 설명(NS 파트)
IN NS ns1.aaaa.com.
IN NS ns2.aaaa.com.
이 zone(도메인, bbbb.co.kr
)의 1차 2차 nameserver 설정
** zone 파일 설명(MX 파트)
IN MX 10 mail.mailserver1.com.
인터넷에서 찾아보세요
** zone 파일 설명(A 파트)
IN A 333.333.333.111 ;bbbb.co.kr 로 접속하면 333.333.333.111 로 가라
ftp IN A 444.444.444.333 ;ftp.bbbb.co.kr 로 접속하면 444.444.444.333 로 가라
aaa IN A 444.444.444.333 ;aaa.bbbb.co.kr 로 접속하면 444.444.444.333 로 가라
bbb IN A 444.444.444.333 ;bbb.bbbb.co.kr 로 접속하면 444.444.444.333 로 가라
** zone 파일 자세한 설명
https://www.linux.co.kr/home/lecture/?leccode=374
** 파일 검증
named-checkconf /etc/named.conf
named-checkconf -z /etc/named.conf
named-checkzone aaa.bbbb.co.kr /var/named/bbbb.co.kr.zone
** named (dns 데몬) 재시작
service named restart
service named start
service named stop
service named status -l
** dns 서버는 53 포트를 사용하므로 아래와 같이 53 포트를 tcp udp 모두 열어주어야 한다.
# firewall-cmd --permanent --zone=public --add-port=53/tcp
# firewall-cmd --permanent --zone=public --add-port=53/udp
또는
# firewall-cmd --permanent --zone=public --add-service=dns
# firewall-cmd --reload
** 내 로컬 윈도우에서 테스트하기
제어판 network 설정 ip4 속성에서 dns 를 111.111.111.111(예제) 로 바꾸고
브라우저 새로 열어 http://aaa.bbbb.co.kr 접속해보기
nlslookup - 111.111.111.111