[도메인] 인터랙티브 인터넷 네임 서버 업데이트 – nsupdate

인터랙티브 인터넷 네임 서버 업데이트 – nsupdate

nsupdate 는 bind에 속한 프로그램으로, 네임서버의 다이나믹 업데이트를 제공한다.

nsupdate는 dns 자원 레코드의 삭제 혹은 추가를 하기위해서 리저버 라이브러리를 통해 dns 서버로 데이터를 보내는 프로그램입니다.

이를 잘 활용하게 되면, Dyndns 구조의 프로그램을 제작하는데 상당히 도움이 된다.

또한 시리얼을 업데이트할때마다 변경해주기 때문에 시리얼 변경을 하지 않아도 된다.

1. nsupdate 를 사용하기 위한 named.conf 설정

named.conf 의 사용할 도메인의 존설정에 한줄을 추가한다.

zone “dgtalx.com” IN {

type master;

file “zone-dgtalx.com”;

};

위는 기존의 존 설정이다.

여기에 allow-update { 211.172.226.23; }; 를 추가한다.

(업데이트 쿼리를 허용할 주소)

추가를 하면 아래와 같이 된다.

zone “dgtalx.com” IN {

type master;

file “zone-dgtalx.com”;

allow-update { 211.172.226.23; };

};

2. nsupdate를 사용하게 될 경우 변경되는 zone 파일

bind 덤프 v8 로 존파일이 싹 바뀌게 된?

그리고 nsupdate를 써서 추가/삭제된것이 네임서버가 종료될때

반영된다.

실제 적용된 dgtalx.com 의 존파일을 예제삼아 올린다.

;BIND DUMP V8

$ORIGIN com.

dgtalx 128 IN SOA ns.dgtalx.net. xiopadm.dgtalx.net. (

2000071910 1800 600 14400 3600 ) ;Cl=2

128 IN NS ns.dgtalx.com. ;Cl=2

128 IN MX 0 mail.dgtalx.com. ;Cl=2

128 IN A 211.172.226.23 ;Cl=2

$ORIGIN dgtalx.com.

mirc 128 IN A 211.172.226.23 ;Cl=2

ns 128 IN A 211.172.226.23 ;Cl=2

앞의 ns 128 IN A ip 를 보면 128은 TTL값입니다. 기존의 $ttl 128 이 반영된것입니다

3. nsupdate 사용법과 명령어

사용법 : nsupdate [ -d ] [ -v ]

-d 디버그 모드

-v tcp 통신을 한다. (기본은 udp로 서버와통신함)

$ nsupdate

>

(프롬프트가 바뀝니다. 이후는 선행명령어와 선행판별식 실행명령으로 구분됩니다.)

명령들 ————-

prereq nxdomain domain-name

지정한 도메인 네임에 대한 레코드가 존재 하지 않을경우 참이된다.

(참고로 위의 RR은 리소스 레코드의 약자임, 라운드 로빈과 무관함)

prereq yxdomain domain-name

지정한 도메인 네임에 대한 레코드가 존재할 경우 참이된다.

prereq nxrrset domain-name [class] type

지정한 도메인 네임에 지정한 type의 데이터가 없어야 참이된다.

prereq yxrrset domain-name [class] type [data…]

지정한 도메인 네임에 값이 존재해야 하며, data 값을 대입하였을 경우

아주 정확히 매치되어야 참이된다.

update delete domain-name [class] [type [data…]]

지정한 도메인네임을 삭제한다. (type과 데이터가 지정되면 매치되는 레코드만이 삭제된다)

update add domain-name ttl [class] type data…

새로운 도메인 네임을 삽입한다. ttl과 type과 data는 지정하는것이 좋다.

———————

prerequest 를 날린 후에 그 값이 참일 경우 다음줄의 명령어들이 실행된다.

update가 대부분의 선행판별식 명령이다.

update add 명령어로 기존의 a.com 의 ip가 변경되지 않음으로

기존의 데이터를 삭제하고 새로 추가해야한다.

이것은 아래의 예제를 통해 알 수 있다.

1. 새로운 네임을 추가할때의 스크립트 작성예

$nsupdate

>prereq nxdomain nx2.dgtalx.com.

>update add nx2.dgtalx.com. 128 IN A 211.58.88.61

문법해석 : prereq 로 nxdomain 체크한다.

나는 사전에 점검한다. nx2.dgtalx.com. 이라는 도메인이 존재하지 않아야

이 다음의 모든 명령이 실제 서버로 쿼리로 전송하게 할것이다

nx2.dgtalx.com 의 도메인을 ttl 128로 A type 으로 지정, 211.58.88.61로

새로운 설정을 적용한다. 이 모든것은 prereq의 값이 참일때만 적용하도록 한다

2. 기존의 네임의 ip를 변경할때의 스크립트 작성예

$nsupdate

>prereq yxdomain test.dgtalx.com.

>update delete test.dgtalx.com.

>update add test.dgtalx.com. 128 IN A 211.58.88.61

문법해석 :

나는 사전에 점검한다. test.dgtalx.com. 이라는 도메인이 “정의되어” 있어야

이하에 내가 실행하는 모든 명령어는 서버로 반영되게 한다

기존의 test.dgtalx.com. 의 도메인을 삭제한다.

새로운 도메인을 추가한다. test.dgtalx.com 으로 128ttl의 A 타입으로

211.58.88.61 로 업데이트 한다

Last TIP : 도메인은 오리지널 도메인 네임으로 지정해야한다.

TEST.DGTALX.COM 이와같은 도메인은 처리가 되지 않을 수도 있다.

TEST.DGTALX.COM. 이처럼 뒤에 . 으로 마친 도메인의

처리가 정상적으로 이루어진다.

서진우

슈퍼컴퓨팅 전문 기업 클루닉스/ 상무(기술이사)/ 정보시스템감리사/ 시스존 블로그 운영자

You may also like...

페이스북/트위트/구글 계정으로 댓글 가능합니다.