mirror of
https://github.com/NLnetLabs/unbound.git
synced 2026-08-17 21:25:50 +02:00
synthesis. This restricted more than necessary. Thanks to Qifan Zhang, Palo Alto Networks, for the report.
248 lines
4.7 KiB
Plaintext
248 lines
4.7 KiB
Plaintext
; config options
|
|
server:
|
|
target-fetch-policy: "0 0 0 0 0"
|
|
qname-minimisation: no
|
|
minimal-responses: yes
|
|
log-servfail: yes
|
|
access-control: 0.0.0.0/0 allow
|
|
; module-config: "dns64 respip iterator"
|
|
; or
|
|
module-config: "respip dns64 iterator"
|
|
dns64-prefix: 64:ff9b::/96
|
|
; possibly as well:
|
|
; response-ip: 192.0.2.66/32 always_nxdomain
|
|
|
|
rpz:
|
|
name: "rpz.example.com."
|
|
rpz-log: yes
|
|
rpz-log-name: "rpz.example.com"
|
|
zonefile:
|
|
TEMPFILE_NAME rpz.example.com
|
|
TEMPFILE_CONTENTS rpz.example.com
|
|
$ORIGIN example.com.
|
|
rpz 3600 IN SOA ns1.rpz.gotham.com. hostmaster.rpz.example.com. (
|
|
1379078166 28800 7200 604800 7200 )
|
|
3600 IN NS ns1.rpz.example.com.
|
|
3600 IN NS ns2.rpz.example.com.
|
|
$ORIGIN rpz.example.com.
|
|
; whitelist client 192.0.3.33
|
|
32.33.3.0.192.rpz-client-ip CNAME rpz-passthru.
|
|
; block A 10.20.30.42
|
|
32.42.30.20.10.rpz-ip CNAME .
|
|
TEMPFILE_END
|
|
|
|
stub-zone:
|
|
name: "."
|
|
stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET.
|
|
CONFIG_END
|
|
|
|
SCENARIO_BEGIN Test RPZ passthru query with DNS64 enabled.
|
|
|
|
; K.ROOT-SERVERS.NET.
|
|
RANGE_BEGIN 0 100
|
|
ADDRESS 193.0.14.129
|
|
ENTRY_BEGIN
|
|
MATCH opcode qtype qname
|
|
ADJUST copy_id
|
|
REPLY QR NOERROR
|
|
SECTION QUESTION
|
|
. IN NS
|
|
SECTION ANSWER
|
|
. IN NS K.ROOT-SERVERS.NET.
|
|
SECTION ADDITIONAL
|
|
K.ROOT-SERVERS.NET. IN A 193.0.14.129
|
|
ENTRY_END
|
|
|
|
ENTRY_BEGIN
|
|
MATCH opcode subdomain
|
|
ADJUST copy_id copy_query
|
|
REPLY QR NOERROR
|
|
SECTION QUESTION
|
|
tld. IN NS
|
|
SECTION AUTHORITY
|
|
tld. IN NS ns.tld.
|
|
SECTION ADDITIONAL
|
|
ns.tld. IN A 1.2.3.5
|
|
ENTRY_END
|
|
RANGE_END
|
|
|
|
; ns.tld
|
|
RANGE_BEGIN 0 100
|
|
ADDRESS 1.2.3.5
|
|
ENTRY_BEGIN
|
|
MATCH opcode qtype qname
|
|
ADJUST copy_id
|
|
REPLY QR AA NOERROR
|
|
SECTION QUESTION
|
|
tld. IN NS
|
|
SECTION ANSWER
|
|
tld. IN NS ns.tld
|
|
SECTION ADDITIONAL
|
|
ns.tld. IN A 1.2.3.5
|
|
ENTRY_END
|
|
|
|
ENTRY_BEGIN
|
|
MATCH opcode qtype qname
|
|
ADJUST copy_id
|
|
REPLY QR AA NOERROR
|
|
SECTION QUESTION
|
|
ns.tld. IN A
|
|
SECTION ANSWER
|
|
ns.tld. IN A 1.2.3.5
|
|
ENTRY_END
|
|
|
|
ENTRY_BEGIN
|
|
MATCH opcode qtype qname
|
|
ADJUST copy_id
|
|
REPLY QR AA NOERROR
|
|
SECTION QUESTION
|
|
ns.tld. IN AAAA
|
|
SECTION AUTHORITY
|
|
tld. 3600 IN SOA ns.tld. host.tld. 20201 3600 1800 604800 3600
|
|
ENTRY_END
|
|
|
|
ENTRY_BEGIN
|
|
MATCH opcode subdomain
|
|
ADJUST copy_id copy_query
|
|
REPLY QR NOERROR
|
|
SECTION QUESTION
|
|
example.tld. IN NS
|
|
SECTION AUTHORITY
|
|
example.tld. 5 IN NS ns.example.tld.
|
|
SECTION ADDITIONAL
|
|
ns.example.tld. 5 IN A 1.2.3.4
|
|
ENTRY_END
|
|
RANGE_END
|
|
|
|
; ns.example.tld.
|
|
RANGE_BEGIN 0 100
|
|
ADDRESS 1.2.3.4
|
|
ENTRY_BEGIN
|
|
MATCH opcode qtype qname
|
|
ADJUST copy_id
|
|
REPLY QR NOERROR
|
|
SECTION QUESTION
|
|
example.tld. IN NS
|
|
SECTION ANSWER
|
|
example.tld. 86400 IN NS ns.example.tld.
|
|
SECTION ADDITIONAL
|
|
ns.example.tld. 86400 IN A 1.2.3.4
|
|
ENTRY_END
|
|
|
|
ENTRY_BEGIN
|
|
MATCH opcode qtype qname
|
|
ADJUST copy_id
|
|
REPLY QR AA NOERROR
|
|
SECTION QUESTION
|
|
ns.example.tld. IN A
|
|
SECTION ANSWER
|
|
ns.example.tld. IN A 1.2.3.4
|
|
ENTRY_END
|
|
|
|
ENTRY_BEGIN
|
|
MATCH opcode qtype qname
|
|
ADJUST copy_id
|
|
REPLY QR AA NOERROR
|
|
SECTION QUESTION
|
|
ns.example.tld. IN AAAA
|
|
SECTION AUTHORITY
|
|
example.tld. 3600 IN SOA ns.example.tld. host.example.tld. 20301 3600 1800 604800 3600
|
|
ENTRY_END
|
|
|
|
ENTRY_BEGIN
|
|
MATCH opcode qtype qname
|
|
ADJUST copy_id
|
|
REPLY QR AA NOERROR
|
|
SECTION QUESTION
|
|
bad.example.tld. IN A
|
|
SECTION ANSWER
|
|
bad.example.tld. IN A 10.20.30.42
|
|
ENTRY_END
|
|
|
|
ENTRY_BEGIN
|
|
MATCH opcode qtype qname
|
|
ADJUST copy_id
|
|
REPLY QR AA NOERROR
|
|
SECTION QUESTION
|
|
bad.example.tld. IN AAAA
|
|
SECTION AUTHORITY
|
|
example.tld. 3600 IN SOA ns.example.tld. host.example.tld. 20301 3600 1800 604800 3600
|
|
ENTRY_END
|
|
|
|
RANGE_END
|
|
|
|
; query the record directly, from the unblocked client
|
|
STEP 5 QUERY ADDRESS 192.0.3.33
|
|
ENTRY_BEGIN
|
|
REPLY RD NOERROR
|
|
SECTION QUESTION
|
|
bad.example.tld. IN A
|
|
ENTRY_END
|
|
|
|
STEP 6 CHECK_ANSWER
|
|
ENTRY_BEGIN
|
|
MATCH all
|
|
REPLY QR RD RA NOERROR
|
|
SECTION QUESTION
|
|
bad.example.tld. IN A
|
|
SECTION ANSWER
|
|
bad.example.tld. IN A 10.20.30.42
|
|
ENTRY_END
|
|
|
|
; query the record with dns64, from the unblocked client.
|
|
STEP 10 QUERY ADDRESS 192.0.3.33
|
|
ENTRY_BEGIN
|
|
REPLY RD NOERROR
|
|
SECTION QUESTION
|
|
bad.example.tld. IN AAAA
|
|
ENTRY_END
|
|
|
|
STEP 11 CHECK_ANSWER
|
|
ENTRY_BEGIN
|
|
MATCH all
|
|
REPLY QR RD RA NOERROR
|
|
SECTION QUESTION
|
|
bad.example.tld. IN AAAA
|
|
SECTION ANSWER
|
|
bad.example.tld. 3600 IN AAAA 64:ff9b::a14:1e2a
|
|
ENTRY_END
|
|
|
|
; query the record with dns64, from a blocked client.
|
|
STEP 15 QUERY ADDRESS 192.0.2.1
|
|
ENTRY_BEGIN
|
|
REPLY RD NOERROR
|
|
SECTION QUESTION
|
|
bad.example.tld. IN AAAA
|
|
ENTRY_END
|
|
|
|
STEP 16 CHECK_ANSWER
|
|
ENTRY_BEGIN
|
|
MATCH all
|
|
REPLY QR RD RA NOERROR
|
|
SECTION QUESTION
|
|
bad.example.tld. IN AAAA
|
|
SECTION ANSWER
|
|
SECTION AUTHORITY
|
|
example.tld. 3600 IN SOA ns.example.tld. host.example.tld. 20301 3600 1800 604800 3600
|
|
ENTRY_END
|
|
|
|
; query the record directly, from a blocked client
|
|
STEP 21 QUERY ADDRESS 192.0.2.1
|
|
ENTRY_BEGIN
|
|
REPLY RD NOERROR
|
|
SECTION QUESTION
|
|
bad.example.tld. IN A
|
|
ENTRY_END
|
|
|
|
; RPZ works
|
|
STEP 22 CHECK_ANSWER
|
|
ENTRY_BEGIN
|
|
MATCH all
|
|
REPLY QR RD RA NXDOMAIN
|
|
SECTION QUESTION
|
|
bad.example.tld. IN A
|
|
SECTION ANSWER
|
|
ENTRY_END
|
|
|
|
SCENARIO_END
|