]> git.ipfire.org Git - thirdparty/unbound.git/commitdiff
- Update the dns64_lookup.rpl test for the DNS64 fallback patch.
authorGeorge Thessalonikefs <yorgos@nlnetlabs.nl>
Wed, 18 Oct 2023 10:59:54 +0000 (12:59 +0200)
committerGeorge Thessalonikefs <yorgos@nlnetlabs.nl>
Wed, 18 Oct 2023 10:59:54 +0000 (12:59 +0200)
doc/Changelog
testdata/dns64_lookup.rpl

index 3c9fd4b193d9621f80cb8a9495642821873f306f..aaf71f23971618f6ff7d4f34be4d12af2ba7f67d 100644 (file)
@@ -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
index 7986fc8fce80712c3e610bf249a6db16884ad428..327f7dfed89a760c87f200eac85a0f16af8d3653 100644 (file)
@@ -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