No description
- Go 97.2%
- Makefile 1.6%
- Dockerfile 1.2%
| checker | ||
| plugin | ||
| .gitignore | ||
| Dockerfile | ||
| go.mod | ||
| go.sum | ||
| LICENSE | ||
| main.go | ||
| Makefile | ||
| NOTICE | ||
| README.md | ||
checker-legacy-records
A happyDomain checker that scans a working zone for DNS record types deprecated by the IETF and reports each occurrence with the relevant RFC reference and a concrete migration suggestion.
It runs in three deployment modes (standalone HTTP binary, Go plugin, Docker image), like every other checker in the happyDomain ecosystem.
What it detects
The checker walks every service in the working zone (AutoFillZone) and
inspects each svcs.Orphan body for an embedded RR header. Records whose
type is in the deprecatedTypes table produce a
finding.
| Severity | Record types | Why |
|---|---|---|
| Critical | KEY, SIG, NXT |
RFC 3755: superseded by DNSKEY/RRSIG/NSEC; modern validators ignore them. |
| Warning | SPF, A6, MD, MF |
RFC 7208 / RFC 6563 / RFC 973: replaced by TXT, AAAA, MX. |
| Informational | WKS, MB, MG, MR, MINFO, NULL, GPOS, NSAP, NSAP-PTR, X25, ISDN, RT, ATMA, EID, NIMLOC, SINK, NINFO, RKEY |
Experimental or historical (RFC 1035, 1183, 1706, 1712, ...); safe to delete. |
Rules
| Code | Description | Severity |
|---|---|---|
legacy_records |
Detects DNS record types deprecated by the IETF and reports each occurrence with RFC references. | CRITICAL |
Tests
go test ./... covers:
- a clean zone (no findings, no errors, modern services skipped silently);
- detection of common legacy types (
SPF,A6,KEY,NXT,WKS); - grouping and ranking by severity (critical bubbles to the top, even when warning findings appear first in the zone);
- the empty-zone OK path (rule still emits one OK state with the scan count);
- a missing
zoneoption (the host forgot to wire AutoFillZone) is a hard error; - the HTML "Fix this first" card always reflects the worst severity;
- the OK banner appears when nothing legacy is found.
HTML report
The report renders as a standalone HTML page suitable for iframe embedding:
- a coloured status banner (OK / Info / Warning / Critical) summarising the worst finding;
- a "Fix this first" card with the most-severe legacy type, the RFC
reason, the suggested replacement, and a concrete
How to fixinstruction; the card lists every owner where the type appears; - an "Other legacy records" section with one card per remaining type, sorted by descending severity then alphabetically;
- a collapsible "skipped during scan" section listing parse errors so silent skips never masquerade as a clean pass.
Build
make # standalone binary
make plugin # .so plugin for happyDomain
make docker # Docker image
make test # run the unit tests