Files

1.4 KiB

go-dns

Shared Go Library for authoritative DNS against BIND-compatible nameservers: full zone transfer (AXFR) and RFC 2136 dynamic UPDATE with caller-supplied TSIG. ExApps and Services import gitea.neitzel.de/konrad/go-dns.

Language

Session: A Client bound to one nameserver address, one zone name, and one TSIG key. AXFR and UPDATE both use that Session; there is no anonymous or unsigned mode in this Library. Avoid: resolver client, stub, recursive lookup API

Zone / RRSet / Record: A Zone is the in-memory result of an AXFR (origin, SOA serial, flat record list). An RRSet groups Records that share owner, class, and type. A Record is one resource record with presentation-format rdata. Avoid: zone file on disk as the Library's primary type, miekg/dns RR as the public model

UPDATE: An RFC 2136 dynamic DNS change batch (add and/or delete Records) sent through the Session. The Library builds and signs the message; the nameserver applies it. Avoid: nsupdate script files, unsigned updates

AXFR: A full zone transfer over TCP for the Session's zone, returning a Zone. Incremental transfer (IXFR) is out of scope. Avoid: AXFR over UDP, treating AXFR as a recursive query

TSIG key: Caller-supplied key name, algorithm (e.g. hmac-sha256), and base64 secret used to authenticate AXFR and UPDATE. The Library does not generate keys or write BIND configuration. Avoid: API token, shared AppAPI secret, auto-provisioned keys