From: George Thessalonikefs Date: Wed, 18 Oct 2023 10:59:54 +0000 (+0200) Subject: - Update the dns64_lookup.rpl test for the DNS64 fallback patch. X-Git-Tag: release-1.19.0rc1~15 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=2f0b11673a1b19ba3b154dd4538b674cc0046d81;p=thirdparty%2Funbound.git - Update the dns64_lookup.rpl test for the DNS64 fallback patch. --- diff --git a/doc/Changelog b/doc/Changelog index 3c9fd4b19..aaf71f239 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -3,6 +3,7 @@ AAAA when no A record exists for synthesis, and minor DNS64 code refactoring for better readability. - Fixes for the DNS64 patches. + - Update the dns64_lookup.rpl test for the DNS64 fallback patch. 17 October 2023: Wouter - Fix #954: Inconsistent RPZ handling for A record returned along with diff --git a/testdata/dns64_lookup.rpl b/testdata/dns64_lookup.rpl index 7986fc8fc..327f7dfed 100644 --- a/testdata/dns64_lookup.rpl +++ b/testdata/dns64_lookup.rpl @@ -4,6 +4,8 @@ server: qname-minimisation: "no" module-config: "dns64 validator iterator" dns64-prefix: 64:ff9b::0/96 + dns64-ignore-aaaa: ip6ignore.example.com + dns64-ignore-aaaa: ip6only.example.com minimal-responses: no stub-zone: @@ -15,6 +17,7 @@ SCENARIO_BEGIN Test dns64 lookup and synthesis. ; normal A lookup should still succeed ; AAAA is synthesized if not present. ; AAAA if present, is passed through unchanged. +; AAAA if present (but configured to be ignored) but no A, AAAA is passed through unchanged. ; K.ROOT-SERVERS.NET. RANGE_BEGIN 0 200 @@ -154,6 +157,61 @@ SECTION ADDITIONAL ns.example.com. IN A 1.2.3.4 ENTRY_END +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR NOERROR +SECTION QUESTION +ip6ignore.example.com. IN AAAA +SECTION ANSWER +ip6ignore.example.com. IN AAAA 1:2:3::4 +SECTION AUTHORITY +example.com. IN NS ns.example.com. +SECTION ADDITIONAL +ns.example.com. IN A 1.2.3.4 +ENTRY_END + +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR NOERROR +SECTION QUESTION +ip6ignore.example.com. IN A +SECTION ANSWER +ip6ignore.example.com. IN A 5.6.7.8 +SECTION AUTHORITY +example.com. IN NS ns.example.com. +SECTION ADDITIONAL +ns.example.com. IN A 1.2.3.4 +ENTRY_END + +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR NOERROR +SECTION QUESTION +ip6only.example.com. IN AAAA +SECTION ANSWER +ip6only.example.com. IN AAAA 1:2:3::4 +SECTION AUTHORITY +example.com. IN NS ns.example.com. +SECTION ADDITIONAL +ns.example.com. IN A 1.2.3.4 +ENTRY_END + +ENTRY_BEGIN +MATCH opcode qtype qname +ADJUST copy_id +REPLY QR NOERROR +SECTION QUESTION +ip6only.example.com. IN A +SECTION ANSWER +; NO A present +SECTION AUTHORITY +example.com. IN SOA a. b. 1 2 3 4 5 +ENTRY_END + + ENTRY_BEGIN MATCH opcode qtype qname ADJUST copy_id @@ -257,4 +315,50 @@ SECTION AUTHORITY 7.6.5.in-addr.arpa. IN NS ns.example.com. ENTRY_END +; ignore AAAA and synthesize from A record 5.6.7.8 +STEP 80 QUERY +ENTRY_BEGIN +REPLY RD +SECTION QUESTION +ip6ignore.example.com. IN AAAA +ENTRY_END + +; recursion happens here. +STEP 90 CHECK_ANSWER +ENTRY_BEGIN +MATCH all +REPLY QR RD RA NOERROR +SECTION QUESTION +ip6ignore.example.com. IN AAAA +SECTION ANSWER +ip6ignore.example.com. IN AAAA 64:ff9b::506:708 +SECTION AUTHORITY +example.com. IN NS ns.example.com. +SECTION ADDITIONAL +ns.example.com. IN A 1.2.3.4 +ENTRY_END + +; try to ignore AAAA but no A record to synthesize, fallback to AAAA +STEP 100 QUERY +ENTRY_BEGIN +REPLY RD +SECTION QUESTION +ip6only.example.com. IN AAAA +ENTRY_END + +; recursion happens here. +STEP 110 CHECK_ANSWER +ENTRY_BEGIN +MATCH all +REPLY QR RD RA NOERROR +SECTION QUESTION +ip6only.example.com. IN AAAA +SECTION ANSWER +ip6only.example.com. IN AAAA 1:2:3::4 +SECTION AUTHORITY +example.com. IN NS ns.example.com. +SECTION ADDITIONAL +ns.example.com. IN A 1.2.3.4 +ENTRY_END + SCENARIO_END