DNS 영역 전달
다음과 같은 환경을 구성하여 DNS 보조 영역 전달 실습을 진행해보도록 하자.
- Rocky Linux 1 (192.168.10.10) : 주영역 sevas10.com, 보조영역 sevaswin100.com
- Rocky Linux 2 (192.168.10.20) : 보조영역 sevas10.com, 보조영역 sevaswin100.com
- Window Server (192.168.10.30) : 주영역 sevaswin100.com, 보조영역 sevas10.com
1) Window Server IP 설정 및 DNS 설치
별도의 GNS 토폴로지 없이 실습할 예정이므로 VMnet8 을 사용하여 실습을 진행한다. Window Server 는 192.168.10.30 의 IP 주소를 사용하며, DNS 서버 또한 동일하게 설정한다.
'서버 관리자 - 역할 및 기능 추가 - DNS 서버' 를 선택하여 DNS 서비스 설치를 진행한다.
설치가 완료되면, dnsmgmt.msc 명령어를 통해 DNS 관리자 프로그램을 실행한다.
2) Window Server 주영역 설정
주영역 도메인 sevaswin100.com 을 정방향 레코드로 생성한다.
'가상 컴퓨터 이름 우클릭 - 새 영역' 을 선택하여, 주영역 sevaswin100.com 도메인을 생성한다.
다음과 같은 순서에 따라 주영역 생성을 진행한다.
주영역 생성 결과는 다음과 같다.
다음으로는 주영역에 레코드를 추가한다. 중복 방지를 위해 네임 서버 레코드 편집을 진행하기 전, ns 호스트에 대한 A 레코드를 설정해주어야 한다.
ns 호스트의 레코드 설정이 완료된 후, 네임 서버 도메인 편집을 다음과 같이 진행한다.
마지막으로 SOA 레코드를 다음과 같이 수정한다.
3) Window Server 보조영역 설정
보조영역 도메인 sevas100.com 을 정방향 레코드로 생성한다.
다음과 같은 순서로 설정을 진행하며, 도메인 정보를 얻어올 마스터 서버의 IP 주소를 지정한 후 마무리한다.
보조 영역 설정이 완료되었지만, 아직 마스터 서버로부터 주영역에 대한 정보를 전달받지 못했기 때문에 영역 데이터 정보를 확인할 수 없다.
4) 영역 전달 (192.168.10.30)
sevaswin100.com 주영역에 대한 데이터를 다른 서버에게 전달하기 위해 다음과 같이 설정을 진행한다.
'sevaswin100.com 주영역 우클릭 - 속성 - 영역 전송' 을 선택하여 영역 데이터를 전달할 서버의 IP 주소를 등록한다.
Rocky Linux 1 과 2 에게 모두 영역을 전달해야하므로, sevaswin100.com 도메인에 대한 보조 영역으로서 동작하게 될 두 서버의 IP 를 모두 등록한다.
5) Rocky Linux 1 (192.168.10.10) DNS 설정
현재 해당 리눅스 서버의 IP 주소는 192.168.10.10 으로 설정되어 있으며, DNS 서버 데몬이 설치되어있는 상태이다.
zone IN sevas10.com. {
type master -> 주 영역
file "sevas10.zone"
allow-transfer { 192.168.10.20; 192.168.10.30; }; -> 영역 데이터 전달
also-notify { 192.168.10.20; 192.168.10.30; }; -> 영역 데이터 정보 업데이트 알림
}
zone IN sevaswin100.com. {
type slave; -> 보조 영역
file "slaves/sevaswin100.zone" -> /var/named/slaves 하위에 위치한 보조 영역 zone 파일
master { 192.168.10.30; }; -> 영역 데이터를 전달 받기 위한 서버의 IP 주소
}
주 영역은 sevas10.com 으로 설정하며, 192.168.10.20 과 192.168.10.30 에게 영역 전달을 허용하고 업데이트 내용 알림을 전달할 수 있도록 한다. 또한 보조 영역은 sevaswin10.com 으로 설정하며, 192.168.10.30 으로부터 영역 데이터를 수신받도록 한다.
sevas10.com 이라는 사설 도메인에 대한 영역 데이터 관리는 sevas10.zone 파일에서 수행하게 되며, 그 내용은 상기 이미지와 같다. 본 실습에서는, ns 와 www 라는 도메인 2 가지를 추가적으로 등록하였다.
service named restart
설정 파일의 수정이 완료된 후, DNS 서비스 데몬을 재구동하게 되면 마스터 서버로부터 영역 데이터 정보가 담긴 zone 파일을 수신한 것을 확인할 수 있다.
sevas10.com 도메인의 보조 영역으로서 동작하는 WIN100 의 sevas10.com 영역이 마스터 서버인 192.168.10.10 으로부터 데이터를 받아올 수 있도록 'WIN100 우클릭 - 모든 작업 - 다시 시작' 을 선택하여 DNS 서비스를 재구동한다.
6) Rocky Linux 2 (192.168.10.20) DNS 설정
현재 해당 리눅스 서버의 IP 주소는 192.168.10.20 으로 설정되어 있으며, 마찬가지로 DNS 서버 데몬이 설치되어있는 상태이다.
zone IN sevas10.com. {
type slave; -> 보조 영역
file "sevas10.zone" -> 도메인을 관리하기 위한 파일
master { 192.168.10.30; }; -> 영역 데이터를 전달 받기 위한 서버의 IP 주소
}
zone IN sevaswin100.com. {
type slave; -> 보조 영역
file "slaves/sevaswin100.zone" -> 도메인을 관리하기 위한 파일
master { 192.168.10.30; }; -> 영역 데이터를 전달 받기 위한 서버의 IP 주소
}
해당 서버는 주영역 없이, 보조 영역만을 설정하여 마스터 서버로부터 영역 데이터를 수신받아오도록 한다.
service named restart
파일 수정이 완료된 후, DNS 서버 데몬을 재구동하게 되면 마스터 서버들로부터 영역 데이터 정보가 담긴 zone 파일이 수신된 것을 확인할 수 있다.
7) 도메인 조회 가능 여부 확인
앞서 설정한 영역 데이터 정보에 기반하여 nslookup 명령어를 수행하였을 때, 정상적으로 동작하는지 확인해보자.
nslookup ns.sevaswin100.com
192.168.10.30 마스터 서버로부터 수신한 sevaswin100.com 도메인의 영역 데이터 zone 파일을 통해, nslookup 명령이 정상적으로 동작하는 것을 확인할 수 있다.
nslookup ns.sevas10.com
마찬가지로 192.168.10.20 마스터 서버로부터 수신한 sevas10.com 도메인의 영역 데이터 zone 파일을 통해, nslookup 명령이 정상적으로 동작함을 확인할 수 있다.
8) 영역 데이터 수정 (sevaswin100.com)
이번에는 영역 데이터를 수정하여, 변동 사항이 타 서버의 보조 영역으로 전달될 수 있도록 해보자.
다음과 같이 sevaswin100.com 도메인에 www 라는 이름의 새 호스트를 추가하여, 영역 데이터의 변동이 발생하도록 한다.
현재 sevaswin100.com 도메인의 영역 데이터에는 다음과 같이 ns, www 2 가지의 호스트가 존재한다. 이때 영역 데이터 내용 중에서도, SOA 레코드의 인덱스 값 (Serial 값) 을 유의해야한다. 영역 데이터에 대한 변동 사항이 발생되는 경우에 Serial 값이 증가하게 되며 상기 이미지에서의 [6] 은 6번의 데이터 수정이 이루어졌다는 의미이다.
영역 데이터 수정 후, DNS 서비스를 재구동하여 변경 사항이 적용될 수 있도록 한다.
nslookup www.sevaswin100.com
마찬가지로 변동 사항을 수신할 서버에서도 DNS 서비스를 재구동하게되면 영역 데이터의 변경된 내용이 정상적으로 반영되어, 다음과 같이 nslookup 명령이 수행되는 것을 확인할 수 있다.
9) 영역 데이터 수정 (sevas10.com)
해당 도메인 또한 영역 데이터를 수정하여 변동 사항이 타 서버의 보조 영역으로 전달될 수 있도록 한다. 단, Linux 에서의 변동 사항 전달은 Window 처럼 자동적으로 이루어지지 않음에 유의하자.
다음과 같이 sevas10.zone 파일 하단에 db 호스트의 IP 정보를 추가하였다. 파일 수정이 완료된 후, 변경 사항을 적용하기 위해 DNS 서비스 데몬을 재구동한다.
변동 사항을 수신할 Window 에서도 DNS 서비스 데몬을 재구동한다. 하지만, 여전히 192.168.10.30 에서는 마스터 서버로부터 변동 사항을 전달받지 못하고 있음을 확인할 수 있다.
Linux 는 Window 와 달리, Serial 값을 관리자가 직접 수정해야 한다. Serial 값에 변동이 발생하게 되면 다른 DNS 서버들이 해당 영역 데이터에 대한 변동 사항을 알아차릴 수 있게 된다. 따라서, serial 값을 1 -> 2 로 변경한다.
serial 값의 수정이 이루어진 후, 비로소 마스터 서버로부터 변동 데이터를 전달받아온 것을 확인할 수 있다.
nslookup db.sevas10.com
마찬가지로 변동 사항을 수신할 서버에서도 DNS 서비스를 재구동하게되면 영역 데이터의 변경된 내용이 정상적으로 반영되어, 다음과 같이 nslookup 명령이 수행되는 것을 확인할 수 있다.
zone.jnl 파일
DNS 서버에서 사용하는 저널 파일 (Journal File) 로, DNS 영역 (zone) 데이터를 변경할 때마다 변경 사항을 기록하는 로그 파일이다.
상기 이미지를 살펴보면, 변동 사항을 수신하게 된 서버에 journal 파일이 추가된 것을 확인할 수 있다.
- 변경 사항 기록: DNS 레코드가 추가되거나 삭제될 때, zone.jnl 파일에 기록된다. zone 파일과 zone.jnl 파일은 별개로 존재하지만 동기화된다. zone 파일이 주기적으로 갱신되기 전, zone.jnl 파일을 기반으로 영역 데이터 정보를 업데이트한다.
- 영역 파일 복구: DNS 서버가 재구동 되거나 예기치 않게 종료된 후, zone.jnl 파일을 사용하여 최근 변경 사항을 복구할 수 있다. 따라서, DNS 서버가 중단된 경우에도 데이터 일관성 유지 및 데이터 손실을 최소화할 수 있다.
공부하면서 정리한 내용을 글로 작성하였습니다.
혹시나 잘못된 내용이 있다면 댓글로 알려주시면 감사하겠습니다. :)
'OS > Rocky' 카테고리의 다른 글
[Linux / Rocky] DNS Round-Robin 부하 분산 (0) | 2025.03.04 |
---|---|
[Linux / Rocky] FTP 접속 관련 설정 실습 예제 (3) | 2025.02.16 |
[Linux / Rocky] 리눅스 FTP (File Transfer Protocol) 서비스 (0) | 2025.02.11 |
[Linux / Rocky] 프로세스 스케줄링 (작업 예약) (0) | 2025.01.29 |
[Linux / Rocky] 리눅스 프로세스 관리 (0) | 2025.01.28 |