knsupdate – Dynamic DNS update utility


knsupdate [options] [filename]


This utility sends Dynamic DNS update messages to a DNS server. Update content is read from a file (if the parameter filename is given) or from the standard input.

The format of updates is textual and is made up of commands. Every command is placed on the separate line of the input. Lines starting with a semicolon are comments and are not processed.


Enable debug messages.
-h, –help
Print the program help.
-k keyfile
Use the TSIG key stored in a file keyfile to authenticate the request. The file should contain the key in the same format, which is accepted by the -y option.
-p port
Set the port to use for connections to the server (if not explicitly specified in the update). The default is 53.
-r retries
The number of retries for UDP requests. The default is 3.
-t timeout
The total timeout (for all UDP update tries) of the update request in seconds. The default is 12. If set to zero, the timeout is infinite.
Use a TCP connection.
-V, –version
Print the program version.
-y [alg:]name:key
Use the TSIG key with a name name to authenticate the request. The alg part specifies the algorithm (the default is hmac-sha256) and key specifies the shared secret encoded in Base64.


server name [port]
Specifies a receiving server of the dynamic update message. The name parameter can be either a host name or an IP address. If the port is not specified, the default port is used. The default port value can be controlled using the -p program option.
local address [port]
Specifies outgoing address and port. If no local is specified, the address and port are set by the system automatically. The default port number is 0.
zone name
Specifies that all updates are done within a zone name. If not used, the default zone is the root zone.
origin name
Specifies fully qualified domain name suffix which is appended to non-fqd owners in update commands. The default origin is the root zone.
class name
Sets name as the default class for all updates. If not used, the default class is IN.
ttl value
Sets value as the default TTL (in seconds). If not used, the default value is 0.
key [alg:]name key
Specifies the TSIG key named name to authenticate the request. An optional alg algorithm can be specified. This command has the same effect as the program option -y.
[prereq] nxdomain name
Adds a prerequisite for a non-existing record owned by name.
[prereq] yxdomain name
Adds a prerequisite for an existing record owned by name.
[prereq] nxrrset name [class] type
Adds a prerequisite for a non-existing record of the type owned by name. Internet class is expected.
[prereq] yxrrset name [class] type [data]
Adds a prerequisite for an existing record of the type owned by name with optional data. Internet class is expected.
[update] add name [ttl] [class] type data
Adds a request to add a new resource record into the zone. Please note that if the name is not fully qualified domain name, the current origin name is appended to it.
[update] del[ete] name [ttl] [class] [type] [data]
Adds a request to remove all (or matching class, type or data) resource records from the zone. There is the same requirement for the name parameter as in update add command. The ttl item is ignored.
Displays current content of the update message.
Sends the current update message and cleans the list of updates.
Displays the last answer from the server.
Enable debugging. This command has the same meaning as the -d program option.
Quit the program.


Options -k and -y can not be used simultaneously.

Dnssec-keygen keyfile format is not supported. Use keymgr(8) instead.

Zone name/server guessing is not supported if the zone name/server is not specified.

Empty line doesn’t send the update.


  1. Send one update of the zone to the server The update contains two new records:

    $ knsupdate
    > server
    > zone
    > origin
    > ttl 3600
    > add 7200 A
    > add test2 TXT "hello"
    > show
    > send
    > answer
    > quit

See Also

kdig(1), khost(1), keymgr(8).