본문 바로가기

OS,Network,Container

CentOS7 DNS 서버 구축 #2 - Master 서버 구축

반응형

CentOS7 DNS 서버 구축 2편 - DNS Master 서버 구축

 

 

 

개념, 원리에 대해 알고싶으신 분은 아래 URL로 들어가서 보고 와주시면 됩니다.

 

리눅스 DNS 서버 구축 #1 -DNS 서버 개념, 원리

 

리눅스 DNS 서버 구축 #1 - Name Server 개념, 원리

CentOS7 DNS 서버 구축 1편 - 개념, 원리 DNS(Domain Name Service) 도메인 네임을 IP 주소로 변환해주거나 IP주소를 도메인 이름으로 변환해주는 서비스이다. 웹서버에 접속하기 위해서는 IP주소로 접속해야만 하..

nyyang.tistory.com

 

 

 

 

 [ 서버 구축 환경 ] 

Master 서버 IP : 192.168.5.3

Slave 서버   IP : 192.168.5.4

 

 

[ Master DNS 구축 순서 ]

 

workstation 가상사설망이므로 Reverse Zone 설정은 하지 않았습니다.

 

1. Bind, Bind-utils 설치

 

2. Name Server 설정 파일

 

/etc/named

/etc/named.rfc1912.zones

/var/named/ Zone 관련 파일

 

3. 설정 파일 문법 오류 체크

 

4. DNS Firewall Port Open

 

5. named 대몬 재실행, 활성화

 

 

 


[ Bind 설치 ]

 

 

 

[root@localhost ~]# yum -y install bind bind-utils

[root@localhost ~]# rpm -qa | grep bind
bind-9.11.4-9.P2.el7.x86_64
bind-pkcs11-utils-9.11.4-9.P2.el7.x86_64
bind-export-devel-9.11.4-9.P2.el7.x86_64
bind-devel-9.11.4-9.P2.el7.x86_64
bind-export-libs-9.11.4-9.P2.el7.x86_64
bind-utils-9.11.4-9.P2.el7.x86_64
bind-license-9.11.4-9.P2.el7.noarch
bind-libs-lite-9.11.4-9.P2.el7.x86_64
bind-pkcs11-libs-9.11.4-9.P2.el7.x86_64
bind-lite-devel-9.11.4-9.P2.el7.x86_64
bind-sdb-9.11.4-9.P2.el7.x86_64
bind-dyndb-ldap-11.1-6.el7.x86_64
bind-pkcs11-devel-9.11.4-9.P2.el7.x86_64
bind-chroot-9.11.4-9.P2.el7.x86_64
bind-libs-9.11.4-9.P2.el7.x86_64
bind-pkcs11-9.11.4-9.P2.el7.x86_64
bind-sdb-chroot-9.11.4-9.P2.el7.x86_64

[root@localhost ~]# systemctl restart named

[root@localhost ~]# systemctl enable named
Created symlink from /etc/systemd/system/multi-user.target.wants/named.service to /usr/lib/systemd/system/named.service.

 

 

 

 

 

 [ 설정 파일 편집 ]  

 

1. /etc/named.conf

 

[root@localhost ~]# vi /etc/named.conf

아래 빨간 네모 부분을 아래와 같이 수정해주자.

 

 

바꾼 부분만 설명드리겠습니다.

listen-on port 53 { 127.0.0.1; };

DNS Port인 53번으로 어떤 IP가 접근할 수 있는지에 대한 설정이다.
127.0.0.1은 자기 자신이므로 any;로 변경해주어 누구든지 해당 포트로 접근할 수 있도록 설정

 

listen-on-v6 port 53 { ::1; };

위와 동일. IPv6 사용 안하므로 none이라고 해버림

 

allow-query        { localhost; };

Query Request가 들어올 시 Allow(허용)할지 안하지를 설정하는 곳.
any로 변경해주자.

 

allow-transfer  { localhost; 192.168.5.4; };

원래 없는데 Slave 서버를 운용할 예정이라면 추가해주자.
192.168.5.4; 를 추가해줬음

 

recursion yes:

Recursion이 '반복'이란 뜻이므로 Query에 대한 요청을 할지 안할지 설정.
사설 DNS 서버인 경우 no를 하며, 그 외에 경우는 yes를 설정해줘야함.

이번 실습은 단지 'Domain Name -> IP Address'로 변경시켜주는 Name Server 구축이 목적이지
Local Name Server 구축의 목적이 아니므로 no를 하자.

추후 yes로 바꾸면 어떤식으로 변하는지도 설명하겠음

 

 

 

 

 

2. /etc/named.rfc1912.zones 설정

 

 

[root@localhost ~]# vi /etc/named.rfc1912.zones

 

 

 

파일 맨 아래에 내용 추가

zone "testdns.com" IN {					// 
        type master;					// master 서버
        file "inverse.testdns.com.zone";		// 'testdns.com.zone'을 /var/named/에 만들어줘야 함
        allow-update { none; };				// 업데이트 ㄴㄴ
        allow-transfer { 192.168.5.4; };		// transfer slave에게 허용
};

 

 

 

캡쳐본임

 

 

 

 

[ /var/named/ 내에서 Zone 파일 생성 후 설정 ]

 

 

 

1. 디렉터리 이동

 

named.empty나 named.localhost에서 Zone 파일 설정 예시를 볼 수 있다.

/var/named/디렉터리 내에 /etc/named.rfc1912.zones파일 설정할 당시 파일이름 선언해준 것을 이곳에 생성 후 설정한다.

[root@localhost ~]# cd /var/named/
[root@localhost named]# ls
chroot      data     dyndb-ldap  named.empty      named.loopback
chroot_sdb  dynamic  named.ca    named.localhost  slaves
[root@localhost named]#

 

 

Zone 파일 설정 내용이다.

출처 : 후티 블로그

 

 

 

 

 2. Zone File 설정

 

[root@localhost named]# touch testdns.com.zone
[root@localhost named]# vi testdns.com.zone

 

 

 

 

 

 

 

 [ 설정 파일 문법 오류 체크 ] 

 

 

1. /etc/named.conf

 

아무런 말이 없으면 정상임

 

[root@localhost named]# named-checkconf /etc/named.conf
[root@localhost named]#

 

 

 2. Zone 파일 

 

뭔가 오류가 있음. mail.testdns.com에 address 레코드가 없다..

[root@localhost named]# named-checkzone testdns.com /var/named/testdns.com.zone
zone testdns.com/IN: testdns.com/MX 'mail.testdns.com' has no address records (A or AAAA)
zone testdns.com/IN: loaded serial 20200407
OK

 

 

수정 전

 

 

수정 후

 

 

정상으로 바뀜

[root@localhost named]# named-checkzone testdns.com /var/named/testdns.com.zone
zone testdns.com/IN: loaded serial 20200407
OK

 

 

 

 

 

 

[ Firewall 설정 ]

 

 

DNS는 보통 udp로 작동하지만 tcp 포트도 추가해주었다.

[root@localhost named]# firewall-cmd --permanent --zone=public --add-port=53/udp
success

[root@localhost named]# firewall-cmd --permanent --zone=public --add-port=53/tcp
success

[root@localhost named]# firewall-cmd --reload
success

[root@localhost named]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: ens33
  sources:
  services: dhcpv6-client ssh
  ports: 22/tcp 53/tcp 53/udp
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

 

 

 

 

 

 

  [ 대몬 재실행 및 활성화 ]

 

[root@localhost named]# systemctl restart named
[root@localhost named]# systemctl enable named

 

 

 

 

 

 

이로써 일단 Master Server 구축은 완료했다.

 

다음편에는 Slave Server 구축과 nslookup을 통해 dns 서버가 잘 작동되고 있는지 확인해보겠다.

반응형