본문 바로가기

Linux

DNS 서버 세팅

DNS

네트워크에서 도메인이나 호스트 이름을 숫자로 표기된 IP 주소로 해석해주는

TCP/IP 네트워크 서비스를 의미

bind

DNS서버를 구축 및 운영하기 위한 표준 서버 데몬 프로그램

유닉스 및 리눅스, 윈도우 등 거의 모든 플랫폼을 지원하는 DNS의 모든 기능을 갖춘 소프트웨어

참고

https://server-talk.tistory.com/177

https://hoing.io/archives/8559

캐싱 네임서버 설정

설치

[master@server1 yum.repos.d]$ sudo dnf install -y bind bind-utils

<aside> 💡 /etc/named.conf

네임서버 데이터베이스 및 zone 파일의 위치, 접근제어등의 보안설정을 할 수 있는 메인 설정파일

</aside>

vi /etc/named.conf

options {
        listen-on port 53 { any; }; //53번 포트 외부 허
        listen-on-v6 port 53 { none; };
        directory       "/var/named";
        dump-file       "/var/named/data/cache_dump.db";
        statistics-file "/var/named/data/named_stats.txt";
        memstatistics-file "/var/named/data/named_mem_stats.txt";
        secroots-file   "/var/named/data/named.secroots";
        recursing-file  "/var/named/data/named.recursing";
        allow-query     { localhost; };

IPv6 끄기 : vi /etc/sysconfig/named

마지막에추가
OPTIONS=-4

설정 적용

systemctl enable --now named
firewall-cmd --permanent --add-service=dns
firewall-cmd --reload

<aside> 💡 /etc/named.rfc1912.zones

네임서버에 쿼리 요청시 사용할 도메인 정보(정방향 영역과 역방향영역)을 설정해야될 부분

</aside>

vi /etc/named.rfc1912.zones 

zone "server.vm" IN {   //정방향 설정
        type master;
        file "server.vm.zones";
        allow-update { none; };
};

zone "255.168.192.in-addr.arpa" IN {   //역방향 설정
        type master;
        file "server.vm.rev";
        allow-update { none; };
};
zone file 생성 및 권한설정

cd /var/named
cp named.localhost [정방향 DNS zone file명 ]
cp named.localhost [역방향 DNS zone file명 ]

chmod 640 [dns zone file]
chgrp named [dns zone file] 그룹변경

<aside> 💡 /var/named/[도메인].zone

네임서버 설정시 가장 중요한 도메인 정보 파일이며 네임서버를 가동시에 zone 파일을 읽어 네임서버 서비스가 가동되며, zone 파일은 도메인을 IP 주소로 변환해 주는 역할을 함

</aside>

vi /var/named/server.vm.zones

$TTL 1D
@   	IN SOA	ns.server.vm. pngyu.naver.com. (
								0	   ; serial	  //시리얼값
								1D	 ; refresh	//보조 네임서버가 주 네임서버에 접속하는 시간
								1H	 ; retry		//접속 실패시 다시 시도할 시도 간격
								1W	 ; expire	  //주네임서버에서 데이터가 없다면 1주 이후에 지워짐
								3H ) ; minimum	//TTL 설정과 같은 의미

		  IN	NS	 	ns.server.vm			   //도메인을 소우한 주 DNS의 도메인
	    IN  MX    10 aspmx.l.google.com	 //메일을 보낼 도메인 또는 주소//설정 x
		  IN	A	    192.168.255.11				 //도메인이 찾아갈 IP주소
	www	IN	A	    192.168.255.11				 //www.도메인이 찾아갈 IP주소
	ns	IN	A	    192.168.255.11				 //주 네임서버 아이피
test	IN	CNAME	google.com.            //설정 x
레코드 정보의 의미

1. $TTL
TTL은 test.com 도메인의 정보를 캐시 네임서버에서 가져간 다음 캐시 네임서버에 
얼마나 보관할 것인가를 지정하는 시간입니다

2. @
@는 origin 도메인을 의미하는 것으로 named.conf 파일에 설정되어있는 도메인명을 의미합니다

3. SOA 레코드
SOA는 도메인에 대해 설정한 네임서버가 모든정보를 가지고 있음을 선언한 것으로
 도메인에 대한 네임서비스의 모든 권한을 의미합니다

4. Serial
Refresh, retry, Exprire, Minimum 값들은 모두 secondary 네임서버와
 primary 네임서버와의 연동을 어떻게 할 것인가에 대한 설정입니다 
대부분의 도메인 설정은 주 네임서버에서 하고 보조네임서버는 주 네임서버의 설정 값을 
주기적으로 가저가게 됩니다 주네임서버의 serial 값을 높여주게 되면 보조네임서버에서
 설정이 변경된것으로 확인해고 새로운 zone 파일로 갱신하게됩니다.

5. Refresh
보조 네임서버에서 1차 네임서버의 변경된내용이 있는지 체크하는 시간입니다

6. Retry
2차 네임서버가 1차 네임서버로의 접근이 안될때  얼마 만에 접근을 시도할 것인가를
결정하는 값입니다

7. Expire
보조 네임서버는 주 네임서버에서 동기화 과정중 retry 주기마다 지속적으로 연결을
시도하였지만 expire 시간동안 계속해서 연결이 되지 않으면 보조 네임서버는
 해당 도메인의 정보가 삭제되었거나 폐기되었다고 판단하여 그후부터 연결시도를 하지 않습니다

8. Minimum
TTL(Time to Live)를 의미하는 것으로 도메인 정보를 다른 네임서버에서 가져갔을 때에
 가져간 도메인정보를 얼마나 보관하고 있을 것인가에 대한 시간 값입니다

9. NS레코드
NS레코드는 해당 도메인의 네임서버를 지정하는 레코드 입니다

	IN	NS	ns.test.com.

10. A레코드
A레코드는 지정한 도메인의 실제로 접속할 IP 주소를 설정하는 레코드 입니다

	IN	A	192.168.65.133
www	IN	A	192.168.65.133
named.conf 설정파일 검증

[root@server1 named]# named-checkconf /etc/named.conf
[root@server1 named]# named-checkzone server.vm server.vm.zones
zone server.vm/IN: loaded serial 0
OK

nslookup 확인
[root@server1:~]# nslookup
> server 192.168.255.11
Default server: 192.168.255.11
Address: 192.168.255.11#53
> www.server.vm
Server:         192.168.255.11
Address:        192.168.255.11#53

Name:   www.server.vm
Address: 192.168.255.11

<aside> 💡 Slave Name Server 설정

</aside>

**master server**

vi /etc/named.rfc1912.zones 

zone "server.vm" IN {
        type master;
        file "server.vm.zones";
        allow-update { none; };
        allow-transfer {192.168.255.12; };  //추가
};

zone "255.168.192.in-addr.arpa" IN {
        type master;
        file "server.vm.rev";
        allow-update { none; };
        allow-transfer {192.168.255.12; };  //추가

};
---------------------------------------------------------------------------

**slave server**

vi /etc/named.conf

****master 와 동일하게 설정

**----------------------------------------**

vi /etc/named.rfc1912.zones 
****zone "server.vm" IN {
        type slave;
        file "slaves/server.vm.zones";
        masters {192.168.255.11; };
};

zone "255.168.192.in-addr.arpa" IN {
        type slave;
        file "slaves/server.vm.rev";
        masters {192.168.255.11; };

};
****
다시 설정적용

**master server**
 
systemctl restart named
systemctl enable --now named

**slave server**
systemctl restart named
systemctl enable --now named
firewall-cmd --permanent --add-service=dns
firewall-cmd --reload

아래 경로 파일들 확인 
[root@server2:~]# ls -al /var/named/slaves/
합계 8
drwxrwx---. 2 named named  50  7월 24 15:00 .
drwxrwx--T. 5 root  named 127  7월 24 15:00 ..
-rw-r--r--. 1 named named 305  7월 24 15:00 server.vm.rev
-rw-r--r--. 1 named named 273  7월 24 15:00 server.vm.zones

**nslookup 확인**

> server 192.168.255.12
Default server: 192.168.255.12
Address: 192.168.255.12#53
> www.server.vm
Server:         192.168.255.12
Address:        192.168.255.12#53

Name:   www.server.vm
Address: 192.168.255.11

dig @[도메인서버ip] server.vm

[root@server2:/var/named/slaves]# dig @192.168.255.251 server.vm
[root@server2:/var/named/slaves]# dig @192.168.255.11 server.vm
[root@server2:/var/named/slaves]# dig @192.168.255.12 server.vm

재시동걸고나서 /etc/resolve.conf 초기화될경우 아래로 고정

vi /etc/sysconfig/network-scripts/ifcfg-ens33

DNS1=192.168.255.11
DNS2=192.168.255.12
DNS2=192.168.255.251

적용
systemctl restart Network //centos8
systemctl restart NetworkManager //redhet8

'Linux' 카테고리의 다른 글

http -> https 적용법  (0) 2024.10.25
web - dns 서버 연동  (0) 2024.10.25
process 정리  (0) 2024.10.25
rpm tar 명령어 정리  (1) 2024.10.25
file system  (0) 2024.10.25