실습/[CentOS]

[CentOS] DNS서버 레코드Type 설정, Master/Slave 서버

이전 글에 DNS 서버를 간단히 구축하는 것을 포스팅하였다. 이번에는 DNS의 PTR(역방향), MX(메일서버) 레코드를 지정해보고 서버 2개를 이용하여 ZONE 파일 설정없이 Master 서버에게서 Slave 서버가 DNS 서비스를 제공할 수 있도록 설정 할 것이다.

 

DNS 조회

- 정방향 조회 : nslookup, dig 같은 유틸리티로 도메인을 입력하였을 때 

                    도메인을 -> IP 주소 로 변환하는 것이다.

- 역방향 조회 : 역방향 조회는 정방향과 반대로

                    IP주소를 -> 도메인 으로 변환해는 것이다.

 

MX 레코드

 

 

Master/Slave 서버

Master 서버 : DNS 서버를 설정하고 주로 서비스를 하는 서버로서 ZONE 파일을 생성하여 서비스 한다.

Slave 서버 : Master 서버의 ZONE 파일을 받아와 서비스를 한다.

 

 

Master NS "영역명.zone" 파일을 다운받다

slaves 디렉토리에 지정한 이름으로 저장

 

Slave NS 의 설정 파일

Slave NS : /etc/named.conf

 

ZONE "영역명" IN { ZONE "영역명" IN {

type slave;

file "slaves/영역명.bak.zone";

};

 

- 영역 전송(ZONE Transfer), TCP로 전송 -

Master 서버는 /var/named/영역명.zone 에 저장되지만

Slave 서버는 /var/named/slaves/영역명.bak.zone 으로 직접 작성하지 않고 자동으로 다운받아 생성된다.

 

 

 

 

----------------------------------------실습----------------------------------------

 

가장 먼저 구축했던 DNS 서버에 역방향 조회와 MX 레코드를 설정해보자.

 

우선

# vi /var/named/영역명.ZONE

으로 들어가서 설정한다.

파일의 내용을 설명하자면

-------------------------------------------------

                IN MX 10 mail.cgh.co.kr.

                IN MX 20 mail2.cgh.co.kr.

 

mail IN A 111.111.111.111

-------------------------------------------------

MX 레코드 설정은 위와같이 메일을 운영할 서버의 IP를 지정해주면 된다.

MX 레코드는 MX 옆의 숫자는 우선순위이다. 낮을 수록 주가 되는 메일 서버이고 높을 수록 부가 되는 서버이다.

 

메일 서버는 동일 하게 10, 10, 10 과 같이 우선순위를 같이 주는 방식과 10, 20, 30 과 같이 우선순위를 주어 주 서버가 과부화가 생길때 작동하는 방식이다.

 

 

 

 

위 처럼 설정하고 

# service named restart 

로 서버를 재시작해주고 MX 레코드를 조회해보자.

조회가 잘 되는 것을 확인하였다. 메일 서버에게 연결해주기 위해 사용하는 레코드를 간단히 알아보았다.

이번에는 역방향 조회를 설정해보자.

 

 

 

 

 

# vi /etc/named.conf

ZONE 파일을 새로 생성해줄 것이다. 역방향 조회를 설정할때 주위할 것은 

IP 주소 반대로.in-addr.arpa

라고 영역명을 지정해주어야 한다는 것이다.

type master 로 지정하고 file은 rev라는 확장자명으로 디폴트 경로에 생성하겠다는 설정이다.

다음은 역방향 zone 파일을 생성하자.

 

 

 

 

# vi /var/named/192.168.200.103.rev

와 같이 파일을 생성하고 설정해주자.

역방향 조회의 레코드는 PTR 이다. 역방향 조회 질의가 들어온다면 PTR로 ns1.cgh.co.kr 이라는 것을 알려준다는 설정이다.

 

#service named restart

후 테스트해보자.

 

이와 같이 IP주소로 질의하면 ns1.cgh.co.kr 이라는 이름을 알려준다.

 

지금까지 설정한 서버가 Master 서버이고 Slave 서버를 구축해보자.

CentOS8을 이용해서 간단히 Slave 서버를 구축해보겠다.

 

가장 먼저 Master 서버에서 Slave 서버에게 보내 줄 수 있도록 설정하겠다.

# vi /etc/named.conf

하단에 cgh.co.kr 의 마스터의 설정에

allow-update { Slave 서버 IP주소; };

를 입력하여 Slave가 zone 파일을 가져갈 수 있도록 허용해주었다.

 

그리고 zone 파일의 전송은 TCP 53번 포트로 전송되니 TCP/UDP 의 53번 포트를 모두 열어주자.

# iptables -I INPUT -p tcp --dport 53 -j ACCEP

# iptables -I INPUT -p udp --dport 53 -j ACCEP

 

 

 

 

 

이번에는 Slave 서버 역할을 할 서버를 설정해주자.

(Slave) # vi /etc/named.conf

이와 같이 Master 서버와 비슷하게 간단한 기본설정만 맞추고 밑에 ZONE 파일을 추가해주자.

 

type은 Slave 서버로 작동하겠다.

file은 /var/named/slaves/ 디렉토리에 cgh.co.kr.bak.zone 이라는 파일로 생성하겠다.

masters 는 Master 서버의 주소를 지정하여 Master에게 zone 파일을 받아오는 것이다.

 

그리고 CentOS8(Slave 서버) 가 Master 서버와 통신을 해야하기 때문에 방화벽도 열어주자.

# firewall-cmd --add-port=tcp/53

# firewall-cmd --add-port=udp/53

 

그리고 named 서비스를 실행해주자.

# systemctl restart named

 

※ CentOS 8 은 방화벽 설정과 서비스 실행 방법이 다름.

 

Slave 서버에서 Slave 파일을 확인해보고 있다면 DNS 서비스를 할 수 있다.

경로는 /var/named/slaves 디렉토리에 생성된다.

 

테스트로 윈도우에서 Slave 서버방향으로 MX 레코드를 조회해보자.

 

위와 같이 Slave 의 서버에 질의하여도 Master 서버에서 설정했던 내용이 그대로 출력되는 것을 확인할 수 있다.

 

※ Slave 서버는 Master 서버 ZONE 파일의 Serial Number 를 확인하고 가져온다. Serial Number를 수정하지않으면 Slave 서버는 수정되지 않았다고 생각하고 ZONE 파일을 가져오지 않는다.