반응형
BIND Dynamic Update (동적 DNS 업데이트)
1. Dynamic Update 개념
일반적인 BIND DNS 서버 운영 방식은 Zone 파일을 직접 수정한 후 named 서비스를 reload 하는 방식입니다.
하지만 DHCP 서버 연동, 자동화된 서버 등록, 클라우드 환경 등에서는 DNS 레코드를 실시간으로 추가/삭제해야 하는 경우가 있습니다.
BIND의 Dynamic Update 기능을 사용하면 DNS 클라이언트가 nsupdate 명령을 이용해 실행 중인 DNS 서버에 직접 레코드 변경 요청을 전달할 수 있습니다.
BIND는 Dynamic Update가 활성화된 Zone을 직접 수정하지 않고 저널 파일(.jnl)을 이용하여 변경 사항을 관리합니다.
2. DNS Server 설정
Dynamic Update를 허용할 Zone에 allow-update 옵션을 추가합니다.
vim /etc/named.conf
zone "scbyun.com" IN {
type master;
file "/var/named/masters/scbyun.com-zone";
allow-update { 192.168.0.2.; }; //dynamic update clinet : 192.168.0.2
};
설정 의미
- type master : Primary DNS Zone
- file : Zone 파일 위치
- allow-update : Dynamic Update 요청 허용 대상
위 설정에서는 192.168.0.2 서버에서 전달되는 DNS Update 요청만 허용합니다.
참고
위 방식은 IP 기반 접근 제어 방식이며, 운영 환경에서는 TSIG(Transaction Signature)를 이용한 인증 방식을 권장합니다.
728x90
3. Dynamic Update Client 설정
DNS Update 요청은 nsupdate 명령을 사용합니다.
실행
nsupdate
A Record 추가
> update add adfsdf.scbyun.com 60 IN A 100.100.100.101
Update Packet 확인
- show 명령을 사용하면 전송 예정인 DNS UPDATE 패킷 내용을 확인할 수 있습니다.
> show
Outgoing update query:
;; ->>HEADER<<- opcode: UPDATE, status: NOERROR, id: 0
;; flags: ; ZONE: 0, PREREQ: 0, UPDATE: 0, ADDITIONAL: 0
;; UPDATE SECTION:
adfsdf.scbyun.com. 60 IN A 100.100.100.101
> send
실제 반영은 send 명령 이후 수행됩니다.
4. DNS Record 확인
Dynamic Update 결과를 확인합니다.
dig netpia.scbyun.com
; <<>> DiG 9.6.1-P2_NLIA_NS_091125 <<>> netpia.scbyun.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 4479
;; flags: qr aa rd ra; QUERY: 1, ANSWER: 1, AUTHORITY: 1, ADDITIONAL: 0
;; QUESTION SECTION:
;netpia.scbyun.com. IN A
;; ANSWER SECTION:
netpia.scbyun.com. 60 IN A 100.100.100.102
;; AUTHORITY SECTION:
scbyun.com. 86400 IN NS ns.scbyun.com.
;; Query time: 1 msec
;; SERVER: 127.0.0.1#53(127.0.0.1)
;; WHEN: Mon Mar 29 20:47:36 2010
;; MSG SIZE rcvd: 68
정상적으로 DNS 서버에 새로운 A Record가 등록된 것을 확인할 수 있습니다.
5. BIND Update Log 확인
Dynamic Update 과정은 BIND 로그에서 확인할 수 있습니다.
vim update.log
29-Mar-2010 19:13:10.147 update: info: client 10.0.10.124#14463: updating zone 'scbyun.com/IN': adding an RR at 'ftp.scbyun.com' A
29-Mar-2010 19:40:33.111 update: info: client 10.0.10.124#4097: updating zone 'scbyun.com/IN': update unsuccessful: mysql.scbyun.com: 'name in use' prerequisite not satisfied (NXDOMAIN)
29-Mar-2010 19:41:11.787 update: info: client 10.0.10.124#4097: updating zone 'scbyun.com/IN': update unsuccessful: mysql.scbyun.com: 'name in use' prerequisite not satisfied (NXDOMAIN)
29-Mar-2010 19:44:38.907 update: info: client 10.0.10.124#34935: updating zone 'scbyun.com/IN': adding an RR at 'oracle.scbyun.com' A
29-Mar-2010 19:48:50.776 update: info: client 10.0.10.124#39963: updating zone 'scbyun.com/IN': update unsuccessful: oracle.scbyun.com: 'name not in use' prerequisite not satisfied (YXDOMAIN)
29-Mar-2010 19:57:28.630 update: info: client 10.0.10.124#4285: updating zone 'scbyun.com/IN': adding an RR at 'adfsdf.scbyun.com' A
29-Mar-2010 20:47:22.833 update: info: client 10.0.10.124#39355: updating zone 'scbyun.com/IN': adding an RR at 'netpia.scbyun.com' A
nsupdate를 이용하면 DNS Zone 파일을 직접 수정하지 않고도 안전하게 DNS 레코드를 관리할 수 있습니다.
참고URL
- https://bind.cslab.kr/dynamic-update
728x90
반응형
'네임서버' 카테고리의 다른 글
| 바인드 쿼리 로그 형식(bind query log format) (0) | 2013.06.28 |
|---|---|
| BIND [ERROR]bad owner name (check-names) (0) | 2013.06.26 |
| nslookup 명령어를 사용하여 DNS 존 전송(zone transfer)을 확인하는 방법 (0) | 2013.06.25 |
| DNS 성능 점검(queryperf) (1) | 2013.06.25 |
| BIND DNS 서버의 ZONE 동기화 설정을 구성하는 방법 (0) | 2013.06.25 |