728x90
BIND에서 nsupdate 명령을 사용하여 동적으로 존을 변경하는 방법
BIND 설치
yum install -y bind bind-utils
BIND 버전 정보
named -v
$ named -v
BIND 9.11.4-P2-RedHat-9.11.4-26.P2.el7_9.15 (Extended Support Version) <id:7107deb>
sangchul.kr 도메인 설정
sangchul.kr zonefile 편집
vim /var/named/sangchul.kr.zone
$TTL 60
@ IN SOA ns.sangchul.kr. manager.sangchul.kr. (
2013070203 ; serial
21600 ; refresh (6 hours)
1800 ; retry (30 minutes)
1209600 ; expire (2 weeks)
86400 ; minimum (1 day)
)
IN NS ns.sangchul.kr.
ns IN A 127.0.0.1
named.conf 편집
vim /etc/named.conf
zone "sangchul.kr" IN {
type master;
file "sangchul.kr.zone";
allow-update { none; };
};
구성 파일 검사
named-checkconf -z
$ named-checkconf -z
zone localhost/IN: loaded serial 0
zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
zone sangchul.kr/IN: loaded serial 2013070204
존 파일 검사
named-checkzone sangchul.kr sangchul.kr.zone
$ named-checkzone sangchul.kr sangchul.kr.zone
zone sangchul.kr/IN: loaded serial 2013070204
OK
BIND 서비스 재시작
systemctl restart named
DNS 레코드 동적 업데이트를 위한 설정
1. 키 파일 생성
DNS 업데이트에 사용할 키 파일을 생성합니다.
dnssec-keygen -a HMAC-SHA256 -b 128 -n HOST sangchul.kr
$ dnssec-keygen -a HMAC-SHA256 -b 128 -n HOST sangchul.kr
Ksangchul.kr.+163+51068
명령을 실행하면 두 개( Ksangchul.kr.+157+.key 및 Ksangchul.kr.+157+.private )의 파일이 생성됩니다.
$ ls -l | grep Ksangchul.kr
-rw------- 1 root root 55 May 29 06:57 Ksangchul.kr.+163+51068.key
-rw------- 1 root root 168 May 29 06:57 Ksangchul.kr.+163+51068.private
존 파일의 소유자를 변경합니다.
chown named.named /var/named/*
2. BIND 설정 파일 수정
BIND 설정 파일 (named.conf)을 편집하여 동적 업데이트를 허용하도록 구성합니다.
.private 파일의 내용을 확인합니다.
- Key 부분의 값을 secret에 복사하여 넣습니다.
cat Ksangchul.kr.+163+51068.private
$ cat Ksangchul.kr.+163+51068.private
Private-key-format: v1.3
Algorithm: 163 (HMAC_SHA256)
Key: F/SRqfNYru/qVp6ENT+32A==
Bits: AAA=
Created: 20240529065715
Publish: 20240529065715
Activate: 20240529065715
zone 블록을 수정합니다.
- allow-update 디렉티브를 사용하여 키 파일을 지정합니다.
vim /etc/named.conf
zone "sangchul.kr" {
type master;
file "/var/named/sangchul.kr.zone";
allow-update { key "sangchul.kr."; };
};
key "sangchul.kr." {
algorithm hmac-sha256;
secret "F/SRqfNYru/qVp6ENT+32A==";
};
구성 파일 검사
$ named-checkconf -z
zone localhost/IN: loaded serial 0
zone 1.0.0.127.in-addr.arpa/IN: loaded serial 0
zone sangchul.kr/IN: loaded serial 2013070204
존 파일 검사
$ named-checkzone sangchul.kr sangchul.kr.zone
zone sangchul.kr/IN: loaded serial 2013070204
OK
3. BIND 서비스 재시작
설정 파일을 수정한 후 BIND 서비스를 재시작하여 변경 사항을 적용합니다.
systemctl restart named
4. nsupdate 명령 실행
이제 nsupdate 명령을 사용하여 동적으로 DNS 레코드를 업데이트할 수 있습니다.
Ksangchul.kr.+157+<random>.key 파일을 사용하여 업데이트를 수행합니다.
nsupdate -k Ksangchul.kr.+163+51068.key
이 명령을 실행하면 nsupdate 프롬프트가 나타납니다.
A 레코드 추가
server 127.0.0.1
update add example.sangchul.kr. 7200 IN A 192.0.2.1
send
quit
$ nsupdate -k Ksangchul.kr.+163+51068.key
> server 127.0.0.1
> update add example.sangchul.kr. 7200 IN A 192.0.2.1
> send
> quit
A 레코드 삭제
$ nsupdate -k Ksangchul.kr.+163+51068.key
> server 127.0.0.1
> update delete example.sangchul.kr. IN A
> send
> quit
질의 테스트
dig @127.0.0.1 example.sangchul.kr
TXT 레코드 추가
$ nsupdate -k Ksangchul.kr.+163+51068.key
> server 127.0.0.1
> update add example.sangchul.kr. 7200 IN TXT "v=spf1 include:_spf.sangchul.kr ~all"
> send
> quit
질의 테스트
BIND DNS 서버에서 nsupdate를 사용하여 DNS 레코드를 동적으로 추가, 삭제, 또는 수정할 수 있습니다.
참고URL
- Read the Docs BIND9 : 5.2. Dynamic Update
728x90
'리눅스' 카테고리의 다른 글
[draft] 우분투에 Nginx와 PHP 8.3을 소스에서 컴파일하여 설치하는 방법 (0) | 2024.06.12 |
---|---|
[draft] 우분투에서 APT 패키지 관리자를 통해 프록시를 설정하는 방법 (0) | 2024.05.30 |
[draft] YUM EPEL 저장소에서 메타링크를 가져올 수 없는 오류 (0) | 2024.05.28 |
[draft] scp 명령어를 사용하여 파일을 쉽게 업로드 및 다운로드할 수 있는 스크립트 (0) | 2024.05.27 |
[draft] apt-cacher-ng 컨테이너를 Docker Compose로 설정하는 방법 (0) | 2024.05.27 |