>> Edit article
이름
제목
패스워드
Tip 인터랙티브 인터넷 네임 서버 업데이트 - nsupdate 작성: 오명오 <xiopadm@dgtalx.net> 감수: 배권한 <darjeeling@teapot.iolinux.co.kr> 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. 이처럼 뒤에 . 으로 마친 도메인의 처리가 정상적으로 이루어진다.--...... LeCieL
Copyleft
1999-2026 by
JSBoard Open Project
Theme Designed by
IDOO
All right reserved