Reverse zone suggestions: yours and public, dismiss, per-view switch; child zones take their records

Suggestions split into networks that are yours (private IPv4 /24, ULA /48, an IPv6 /48 this server has an address in), which Create all creates, and public addresses (/32 or /128) to create only if they are yours or dismiss. A view can turn suggestions off, which also keeps it out of choosing a reverse zone's view (database version 13). A zone created inside another in the same view takes the parent's records under it; a delegation and its glue stay, a linked parent keeps them with a warning.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
adamandClaude Opus 5.5 committed 2026-10-12 22:01:18 +01:00
1 parent aa4b004a14
commit b24c730b97
21 files changed
+543 -107

No files matched your search

+23 -5
View File
@@ -648,8 +648,8 @@ run "a second name for nas" 0 $J record add revtest.test files A 10.99.1.10 --vi
run "another host" 0 $J record add revtest.test pi A 10.99.1.11 --view internal
run "and IPv6" 0 $J record add revtest.test nas AAAA fdab:99:0:10::10 --view internal
run "suggest-reverse" 0 $J zone suggest-reverse
contains "^internal *10.99.1.0/24 *1.99.10.in-addr.arpa *2 *10.99.1.10 files.revtest.test, 10.99.1.11 pi.revtest.test"
contains "^internal *fdab:99::/48 *0.0.0.0.9.9.0.0.b.a.d.f.ip6.arpa *1"
contains "^yours *internal *10.99.1.0/24 *1.99.10.in-addr.arpa *2 *10.99.1.10 files.revtest.test, 10.99.1.11 pi.revtest.test"
contains "^yours *internal *fdab:99::/48 *0.0.0.0.9.9.0.0.b.a.d.f.ip6.arpa *1"
run "create it without a view, filled" 0 $J zone create 10.99.1.0/24 --fill
contains "10.99.1.10 has several names"
run "it went to the internal view" 0 $J zone show 1.99.10.in-addr.arpa
@@ -676,9 +676,27 @@ expect_dig "PTR followed: new address" "cam.revtest.test." -x 10.99.1.13
expect_dig "PTR followed: old address gone" "" -x 10.99.1.12
run "the host goes" 0 $J record delete --id $CAM
expect_dig "PTR gone with it" "" -x 10.99.1.13
run "suggest-reverse --create" 0 $J zone suggest-reverse --create
run "nothing missing now" 0 $J zone suggest-reverse
contains "No reverse zones missing."
run "a web host's address" 0 $J record add revtest.test blog A 185.199.108.153 --view internal
run "suggested as public" 0 $J zone suggest-reverse
contains "^public *internal *185.199.108.153/32"
run "dismiss it" 0 $J zone suggest-reverse --dismiss 185.199.108.153/32 --view internal
run "gone from the suggestions" 0 $J zone suggest-reverse
not_contains "185.199.108.153"
run "suggest-reverse --create: yours only" 0 $J zone suggest-reverse --create
run "none of yours missing now" 0 $J zone suggest-reverse
not_contains "^yours"
run "a view can turn suggestions off" 0 $J view update internal --reverse-suggestions=false
run "then none for it" 0 $J zone suggest-reverse
not_contains "internal"
run "and back on" 0 $J view update internal --reverse-suggestions
# A zone created inside another takes the parent's records under it.
run "a /16 reverse zone" 0 $J zone create 10.88.0.0/16 --view internal
run "with a PTR made by hand" 0 $J record add 10.88.0.0/16 10.88.5.5 PTR printer.revtest.test --view internal
expect_dig "the /16 answers" "printer.revtest.test." -x 10.88.5.5
run "a /24 inside it" 0 $J zone create 10.88.5.0/24 --view internal
run "the PTR moved" 0 $J record list 10.88.5.0/24 --view internal
contains "printer.revtest.test."
expect_dig "and still answers, from the /24" "printer.revtest.test." -x 10.88.5.5
# Blocking (docs/blocking.md). It only changes answers to recursive
# queries, so these ask with recursion and look at which policy zone (if