DNST-UPDATE(1)
π
DNST-UPDATE (1) β the dnst girlies' guide to dynamic updates π
okay so bestie, this is dnst-update, part of the dnst manual gang. it's a one-page glow-up for your DNS records β sending a dynamic update packet so you can update an IP (or yeet all the existing IPs) for a domain name. no cap. π¦
β¨ SYNOPSIS β¨
dnst update [OPTIONS] <DOMAIN NAME> <COMMAND>
dnst update [OPTIONS] <DOMAIN NAME> add <RRTYPE> [RDATA]...
dnst update [OPTIONS] <DOMAIN NAME> delete <RRTYPE> [RDATA]...
dnst update [OPTIONS] <DOMAIN NAME> clear <RRTYPE>
π DESCRIPTION π
dnst update literally sends an RFC 2136 Dynamic Update message to the name servers for a zone, so it can add, update, or delete arbitrary Resource Records for a domain name. it's giving "I have a message and the name servers WILL hear it". π
the message can optionally be authenticated using a given TSIG key β security, slay.
here's the trio, each one iconic in its own way:
dnst update [...] addadds the given RRs to the domain. π«Άdnst update [...] deletedeletes the given RRs from the domain. it can be used to delete individual RRs or a whole RRset. flexible queen.dnst update [...] clearclears (deletes) all RRs of any type from the domain name. that's the nuclear option bestie, no crumbs left. π
π ARGUMENTS π
<DOMAIN NAME>β the domain name of the RR(s) to update. the main character.<COMMAND>β which action to take:add,delete, orclear. pick your fighter.
πΈ OPTIONS: πΈ
-c,--class <CLASS>β Class. defaults toIN. the standard-issue vibe.-t,--ttl <TTL>β TTL in seconds or with unit suffix (s,m,h,d). is only used by theaddcommand and is otherwise ignored (sorry other commands, this one's not for you π). defaults to3600.-s,--server <IP>β the name server to send the update to. by default, the update will be sent to the list of name servers fetched from the zone's NS RRset as per RFC 2136. letting DNS do its own thing, we love to see it.-z,--zone <ZONE>β the zone the domain name belongs to (to skip a SOA query). efficiency queen π-y,--tsig <NAME:KEY[:ALGO]>β TSIG credentials for the UPDATE packet π--rrset-exists <DOMAIN_NAME_AND_TYPE>β require that at least one RR with the given NAME and TYPE exists. this option can be provided multiple times, with format<DOMAIN_NAME> <TYPE>each, to build up a list of RRs. if the domain name is relative, it will be relative to the zone's apex. [aliases:--rrset]--rrset-exists-exact <RESOURCE_RECORD>β require that an RRset exists and contains exactly the RRs with the given NAME, TYPE, and RDATA. this option can be provided multiple times, each with one RR in zonefile format, to build up one or more RRsets that is required to exist. CLASS and TTL can be omitted. if the domain name is relative, it will be relative to the zone's apex. [aliases:--rrset-exact]--rrset-non-existent <DOMAIN_NAME_AND_TYPE>β RRset does not exist. this option can be provided multiple times, with format<DOMAIN_NAME> <TYPE>each, to build up a list of RRs that specify that no RRs with a specified NAME and TYPE can exist. if the domain name is relative, it will be relative to the zone's apex. [aliases:--rrset-empty]--name-in-use <DOMAIN_NAME>β name is in use. this option can be provided multiple times, with format<DOMAIN_NAME>each, to collect a list of NAMEs that must own at least one RR. β οΈ note that this prerequisite is NOT satisfied by empty nonterminals. if the domain name is relative, it will be relative to the zone's apex. [aliases:--name-used]--name-not-in-use <DOMAIN_NAME>β name is not in use. this option can be provided multiple times, with format<DOMAIN_NAME>each, to collect a list of NAMEs that must NOT own any RRs. β οΈ note that this prerequisite IS satisfied by empty nonterminals (yes, opposite of the one above, keep up bestie π ). if the domain name is relative, it will be relative to the zone's apex. [aliases:--name-unused]-h,--helpβ print the help text (short summary with-h, long help with--help). can also be used on the individual sub commands. your little cheat sheet π
π§ ARGUMENTS FOR ADD AND DELETE π§
<RRTYPE>β the RR type to add or delete.[RDATA]...β one or more RDATA arguments foradd, and zero or more fordelete.
each argument corresponds to a single RR's RDATA, so beware of (shell and DNS) quoting rules. fr fr, the quotes will humble you π
each RDATA argument will be parsed as if it was read from a zone file. examples, freshly served:
dnst update some.example.com add AAAA ::1 2001:db8::
dnst update some.example.com add TXT '"Spacious String" "Another
string for the same TXT record"' '"This is another TXT RR"'
look at that nesting. quoting within quoting. it's giving onion layers π§ β¨
π AUTHOR π
NLnet Labs β icons, honestly.
π COPYRIGHT π
2024β2026, NLnet Labs
lowkey the most important part: these facts are the facts, bestie. don't come for me if you typo a flag β the options above are exactly as the manpage says, character for character. π
okay that's the whole page!! mwah π«Ά this was dnst-update from the dnst manual, version 0.2.0-alpha2, dated May 15, 2026 β go forth and update dynamically, you gorgeous nerd. ππ₯
π¦ where this page comes from
- nixpkgs unstable: dnst 0.2.0-alpha3
- π girlified by deepseek-ai/DeepSeek-V4.1-Flash-1017 on : a language model's rewrite of the original, under its terms