feat: add full Zonemaster stack with Docker and Spanish UI

- Clone all 5 Zonemaster component repos (LDNS, Engine, CLI, Backend, GUI)
- Dockerfile.backend: 8-stage multi-stage build LDNS→Engine→CLI→Backend
- Dockerfile.gui: Astro static build served via nginx
- docker-compose.yml: backend (internal) + frontend (port 5353)
- nginx.conf: root redirects to /es/, /api/ proxied to backend
- zonemaster-gui/config.ts: defaultLanguage set to 'es' (Spanish)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-04-21 08:19:24 +02:00
commit 8d4eaa1489
1567 changed files with 204155 additions and 0 deletions

View File

@@ -0,0 +1,23 @@
;; This file factors out common boilerplate in zone files for
;; {SCENARIO}.zone11.xa or {SCENARIO}.zone11.arpa zones.
;;
;; Do not use $ORIGIN here!
$TTL 3600
;; CAUTION: If changing the $TTL or the SOA contents, also edit zone11.cfg
;; because some “template” blocks include a copy of this SOA record.
@ SOA ns1.child.zone11.xa. admin.zone11.xa. (
2025080400 ; serial
6h ; refresh
1h ; retry
1w ; expire
1d ) ; minimum
NS ns1.child.zone11.xa.
NS ns2.child.zone11.xa.
;; Local Variables:
;; mode: dns
;; End:

View File

@@ -0,0 +1,21 @@
;; This file factors out common boilerplate in zone files for
;; {SCENARIO}.zone11.xa zones having three authoritative name servers.
;;
;; Do not use $ORIGIN here!
$TTL 3600
@ SOA ns1.child.zone11.xa. admin.zone11.xa. (
2025080400 ; serial
6h ; refresh
1h ; retry
1w ; expire
1d ) ; minimum
NS ns1.child.zone11.xa.
NS ns2.child.zone11.xa.
NS ns3.child.zone11.xa.
;; Local Variables:
;; mode: dns
;; End:

View File

@@ -0,0 +1,28 @@
;; This file factors out common boilerplate in zone files for
;; TLD zones.
;;
;; Do not use $ORIGIN here!
$TTL 3600
;; CAUTION: If changing the $TTL or the SOA contents, also edit zone11.cfg
;; because some “template” blocks include a copy of this SOA record.
@ SOA ns1.zone11.xa. admin.zone11.xa. (
2025080400 ; serial
6h ; refresh
1h ; retry
1w ; expire
1d ) ; minimum
NS ns1.zone11.xa.
NS ns2.zone11.xa.
ns1.zone11.xa. A 127.19.11.21
AAAA fda1:b2:c3::127:19:11:21
ns2.zone11.xa. A 127.19.11.22
AAAA fda1:b2:c3::127:19:11:22
;; Local Variables:
;; mode: dns
;; End:

View File

@@ -0,0 +1,13 @@
[This directory], i.e. the same directory as this README file, holds zone
files and configuration files to implement the test zones for the scenarios
defined in [Zone11 test scenario specification].
For these test zones the following files are found in [this directory]:
* Zone files for `zone11.xa` and other related zones;
* CoreDNS configuration file;
* Output from `zonemaster-cli` on all test scenarios in
[Zone11 Test Zones Output].
[Zone11 Test Zones Output]: ./test-zones-output.md
[Zone11 test scenario specification]: ../../../docs/public/specifications/test-zones/Zone-TP/zone11.md
[This directory]: .

View File

@@ -0,0 +1,6 @@
$ORIGIN good-spf-1.zone11.xa.
$TTL 3600
$INCLUDE COMMON-SCENARIO-INCLUDE
@ IN TXT "v=spf1"

View File

@@ -0,0 +1,6 @@
$ORIGIN good-spf-2.zone11.xa.
$TTL 3600
$INCLUDE COMMON-SCENARIO-INCLUDE
@ IN TXT "v=spf1 a mx ip4:192.0.2.50 ip6:2001:db8:0:8::50 -all"

View File

@@ -0,0 +1,6 @@
$ORIGIN invalid-syntax-1.zone11.xa.
$TTL 3600
$INCLUDE COMMON-SCENARIO-INCLUDE
@ IN TXT "v=spf1 amx-all"

View File

@@ -0,0 +1,22 @@
$ORIGIN invalid-syntax-2.zone11.xa.
$TTL 3600
@ SOA ns1a admin.zone11.xa. (
2025080400 ; serial
6h ; refresh
1h ; retry
1w ; expire
1d ) ; minimum
NS ns1a
NS ns1b
NS ns2
ns1a A 127.19.11.31
AAAA fda1:b2:c3::127:19:11:31
ns1b A 127.19.11.31
AAAA fda1:b2:c3::127:19:11:31
ns2 A 127.19.11.32
AAAA fda1:b2:c3::127:19:11:32
@ TXT "v=spf1 amx-all"

View File

@@ -0,0 +1,6 @@
$ORIGIN invalid-syntax-3.zone11.xa.
$TTL 3600
$INCLUDE COMMON-SCENARIO-INCLUDE
@ IN TXT "v=spf1 include\0117\245\215\187\250;\135"

View File

@@ -0,0 +1,7 @@
$ORIGIN multiple-spf-records.zone11.xa.
$TTL 3600
$INCLUDE COMMON-SCENARIO-INCLUDE
@ IN TXT "v=spf1 -all"
IN TXT "v=spf1 a mx ~all"

View File

@@ -0,0 +1,5 @@
$ORIGIN no-spf-arpa-zone.zone11.arpa.
$INCLUDE COMMON-SCENARIO-INCLUDE
; This zone file intentionally left blank

View File

@@ -0,0 +1,7 @@
$ORIGIN no-spf-txt.zone11.xa.
$TTL 3600
$INCLUDE COMMON-SCENARIO-INCLUDE
@ IN TXT "There are no SPF policy records here."

View File

@@ -0,0 +1,5 @@
$ORIGIN no-spf-zone11.
$INCLUDE COMMON-TLD-INCLUDE
; This zone file intentionally left blank

View File

@@ -0,0 +1,7 @@
. 3600000 NS ns1.no-spf.root-servers.zone11.xa.
ns1.no-spf.root-servers.zone11.xa. 3600000 A 127.19.11.41
ns1.no-spf.root-servers.zone11.xa. 3600000 AAAA fda1:b2:c3::127:19:11:41
;
. 3600000 NS ns2.no-spf.root-servers.zone11.xa.
ns2.no-spf.root-servers.zone11.xa. 3600000 A 127.19.11.42
ns2.no-spf.root-servers.zone11.xa. 3600000 AAAA fda1:b2:c3::127:19:11:42

View File

@@ -0,0 +1,6 @@
$ORIGIN no-txt.zone11.xa.
$TTL 3600
$INCLUDE COMMON-SCENARIO-INCLUDE
; The remainder of this zone file intentionally left blank

View File

@@ -0,0 +1,6 @@
$ORIGIN non-auth-txt.zone11.xa.
$TTL 3600
$INCLUDE COMMON-SCENARIO-INCLUDE
@ IN TXT "Look ma, no AA bit!"

View File

@@ -0,0 +1,5 @@
$ORIGIN non-null-spf-arpa-zone.zone11.arpa.
$INCLUDE COMMON-SCENARIO-INCLUDE
@ IN TXT "v=spf1 ip4:192.0.2.50 ip6:2001:db8:0:8::50 -all"

View File

@@ -0,0 +1,5 @@
$ORIGIN non-null-spf-zone11.
$INCLUDE COMMON-TLD-INCLUDE
@ IN TXT "v=spf1 ip4:192.0.2.50 ip6:2001:db8:0:8::50 -all"

View File

@@ -0,0 +1,7 @@
. 3600000 NS ns1.non-null-spf.root-servers.zone11.xa.
ns1.non-null-spf.root-servers.zone11.xa. 3600000 A 127.19.11.45
ns1.non-null-spf.root-servers.zone11.xa. 3600000 AAAA fda1:b2:c3::127:19:11:45
;
. 3600000 NS ns2.non-null-spf.root-servers.zone11.xa.
ns2.non-null-spf.root-servers.zone11.xa. 3600000 A 127.19.11.46
ns2.non-null-spf.root-servers.zone11.xa. 3600000 AAAA fda1:b2:c3::127:19:11:46

View File

@@ -0,0 +1,8 @@
; For ns1.child.zone11.xa
$ORIGIN all-different-spf.zone11.xa.
$TTL 3600
$INCLUDE COMMON-SCENARIO-INCLUDE-THREE-NS
@ IN TXT "v=spf1 -all"

View File

@@ -0,0 +1,9 @@
; For ns1.child.zone11.xa
$ORIGIN inconsistent-spf.zone11.xa.
$TTL 3600
$INCLUDE COMMON-SCENARIO-INCLUDE
@ IN TXT "I am name server one"
IN TXT "v=spf1 ip4:192.0.2.50 ip6:2001:db8:0:8::50 -all"

View File

@@ -0,0 +1,9 @@
; For ns1.child.zone11.xa
$ORIGIN same-spf-different-txt.zone11.xa.
$TTL 3600
$INCLUDE COMMON-SCENARIO-INCLUDE
@ IN TXT "I am name server one"
IN TXT "v=spf1 ip4:192.0.2.50 ip6:2001:db8:0:8::50 -all"

View File

@@ -0,0 +1,8 @@
; For ns1.child.zone11.xa
$ORIGIN spf-missing-on-one.zone11.xa.
$TTL 3600
$INCLUDE COMMON-SCENARIO-INCLUDE-THREE-NS
@ IN TXT "No SPF here!"

View File

@@ -0,0 +1,8 @@
; For ns{2,3}.child.zone11.xa
$ORIGIN spf-missing-on-one.zone11.xa.
$TTL 3600
$INCLUDE COMMON-SCENARIO-INCLUDE-THREE-NS
@ IN TXT "v=spf1 ip4:192.0.2.50 ip6:2001:db8:0:8::50 -all"

View File

@@ -0,0 +1,8 @@
; For ns2.child.zone11.xa
$ORIGIN all-different-spf.zone11.xa.
$TTL 3600
$INCLUDE COMMON-SCENARIO-INCLUDE-THREE-NS
@ IN TXT "v=spf1 ~all"

View File

@@ -0,0 +1,9 @@
; For ns1.child.zone11.xa
$ORIGIN inconsistent-spf.zone11.xa.
$TTL 3600
$INCLUDE COMMON-SCENARIO-INCLUDE
@ IN TXT "I am name server two"
IN TXT "v=spf1 ip4:192.0.2.51 ip6:2001:db8:0:8::51 -all"

View File

@@ -0,0 +1,9 @@
; For ns2.child.zone11.xa
$ORIGIN same-spf-different-txt.zone11.xa.
$TTL 3600
$INCLUDE COMMON-SCENARIO-INCLUDE
@ IN TXT "I am name server two"
IN TXT "v=spf1 ip4:192.0.2.50 ip6:2001:db8:0:8::50 -all"

View File

@@ -0,0 +1,8 @@
; For ns3.child.zone11.xa
$ORIGIN all-different-spf.zone11.xa.
$TTL 3600
$INCLUDE COMMON-SCENARIO-INCLUDE-THREE-NS
@ IN TXT "v=spf1 ?all"

View File

@@ -0,0 +1,5 @@
$ORIGIN null-spf-arpa-zone.zone11.arpa.
$INCLUDE COMMON-SCENARIO-INCLUDE
@ IN TXT "v=spf1 -all"

View File

@@ -0,0 +1,5 @@
$ORIGIN null-spf-zone11.
$INCLUDE COMMON-TLD-INCLUDE
@ IN TXT "v=spf1 -all"

View File

@@ -0,0 +1,7 @@
. 3600000 NS ns1.null-spf.root-servers.zone11.xa.
ns1.null-spf.root-servers.zone11.xa. 3600000 A 127.19.11.43
ns1.null-spf.root-servers.zone11.xa. 3600000 AAAA fda1:b2:c3::127:19:11:43
;
. 3600000 NS ns2.null-spf.root-servers.zone11.xa.
ns2.null-spf.root-servers.zone11.xa. 3600000 A 127.19.11.44
ns2.null-spf.root-servers.zone11.xa. 3600000 AAAA fda1:b2:c3::127:19:11:44

View File

@@ -0,0 +1,17 @@
$ORIGIN .
$TTL 3600
@ SOA ns1.no-spf.root-servers.zone11.xa. admin.zone11.xa. (
2025080400 ; serial
6h ; refresh
1h ; retry
1w ; expire
1d ) ; minimum
NS ns1.no-spf.root-servers.zone11.xa.
NS ns2.no-spf.root-servers.zone11.xa.
ns1.no-spf.root-servers.zone11.xa. A 127.19.11.41
AAAA fda1:b2:c3::127:19:11:41
ns2.no-spf.root-servers.zone11.xa. A 127.19.11.42
AAAA fda1:b2:c3::127:19:11:42

View File

@@ -0,0 +1,19 @@
$ORIGIN .
$TTL 3600
@ SOA ns1.non-null-spf.root-servers.zone11.xa. admin.zone11.xa. (
2025080400 ; serial
6h ; refresh
1h ; retry
1w ; expire
1d ) ; minimum
NS ns1.non-null-spf.root-servers.zone11.xa.
NS ns2.non-null-spf.root-servers.zone11.xa.
TXT "v=spf1 ip6:fda1:b2:c3::/64 -all"
ns1.non-null-spf.root-servers.zone11.xa. A 127.19.11.45
AAAA fda1:b2:c3::127:19:11:45
ns2.non-null-spf.root-servers.zone11.xa. A 127.19.11.46
AAAA fda1:b2:c3::127:19:11:46

View File

@@ -0,0 +1,20 @@
$ORIGIN .
$TTL 3600
@ SOA ns1.null-spf.root-servers.zone11.xa. admin.zone11.xa. (
2025080400 ; serial
6h ; refresh
1h ; retry
1w ; expire
1d ) ; minimum
NS ns1.null-spf.root-servers.zone11.xa.
NS ns2.null-spf.root-servers.zone11.xa.
TXT "v=spf1 -all"
ns1.null-spf.root-servers.zone11.xa. A 127.19.11.43
AAAA fda1:b2:c3::127:19:11:43
ns2.null-spf.root-servers.zone11.xa. A 127.19.11.44
AAAA fda1:b2:c3::127:19:11:44

View File

@@ -0,0 +1,6 @@
$ORIGIN servfail.zone11.xa.
$TTL 3600
$INCLUDE COMMON-SCENARIO-INCLUDE
@ IN TXT "Playing dead"

View File

@@ -0,0 +1,374 @@
# Zone11 Test Zones Output
# Table of contents
* [Introduction](#introduction)
* [All message tags](#all-message-tags)
* [All scenarios](#all-scenarios)
* [zonemaster-cli commands and their output for each test scenario](#zonemaster-cli-commands-and-their-output-for-each-test-scenario)
## Introduction
In this file the output of running `zonemaster-cli` for every test zone is
found. This file is created during the development of the test zones and should
be updated as the implementation of the test case or the test scenarios or test
zones are updated or corrected.
During development and any update this document serves as tracking and log tool.
It also serves as a template for future development of test zones for
scenarios for other test cases.
## All message tags
* Z11_DIFFERENT_SPF_POLICIES_FOUND
* Z11_INCONSISTENT_SPF_POLICIES
* Z11_NO_SPF_FOUND
* Z11_NO_SPF_NON_MAIL_DOMAIN
* Z11_NON_NULL_SPF_NON_MAIL_DOMAIN
* Z11_NULL_SPF_NON_MAIL_DOMAIN
* Z11_SPF_MULTIPLE_RECORDS
* Z11_SPF_SYNTAX_ERROR
* Z11_SPF_SYNTAX_OK
* Z11_UNABLE_TO_CHECK_FOR_SPF
## All scenarios
| Scenario name | Zone name |
|:-----------------------|:-----------------------------------|
| GOOD-SPF-1 | good-spf-1.zone11.xa |
| GOOD-SPF-2 | good-spf-2.zone11.xa |
| SAME-SPF-DIFFERENT-TXT | same-spf-different-txt.zone11.xa |
| NO-TXT | no-txt.zone11.xa |
| NO-SPF-TXT | no-spf-txt.zone11.xa |
| NO-SPF-ROOT-ZONE | . |
| NO-SPF-TLD-ZONE | no-spf-zone11 |
| NO-SPF-ARPA-ZONE | no-spf-arpa-zone.zone11.arpa |
| NULL-SPF-ROOT-ZONE | . |
| NULL-SPF-TLD-ZONE | null-spf-zone11 |
| NULL-SPF-ARPA-ZONE | null-spf-arpa-zone.zone11.arpa |
| NON-NULL-SPF-ROOT-ZONE | . |
| NON-NULL-SPF-TLD-ZONE | non-null-spf-zone11 |
| NON-NULL-SPF-ARPA-ZONE | non-null-spf-arpa-zone.zone11.arpa |
| INVALID-SYNTAX-1 | invalid-syntax-1.zone11.xa |
| INVALID-SYNTAX-2 | invalid-syntax-2.zone11.xa |
| INVALID-SYNTAX-3 | invalid-syntax-3.zone11.xa |
| NON-AUTH-TXT | non-auth-txt.zone11.xa |
| SERVFAIL | servfail.zone11.xa |
| INCONSISTENT-SPF | inconsistent-spf.zone11.xa |
| SPF-MISSING-ON-ONE | spf-missing-on-one.zone11.xa |
| ALL-DIFFERENT-SPF | all-different-spf.zone11.xa |
| MULTIPLE-SPF-RECORDS | multiple-spf-records.zone11.xa |
## zonemaster-cli commands and their output for each test scenario
The level (`--level`) must be set to the lowest level of the message tags. For
this test case `INFO` is the lowest level. It is only meaningful to test the
test zones with `--test Zone11`.
| Scenario name | Mandatory message tags | Forbidden message tags |
|:--------------|:-----------------------|:-----------------------|
| GOOD-SPF-1 | Z11_SPF_SYNTAX_OK | 2) |
* (2) All tags except for those specified as “Mandatory message tags”
```
$ zonemaster-cli --raw --show-testcase --test zone11 --hints COMMON/hintfile --level info good-spf-1.zone11.xa
0.00 INFO Unspecified GLOBAL_VERSION version=v8.0.0
0.07 INFO Zone11 Z11_SPF1_SYNTAX_OK domain="good-spf-1.zone11.xa"
```
--> OK
| Scenario name | Mandatory message tags | Forbidden message tags |
|:--------------|:-----------------------|:-----------------------|
| GOOD-SPF-2 | Z11_SPF_SYNTAX_OK | 2) |
* (2) All tags except for those specified as “Mandatory message tags”
```
$ zonemaster-cli --raw --show-testcase --test zone11 --hints COMMON/hintfile --level info good-spf-2.zone11.xa
0.00 INFO Unspecified GLOBAL_VERSION version=v8.0.0
0.08 INFO Zone11 Z11_SPF1_SYNTAX_OK domain="good-spf-2.zone11.xa"
```
--> OK
| Scenario name | Mandatory message tags | Forbidden message tags |
|:-----------------------|:-----------------------|:-----------------------|
| SAME-SPF-DIFFERENT-TXT | Z11_SPF_SYNTAX_OK | 2) |
* (2) All tags except for those specified as “Mandatory message tags”
```
$ zonemaster-cli --raw --show-testcase --test zone11 --hints COMMON/hintfile --level info same-spf-different-txt.zone11.xa
0.00 INFO Unspecified GLOBAL_VERSION version=v8.0.0
0.05 INFO Zone11 Z11_SPF1_SYNTAX_OK domain="same-spf-different-txt.zone11.xa"
```
--> OK
| Scenario name | Mandatory message tags | Forbidden message tags |
|:--------------|:-----------------------|:-----------------------|
| NO-TXT | Z11_NO_SPF_FOUND | 2) |
* (2) All tags except for those specified as “Mandatory message tags”
```
$ zonemaster-cli --raw --show-testcase --test zone11 --hints COMMON/hintfile --level info no-txt.zone11.xa
0.00 INFO Unspecified GLOBAL_VERSION version=v8.0.0
0.06 NOTICE Zone11 Z11_NO_SPF_FOUND domain="no-txt.zone11.xa"
```
--> OK
| Scenario name | Mandatory message tags | Forbidden message tags |
|:--------------|:-----------------------|:-----------------------|
| NO-SPF-TXT | Z11_NO_SPF_FOUND | 2) |
* (2) All tags except for those specified as “Mandatory message tags”
```
$ zonemaster-cli --raw --show-testcase --test zone11 --hints COMMON/hintfile --level info no-spf-txt.zone11.xa
0.00 INFO Unspecified GLOBAL_VERSION version=v8.0.0
0.05 NOTICE Zone11 Z11_NO_SPF_FOUND domain="no-spf-txt.zone11.xa"
```
--> OK
| Scenario name | Mandatory message tags | Forbidden message tags |
|:-----------------|:---------------------------|:-----------------------|
| NO-SPF-ROOT-ZONE | Z11_NO_SPF_NON_MAIL_DOMAIN | 2) |
* (2) All tags except for those specified as “Mandatory message tags”
```
$ zonemaster-cli --raw --show-testcase --test zone11 --hints Zone-TP/zone11/no-spf.hintfile --level info .
0.00 INFO Unspecified GLOBAL_VERSION version=v8.0.0
0.01 NOTICE Zone11 Z11_NO_SPF_FOUND domain="."
```
--> Not OK.
| Scenario name | Mandatory message tags | Forbidden message tags |
|:----------------|:---------------------------|:-----------------------|
| NO-SPF-TLD-ZONE | Z11_NO_SPF_NON_MAIL_DOMAIN | 2) |
* (2) All tags except for those specified as “Mandatory message tags”
```
$ zonemaster-cli --raw --show-testcase --test zone11 --hints COMMON/hintfile --level info no-spf-zone11
0.00 INFO Unspecified GLOBAL_VERSION version=v8.0.0
0.03 NOTICE Zone11 Z11_NO_SPF_FOUND domain="no-spf-zone11"
```
--> Not OK.
| Scenario name | Mandatory message tags | Forbidden message tags |
|:-----------------|:---------------------------|:-----------------------|
| NO-SPF-ARPA-ZONE | Z11_NO_SPF_NON_MAIL_DOMAIN | 2) |
* (2) All tags except for those specified as “Mandatory message tags”
```
$ zonemaster-cli --raw --show-testcase --test zone11 --hints COMMON/hintfile --level info no-spf-arpa-zone.zone11.arpa
0.00 INFO Unspecified GLOBAL_VERSION version=v8.0.0
0.06 NOTICE Zone11 Z11_NO_SPF_FOUND domain="no-spf-arpa-zone.zone11.arpa"
```
--> Not OK.
| Scenario name | Mandatory message tags | Forbidden message tags |
|:-------------------|:-----------------------------|:-----------------------|
| NULL-SPF-ROOT-ZONE | Z11_NULL_SPF_NON_MAIL_DOMAIN | 2) |
* (2) All tags except for those specified as “Mandatory message tags”
```
$ zonemaster-cli --raw --show-testcase --test zone11 --hints Zone-TP/zone11/null-spf.hintfile --level info .
0.00 INFO Unspecified GLOBAL_VERSION version=v8.0.0
0.01 INFO Zone11 Z11_SPF1_SYNTAX_OK domain="."
```
--> Not OK.
| Scenario name | Mandatory message tags | Forbidden message tags |
|:------------------|:-----------------------------|:-----------------------|
| NULL-SPF-TLD-ZONE | Z11_NULL_SPF_NON_MAIL_DOMAIN | 2) |
* (2) All tags except for those specified as “Mandatory message tags”
```
$ zonemaster-cli --raw --show-testcase --test zone11 --hints COMMON/hintfile --level info null-spf-zone11
0.00 INFO Unspecified GLOBAL_VERSION version=v8.0.0
0.04 INFO Zone11 Z11_SPF1_SYNTAX_OK domain="null-spf-zone11"
```
--> Not OK.
| Scenario name | Mandatory message tags | Forbidden message tags |
|:-------------------|:-----------------------------|:-----------------------|
| NULL-SPF-ARPA-ZONE | Z11_NULL_SPF_NON_MAIL_DOMAIN | 2) |
* (2) All tags except for those specified as “Mandatory message tags”
```
$ zonemaster-cli --raw --show-testcase --test zone11 --hints COMMON/hintfile --level info null-spf-arpa-zone.zone11.arpa
0.00 INFO Unspecified GLOBAL_VERSION version=v8.0.0
0.06 INFO Zone11 Z11_SPF1_SYNTAX_OK domain="null-spf-arpa-zone.zone11.arpa"
```
--> Not OK.
| Scenario name | Mandatory message tags | Forbidden message tags |
|:-----------------------|:---------------------------------|:-----------------------|
| NON-NULL-SPF-ROOT-ZONE | Z11_NON_NULL_SPF_NON_MAIL_DOMAIN | 2) |
* (2) All tags except for those specified as “Mandatory message tags”
```
$ zonemaster-cli --raw --show-testcase --test zone11 --hints Zone-TP/zone11/non-null-spf.hintfile --level info .
0.00 INFO Unspecified GLOBAL_VERSION version=v8.0.0
0.01 INFO Zone11 Z11_SPF1_SYNTAX_OK domain="."
```
--> Not OK.
| Scenario name | Mandatory message tags | Forbidden message tags |
|:----------------------|:---------------------------------|:-----------------------|
| NON-NULL-SPF-TLD-ZONE | Z11_NON_NULL_SPF_NON_MAIL_DOMAIN | 2) |
* (2) All tags except for those specified as “Mandatory message tags”
```
$ zonemaster-cli --raw --show-testcase --test zone11 --hints COMMON/hintfile --level info non-null-spf-zone11
0.00 INFO Unspecified GLOBAL_VERSION version=v8.0.0
0.04 INFO Zone11 Z11_SPF1_SYNTAX_OK domain="non-null-spf-zone11"
```
--> Not OK.
| Scenario name | Mandatory message tags | Forbidden message tags |
|:-----------------------|:---------------------------------|:-----------------------|
| NON-NULL-SPF-ARPA-ZONE | Z11_NON_NULL_SPF_NON_MAIL_DOMAIN | 2) |
* (2) All tags except for those specified as “Mandatory message tags”
```
$ zonemaster-cli --raw --show-testcase --test zone11 --hints COMMON/hintfile --level info non-null-spf-arpa-zone.zone11.arpa
0.00 INFO Unspecified GLOBAL_VERSION version=v8.0.0
0.06 INFO Zone11 Z11_SPF1_SYNTAX_OK domain="non-null-spf-arpa-zone.zone11.arpa"
```
--> Not OK.
| Scenario name | Mandatory message tags | Forbidden message tags |
|:-----------------|:-----------------------|:-----------------------|
| INVALID-SYNTAX-1 | Z11_SPF_SYNTAX_ERROR | 2) |
* (2) All tags except for those specified as “Mandatory message tags”
```
$ zonemaster-cli --raw --show-testcase --test zone11 --hints COMMON/hintfile --level info invalid-syntax-1.zone11.xa
0.00 INFO Unspecified GLOBAL_VERSION version=v8.0.0
0.09 ERROR Zone11 Z11_SPF1_SYNTAX_ERROR domain="invalid-syntax-1.zone11.xa"; ns_ip_list=127.19.11.31;127.19.11.32;fda1:b2:c3:0:127:19:11:31;fda1:b2:c3:0:127:19:11:32
```
--> Not OK (expected argument "ns_list" for Z11_SPF1_SYNTAX_ERROR, got "ns_ip_list" instead).
| Scenario name | Mandatory message tags | Forbidden message tags |
|:-----------------|:-----------------------|:-----------------------|
| INVALID-SYNTAX-2 | Z11_SPF_SYNTAX_ERROR | 2) |
* (2) All tags except for those specified as “Mandatory message tags”
```
$ zonemaster-cli --raw --show-testcase --test zone11 --hints COMMON/hintfile --level info invalid-syntax-2.zone11.xa
0.00 INFO Unspecified GLOBAL_VERSION version=v8.0.0
0.11 ERROR Zone11 Z11_SPF1_SYNTAX_ERROR domain="invalid-syntax-2.zone11.xa"; ns_ip_list=127.19.11.31;127.19.11.32;fda1:b2:c3:0:127:19:11:31;fda1:b2:c3:0:127:19:11:32
```
--> Not OK (expected argument "ns_list" for Z11_SPF1_SYNTAX_ERROR, got "ns_ip_list" instead).
| Scenario name | Mandatory message tags | Forbidden message tags |
|:-----------------|:-----------------------|:-----------------------|
| INVALID-SYNTAX-3 | Z11_SPF_SYNTAX_ERROR | 2) |
* (2) All tags except for those specified as “Mandatory message tags”
```
$ zonemaster-cli --raw --show-testcase --test zone11 --hints COMMON/hintfile --level info invalid-syntax-3.zone11.xa
0.00 INFO Unspecified GLOBAL_VERSION version=v8.0.0
0.05 ERROR Zone11 Z11_SPF1_SYNTAX_ERROR domain="invalid-syntax-3.zone11.xa"; ns_ip_list=127.19.11.31;127.19.11.32;fda1:b2:c3:0:127:19:11:31;fda1:b2:c3:0:127:19:11:32
```
--> Not OK (expected argument "ns_list" for Z11_SPF1_SYNTAX_ERROR, got "ns_ip_list" instead).
| Scenario name | Mandatory message tags | Forbidden message tags |
|:--------------|:----------------------------|:-----------------------|
| NON-AUTH-TXT | Z11_UNABLE_TO_CHECK_FOR_SPF | 2) |
* (2) All tags except for those specified as “Mandatory message tags”
```
$ zonemaster-cli --raw --show-testcase --test zone11 --hints COMMON/hintfile --level info non-auth-txt.zone11.xa
0.00 INFO Unspecified GLOBAL_VERSION version=v8.0.0
0.04 ERROR Zone11 Z11_UNABLE_TO_CHECK_FOR_SPF
```
--> OK
| Scenario name | Mandatory message tags | Forbidden message tags |
|:--------------|:----------------------------|:-----------------------|
| SERVFAIL | Z11_UNABLE_TO_CHECK_FOR_SPF | 2) |
* (2) All tags except for those specified as “Mandatory message tags”
```
$ zonemaster-cli --raw --show-testcase --test zone11 --hints COMMON/hintfile --level info servfail.zone11.xa
0.00 INFO Unspecified GLOBAL_VERSION version=v8.0.0
0.07 ERROR Zone11 Z11_UNABLE_TO_CHECK_FOR_SPF
```
--> OK
| Scenario name | Mandatory message tags | Forbidden message tags |
|:-----------------|:----------------------------------------------------------------|:-----------------------|
| INCONSISTENT-SPF | Z11_INCONSISTENT_SPF_POLICIES, Z11_DIFFERENT_SPF_POLICIES_FOUND | 2) |
* (2) All tags except for those specified as “Mandatory message tags”
```
$ zonemaster-cli --raw --show-testcase --test zone11 --hints COMMON/hintfile --level info inconsistent-spf.zone11.xa
0.00 INFO Unspecified GLOBAL_VERSION version=v8.0.0
0.07 WARNING Zone11 Z11_INCONSISTENT_SPF_POLICIES
0.07 NOTICE Zone11 Z11_DIFFERENT_SPF_POLICIES_FOUND ns_ip_list=127.19.11.32;fda1:b2:c3:0:127:19:11:32
0.07 NOTICE Zone11 Z11_DIFFERENT_SPF_POLICIES_FOUND ns_ip_list=127.19.11.31;fda1:b2:c3:0:127:19:11:31
```
--> Not OK (expected argument "ns_list" for Z11_DIFFERENT_SPF_POLICIES_FOUND, got "ns_ip_list" instead).
| Scenario name | Mandatory message tags | Forbidden message tags |
|:-------------------|:----------------------------------------------------------------|:-----------------------|
| SPF-MISSING-ON-ONE | Z11_INCONSISTENT_SPF_POLICIES, Z11_DIFFERENT_SPF_POLICIES_FOUND | 2) |
* (2) All tags except for those specified as “Mandatory message tags”
```
$ zonemaster-cli --raw --show-testcase --test zone11 --hints COMMON/hintfile --level info spf-missing-on-one.zone11.xa
0.00 INFO Unspecified GLOBAL_VERSION version=v8.0.0
0.10 WARNING Zone11 Z11_INCONSISTENT_SPF_POLICIES
0.10 NOTICE Zone11 Z11_DIFFERENT_SPF_POLICIES_FOUND ns_ip_list=127.19.11.31;fda1:b2:c3:0:127:19:11:31
0.10 NOTICE Zone11 Z11_DIFFERENT_SPF_POLICIES_FOUND ns_ip_list=127.19.11.32;127.19.11.33;fda1:b2:c3:0:127:19:11:32;fda1:b2:c3:0:127:19:11:33
```
--> Not OK (expected argument "ns_list" for Z11_DIFFERENT_SPF_POLICIES_FOUND, got "ns_ip_list" instead).
| Scenario name | Mandatory message tags | Forbidden message tags |
|:------------------|:----------------------------------------------------------------|:-----------------------|
| ALL-DIFFERENT-SPF | Z11_INCONSISTENT_SPF_POLICIES, Z11_DIFFERENT_SPF_POLICIES_FOUND | 2) |
* (2) All tags except for those specified as “Mandatory message tags”
```
$ zonemaster-cli --raw --show-testcase --test zone11 --hints COMMON/hintfile --level info all-different-spf.zone11.xa
0.00 INFO Unspecified GLOBAL_VERSION version=v8.0.0
0.06 WARNING Zone11 Z11_INCONSISTENT_SPF_POLICIES
0.06 NOTICE Zone11 Z11_DIFFERENT_SPF_POLICIES_FOUND ns_ip_list=127.19.11.33;fda1:b2:c3:0:127:19:11:33
0.06 NOTICE Zone11 Z11_DIFFERENT_SPF_POLICIES_FOUND ns_ip_list=127.19.11.32;fda1:b2:c3:0:127:19:11:32
0.06 NOTICE Zone11 Z11_DIFFERENT_SPF_POLICIES_FOUND ns_ip_list=127.19.11.31;fda1:b2:c3:0:127:19:11:31
```
--> Not OK (expected argument "ns_list" for Z11_DIFFERENT_SPF_POLICIES_FOUND, got "ns_ip_list" instead).
| Scenario name | Mandatory message tags | Forbidden message tags |
|:---------------------|:-------------------------|:-----------------------|
| MULTIPLE-SPF-RECORDS | Z11_SPF_MULTIPLE_RECORDS | 2) |
* (2) All tags except for those specified as “Mandatory message tags”
```
$ zonemaster-cli --raw --show-testcase --test zone11 --hints COMMON/hintfile --level info multiple-spf-records.zone11.xa
0.00 INFO Unspecified GLOBAL_VERSION version=v8.0.0
0.08 ERROR Zone11 Z11_SPF1_MULTIPLE_RECORDS ns_ip_list=127.19.11.31;127.19.11.32;fda1:b2:c3:0:127:19:11:31;fda1:b2:c3:0:127:19:11:32
```
--> Not OK (expected argument "ns_list" for Z11_SPF1_MULTIPLE_RECORDS, got "ns_ip_list" instead).

View File

@@ -0,0 +1,21 @@
$ORIGIN zone11.arpa.
$TTL 3600
@ SOA ns1.zone11.xa. admin.zone11.xa. (
2025080400 ; serial
6h ; refresh
1h ; retry
1w ; expire
1d ) ; minimum
NS ns1.zone11.xa.
NS ns2.zone11.xa.
no-spf-arpa-zone NS ns1.child.zone11.xa.
NS ns2.child.zone11.xa.
null-spf-arpa-zone NS ns1.child.zone11.xa.
NS ns2.child.zone11.xa.
non-null-spf-arpa-zone NS ns1.child.zone11.xa.
NS ns2.child.zone11.xa.

View File

@@ -0,0 +1,320 @@
# zone11.xa
zone11.xa:53 {
bind 127.19.11.21 # ns1.zone11.xa
bind fda1:b2:c3::127:19:11:21 # ns1.zone11.xa
bind 127.19.11.22 # ns2.zone11.xa
bind fda1:b2:c3::127:19:11:22 # ns2.zone11.xa
log
file Zone-TP/zone11/zone11.xa.zone zone11.xa
}
##
## Regular scenarios
##
# good-spf-1.zone11.xa
good-spf-1.zone11.xa:53 {
bind 127.19.11.31 # ns1.child.zone11.xa
bind fda1:b2:c3::127:19:11:31 # ns1.child.zone11.xa
bind 127.19.11.32 # ns2.child.zone11.xa
bind fda1:b2:c3::127:19:11:32 # ns2.child.zone11.xa
log
file Zone-TP/zone11/good-spf-1.zone11.xa.zone good-spf-1.zone11.xa
}
# good-spf-2.zone11.xa
good-spf-2.zone11.xa:53 {
bind 127.19.11.31 # ns1.child.zone11.xa
bind fda1:b2:c3::127:19:11:31 # ns1.child.zone11.xa
bind 127.19.11.32 # ns2.child.zone11.xa
bind fda1:b2:c3::127:19:11:32 # ns2.child.zone11.xa
log
file Zone-TP/zone11/good-spf-2.zone11.xa.zone good-spf-2.zone11.xa
}
# same-spf-different-txt.zone11.xa
same-spf-different-txt.zone11.xa:53 {
bind 127.19.11.31 # ns1.child.zone11.xa
bind fda1:b2:c3::127:19:11:31 # ns1.child.zone11.xa
log
file Zone-TP/zone11/ns1.same-spf-different-txt.zone11.xa.zone same-spf-different-txt.zone11.xa
}
same-spf-different-txt.zone11.xa:53 {
bind 127.19.11.32 # ns2.child.zone11.xa
bind fda1:b2:c3::127:19:11:32 # ns2.child.zone11.xa
log
file Zone-TP/zone11/ns2.same-spf-different-txt.zone11.xa.zone same-spf-different-txt.zone11.xa
}
# no-txt.zone11.xa
no-txt.zone11.xa:53 {
bind 127.19.11.31 # ns1.child.zone11.xa
bind fda1:b2:c3::127:19:11:31 # ns1.child.zone11.xa
bind 127.19.11.32 # ns2.child.zone11.xa
bind fda1:b2:c3::127:19:11:32 # ns2.child.zone11.xa
log
file Zone-TP/zone11/no-txt.zone11.xa.zone no-txt.zone11.xa
# CoreDNS erroneously returns NXDOMAIN when a node exists but no records
# matching QTYPE. This is a workaround to ensure we get NODATA.
template IN TXT no-txt.zone11.xa {
rcode NOERROR
# CAUTION: Make sure this remains in sync with the contents of COMMON-SCENARIO-INCLUDE
authority "no-txt.zone11.xa. 3600 IN SOA ns1.child.zone11.xa. admin.zone11.xa. 2025080400 21600 3600 604800 86400"
}
}
# no-spf-txt.zone11.xa
no-spf-txt.zone11.xa:53 {
bind 127.19.11.31 # ns1.child.zone11.xa
bind fda1:b2:c3::127:19:11:31 # ns1.child.zone11.xa
bind 127.19.11.32 # ns2.child.zone11.xa
bind fda1:b2:c3::127:19:11:32 # ns2.child.zone11.xa
log
file Zone-TP/zone11/no-spf-txt.zone11.xa.zone no-spf-txt.zone11.xa
}
# invalid-syntax-1.zone11.xa
invalid-syntax-1.zone11.xa:53 {
bind 127.19.11.31 # ns1.child.zone11.xa
bind fda1:b2:c3::127:19:11:31 # ns1.child.zone11.xa
bind 127.19.11.32 # ns2.child.zone11.xa
bind fda1:b2:c3::127:19:11:32 # ns2.child.zone11.xa
log
file Zone-TP/zone11/invalid-syntax-1.zone11.xa.zone invalid-syntax-1.zone11.xa
}
# invalid-syntax-2.zone11.xa
invalid-syntax-2.zone11.xa:53 {
bind 127.19.11.31 # ns1{a,b}.invalid-syntax-2.zone11.xa
bind fda1:b2:c3::127:19:11:31 # ns1{a,b}.invalid-syntax-2.zone11.xa
bind 127.19.11.32 # ns2.invalid-syntax-2.zone11.xa
bind fda1:b2:c3::127:19:11:32 # ns2.invalid-syntax-2.zone11.xa
log
file Zone-TP/zone11/invalid-syntax-2.zone11.xa.zone invalid-syntax-2.zone11.xa
}
# invalid-syntax-3.zone11.xa
invalid-syntax-3.zone11.xa:53 {
bind 127.19.11.31 # ns1.child.zone11.xa
bind fda1:b2:c3::127:19:11:31 # ns1.child.zone11.xa
bind 127.19.11.32 # ns2.child.zone11.xa
bind fda1:b2:c3::127:19:11:32 # ns2.child.zone11.xa
log
file Zone-TP/zone11/invalid-syntax-3.zone11.xa.zone invalid-syntax-3.zone11.xa
}
# non-auth-txt.zone11.xa
non-auth-txt.zone11.xa:53 {
bind 127.19.11.31 # ns1.child.zone11.xa
bind fda1:b2:c3::127:19:11:31 # ns1.child.zone11.xa
bind 127.19.11.32 # ns2.child.zone11.xa
bind fda1:b2:c3::127:19:11:32 # ns2.child.zone11.xa
log
file Zone-TP/zone11/non-auth-txt.zone11.xa.zone non-auth-txt.zone11.xa
header {
response clear aa
}
}
# servfail.zone11.xa
servfail.zone11.xa:53 {
bind 127.19.11.31 # ns1.child.zone11.xa
bind fda1:b2:c3::127:19:11:31 # ns1.child.zone11.xa
bind 127.19.11.32 # ns2.child.zone11.xa
bind fda1:b2:c3::127:19:11:32 # ns2.child.zone11.xa
log
file Zone-TP/zone11/servfail.zone11.xa.zone servfail.zone11.xa
template IN TXT servfail.zone11.xa {
rcode SERVFAIL
}
}
# inconsistent-spf.zone11.xa
inconsistent-spf.zone11.xa:53 {
bind 127.19.11.31 # ns1.child.zone11.xa
bind fda1:b2:c3::127:19:11:31 # ns1.child.zone11.xa
log
file Zone-TP/zone11/ns1.inconsistent-spf.zone11.xa.zone inconsistent-spf.zone11.xa
}
inconsistent-spf.zone11.xa:53 {
bind 127.19.11.32 # ns2.child.zone11.xa
bind fda1:b2:c3::127:19:11:32 # ns2.child.zone11.xa
log
file Zone-TP/zone11/ns2.inconsistent-spf.zone11.xa.zone inconsistent-spf.zone11.xa
}
# spf-missing-on-one.zone11.xa
spf-missing-on-one.zone11.xa:53 {
bind 127.19.11.31 # ns1.child.zone11.xa
bind fda1:b2:c3::127:19:11:31 # ns1.child.zone11.xa
log
file Zone-TP/zone11/ns1.spf-missing-on-one.zone11.xa.zone spf-missing-on-one.zone11.xa
}
spf-missing-on-one.zone11.xa:53 {
bind 127.19.11.32 # ns2.child.zone11.xa
bind fda1:b2:c3::127:19:11:32 # ns2.child.zone11.xa
bind 127.19.11.33 # ns3.child.zone11.xa
bind fda1:b2:c3::127:19:11:33 # ns3.child.zone11.xa
log
file Zone-TP/zone11/ns2-3.spf-missing-on-one.zone11.xa.zone spf-missing-on-one.zone11.xa
}
# all-different-spf.zone11.xa
all-different-spf.zone11.xa:53 {
bind 127.19.11.31 # ns1.child.zone11.xa
bind fda1:b2:c3::127:19:11:31 # ns1.child.zone11.xa
log
file Zone-TP/zone11/ns1.all-different-spf.zone11.xa.zone all-different-spf.zone11.xa
}
all-different-spf.zone11.xa:53 {
bind 127.19.11.32 # ns2.child.zone11.xa
bind fda1:b2:c3::127:19:11:32 # ns2.child.zone11.xa
log
file Zone-TP/zone11/ns2.all-different-spf.zone11.xa.zone all-different-spf.zone11.xa
}
all-different-spf.zone11.xa:53 {
bind 127.19.11.33 # ns3.child.zone11.xa
bind fda1:b2:c3::127:19:11:33 # ns3.child.zone11.xa
log
file Zone-TP/zone11/ns3.all-different-spf.zone11.xa.zone all-different-spf.zone11.xa
}
# multiple-spf-records.zone11.xa
multiple-spf-records.zone11.xa:53 {
bind 127.19.11.31 # ns1.child.zone11.xa
bind fda1:b2:c3::127:19:11:31 # ns1.child.zone11.xa
bind 127.19.11.32 # ns2.child.zone11.xa
bind fda1:b2:c3::127:19:11:32 # ns2.child.zone11.xa
log
file Zone-TP/zone11/multiple-spf-records.zone11.xa.zone multiple-spf-records.zone11.xa
}
##
## TLD and ARPA scenarios
##
# no-spf-zone11
no-spf-zone11:53 {
bind 127.19.11.21 # ns1.zone11.xa
bind fda1:b2:c3::127:19:11:21 # ns1.zone11.xa
bind 127.19.11.22 # ns2.zone11.xa
bind fda1:b2:c3::127:19:11:22 # ns2.zone11.xa
log
file Zone-TP/zone11/no-spf-zone11.zone no-spf-zone11
# CoreDNS erroneously returns NXDOMAIN when a node exists but no records
# matching QTYPE. This is a workaround to ensure we get NODATA.
template IN TXT no-spf-zone11 {
rcode NOERROR
# CAUTION: Make sure this remains in sync with the contents of COMMON-TLD-ARPA-INCLUDE
authority "no-spf-zone11. 3600 IN SOA ns1.zone11.xa. admin.zone11.xa. 2025080400 21600 3600 604800 86400"
}
}
# null-spf-zone11
null-spf-zone11:53 {
bind 127.19.11.21 # ns1.zone11.xa
bind fda1:b2:c3::127:19:11:21 # ns1.zone11.xa
bind 127.19.11.22 # ns2.zone11.xa
bind fda1:b2:c3::127:19:11:22 # ns2.zone11.xa
log
file Zone-TP/zone11/null-spf-zone11.zone null-spf-zone11
}
# non-null-spf-zone11
non-null-spf-zone11:53 {
bind 127.19.11.21 # ns1.zone11.xa
bind fda1:b2:c3::127:19:11:21 # ns1.zone11.xa
bind 127.19.11.22 # ns2.zone11.xa
bind fda1:b2:c3::127:19:11:22 # ns2.zone11.xa
log
file Zone-TP/zone11/non-null-spf-zone11.zone non-null-spf-zone11
}
# zone11.arpa
zone11.arpa:53 {
bind 127.19.11.21 # ns1.zone11.xa
bind fda1:b2:c3::127:19:11:21 # ns1.zone11.xa
bind 127.19.11.22 # ns2.zone11.xa
bind fda1:b2:c3::127:19:11:22 # ns2.zone11.xa
log
file Zone-TP/zone11/zone11.arpa.zone zone11.arpa
}
# no-spf-arpa-zone.zone11.arpa
no-spf-arpa-zone.zone11.arpa:53 {
bind 127.19.11.31 # ns1.child.zone11.xa
bind fda1:b2:c3::127:19:11:31 # ns1.child.zone11.xa
bind 127.19.11.32 # ns2.child.zone11.xa
bind fda1:b2:c3::127:19:11:32 # ns2.child.zone11.xa
log
file Zone-TP/zone11/no-spf-arpa-zone.zone11.arpa.zone no-spf-arpa-zone.zone11.arpa
# CoreDNS erroneously returns NXDOMAIN when a node exists but no records
# matching QTYPE. This is a workaround to ensure we get NODATA.
template IN TXT no-spf-arpa-zone.zone11.arpa {
rcode NOERROR
# CAUTION: Make sure this remains in sync with the contents of COMMON-TLD-ARPA-INCLUDE
authority "no-spf-arpa-zone.zone11.arpa. 3600 IN SOA ns1.zone11.xa. admin.zone11.xa. 2025080400 21600 3600 604800 86400"
}
}
# null-spf-arpa-zone.zone11.arpa
null-spf-arpa-zone.zone11.arpa:53 {
bind 127.19.11.31 # ns1.child.zone11.xa
bind fda1:b2:c3::127:19:11:31 # ns1.child.zone11.xa
bind 127.19.11.32 # ns2.child.zone11.xa
bind fda1:b2:c3::127:19:11:32 # ns2.child.zone11.xa
log
file Zone-TP/zone11/null-spf-arpa-zone.zone11.arpa.zone null-spf-arpa-zone.zone11.arpa
}
# non-null-spf-arpa-zone.zone11.arpa
non-null-spf-arpa-zone.zone11.arpa:53 {
bind 127.19.11.31 # ns1.child.zone11.xa
bind fda1:b2:c3::127:19:11:31 # ns1.child.zone11.xa
bind 127.19.11.32 # ns2.child.zone11.xa
bind fda1:b2:c3::127:19:11:32 # ns2.child.zone11.xa
log
file Zone-TP/zone11/non-null-spf-arpa-zone.zone11.arpa.zone non-null-spf-arpa-zone.zone11.arpa
}
##
## Alternative root zones
##
.:53 {
bind 127.19.11.41 # ns1.no-spf.root-servers.zone11.xa
bind fda1:b2:c3::127:19:11:41 # ns1.no-spf.root-servers.zone11.xa
bind 127.19.11.42 # ns2.no-spf.root-servers.zone11.xa
bind fda1:b2:c3::127:19:11:42 # ns2.no-spf.root-servers.zone11.xa
log
file Zone-TP/zone11/root-no-spf.zone .
}
.:53 {
bind 127.19.11.43 # ns1.null-spf.root-servers.zone11.xa
bind fda1:b2:c3::127:19:11:43 # ns1.null-spf.root-servers.zone11.xa
bind 127.19.11.44 # ns2.null-spf.root-servers.zone11.xa
bind fda1:b2:c3::127:19:11:44 # ns2.null-spf.root-servers.zone11.xa
log
file Zone-TP/zone11/root-null-spf.zone .
}
.:53 {
bind 127.19.11.45 # ns1.non-null-spf.root-servers.zone11.xa
bind fda1:b2:c3::127:19:11:45 # ns1.non-null-spf.root-servers.zone11.xa
bind 127.19.11.46 # ns2.non-null-spf.root-servers.zone11.xa
bind fda1:b2:c3::127:19:11:46 # ns2.non-null-spf.root-servers.zone11.xa
log
file Zone-TP/zone11/root-non-null-spf.zone .
}

View File

@@ -0,0 +1,78 @@
$ORIGIN zone11.xa.
$TTL 3600
@ SOA ns1 admin.zone11.xa. (
2025080400 ; serial
6h ; refresh
1h ; retry
1w ; expire
1d ) ; minimum
NS ns1
NS ns2
ns1 A 127.19.11.21
AAAA fda1:b2:c3:0:127:19:11:21
ns2 A 127.19.11.22
AAAA fda1:b2:c3:0:127:19:11:22
ns1.child A 127.19.11.31
AAAA fda1:b2:c3::127:19:11:31
ns2.child A 127.19.11.32
AAAA fda1:b2:c3::127:19:11:32
ns3.child A 127.19.11.33
AAAA fda1:b2:c3::127:19:11:33
good-spf-1 NS ns1.child
NS ns2.child
good-spf-2 NS ns1.child
NS ns2.child
same-spf-different-txt NS ns1.child
NS ns2.child
no-txt NS ns1.child
NS ns2.child
no-spf-txt NS ns1.child
NS ns2.child
invalid-syntax-1 NS ns1.child
NS ns2.child
invalid-syntax-2 NS ns1a.invalid-syntax-2
NS ns1b.invalid-syntax-2
NS ns2.invalid-syntax-2
;; NOTE: ns1a.invalid-syntax-2 deliberately has the same IPv4 and IPv6
;; addresses as ns1b.invalid-syntax-2. This is not a typo.
ns1a.invalid-syntax-2 A 127.19.11.31
AAAA fda1:b2:c3::127:19:11:31
ns1b.invalid-syntax-2 A 127.19.11.31
AAAA fda1:b2:c3::127:19:11:31
ns2.invalid-syntax-2 A 127.19.11.32
AAAA fda1:b2:c3::127:19:11:32
invalid-syntax-3 NS ns1.child
NS ns2.child
non-auth-txt NS ns1.child
NS ns2.child
servfail NS ns1.child
NS ns2.child
inconsistent-spf NS ns1.child
NS ns2.child
spf-missing-on-one NS ns1.child
NS ns2.child
NS ns3.child
all-different-spf NS ns1.child
NS ns2.child
NS ns3.child
multiple-spf-records NS ns1.child
NS ns2.child