[OS] Zone-file Master-Slave transfer

hugingstar·2025년 12월 25일

Operating system

목록 보기
16/34
post-thumbnail

이 글에서는 Master-slave 구조로 zonefile을 trasfer하는 방법을 설명한다.

서비스의 가용성 및 중단을 방지하는 단어로는 Redundancy가 있다. 마스터 서버에 하드웨어 장애가 발생하거나 점검을 위해 전원을 꺼야 하면, 마스터가 멈춰도 Slave 서버들이 살아있다면 DNS 서비스는 중단되지 않을 것이다. 슬레이브 서버는 마스터에서 받아온 데이터를 일정 기간동안 그대로 들고 있으므로, 사용자는 아무런 불편 없이 사이트에 접속할 수 있다.

또한, 부하 분산 효과 : Master Slave 구조는 트래픽이 몰리는 대규모 서비스에서는 필수적인 기술이다. 동시에 수만명이 도메인 주소를 조회하는 경우 슬레이브 서버를 여러 대 두고 조회 요청을 분산처리함으로써 서버 과부하를 줄일 수 있다.

휴먼 에러 방지 : 도메인에 연결된 IP 주소를 변경해야 해서 5대의 서버 설정을 모두 수정해야 할 때, 마스터의 Zone 파일 하나만 수정하면 된다. 이것은 슬레이브 서버로 자동으로 복제가 된다.

보안 강화 : 원본 데이터를 안전하게 보호하고 싶은 경우, 슬레이브 서버들만 공인 IP를 할당해서 외부에 노출 시킨다. 공격자가 슬레이브 서버를 공격하더라도 원본 데이터가 있는 마스터를 안전하다. 또한 복구 시간도 단축할 수 있다.

Zone File이 Transfer될 때는 53/tcp를 사용한다. 간략하게 개념을 설명하면 Master에서는 Slave를 바라볼 수 있게 만들고, Slave도 Master를 바라볼 수 있게 만든 다음에 접속하려는 클라이언트가 Slave의 DNS를 바라보도록 환경을 구축한다. 이 방법은 마스터 PC로 직접적으로 접속하지 않고 Slave로 가기 여러 곳으로 분산시켜서 DNS를 관리할 수 있다.

  • Master(10.17.0.53) : zonefile에 master 설정
  • Slave(10.17.1.53) : zonefile에 slave 설정
  • Window 10 client (10.17.0.0) : 접속 테스트

1. Master zone file 설정

마스터 PC에서는 nmtui를 사용해서 IP를 10.17.0.53으로 설정한다. 먼저 Zone file을 수정하기 까지는 named에 named.conf를 수정해야 한다.

nmtui

이전 글에서도 named.conf를 정리하는 방법에 대해서 정리했지만, 다시한번 정리해보면 port53을 any;로 설정해서 다양한 IP와 연결될 수 있도록 설정하였다.

named의 변경사항은 재시작으로 적용해준다.

systemctl restart named

Zone file을 수정하기 위해서 아래의 명령어로 zone file에 들어간다.

vi /etc/named.rfc1912.zones

bulgogikebab.ke 도메인을 추가해준다. allow-update 보면 IP 주소 10.17.1.53을 입력한 것을 볼 수 있는데 이 IP는 Slave의 IP주소이다.(먼저 정의를 내려 놓고 뒤에서 Slave를 이 주소로 셋팅하는 방식이다.)

zone "xxxx.ke" IN {
type master,
file "xxx.ke.dns";
allow-update { 10.x.1.53; }; # slave dns server의 IP 주소
}

여기까지 설정을 한 후에 Slave를 구축한다.

2. Slave에서 Slave용 zone file 설정

먼저 DNS 슬래이브 테스트를 위해서 새로운 DNS-Slave를 만든다.

IP를 설정한다.

Slave에서도 bind 패키지 설치한다.

dnf install bind bind-chroot -y

named.conf 파일을 수정한다.(any 등)

본격적으로 Zone file을 수정한다.

vi /etc/named.rfc1912.zones

세부적으로 보면 type에 slave로 되어 있고, master의 ip도 설정되어 있는 것을 볼 수 있다.

zone "xxxx.ke" IN {
type slave,
file "slaves/xxx.ke.dns";
masters { 10.x.0.53; };
}

재시작해서 Zonefile 및 configure file을 적용해준다. restart하고 대기한다.

systemctl restart named

slaves 라는 디렉토리로 들어가면 ls -l로 bulgogikebab.ke.dnd가 있는 것을 볼 수 있다.

3. Master에서 로그 확인

vi 편집기를 사용해서 log를 확인해서 올바르게 연결되었는지를 확인

vi /var/log/messages

모든 존 파일들이 올바르게 등록되어 있는 것을 볼 수 잇다.

4. Window Client에서 확인

윈도우 클라이언트는 IP주소가 10.17.0.0으로 설정되어 있고, Slave인 10.17.1.53을 DNS로 설정했는데, 마스터-슬래이브 구조가 올바르게 연결되어 있었기 때문에 www.bulgogikebab.ke로 ping 테스트를 해보면 잘 가는 것을 볼 수 있다.

0개의 댓글