NSUPDATE(8)

명칭
nsupdate - 대화적으로 Internet 네임서버를 갱신한다

서식
nsupdate [-k keydir:keyname] [-d] [-v] [filename]

해설
nsupdate (은)는 동적인 갱신을 서포트한 Internet 도메인 네임서버를 갱신한다 유익의 프로그램입니다. nsupdate (은)는 DNS 의 리소스 레코드 (RR)를 추가하거나 삭제하거나 한다 메세지를 DNS 서버 에게 전하기 위해서(때문에), DNS resolver 프로그램 라이브러리를 사용합니다. nsupdate (은)는 입력을 filename 혹은, 표준 입력으로부터 읽어냅니다.

인수

-k  TSIG 를 이용해 갱신에 서명합니다.

-d  디버그 모드를 지정합니다.

-v  버추얼 서킷 - 서버와의 통신에 TCP 를 사용합니다. 기정치에서는 UDP 를 사용합니다.

입력 서식
nsupdate (은)는 1 행 마다 1 개의 입력 레코드를 읽습니다. 각각의 행은 갱신 요구의 대상이 되는 리소스 레코드입니다. 1 개의 갱신 요구에 포함되는 모든 도메인명은, 동일한 DNS 존에 포함되는 것인 것이 필요합니다. 갱신은, SOA MNAME 필드에서 정의되는 마스터 서버에 보내집니다. 공행은, 축적된 레코드를 1 개의 갱신 요구로 해 정리해 존의 권위를 가지는 네임서버에의 송신을 지시합니다. 추가 레코드를 계속하는 것이 가능합니다. 이것들은, 추가적인, 완전하게 독립한 갱신 요구가 됩니다. 마지막 요구가 송신되기 위해서(때문에)는, 공행이 입력의 마지막에 있는 것이 필요합니다.

레코드는 두 일반적인 형식 중 어느 쪽인가의 형식입니다. 필요 조건 (prerequisite) 레코드는, 요구가 처리되기 전에 채워지고 있는 것이 필요한 조건을 지시합니다. 갱신 정보 (update) 레코드는, DNS 데이타베이스에 되는 변경을 지시합니다. 갱신 요구는, 0 개 이상의 필요 조건과 1 개 이상의 갱신 정보로부터 완성됩니다. 각각의 갱신 요구는, 모든 필요 조건이 채워지는 것이 확인 된 후에, 모든 갱신이 실행된다고 하는 차례로, 원자적으로 처리됩니다.

nsupdate (은)는 다음과 같은 입력 레코드의 서식을 이해합니다.

prereq nxdomain domain-name
    domain-name 그리고 지정한 도메인내에, 어떠한 RR 도 없는 것을 요구합니다.

prereq yxdomain domain-name
    domain-name 그리고 지정한 도메인내에, 최저 1 개의 RR 가 존재하는 것을 요구합니다.

    prereq nxrrset domain-name [class] type domain-name 그리고 지정한 도메인내에 type 그리고 지정한 형태의 RR 가 존재하지 않는 것을 요구합니다.

    prereq yxrrset domain-name [class] type [data...] domain-name 그리고 지정한 도메인내에, type 그리고 지정한 형태의 RR 가 존재하는 것을 요구합니다. data 하지만 지정되었을 경우는, 정확하게 체크가 행해집니다.

    update delete domain-name [class] [type [data...]] domain-name 그리고 지정한 도메인명의 RR 를 삭제합니다. 만약 type (와 가능하면 data) 하지만 지정되면, 해당되는 레코드만이 삭제됩니다.

    update add domain-name ttl [class] type data... ttl, type, data 그리고 지정한 RR 를 추가합니다.

사용예
아래와 같은 예는, nsupdate 의 대화적인 사용예를 나타내고 있습니다. 어느 도메인명의 모든 A 레코드를 삭제해, 새로운 레코드를 추가하는 것에 의해, IP 주소를 변경합니다. 여기에서는 필요 조건이 지정되어 있지 않기 때문에, 삭제하는 레코드가 없어도 새롭다 레코드가 추가됩니다. 후에 계속되는 공행은 요구를 처리시키기 위해서(때문에) 필요한 것으로 주의해 주세요.

    $ nsupdate
    > update delete test.example.com A
    > update add test.example.com 3600 A 10.1. 1.1
    >

이 예에서는, 대상의 도메인에 A 레코드 또는 CNAME 레코드가 없는 경우에, CNAME 앨리어스(alias)가 데이타베이스에 추가됩니다.

    $ nsupdate
    > prereq nxrrset www.example.com A
    > prereq nxrrset www.example.com CNAME
    > update add www.example.com 3600 CNAME test.example.com
    >

이 예에서는, nsupdate 는 디렉토리 "/var/named/keys" 에 존재하는 키 "mykey" 로 서명됩니다.

    $ nsupdate -k /var/named/keys:mykey
    > update add ftp.example.com 60 A 192.168. 5.1
    >

진단

"send error"
    일반적으로, 권위가 있는 네임서버에 도달할 수 없었던 것을 나타냅니다.

"failed update packet"
    일반적으로, 네임서버가 동적 갱신을 서포트하고 있지 않기 때문에인가, 인증의 실패를 위해서(때문에), 갱신을 거부한 것을 나타냅니다.

"res_mkupdate: packet size = size"
    (또 다른 메세지가 표시되지 않을 때) 갱신은 정상적으로 수신되어 네임서버에 인증되었습니다. 그러나 필요 조건이 갱신을 방해했을지도 모릅니다. 갱신이 행해지고 있을까 (을)를 확인하는 방법은, 디버그 모드 (-d) (을)를 사용해, 네임서버로부터의 응답 필드를 확인할 수 밖에 없습니다.

관련 파일

/etc/resolv.conf
    도메인명과 네임서버의 주소의 초기설정.

관련 항목
named(8), resolver(3), resolver(5); RFC-1034, “Domain Names - Concepts and Facilities”; RFC-1035, “Domain Names - Implementation and Specification”; RFC-2136, Dynamic Updates in the Domain Name System.

저자
Brent Baccala