- Fix #132: Add harden-cname-follow: yes config option, that

can be used to disable cname scrubbing. That can be useful
  for when the traffic is on localhost only.
This commit is contained in:
W.C.A. Wijngaards
2026-08-24 16:06:17 +02:00
parent 7fb79b0677
commit 2ec2afd6b0
15 changed files with 297 additions and 8 deletions
+137
View File
@@ -0,0 +1,137 @@
; This is a comment.
; config options go here.
server:
# allow cname chains from the upstream.
harden-cname-follow: no
forward-zone: name: "." forward-addr: 216.0.0.1
CONFIG_END
SCENARIO_BEGIN Forward and follow CNAME chain.
RANGE_BEGIN 0 100
ENTRY_BEGIN
MATCH opcode qtype qname
ADJUST copy_id
REPLY QR RD RA NOERROR
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
www.example.com. IN A 10.20.30.40
SECTION AUTHORITY
www.example.com. IN NS ns.example.com.
www.example.com. IN NS ns.example.com.
www.example.com. IN NS ns.example.com.
SECTION ADDITIONAL
ns.example.com. IN A 10.20.30.50
ENTRY_END
ENTRY_BEGIN
MATCH opcode qtype qname
ADJUST copy_id
REPLY QR RD RA NOERROR
SECTION QUESTION
www2.example.com. IN A
SECTION ANSWER
www2.example.com. IN CNAME b.ex2.com.
b.ex2.com. IN A 10.20.30.42
ENTRY_END
ENTRY_BEGIN
MATCH opcode qtype qname
ADJUST copy_id
REPLY QR RD RA NOERROR
SECTION QUESTION
www3.example.com. IN A
SECTION ANSWER
www3.example.com. IN CNAME b.ex2.com.
b.ex2.com. IN CNAME b.ex3.com.
b.ex3.com. IN A 10.20.30.43
ENTRY_END
ENTRY_BEGIN
MATCH opcode qtype qname
ADJUST copy_id
REPLY QR RD RA NOERROR
SECTION QUESTION
www4.example.com. IN A
SECTION ANSWER
www4.example.com. IN CNAME b4.ex2.com.
b4.ex2.com. IN CNAME b4.ex3.com.
b4.ex3.com. IN CNAME b4.ex4.com.
b4.ex4.com. IN A 10.20.30.44
ENTRY_END
RANGE_END
STEP 1 QUERY
ENTRY_BEGIN
REPLY RD
SECTION QUESTION
www.example.com. IN A
ENTRY_END
STEP 4 CHECK_ANSWER
ENTRY_BEGIN
MATCH opcode qname qtype
SECTION QUESTION
www.example.com. IN A
SECTION ANSWER
www.example.com. IN A 10.20.30.40
ENTRY_END
STEP 11 QUERY
ENTRY_BEGIN
REPLY RD
SECTION QUESTION
www2.example.com. IN A
ENTRY_END
STEP 14 CHECK_ANSWER
ENTRY_BEGIN
MATCH opcode qname qtype
SECTION QUESTION
www2.example.com. IN A
SECTION ANSWER
www2.example.com. IN CNAME b.ex2.com.
b.ex2.com. IN A 10.20.30.42
ENTRY_END
STEP 21 QUERY
ENTRY_BEGIN
REPLY RD
SECTION QUESTION
www3.example.com. IN A
ENTRY_END
STEP 24 CHECK_ANSWER
ENTRY_BEGIN
MATCH opcode qname qtype
SECTION QUESTION
www3.example.com. IN A
SECTION ANSWER
www3.example.com. IN CNAME b.ex2.com.
b.ex2.com. IN CNAME b.ex3.com.
b.ex3.com. IN A 10.20.30.43
ENTRY_END
STEP 31 QUERY
ENTRY_BEGIN
REPLY RD
SECTION QUESTION
www4.example.com. IN A
ENTRY_END
STEP 34 CHECK_ANSWER
ENTRY_BEGIN
MATCH opcode qname qtype
SECTION QUESTION
www4.example.com. IN A
SECTION ANSWER
www4.example.com. IN CNAME b4.ex2.com.
b4.ex2.com. IN CNAME b4.ex3.com.
b4.ex3.com. IN CNAME b4.ex4.com.
b4.ex4.com. IN A 10.20.30.44
ENTRY_END
SCENARIO_END