1245N/A<!
DOCTYPE book PUBLIC "-//OASIS//DTD DocBook XML V4.2//EN" 1245N/A [<!ENTITY mdash "—">]>
1245N/A - Copyright (C) 2004-2012, 2014 Internet Systems Consortium, Inc. ("ISC") 1245N/A - Copyright (C) 2000-2003 Internet Software Consortium. 1245N/A - Permission to use, copy, modify, and/or distribute this software for any 1245N/A - purpose with or without fee is hereby granted, provided that the above 1245N/A - copyright notice and this permission notice appear in all copies. 1245N/A - THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH 1245N/A - REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY 1245N/A - AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT, 1245N/A - INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM 1245N/A - LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE 1245N/A - OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR 1245N/A - PERFORMANCE OF THIS SOFTWARE. 1245N/A <
date>April 18, 2014</
date>
1245N/A <
refentrytitle><
application>nsupdate</
application></
refentrytitle>
1245N/A <
refmiscinfo>BIND9</
refmiscinfo>
1245N/A <
refname><
application>nsupdate</
application></
refname>
1245N/A <
refpurpose>Dynamic DNS update utility</
refpurpose>
1245N/A <
holder>Internet Systems Consortium, Inc. ("ISC")</
holder>
1245N/A <
holder>Internet Software Consortium.</
holder>
1245N/A <
command>nsupdate</
command>
1245N/A <
arg><
option>-d</
option></
arg>
1245N/A <
arg><
option>-D</
option></
arg>
1245N/A <
arg><
option>-g</
option></
arg>
1245N/A <
arg><
option>-o</
option></
arg>
1245N/A <
arg><
option>-l</
option></
arg>
1245N/A <
arg><
option>-y <
replaceable class="parameter"><
optional>hmac:</
optional>keyname:secret</
replaceable></
option></
arg>
1245N/A <
arg><
option>-k <
replaceable class="parameter">keyfile</
replaceable></
option></
arg>
1245N/A <
arg><
option>-t <
replaceable class="parameter">timeout</
replaceable></
option></
arg>
1245N/A <
arg><
option>-u <
replaceable class="parameter">udptimeout</
replaceable></
option></
arg>
1245N/A <
arg><
option>-r <
replaceable class="parameter">udpretries</
replaceable></
option></
arg>
1245N/A <
arg><
option>-R <
replaceable class="parameter">randomdev</
replaceable></
option></
arg>
1245N/A <
arg><
option>-v</
option></
arg>
1245N/A <
arg><
option>-T</
option></
arg>
1245N/A <
arg><
option>-P</
option></
arg>
1245N/A <
arg><
option>-V</
option></
arg>
1245N/A <
para><
command>nsupdate</
command>
1245N/A is used to submit Dynamic DNS Update requests as defined in RFC 2136
1245N/A This allows resource records to be added or removed from a zone
1245N/A without manually editing the zone file.
1245N/A A single update request can contain requests to add or remove more than
1245N/A Zones that are under dynamic control via
1245N/A <
command>nsupdate</
command>
1245N/A or a DHCP server should not be edited by hand.
1245N/A conflict with dynamic updates and cause data to be lost.
1245N/A The resource records that are dynamically added or removed with
1245N/A <
command>nsupdate</
command>
1245N/A have to be in the same zone.
1245N/A Requests are sent to the zone's master server.
1245N/A This is identified by the MNAME field of the zone's SOA record.
1245N/A <
command>nsupdate</
command>
1245N/A This provides tracing information about the update requests that are
1245N/A made and the replies received from the name server.
1245N/A The <
option>-D</
option> option makes <
command>nsupdate</
command>
1245N/A report additional debugging information to <
option>-d</
option>.
1245N/A The <
option>-L</
option> option with an integer argument of zero or
1245N/A higher sets the logging debug level. If zero, logging is disabled.
1245N/A Transaction signatures can be used to authenticate the Dynamic
1245N/A DNS updates. These use the TSIG resource record type described
1245N/A in RFC 2845 or the SIG(0) record described in RFC 2535 and
1245N/A RFC 2931 or GSS-TSIG as described in RFC 3645. TSIG relies on
1245N/A a shared secret that should only be known to
1245N/A <
command>nsupdate</
command> and the name server. Currently,
1245N/A the only supported encryption algorithm for TSIG is HMAC-MD5,
1245N/A which is defined in RFC 2104. Once other algorithms are
1245N/A defined for TSIG, applications will need to ensure they select
1245N/A the appropriate algorithm as well as the key when authenticating
1245N/A each other. For instance, suitable <
type>key</
type> and
1245N/A <
type>server</
type> statements would be added to
1245N/A can associate the appropriate secret key and algorithm with
1245N/A the IP address of the client application that will be using
1245N/A TSIG authentication. SIG(0) uses public key cryptography.
1245N/A To use a SIG(0) key, the public key must be stored in a KEY
1245N/A record in a zone served by the name server.
1245N/A <
command>nsupdate</
command> does not read
1245N/A GSS-TSIG uses Kerberos credentials. Standard GSS-TSIG mode
1245N/A is switched on with the <
option>-g</
option> flag. A
1245N/A non-standards-compliant variant of GSS-TSIG used by Windows
1245N/A 2000 can be switched on with the <
option>-o</
option> flag.
1245N/A <
para><
command>nsupdate</
command>
1245N/A uses the <
option>-y</
option> or <
option>-k</
option> option
1245N/A to provide the shared secret needed to generate a TSIG record
1245N/A for authenticating Dynamic DNS update requests, default type
1245N/A HMAC-MD5. These options are mutually exclusive.
1245N/A When the <
option>-y</
option> option is used, a signature is
1245N/A <
optional><
parameter>hmac:</
parameter></
optional><
parameter>keyname:secret.</
parameter>
1245N/A <
parameter>keyname</
parameter> is the name of the key, and
1245N/A <
parameter>secret</
parameter> is the base64 encoded shared secret.
1245N/A <
parameter>hmac</
parameter> is the name of the key algorithm;
1245N/A valid choices are <
literal>hmac-md5</
literal>,
1245N/A <
literal>hmac-sha1</
literal>, <
literal>hmac-sha224</
literal>,
1245N/A <
literal>hmac-sha256</
literal>, <
literal>hmac-sha384</
literal>, or
1245N/A <
literal>hmac-sha512</
literal>. If <
parameter>hmac</
parameter>
1245N/A is not specified, the default is <
literal>hmac-md5</
literal>.
1245N/A NOTE: Use of the <
option>-y</
option> option is discouraged because the
1245N/A shared secret is supplied as a command line argument in clear text.
1245N/A This may be visible in the output from
1245N/A <
refentrytitle>ps</
refentrytitle><
manvolnum>1</
manvolnum>
1245N/A or in a history file maintained by the user's shell.
1245N/A <
option>-k</
option> option, <
command>nsupdate</
command> reads
1245N/A the shared secret from the file <
parameter>keyfile</
parameter>.
1245N/A Keyfiles may be in two formats: a single file containing
1245N/A statement, which may be generated automatically by
1245N/A <
command>ddns-confgen</
command>, or a pair of files whose names are
1245N/A of the format <
filename>K{name}.+157.+{random}.key</
filename> and
1245N/A <
filename>K{name}.+157.+{random}.private</
filename>, which can be
1245N/A generated by <
command>dnssec-keygen</
command>.
1245N/A The <
option>-k</
option> may also be used to specify a SIG(0) key used
1245N/A to authenticate Dynamic DNS update requests. In this case, the key
1245N/A specified is not an HMAC-MD5 key.
1245N/A <
command>nsupdate</
command> can be run in a local-host only mode
1245N/A using the <
option>-l</
option> flag. This sets the server address to
1245N/A localhost (disabling the <
command>server</
command> so that the server
1245N/A address cannot be overridden). Connections to the local server will
1245N/A which is automatically generated by <
command>named</
command> if any
1245N/A local master zone has set <
command>update-policy</
command> to
1245N/A <
command>local</
command>. The location of this key file can be
1245N/A overridden with the <
option>-k</
option> option.
1245N/A By default, <
command>nsupdate</
command>
1245N/A uses UDP to send update requests to the name server unless they are too
1245N/A large to fit in a UDP request in which case TCP will be used.
1245N/A <
command>nsupdate</
command>
1245N/A This may be preferable when a batch of update requests is made.
1245N/A The <
option>-p</
option> sets the default port number to use for
1245N/A connections to a name server. The default is 53.
1245N/A The <
option>-t</
option> option sets the maximum time an update request
1245N/A take before it is aborted. The default is 300 seconds. Zero can be
1245N/A The <
option>-u</
option> option sets the UDP retry interval. The default
1245N/A 3 seconds. If zero, the interval will be computed from the timeout
1245N/A The <
option>-r</
option> option sets the number of UDP retries. The
1245N/A 3. If zero, only one update request will be made.
1245N/A The <
option>-R <
replaceable 1245N/A class="parameter">randomdev</
replaceable></
option> option
1245N/A specifies a source of randomness. If the operating system
1245N/A equivalent device, the default source of randomness is keyboard
1245N/A input. <
filename>randomdev</
filename> specifies the name of
1245N/A a character device or file containing random data to be used
1245N/A instead of the default. The special value
1245N/A <
filename>keyboard</
filename> indicates that keyboard input
1245N/A should be used. This option may be specified multiple times.
1245N/A Other types can be entered using "TYPEXXXXX" where "XXXXX" is the
1245N/A decimal value of the type with no leading zeros. The rdata,
1245N/A if present, will be parsed using the UNKNOWN rdata format,
1245N/A (<backslash> <hash> <space> <length>
1245N/A <space> <hexstring>).
1245N/A The <
option>-T</
option> and <
option>-P</
option> options print out
1245N/A lists of non-meta types for which the type-specific presentation
1245N/A formats are known. <
option>-T</
option> prints out the list of
1245N/A IANA-assigned types. <
option>-P</
option> prints out the list of
1245N/A private types specific to <
command>named</
command>. These options
1245N/A may be combined. <
command>nsupdate</
command> will exit after the
1245N/A The -V option causes <
command>nsupdate</
command> to print the
1245N/A <
title>INPUT FORMAT</
title>
1245N/A <
para><
command>nsupdate</
command>
1245N/A <
parameter>filename</
parameter>
1245N/A Each command is supplied on exactly one line of input.
1245N/A Some commands are for administrative purposes.
1245N/A The others are either update instructions or prerequisite checks on the
1245N/A These checks set conditions that some name or set of
1245N/A resource records (RRset) either exists or is absent from the zone.
1245N/A These conditions must be met if the entire update request is to succeed.
1245N/A Updates will be rejected if the tests for the prerequisite conditions
1245N/A Every update request consists of zero or more prerequisites
1245N/A This allows a suitably authenticated update request to proceed if some
1245N/A specified resource records are present or missing from the zone.
1245N/A A blank input line (or the <
command>send</
command> command)
1245N/A accumulated commands to be sent as one Dynamic DNS update request to the
1245N/A The command formats and their meaning are as follows:
1245N/A <
arg choice="req">servername</
arg>
1245N/A <
arg choice="opt">port</
arg>
1245N/A Sends all dynamic update requests to the name server
1245N/A <
parameter>servername</
parameter>.
1245N/A When no server statement is provided,
1245N/A <
command>nsupdate</
command>
1245N/A will send updates to the master server of the correct zone.
1245N/A The MNAME field of that zone's SOA record will identify the
1245N/A <
parameter>port</
parameter>
1245N/A <
parameter>servername</
parameter>
1245N/A where the dynamic update requests get sent.
1245N/A If no port number is specified, the default DNS port number of
1245N/A <
arg choice="req">address</
arg>
1245N/A <
arg choice="opt">port</
arg>
1245N/A Sends all dynamic update requests using the local
1245N/A <
parameter>address</
parameter>.
1245N/A When no local statement is provided,
1245N/A <
command>nsupdate</
command>
1245N/A will send updates using an address and port chosen by the
1245N/A <
parameter>port</
parameter>
1245N/A can additionally be used to make requests come from a specific
1245N/A If no port number is specified, the system will assign one.
1245N/A <
arg choice="req">zonename</
arg>
1245N/A Specifies that all updates are to be made to the zone
1245N/A <
parameter>zonename</
parameter>.
1245N/A <
parameter>zone</
parameter>
1245N/A <
command>nsupdate</
command>
1245N/A will attempt determine the correct zone to update based on the
1245N/A <
arg choice="req">classname</
arg>
1245N/A If no <
parameter>class</
parameter> is specified, the
1245N/A <
arg choice="req">seconds</
arg>
1245N/A Specify the default time to live for records to be added.
1245N/A The value <
parameter>none</
parameter> will clear the default
1245N/A <
arg choice="opt">hmac:</
arg><
arg choice="req">keyname</
arg>
1245N/A <
arg choice="req">secret</
arg>
1245N/A Specifies that all updates are to be TSIG-signed using the
1245N/A <
parameter>keyname</
parameter> <
parameter>secret</
parameter> pair.
1245N/A If <
parameter>hmac</
parameter> is specified, then it sets the
1245N/A signing algorithm in use; the default is
1245N/A <
literal>hmac-md5</
literal>. The <
command>key</
command>
1245N/A command overrides any key specified on the command line via
1245N/A <
option>-y</
option> or <
option>-k</
option>.
1245N/A Use GSS-TSIG to sign the updated. This is equivalent to
1245N/A specifying <
option>-g</
option> on the commandline.
1245N/A <
command>oldgsstsig</
command>
1245N/A Use the Windows 2000 version of GSS-TSIG to sign the updated.
1245N/A This is equivalent to specifying <
option>-o</
option> on the
1245N/A <
arg choice="req"><
optional>realm_name</
optional></
arg>
1245N/A When using GSS-TSIG use <
parameter>realm_name</
parameter> rather
1245N/A realm is specified the saved realm is cleared.
1245N/A <
command>check-names</
command>
1245N/A <
arg choice="req"><
optional>yes_or_no</
optional></
arg>
1245N/A Turn on or off check-names processing on records to
1245N/A be added. Check-names has no effect on prerequisites
1245N/A or records to be deleted. By default check-names
1245N/A processing is on. If check-names processing fails
1245N/A the record will not be added to the UPDATE message.
1245N/A <
command><
optional>prereq</
optional> nxdomain</
command>
1245N/A <
arg choice="req">domain-name</
arg>
1245N/A Requires that no resource record of any type exists with name
1245N/A <
parameter>domain-name</
parameter>.
1245N/A <
command><
optional>prereq</
optional> yxdomain</
command>
1245N/A <
arg choice="req">domain-name</
arg>
1245N/A <
parameter>domain-name</
parameter>
1245N/A exists (has as at least one resource record, of any type).
1245N/A <
command><
optional>prereq</
optional> nxrrset</
command>
1245N/A <
arg choice="req">domain-name</
arg>
1245N/A <
arg choice="opt">class</
arg>
1245N/A <
arg choice="req">type</
arg>
1245N/A Requires that no resource record exists of the specified
1245N/A <
parameter>type</
parameter>,
1245N/A <
parameter>class</
parameter>
1245N/A <
parameter>domain-name</
parameter>.
1245N/A <
parameter>class</
parameter>
1245N/A is omitted, IN (internet) is assumed.
1245N/A <
command><
optional>prereq</
optional> yxrrset</
command>
1245N/A <
arg choice="req">domain-name</
arg>
1245N/A <
arg choice="opt">class</
arg>
1245N/A <
arg choice="req">type</
arg>
1245N/A This requires that a resource record of the specified
1245N/A <
parameter>type</
parameter>,
1245N/A <
parameter>class</
parameter>
1245N/A <
parameter>domain-name</
parameter>
1245N/A <
parameter>class</
parameter>
1245N/A is omitted, IN (internet) is assumed.
1245N/A <
command><
optional>prereq</
optional> yxrrset</
command>
1245N/A <
arg choice="req">domain-name</
arg>
1245N/A <
arg choice="opt">class</
arg>
1245N/A <
arg choice="req">type</
arg>
1245N/A <
arg choice="req" rep="repeat">data</
arg>
1245N/A <
parameter>data</
parameter>
1245N/A from each set of prerequisites of this form
1245N/A <
parameter>type</
parameter>,
1245N/A <
parameter>class</
parameter>,
1245N/A <
parameter>domain-name</
parameter>
1245N/A are combined to form a set of RRs. This set of RRs must
1245N/A exactly match the set of RRs existing in the zone at the
1245N/A <
parameter>type</
parameter>,
1245N/A <
parameter>class</
parameter>,
1245N/A <
parameter>domain-name</
parameter>.
1245N/A <
parameter>data</
parameter>
1245N/A are written in the standard text representation of the resource
1245N/A <
command><
optional>update</
optional> del<
optional>ete</
optional></
command>
1245N/A <
arg choice="req">domain-name</
arg>
1245N/A <
arg choice="opt">ttl</
arg>
1245N/A <
arg choice="opt">class</
arg>
1245N/A <
arg choice="opt">type <
arg choice="opt" rep="repeat">data</
arg></
arg>
1245N/A Deletes any resource records named
1245N/A <
parameter>domain-name</
parameter>.
1245N/A <
parameter>type</
parameter>
1245N/A <
parameter>data</
parameter>
1245N/A is provided, only matching resource records will be removed.
1245N/A The internet class is assumed if
1245N/A <
parameter>class</
parameter>
1245N/A is ignored, and is only allowed for compatibility.
1245N/A <
command><
optional>update</
optional> add</
command>
1245N/A <
arg choice="req">domain-name</
arg>
1245N/A <
arg choice="req">ttl</
arg>
1245N/A <
arg choice="opt">class</
arg>
1245N/A <
arg choice="req">type</
arg>
1245N/A <
arg choice="req" rep="repeat">data</
arg>
1245N/A Adds a new resource record with the specified
1245N/A <
parameter>ttl</
parameter>,
1245N/A <
parameter>class</
parameter>
1245N/A <
parameter>data</
parameter>.
1245N/A Displays the current message, containing all of the
1245N/A updates specified since the last send.
1245N/A Sends the current message. This is equivalent to entering a
1245N/A Lines beginning with a semicolon are comments and are ignored.
1245N/A The examples below show how
1245N/A <
command>nsupdate</
command>
1245N/A could be used to insert and delete resource records from the
1245N/A Notice that the input in each example contains a trailing blank line so
1245N/A a group of commands are sent as one dynamic update request to the
1245N/A with IP address 172.16.1.1 is added.
1245N/A The newly-added record has a 1 day TTL (86400 seconds).
1245N/A The prerequisite condition gets the name server to check that there
1245N/A are no resource records of any type for
1245N/A If there are, the update request fails.
1245N/A If this name does not exist, a CNAME for it is added.
1245N/A This ensures that when the CNAME is added, it cannot conflict with the
1245N/A long-standing rule in RFC 1034 that a name must not exist as any other
1245N/A record type if it exists as a CNAME.
1245N/A (The rule has been updated for DNSSEC in RFC 2535 to allow CNAMEs to have
1245N/A RRSIG, DNSKEY and NSEC records.)
1245N/A used to identify default name server
1245N/A sets the default TSIG key for use in local-only mode
1245N/A <
term><
constant>K{name}.+157.+{random}.key</
constant></
term>
1245N/A base-64 encoding of HMAC-MD5 key created by
1245N/A <
refentrytitle>dnssec-keygen</
refentrytitle><
manvolnum>8</
manvolnum>
1245N/A <
term><
constant>K{name}.+157.+{random}.private</
constant></
term>
1245N/A base-64 encoding of HMAC-MD5 key created by
1245N/A <
refentrytitle>dnssec-keygen</
refentrytitle><
manvolnum>8</
manvolnum>
1245N/A <
citetitle>RFC 2136</
citetitle>,
1245N/A <
citetitle>RFC 3007</
citetitle>,
1245N/A <
citetitle>RFC 2104</
citetitle>,
1245N/A <
citetitle>RFC 2845</
citetitle>,
1245N/A <
citetitle>RFC 1034</
citetitle>,
1245N/A <
citetitle>RFC 2535</
citetitle>,
1245N/A <
citetitle>RFC 2931</
citetitle>,
1245N/A <
refentrytitle>named</
refentrytitle><
manvolnum>8</
manvolnum>
1245N/A <
refentrytitle>ddns-confgen</
refentrytitle><
manvolnum>8</
manvolnum>
1245N/A <
refentrytitle>dnssec-keygen</
refentrytitle><
manvolnum>8</
manvolnum>
1245N/A The TSIG key is redundantly stored in two separate files.
1245N/A This is a consequence of nsupdate using the DST library
1245N/A for its cryptographic operations, and may change in future