Implement DNS64 synthesis.
authorflorian <florian@openbsd.org>
Sun, 24 Jan 2021 18:29:15 +0000 (18:29 +0000)
committerflorian <florian@openbsd.org>
Sun, 24 Jan 2021 18:29:15 +0000 (18:29 +0000)
commit00b0420eeb2be90778f4af55c39a81a6de99b9c1
tree05e01946379385e666b5b16ce81053f49df33277
parent0b249e2164be2385bc6a5e82814435649b2b06e0
Implement DNS64 synthesis.
When unwind(8) learns new autoconf resolvers (from dhcp or router
advertisements) it checks if a DNS64 is present in this network
location and tries to recover the IPv6 prefix used according to
RFC7050.
The learned autoconf resolvers are then prevented from upgrading to
the validating state since DNS64 breaks DNSSEC.
unwind(8) can now perform its own synthesis. If a query for a AAAA
record results in no answer we re-send the query for A and if that
leads to an answer we synthesize an AAAA answer using the learned
prefixes.

Testing & OK kn
sbin/unwind/Makefile
sbin/unwind/dns64_synth.c [new file with mode: 0644]
sbin/unwind/dns64_synth.h [new file with mode: 0644]
sbin/unwind/frontend.c
sbin/unwind/frontend.h
sbin/unwind/resolver.c
sbin/unwind/unwind.h