{
    "content": [
        {
            "type": "text",
            "text": "# NSUPDATE (man)\n\n## NAME\n\nnsupdate - dynamic DNS update utility\n\n## SYNOPSIS\n\nnsupdate  [-d]  [-D]  [-i] [-L level] [ [-g] | [-o] | [-l] | [-y [hmac:]keyname:secret] | [-k\nkeyfile] ] [-t timeout] [-u udptimeout] [-r udpretries] [-v] [-T] [-P] [-V] [ [-4] |  [-6]  ]\n[filename]\n\n## DESCRIPTION\n\nnsupdate  is  used  to  submit Dynamic DNS Update requests, as defined in RFC 2136, to a name\nserver. This allows resource records to be added or removed  from  a  zone  without  manually\nediting  the  zone  file.  A single update request can contain requests to add or remove more\nthan one resource record.\n\n## Sections\n\n- **NAME**\n- **SYNOPSIS**\n- **DESCRIPTION**\n- **OPTIONS** (20 subsections)\n- **INPUT FORMAT** (17 subsections)\n- **EXAMPLES**\n- **FILES** (4 subsections)\n- **SEE ALSO**\n- **BUGS**\n- **AUTHOR**\n- **COPYRIGHT**\n\nUse structuredContent.sections for detailed options, examples, and full documentation.\n"
        }
    ],
    "structuredContent": {
        "command": "NSUPDATE",
        "section": "",
        "mode": "man",
        "summary": "nsupdate - dynamic DNS update utility",
        "synopsis": "nsupdate  [-d]  [-D]  [-i] [-L level] [ [-g] | [-o] | [-l] | [-y [hmac:]keyname:secret] | [-k\nkeyfile] ] [-t timeout] [-u udptimeout] [-r udpretries] [-v] [-T] [-P] [-V] [ [-4] |  [-6]  ]\n[filename]",
        "tldr_summary": null,
        "tldr_examples": [],
        "tldr_source": null,
        "flags": [
            {
                "flag": "-4",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-6",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-C",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-d",
                "long": null,
                "arg": null,
                "description": "quests that are made and the replies received from the name server."
            },
            {
                "flag": "-D",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-g",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-i",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-k",
                "long": null,
                "arg": null,
                "description": "This option indicates the file containing the TSIG authentication key. Keyfiles may be in two formats: a single file containing a named.conf-format key statement, which may be generated automatically by ddns-confgen; or a pair of files whose names are of the format K{name}.+157.+{random}.key and K{name}.+157.+{random}.private, which can be generated by dnssec-keygen. The -k option can also be used to specify a SIG(0) key used to authenticate Dynamic DNS update requests. In this case, the key specified is not an HMAC-MD5 key."
            },
            {
                "flag": "-l",
                "long": null,
                "arg": null,
                "description": "(disabling the server so that the server address cannot be overridden). Connections to the local server use a TSIG key found in /run/session.key, which is automatically gen‐ erated by named if any local primary zone has set update-policy to local. The location of this key file can be overridden with the -k option."
            },
            {
                "flag": "-L",
                "long": null,
                "arg": null,
                "description": "This option sets the logging debug level. If zero, logging is disabled."
            },
            {
                "flag": "-o",
                "long": null,
                "arg": null,
                "description": "2000."
            },
            {
                "flag": "-p",
                "long": null,
                "arg": null,
                "description": "This option sets the port to use for connections to a name server. The default is 53."
            },
            {
                "flag": "-P",
                "long": null,
                "arg": null,
                "description": "mat is understood by nsupdate. See also the -T option."
            },
            {
                "flag": "-r",
                "long": null,
                "arg": null,
                "description": "This option sets the number of UDP retries. The default is 3. If zero, only one update request is made."
            },
            {
                "flag": "-t",
                "long": null,
                "arg": null,
                "description": "This option sets the maximum time an update request can take before it is aborted. The default is 300 seconds. If zero, the timeout is disabled for TCP mode. For UDP mode, the option -u takes precedence over this option, unless the option -u is set to zero, in which case the interval is computed from the -t timeout interval and the number of UDP retries. For UDP mode, the timeout can not be disabled, and will be rounded up to 1 second in case if both -t and -u are set to zero."
            },
            {
                "flag": "-T",
                "long": null,
                "arg": null,
                "description": "derstood by nsupdate. nsupdate exits after the lists are printed. The -T option can be combined with the -P option. Other types can be entered using TYPEXXXXX where XXXXX is the decimal value of the type with no leading zeros. The rdata, if present, is parsed using the UNKNOWN rdata format, (<backslash> <hash> <space> <length> <space> <hexstring>)."
            },
            {
                "flag": "-u",
                "long": null,
                "arg": null,
                "description": "This option sets the UDP retry interval. The default is 3 seconds. If zero, the inter‐ val is computed from the timeout interval and number of UDP retries."
            },
            {
                "flag": "-v",
                "long": null,
                "arg": null,
                "description": "fault, nsupdate uses UDP to send update requests to the name server unless they are too large to fit in a UDP request, in which case TCP is used. TCP may be preferable when a batch of update requests is made."
            },
            {
                "flag": "-V",
                "long": null,
                "arg": null,
                "description": ""
            },
            {
                "flag": "-y",
                "long": null,
                "arg": null,
                "description": "This option sets the literal TSIG authentication key. keyname is the name of the key, and secret is the base64 encoded shared secret. hmac is the name of the key algorithm; valid choices are hmac-md5, hmac-sha1, hmac-sha224, hmac-sha256, hmac-sha384, or hmac-sha512. If hmac is not specified, the default is hmac-md5, or if MD5 was dis‐ abled, hmac-sha256. NOTE: Use of the -y option is discouraged because the shared secret is supplied as a command-line argument in clear text. This may be visible in the output from ps1 or in a history file maintained by the user's shell."
            }
        ],
        "examples": [
            "The  examples  below show how nsupdate can be used to insert and delete resource records from",
            "the example.com zone. Notice that the input in each example contains a trailing  blank  line,",
            "so  that a group of commands is sent as one dynamic update request to the primary name server",
            "for example.com.",
            "# nsupdate",
            "> update delete oldhost.example.com A",
            "> update add newhost.example.com 86400 A 172.16.1.1",
            "> send",
            "Any A records for oldhost.example.com are deleted, and an A  record  for  newhost.example.com",
            "with  IP  address  172.16.1.1 is added. The newly added record has a TTL of 1 day (86400 sec‐",
            "onds).",
            "# nsupdate",
            "> prereq nxdomain nickname.example.com",
            "> update add nickname.example.com 86400 CNAME somehost.example.com",
            "> send",
            "The prerequisite condition tells the name server to verify that there are no resource records",
            "of  any  type  for nickname.example.com. If there are, the update request fails. If this name",
            "does not exist, a CNAME for it is added. This ensures that when the CNAME is added, it cannot",
            "conflict  with  the  long-standing  rule  in RFC 1034 that a name must not exist as any other",
            "record type if it exists as a CNAME. (The rule has been updated for DNSSEC in RFC 2535 to al‐",
            "low CNAMEs to have RRSIG, DNSKEY, and NSEC records.)"
        ],
        "see_also": [
            {
                "name": "named",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/named/8/json"
            },
            {
                "name": "gen",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/gen/8/json"
            },
            {
                "name": "tsig-keygen",
                "section": "8",
                "url": "https://www.chedong.com/phpMan.php/man/tsig-keygen/8/json"
            }
        ],
        "section_outline": [
            {
                "name": "NAME",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "SYNOPSIS",
                "lines": 4,
                "subsections": []
            },
            {
                "name": "DESCRIPTION",
                "lines": 30,
                "subsections": []
            },
            {
                "name": "OPTIONS",
                "lines": 1,
                "subsections": [
                    {
                        "name": "-4",
                        "lines": 1,
                        "flag": "-4"
                    },
                    {
                        "name": "-6",
                        "lines": 1,
                        "flag": "-6"
                    },
                    {
                        "name": "-C",
                        "lines": 1,
                        "flag": "-C"
                    },
                    {
                        "name": "-d",
                        "lines": 2,
                        "flag": "-d"
                    },
                    {
                        "name": "-D",
                        "lines": 1,
                        "flag": "-D"
                    },
                    {
                        "name": "-g",
                        "lines": 1,
                        "flag": "-g"
                    },
                    {
                        "name": "-i",
                        "lines": 1,
                        "flag": "-i"
                    },
                    {
                        "name": "-k keyfile",
                        "lines": 8,
                        "flag": "-k"
                    },
                    {
                        "name": "-l",
                        "lines": 5,
                        "flag": "-l"
                    },
                    {
                        "name": "-L level",
                        "lines": 2,
                        "flag": "-L"
                    },
                    {
                        "name": "-o",
                        "lines": 2,
                        "flag": "-o"
                    },
                    {
                        "name": "-p port",
                        "lines": 2,
                        "flag": "-p"
                    },
                    {
                        "name": "-P",
                        "lines": 2,
                        "flag": "-P"
                    },
                    {
                        "name": "-r udpretries",
                        "lines": 3,
                        "flag": "-r"
                    },
                    {
                        "name": "-t timeout",
                        "lines": 7,
                        "flag": "-t"
                    },
                    {
                        "name": "-T",
                        "lines": 7,
                        "flag": "-T"
                    },
                    {
                        "name": "-u udptimeout",
                        "lines": 3,
                        "flag": "-u"
                    },
                    {
                        "name": "-v",
                        "lines": 4,
                        "flag": "-v"
                    },
                    {
                        "name": "-V",
                        "lines": 1,
                        "flag": "-V"
                    },
                    {
                        "name": "-y [hmac:]keyname:secret",
                        "lines": 10,
                        "flag": "-y"
                    }
                ]
            },
            {
                "name": "INPUT FORMAT",
                "lines": 14,
                "subsections": [
                    {
                        "name": "server servername port",
                        "lines": 9
                    },
                    {
                        "name": "local address port",
                        "lines": 5
                    },
                    {
                        "name": "zone zonename",
                        "lines": 4
                    },
                    {
                        "name": "class classname",
                        "lines": 3
                    },
                    {
                        "name": "ttl seconds",
                        "lines": 3
                    },
                    {
                        "name": "key hmac:keyname secret",
                        "lines": 5
                    },
                    {
                        "name": "gsstsig",
                        "lines": 3
                    },
                    {
                        "name": "oldgsstsig",
                        "lines": 7
                    },
                    {
                        "name": "check-names [boolean]",
                        "lines": 5
                    },
                    {
                        "name": "prereq nxdomain domain-name",
                        "lines": 3
                    },
                    {
                        "name": "prereq yxdomain domain-name",
                        "lines": 3
                    },
                    {
                        "name": "prereq nxrrset domain-name class type",
                        "lines": 3
                    },
                    {
                        "name": "prereq yxrrset domain-name class type",
                        "lines": 3
                    },
                    {
                        "name": "prereq yxrrset domain-name class type data",
                        "lines": 6
                    },
                    {
                        "name": "update delete domain-name ttl class type data",
                        "lines": 4
                    },
                    {
                        "name": "update add domain-name ttl class type data",
                        "lines": 11
                    },
                    {
                        "name": "version",
                        "lines": 6
                    }
                ]
            },
            {
                "name": "EXAMPLES",
                "lines": 26,
                "subsections": []
            },
            {
                "name": "FILES",
                "lines": 1,
                "subsections": [
                    {
                        "name": "/etc/resolv.conf",
                        "lines": 2
                    },
                    {
                        "name": "/run/session.key",
                        "lines": 2
                    },
                    {
                        "name": "K{name}.+157.+{random}.key",
                        "lines": 2
                    },
                    {
                        "name": "K{name}.+157.+{random}.private",
                        "lines": 2
                    }
                ]
            },
            {
                "name": "SEE ALSO",
                "lines": 3,
                "subsections": []
            },
            {
                "name": "BUGS",
                "lines": 3,
                "subsections": []
            },
            {
                "name": "AUTHOR",
                "lines": 2,
                "subsections": []
            },
            {
                "name": "COPYRIGHT",
                "lines": 6,
                "subsections": []
            }
        ],
        "sections": {
            "NAME": {
                "content": "nsupdate - dynamic DNS update utility\n",
                "subsections": []
            },
            "SYNOPSIS": {
                "content": "nsupdate  [-d]  [-D]  [-i] [-L level] [ [-g] | [-o] | [-l] | [-y [hmac:]keyname:secret] | [-k\nkeyfile] ] [-t timeout] [-u udptimeout] [-r udpretries] [-v] [-T] [-P] [-V] [ [-4] |  [-6]  ]\n[filename]\n",
                "subsections": []
            },
            "DESCRIPTION": {
                "content": "nsupdate  is  used  to  submit Dynamic DNS Update requests, as defined in RFC 2136, to a name\nserver. This allows resource records to be added or removed  from  a  zone  without  manually\nediting  the  zone  file.  A single update request can contain requests to add or remove more\nthan one resource record.\n\nZones that are under dynamic control via nsupdate or a DHCP server should not  be  edited  by\nhand. Manual edits could conflict with dynamic updates and cause data to be lost.\n\nThe  resource records that are dynamically added or removed with nsupdate must be in the same\nzone. Requests are sent to the zone's primary server, which is identified by the MNAME  field\nof the zone's SOA record.\n\nTransaction  signatures  can  be  used to authenticate the Dynamic DNS updates. These use the\nTSIG resource record type described in RFC 2845, the SIG(0) record described in RFC 2535  and\nRFC 2931, or GSS-TSIG as described in RFC 3645.\n\nTSIG relies on a shared secret that should only be known to nsupdate and the name server. For\ninstance, suitable key and server statements are added to /etc/bind/named.conf  so  that  the\nname server can associate the appropriate secret key and algorithm with the IP address of the\nclient application that is using TSIG authentication. ddns-confgen can generate suitable con‐\nfiguration  fragments.  nsupdate uses the -y or -k options to provide the TSIG shared secret;\nthese options are mutually exclusive.\n\nSIG(0) uses public key cryptography. To use a SIG(0) key, the public key must be stored in  a\nKEY record in a zone served by the name server.\n\nGSS-TSIG uses Kerberos credentials. Standard GSS-TSIG mode is switched on with the -g flag. A\nnon-standards-compliant variant of GSS-TSIG used by Windows 2000 can be switched on with  the\n-o flag.\n",
                "subsections": []
            },
            "OPTIONS": {
                "content": "",
                "subsections": [
                    {
                        "name": "-4",
                        "content": "",
                        "flag": "-4"
                    },
                    {
                        "name": "-6",
                        "content": "",
                        "flag": "-6"
                    },
                    {
                        "name": "-C",
                        "content": "",
                        "flag": "-C"
                    },
                    {
                        "name": "-d",
                        "content": "quests that are made and the replies received from the name server.\n",
                        "flag": "-d"
                    },
                    {
                        "name": "-D",
                        "content": "",
                        "flag": "-D"
                    },
                    {
                        "name": "-g",
                        "content": "",
                        "flag": "-g"
                    },
                    {
                        "name": "-i",
                        "content": "",
                        "flag": "-i"
                    },
                    {
                        "name": "-k keyfile",
                        "content": "This option indicates the file containing the TSIG authentication key. Keyfiles may be\nin  two formats: a single file containing a named.conf-format key statement, which may\nbe generated automatically by ddns-confgen; or a pair of files whose names are of  the\nformat  K{name}.+157.+{random}.key  and  K{name}.+157.+{random}.private,  which can be\ngenerated by dnssec-keygen. The -k option can also be used to  specify  a  SIG(0)  key\nused  to  authenticate Dynamic DNS update requests. In this case, the key specified is\nnot an HMAC-MD5 key.\n",
                        "flag": "-k"
                    },
                    {
                        "name": "-l",
                        "content": "(disabling the server so that the server address cannot be overridden). Connections to\nthe local server use a TSIG key found in /run/session.key, which is automatically gen‐\nerated by named if any local primary zone has set update-policy to local. The location\nof this key file can be overridden with the -k option.\n",
                        "flag": "-l"
                    },
                    {
                        "name": "-L level",
                        "content": "This option sets the logging debug level. If zero, logging is disabled.\n",
                        "flag": "-L"
                    },
                    {
                        "name": "-o",
                        "content": "2000.\n",
                        "flag": "-o"
                    },
                    {
                        "name": "-p port",
                        "content": "This option sets the port to use for connections to a name server. The default is 53.\n",
                        "flag": "-p"
                    },
                    {
                        "name": "-P",
                        "content": "mat is understood by nsupdate. See also the -T option.\n",
                        "flag": "-P"
                    },
                    {
                        "name": "-r udpretries",
                        "content": "This option sets the number of UDP retries. The default is 3. If zero, only one update\nrequest is made.\n",
                        "flag": "-r"
                    },
                    {
                        "name": "-t timeout",
                        "content": "This option sets the maximum time an update request can take before it is aborted. The\ndefault is 300 seconds. If zero, the timeout is disabled for TCP mode. For  UDP  mode,\nthe  option -u takes precedence over this option, unless the option -u is set to zero,\nin which case the interval is computed from the -t timeout interval and the number  of\nUDP  retries. For UDP mode, the timeout can not be disabled, and will be rounded up to\n1 second in case if both -t and -u are set to zero.\n",
                        "flag": "-t"
                    },
                    {
                        "name": "-T",
                        "content": "derstood by nsupdate. nsupdate exits after the lists are printed. The -T option can be\ncombined with the -P option.\n\nOther types can be entered using TYPEXXXXX where XXXXX is the  decimal  value  of  the\ntype  with  no leading zeros. The rdata, if present, is parsed using the UNKNOWN rdata\nformat, (<backslash> <hash> <space> <length> <space> <hexstring>).\n",
                        "flag": "-T"
                    },
                    {
                        "name": "-u udptimeout",
                        "content": "This option sets the UDP retry interval. The default is 3 seconds. If zero, the inter‐\nval is computed from the timeout interval and number of UDP retries.\n",
                        "flag": "-u"
                    },
                    {
                        "name": "-v",
                        "content": "fault, nsupdate uses UDP to send update requests to the name server  unless  they  are\ntoo  large  to  fit in a UDP request, in which case TCP is used. TCP may be preferable\nwhen a batch of update requests is made.\n",
                        "flag": "-v"
                    },
                    {
                        "name": "-V",
                        "content": "",
                        "flag": "-V"
                    },
                    {
                        "name": "-y [hmac:]keyname:secret",
                        "content": "This option sets the literal TSIG authentication key. keyname is the name of the  key,\nand secret is the base64 encoded shared secret. hmac is the name of the key algorithm;\nvalid choices are  hmac-md5,  hmac-sha1,  hmac-sha224,  hmac-sha256,  hmac-sha384,  or\nhmac-sha512.  If  hmac  is  not specified, the default is hmac-md5, or if MD5 was dis‐\nabled, hmac-sha256.\n\nNOTE: Use of the -y option is discouraged because the shared secret is supplied  as  a\ncommand-line  argument in clear text. This may be visible in the output from ps1 or in\na history file maintained by the user's shell.\n",
                        "flag": "-y"
                    }
                ]
            },
            "INPUT FORMAT": {
                "content": "nsupdate reads input from filename or standard input. Each command is supplied on exactly one\nline  of  input.  Some commands are for administrative purposes; others are either update in‐\nstructions or prerequisite checks on the contents of the zone. These  checks  set  conditions\nthat  some  name or set of resource records (RRset) either exists or is absent from the zone.\nThese conditions must be met if the entire update request is to succeed. Updates are rejected\nif the tests for the prerequisite conditions fail.\n\nEvery  update  request  consists of zero or more prerequisites and zero or more updates. This\nallows a suitably authenticated update request to proceed if some specified resource  records\nare  either present or missing from the zone. A blank input line (or the send command) causes\nthe accumulated commands to be sent as one Dynamic DNS update request to the name server.\n\nThe command formats and their meanings are as follows:\n",
                "subsections": [
                    {
                        "name": "server servername port",
                        "content": "This command sends all dynamic update requests to the name server servername.  When no\nserver statement is provided, nsupdate sends updates to the primary server of the cor‐\nrect zone. The MNAME field of that zone's SOA record identify the primary  server  for\nthat  zone.   port  is the port number on servername where the dynamic update requests\nare sent. If no port number is specified, the default DNS port number of 53 is used.\n\nNOTE:\nThis command has no effect when GSS-TSIG is in use.\n"
                    },
                    {
                        "name": "local address port",
                        "content": "This command sends all dynamic update requests using the local address. When no  local\nstatement  is provided, nsupdate sends updates using an address and port chosen by the\nsystem. port can also be used to force requests to come from a specific  port.  If  no\nport number is specified, the system assigns one.\n"
                    },
                    {
                        "name": "zone zonename",
                        "content": "This  command  specifies  that all updates are to be made to the zone zonename.  If no\nzone statement is provided, nsupdate attempts to determine the correct zone to  update\nbased on the rest of the input.\n"
                    },
                    {
                        "name": "class classname",
                        "content": "This  command specifies the default class. If no class is specified, the default class\nis IN.\n"
                    },
                    {
                        "name": "ttl seconds",
                        "content": "This command specifies the default time-to-live, in seconds, for records to be  added.\nThe value none clears the default TTL.\n"
                    },
                    {
                        "name": "key hmac:keyname secret",
                        "content": "This command specifies that all updates are to be TSIG-signed using the keyname-secret\npair. If hmac is specified, it sets the signing  algorithm  in  use.  The  default  is\nhmac-md5;  if  MD5 was disabled, the default is hmac-sha256. The key command overrides\nany key specified on the command line via -y or -k.\n"
                    },
                    {
                        "name": "gsstsig",
                        "content": "This command uses GSS-TSIG to sign the updates. This is equivalent to specifying -g on\nthe command line.\n"
                    },
                    {
                        "name": "oldgsstsig",
                        "content": "This  command  uses  the Windows 2000 version of GSS-TSIG to sign the updates. This is\nequivalent to specifying -o on the command line.\n\nrealm [realmname]\nWhen using GSS-TSIG, this command specifies the use of realmname rather than the  de‐\nfault realm in krb5.conf. If no realm is specified, the saved realm is cleared.\n"
                    },
                    {
                        "name": "check-names [boolean]",
                        "content": "This  command  turns  on  or  off  check-names  processing  on  records  to  be added.\nCheck-names has no effect on prerequisites or  records  to  be  deleted.   By  default\ncheck-names processing is on. If check-names processing fails, the record is not added\nto the UPDATE message.\n"
                    },
                    {
                        "name": "prereq nxdomain domain-name",
                        "content": "This command requires that no resource record of any type  exist  with  the  name  do‐‐\nmain-name.\n"
                    },
                    {
                        "name": "prereq yxdomain domain-name",
                        "content": "This  command requires that domain-name exist (as at least one resource record, of any\ntype).\n"
                    },
                    {
                        "name": "prereq nxrrset domain-name class type",
                        "content": "This command requires that no resource record exist of the specified type, class,  and\ndomain-name. If class is omitted, IN (Internet) is assumed.\n"
                    },
                    {
                        "name": "prereq yxrrset domain-name class type",
                        "content": "This  command  requires  that  a  resource record of the specified type, class and do‐‐\nmain-name exist. If class is omitted, IN (internet) is assumed.\n"
                    },
                    {
                        "name": "prereq yxrrset domain-name class type data",
                        "content": "With this command, the data from each set of prerequisites of this form sharing a com‐\nmon  type,  class,  and domain-name are combined to form a set of RRs. This set of RRs\nmust exactly match the set of RRs existing in the zone at the given type,  class,  and\ndomain-name.  The data are written in the standard text representation of the resource\nrecord's RDATA.\n"
                    },
                    {
                        "name": "update delete domain-name ttl class type data",
                        "content": "This command deletes any resource records named domain-name. If type and data are pro‐\nvided,  only  matching resource records are removed.  The Internet class is assumed if\nclass is not supplied. The ttl is ignored, and is only allowed for compatibility.\n"
                    },
                    {
                        "name": "update add domain-name ttl class type data",
                        "content": "This command adds a new resource record with the specified ttl, class, and data.\n\nshow   This command displays the current message, containing all of the prerequisites and up‐\ndates specified since the last send.\n\nsend   This command sends the current message. This is equivalent to entering a blank line.\n\nanswer This command displays the answer.\n\ndebug  This command turns on debugging.\n"
                    },
                    {
                        "name": "version",
                        "content": "This command prints the version number.\n\nhelp   This command prints a list of commands.\n\nLines beginning with a semicolon (;) are comments and are ignored.\n"
                    }
                ]
            },
            "EXAMPLES": {
                "content": "The  examples  below show how nsupdate can be used to insert and delete resource records from\nthe example.com zone. Notice that the input in each example contains a trailing  blank  line,\nso  that a group of commands is sent as one dynamic update request to the primary name server\nfor example.com.\n\n# nsupdate\n> update delete oldhost.example.com A\n> update add newhost.example.com 86400 A 172.16.1.1\n> send\n\nAny A records for oldhost.example.com are deleted, and an A  record  for  newhost.example.com\nwith  IP  address  172.16.1.1 is added. The newly added record has a TTL of 1 day (86400 sec‐\nonds).\n\n# nsupdate\n> prereq nxdomain nickname.example.com\n> update add nickname.example.com 86400 CNAME somehost.example.com\n> send\n\nThe prerequisite condition tells the name server to verify that there are no resource records\nof  any  type  for nickname.example.com. If there are, the update request fails. If this name\ndoes not exist, a CNAME for it is added. This ensures that when the CNAME is added, it cannot\nconflict  with  the  long-standing  rule  in RFC 1034 that a name must not exist as any other\nrecord type if it exists as a CNAME. (The rule has been updated for DNSSEC in RFC 2535 to al‐\nlow CNAMEs to have RRSIG, DNSKEY, and NSEC records.)\n",
                "subsections": []
            },
            "FILES": {
                "content": "",
                "subsections": [
                    {
                        "name": "/etc/resolv.conf",
                        "content": "Used to identify the default name server\n"
                    },
                    {
                        "name": "/run/session.key",
                        "content": "Sets the default TSIG key for use in local-only mode\n"
                    },
                    {
                        "name": "K{name}.+157.+{random}.key",
                        "content": "Base-64 encoding of the HMAC-MD5 key created by dnssec-keygen.\n"
                    },
                    {
                        "name": "K{name}.+157.+{random}.private",
                        "content": "Base-64 encoding of the HMAC-MD5 key created by dnssec-keygen.\n"
                    }
                ]
            },
            "SEE ALSO": {
                "content": "RFC  2136,  RFC 3007, RFC 2104, RFC 2845, RFC 1034, RFC 2535, RFC 2931, named(8), dnssec-key‐‐\ngen(8), tsig-keygen(8).\n",
                "subsections": []
            },
            "BUGS": {
                "content": "The TSIG key is redundantly stored in two separate files. This is a consequence  of  nsupdate\nusing the DST library for its cryptographic operations, and may change in future releases.\n",
                "subsections": []
            },
            "AUTHOR": {
                "content": "Internet Systems Consortium\n",
                "subsections": []
            },
            "COPYRIGHT": {
                "content": "2026, Internet Systems Consortium\n\n\n\n\n9.18.39-0ubuntu0.22.04.4-Ubuntu              2025-08-13                                  NSUPDATE(1)",
                "subsections": []
            }
        }
    }
}