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:
@@ -0,0 +1,29 @@
|
||||
# Specification of test scenarios for MethodsV2
|
||||
|
||||
This document structure contains test scenario specifications for [MethodsV2],
|
||||
which is not a Test Case module. Instead it is a collection of Method
|
||||
specifications referred to by the Test Case specifications and implemented by
|
||||
Perl methods used in the implementations of the Test Cases.
|
||||
|
||||
The purpose of the test scenarios for [MethodsV2] is to verify that the
|
||||
implementation of the methods matches the specifications.
|
||||
|
||||
Test scenarios specification for the following methods are available:
|
||||
|
||||
* [Get parent NS IP addresses]
|
||||
* [Get delegation NS names and IP addresses]
|
||||
* [Get zone NS names and IP addresses]
|
||||
|
||||
Test scenarios specification:
|
||||
|
||||
* [Specification of test scenarios for MethodsV2](methodsv2.md)
|
||||
|
||||
Test scenarios for [Test Case] implementations and test scenarios for Perl
|
||||
modules in Zonemaster-Engine are not in this structure. Instead they can
|
||||
be found in sibling structures.
|
||||
|
||||
[Get delegation NS names and IP addresses]: ../../tests/MethodsV2.md#method-get-delegation-ns-names-and-ip-addresses
|
||||
[Get parent NS IP addresses]: ../../tests/MethodsV2.md#method-get-parent-ns-ip-addresses
|
||||
[Get zone NS names and IP addresses]: ../../tests/MethodsV2.md#method-get-zone-ns-names-and-ip-addresses
|
||||
[MethodsV2]: ../../tests/MethodsV2.md
|
||||
[Test Case]: ../../tests/README.md
|
||||
@@ -0,0 +1,695 @@
|
||||
# Specification of test scenarios for MethodsV2
|
||||
|
||||
|
||||
## Table of contents
|
||||
|
||||
* [Background](#background)
|
||||
* [Test scenarios](#test-scenarios)
|
||||
* [Public methods](#public-methods)
|
||||
* [Test zone names](#test-zone-names)
|
||||
* [Test scenarios and setup of test zones]
|
||||
|
||||
|
||||
## Background
|
||||
|
||||
See the [test zone README file] which is for test case base test zones. Since
|
||||
this document specifies test zones for a [MethodsV2] Method, it is not fully
|
||||
applicable.
|
||||
|
||||
## Test scenarios
|
||||
|
||||
The purpose of the test scenarios is to cover all reasonable contexts for the
|
||||
Methods. See [the implementation of the scenarios] for the latest version of the
|
||||
implementation of the MethodsV2 scenarios.
|
||||
|
||||
|
||||
## Public methods
|
||||
|
||||
[MethodsV2] provides the following public methods:
|
||||
|
||||
* For parent zone:
|
||||
* Get parent NS names and IP addresses
|
||||
* Get parent NS IP addresses
|
||||
* For delegation:
|
||||
* Get delegation NS names and IP addresses
|
||||
* Get delegation NS IP addresses
|
||||
* Get delegation NS names
|
||||
* For zone information:
|
||||
* Get zone NS names and IP addresses
|
||||
* Get zone NS names
|
||||
* Get zone NS IP addresses
|
||||
|
||||
### Data type
|
||||
|
||||
All methods can return one of the following data types:
|
||||
* Empty set
|
||||
* Non-empty set
|
||||
* Undefined set
|
||||
|
||||
The non-empty set from the following methods consists of unique IP addresses,
|
||||
IPv4, IPv6 or both (e.g "127.40.4.21" and "fda1:b2:c3::21" are valid):
|
||||
* Get parent NS IP addresses
|
||||
* Get delegation NS IP addresses
|
||||
* Get zone NS IP addresses
|
||||
|
||||
The non-empty set from the following methods consists of unique name server
|
||||
names (e.g. "ns1.example.xa" and "ns2.example.xb" are valid):
|
||||
* Get delegation NS names
|
||||
* Get zone NS names
|
||||
|
||||
The non-empty set from the following methods consists of unique pairs of name
|
||||
server name and its IP address (IPv4 or IPv6). The IP address cannot be blank
|
||||
(e.g. "ns1.example.xa/127.40.4.21" and "ns1.example.xa/fda1:b2:c3::21" are
|
||||
valid but "ns1.example.xa" is not):
|
||||
* Get parent NS names and IP addresses
|
||||
|
||||
The non-empty set from the following methods consists of unique pairs of name
|
||||
server name and its IP address (IPv4 or IPv6). The IP address can be left blank
|
||||
(e.g. "ns1.example.xa/127.40.4.21", "ns1.example.xa/fda1:b2:c3::21" and
|
||||
"ns1.example.xa" are valid):
|
||||
* Get delegation NS names and IP addresses
|
||||
* Get zone NS names and IP addresses
|
||||
|
||||
### Data defined for the scenarios
|
||||
|
||||
Both *Get delegation NS IP addresses* and *Get delegation NS names* can be
|
||||
derived from *Get delegation NS names and IP addresses*.
|
||||
|
||||
Both *Get zone NS IP addresses* and *Get zone NS names* can be derived from
|
||||
*Get zone NS names and IP addresses*.
|
||||
|
||||
*Get parent NS IP addresses* can be derived from *Get parent NS names and IP
|
||||
addresses*.
|
||||
|
||||
Consequently, for the scenarios defined in this document the expected data is only
|
||||
defined for the following three methods:
|
||||
* Get parent NS names and IP addresses
|
||||
* Get delegation NS names and IP addresses
|
||||
* Get zone NS names and IP addresses
|
||||
|
||||
|
||||
## Test zone names
|
||||
|
||||
The test zone for each test scenario in this document is a subdomain delegated
|
||||
from the base name (`methodsv2.xa`) and that subdomain having the same name as
|
||||
the specific scenario. The names of those zones are given in section
|
||||
"[Test scenarios and setup of test zones]" below.
|
||||
|
||||
|
||||
## Test scenarios and setup of test zones
|
||||
|
||||
### Default zone configuration
|
||||
|
||||
Assumptions for the scenario specifications unless otherwise specified for
|
||||
the specific scenario:
|
||||
|
||||
* The child zone is `child.parent.SCENARIO.methodsv2.xa`.
|
||||
* It is served by two IB (in-bailiwick) NS (ns1 and ns2).
|
||||
* ns1 and ns2 have the same zone content.
|
||||
* ns1 and ns2 have both IPv4 and IPv6 glue.
|
||||
* The records matching glue in the zone are complete.
|
||||
* The delegation from the parent has the same NS with complete glue.
|
||||
* The parent zone is `parent.SCENARIO.methodsv2.xa`.
|
||||
* It is served by two IB NS (ns1 and ns2).
|
||||
* ns1 and ns2 have the same zone content.
|
||||
* ns1 and ns2 have both IPv4 and IPv6 glue.
|
||||
* The records matching glue in the zone are complete.
|
||||
* The delegation from the grandparent has the same NS with complete glue.
|
||||
* The grandparent zone is `SCENARIO.methodsv2.xa`.
|
||||
* It is served by two IB NS (ns1 and ns2).
|
||||
* ns1 and ns2 have the same zone content.
|
||||
* ns1 and ns2 have both IPv4 and IPv6 glue.
|
||||
* The records matching glue in the zone are complete.
|
||||
* The delegation from the SCENARIO zoen has the same NS with complete glue.
|
||||
* Responds with a A record for the zone on query for A.
|
||||
* Responds with a AAAA record for the zone on query for AAAA.
|
||||
* All responses are authoritative with [RCODE Name] "NoError".
|
||||
* EDNS, version 0, is included in all responses on queries with EDNS.
|
||||
* EDNS is not included in responses on queries without EDNS.
|
||||
* Standard root is used.
|
||||
* In all cases, delegation and zone are consistent.
|
||||
* Same NS
|
||||
* Any required glue matches address records in zone. No extra address
|
||||
records.
|
||||
|
||||
### GOOD-1
|
||||
A "happy path". Everything is fine.
|
||||
|
||||
* Zone: child.parent.good-1.methodsv2.xa
|
||||
* Just defaults
|
||||
|
||||
### GOOD-2
|
||||
A "happy path". Everything is fine. Child has out-of-bailiwick name servers
|
||||
only.
|
||||
|
||||
* Zone: child.parent.good-2.methodsv2.xa
|
||||
* Child NS are out-of-bailiwick but not shared with grandparent zone.
|
||||
* ns5.good-2.methodsv2.xa
|
||||
* ns6.good-2.methodsv2.xa
|
||||
* No glue
|
||||
|
||||
### GOOD-3
|
||||
A "happy path". Everything is fine. Child has both in-bailiwick and
|
||||
out-of-bailiwick name servers.
|
||||
|
||||
* Zone: child.parent.good-3.methodsv2.xa
|
||||
* Child NS:
|
||||
* ns1.child.parent.good-3.methodsv2.xa
|
||||
* ns3.parent.good-3.methodsv2.xa
|
||||
* ns5.good-3.methodsv2.xa (not shared with grandparent zone).
|
||||
* Glue:
|
||||
* Address records (A and AAAA) for
|
||||
* ns1.child.parent.good-3.methodsv2.xa
|
||||
* ns3.parent.good-3.methodsv2.xa (optional)
|
||||
|
||||
### GOOD-4
|
||||
A "happy path". Everything is fine. Parent zone is also hosted on grandparent
|
||||
server.
|
||||
|
||||
* Zone: child.parent.good-4.methodsv2.xa
|
||||
* Parent NS:
|
||||
* ns1.parent.good-4.methodsv2.xa
|
||||
* ns2.parent.good-4.methodsv2.xa
|
||||
* ns1.good-4.methodsv2.xa (shared with grandparent zone).
|
||||
* Glue for parent:
|
||||
* Address records (A and AAAA) for
|
||||
* ns1.parent.good-4.methodsv2.xa
|
||||
* ns2.parent.good-4.methodsv2.xa
|
||||
* ns1.good-4.methodsv2.xa (optional)
|
||||
|
||||
### GOOD-5
|
||||
A "happy path". Everything is fine. Child zone is hosted also on grandparent
|
||||
server and parent server.
|
||||
|
||||
* Zone: child.parent.good-5.methodsv2.xa
|
||||
* Child NS:
|
||||
* ns1.child.parent.good-5.methodsv2.xa
|
||||
* ns2.child.parent.good-5.methodsv2.xa
|
||||
* ns1.good-5.methodsv2.xa (shared with grandparent zone).
|
||||
* ns1.parent.good-5.methodsv2.xa (shared with parent zone).
|
||||
* Glue:
|
||||
* Address records (A and AAAA) for
|
||||
* ns1.child.parent.good-5.methodsv2.xa
|
||||
* ns2.child.parent.good-5.methodsv2.xa
|
||||
* ns1.parent.good-5.methodsv2.xa (optional)
|
||||
|
||||
### GOOD-6
|
||||
A "happy path". Everything is fine. Child zone is only hosted on grandparent
|
||||
servers.
|
||||
|
||||
* Zone: child.parent.good-6.methodsv2.xa
|
||||
* Child NS (both shared with grandparent zone):
|
||||
* ns1.good-6.methodsv2.xa
|
||||
* ns2.good-6.methodsv2.xa
|
||||
* No glue.
|
||||
|
||||
### GOOD-7
|
||||
A "happy path". Everything is fine. Child zone is only hosted on parent
|
||||
servers.
|
||||
|
||||
* Zone: child.parent.good-7.methodsv2.xa
|
||||
* Child NS (both shared with parent zone):
|
||||
* ns1.parent.good-7.methodsv2.xa
|
||||
* ns2.parent.good-7.methodsv2.xa
|
||||
* Glue:
|
||||
* Address records (A and AAAA) for
|
||||
* ns1.parent.good-7.methodsv2.xa (optional)
|
||||
* ns2.parent.good-7.methodsv2.xa (optional)
|
||||
|
||||
|
||||
### GOOD-UNDEL-1
|
||||
A "happy path". Everything is fine. Child has both in-bailiwick and
|
||||
out-of-bailiwick name servers. Child is delegated but is tested
|
||||
undelegated.
|
||||
|
||||
* Zone: child.parent.good-undel-1.methodsv2.xa
|
||||
* Delegation:
|
||||
* Child NS:
|
||||
* ns1-2.child.parent.good-undel-1.methodsv2.xa
|
||||
* ns3.parent.good-undel-1.methodsv2.xa (not shared with parent zone)
|
||||
* ns5.good-undel-1.methodsv2.xa (not shared with grandparent zone)
|
||||
* Glue:
|
||||
* Adress records (A and AAAA) for
|
||||
* ns1-2.child.parent.good-undel-1.methodsv2.xa
|
||||
* ns3.parent.good-undel-1.methodsv2.xa (optional)
|
||||
* There is an undelegated version of the zone matching undelegated data.
|
||||
* `ns1-2` have different IP addresses for delegation and delegated zone, on one
|
||||
hand, and undelegated data and undelegated version of the zone, on the other.
|
||||
* `ns3.parent.good-undel-1.methodsv2.xa` is shared between delegated zone and
|
||||
undelegated version of zone, but holding the data of the undelegated version.
|
||||
* Undelegated data:
|
||||
* ns1-2.child.parent.good-undel-1.methodsv2.xa/IPv4
|
||||
* ns1-2.child.parent.good-undel-1.methodsv2.xa/IPv6
|
||||
* ns3.parent.good-undel-1.methodsv2.xa/IPv4
|
||||
* ns3.parent.good-undel-1.methodsv2.xa/IPv6
|
||||
* ns6.good-undel-1.methodsv2.xa
|
||||
|
||||
### GOOD-UNDEL-2
|
||||
A "happy path". Everything is fine. Child has both in-bailiwick and
|
||||
out-of-bailiwick name servers. Child is not delegated but is tested
|
||||
undelegated.
|
||||
|
||||
* Zone: child.parent.good-undel-2.methodsv2.xa
|
||||
* No delegation from parent.
|
||||
* To be tested with undelegated data:
|
||||
* There is an undelegated version of the zone matching undelegated data.
|
||||
* Undelegated data:
|
||||
* ns1.child.parent.good-undel-2.methodsv2.xa/IPv4
|
||||
* ns1.child.parent.good-undel-2.methodsv2.xa/IPv6
|
||||
* ns3.parent.good-undel-2.methodsv2.xa/IPv4
|
||||
* ns3.parent.good-undel-2.methodsv2.xa/IPv6
|
||||
* ns6.good-undel-2.methodsv2.xa
|
||||
|
||||
### DIFF-NS-1
|
||||
No match in name server names between delegation and zone. Same name server IP.
|
||||
|
||||
* Zone: child.parent.diff-ns-1.methodsv2.xa
|
||||
* Delegation to ns1 and ns2.
|
||||
* NS in zone ns1-2 and ns2-2.
|
||||
* ns1-2 and ns2-2 in zone, ns1 and ns2 not in zone.
|
||||
|
||||
### DIFF-NS-2
|
||||
No match in name server names between delegation and zone. Same name server IP on
|
||||
one server. Different on the other. No zone on servers from delegation except
|
||||
ns1.
|
||||
|
||||
* Zone: child.parent.diff-ns-2.methodsv2.xa
|
||||
* Delegation to ns1 and ns2.
|
||||
* NS in zone ns1-2, ns3.
|
||||
* ns1-2 and ns3 in zone, ns1 and ns2 not in zone.
|
||||
* No zone on ns2.
|
||||
* ns1 and ns1-2 have the same IP.
|
||||
|
||||
### IB-NOT-IN-ZONE-1
|
||||
Delegation has in-bailiwick NS, but the names are not defined in the zone.
|
||||
|
||||
* Zone: child.parent.ib-not-in-zone-1.methodsv2.xa
|
||||
* ns1 and ns2 not defined in zone.
|
||||
|
||||
### CHILD-NO-ZONE-1
|
||||
* Zone: child.parent.child-no-zone-1.methodsv2.xa
|
||||
* No child zone on ns1 and ns2.
|
||||
* Response SERVFAIL.
|
||||
|
||||
### CHILD-NO-ZONE-2
|
||||
* Zone: child.parent.child-no-zone-2.methodsv2.xa
|
||||
* No response from ns1 and ns2 of the child.
|
||||
|
||||
### GOOD-MIXED-UNDEL-1
|
||||
The child zone is delegated, but there is also an undelegated version which is
|
||||
the one tested. One grandparent server, in the delegated tree, also serves
|
||||
parent zone.
|
||||
|
||||
* Zone: child.parent.good-mixed-undel-1.methodsv2.xa
|
||||
* Grandparent zone `good-mixed-undel-1.methodsv2.xa` is served on `ns1` and
|
||||
`ns4`.
|
||||
* Parent zone `parent.good-mixed-undel-1.methodsv2.xa` is served by `ns1`,
|
||||
`ns2` and `ns4.good-mixed-undel-1.methodsv2.xa`.
|
||||
* Child zone is delegated, but there is also an undelegated version where
|
||||
the zone has the same data as the delegation.
|
||||
* Undelegated data:
|
||||
* ns3.child.parent.good-mixed-undel-1.methodsv2.xa/IPv4
|
||||
* ns3.child.parent.good-mixed-undel-1.methodsv2.xa/IPv6
|
||||
* ns4.child.parent.good-mixed-undel-1.methodsv2.xa/IPv4
|
||||
* ns4.child.parent.good-mixed-undel-1.methodsv2.xa/IPv6
|
||||
|
||||
### GOOD-MIXED-UNDEL-2
|
||||
The child zone is delegated, but there is also an undelegated version. One parent
|
||||
server also serves the delegated child zone.
|
||||
|
||||
* Zone: child.parent.good-mixed-undel-2.methodsv2.xa
|
||||
* Parent zone `parent.good-mixed-undel-2.methodsv2.xa` is served by `ns1` and
|
||||
`ns2`.
|
||||
* Child zone is served by `ns1`, `ns2` and
|
||||
`ns2.parent.good-mixed-undel-2.methodsv2.xa`.
|
||||
* Child zone is delegated, but there is also an undelegated version where the
|
||||
zone has the same data as the delegation.
|
||||
* Undelegated data:
|
||||
* ns3.child.parent.good-mixed-undel-2.methodsv2.xa/IPv4
|
||||
* ns3.child.parent.good-mixed-undel-2.methodsv2.xa/IPv6
|
||||
* ns4.child.parent.good-mixed-undel-2.methodsv2.xa/IPv4
|
||||
* ns4.child.parent.good-mixed-undel-2.methodsv2.xa/IPv6
|
||||
|
||||
### NO-DEL-MIXED-UNDEL-1
|
||||
The child zone is not delegated, but there is an undelegated version that is
|
||||
tested. One grandparent server also serves the parent zone.
|
||||
|
||||
* Zone: child.parent.no-del-mixed-undel-1.methodsv2.xa
|
||||
* Parent zone `parent.no-del-mixed-undel-1.methodsv2.xa` is served by `ns1`,
|
||||
`ns2` and on `ns2.no-del-mixed-undel-1.methodsv2.xa`.
|
||||
* Child zone is not delegated, but there is an undelegated version.
|
||||
* Undelegated data:
|
||||
* ns1.child.parent.no-del-mixed-undel-1.methodsv2.xa/IPv4
|
||||
* ns1.child.parent.no-del-mixed-undel-1.methodsv2.xa/IPv6
|
||||
* ns2.child.parent.no-del-mixed-undel-1.methodsv2.xa/IPv4
|
||||
* ns2.child.parent.no-del-mixed-undel-1.methodsv2.xa/IPv6
|
||||
|
||||
### NO-CHILD-1
|
||||
The child zone is not delegated. Parent zone returns NXDOMAIN.
|
||||
|
||||
* Zone: child.parent.no-child-1.methodsv2.xa
|
||||
* Child zone does not exist and is not served by any NS.
|
||||
|
||||
### NO-CHILD-2
|
||||
The child zone is not delegated. Parent zone returns NODATA.
|
||||
|
||||
* Zone: child.parent.no-child-2.methodsv2.xa
|
||||
* Child zone does not exist is not served by any NS.
|
||||
* The name child.parent.no-child-2.methodsv2.xa exists as a TXT record.
|
||||
|
||||
### NO-CHLD-PAR-UNDETER-1
|
||||
The child zone is not delegated. One grandparent NS lacks delegation of parent
|
||||
and return NXDOMAIN of child. The parent zone lacks delegation of child.
|
||||
|
||||
* Zone: child.parent.no-chld-par-undeter-1.methodsv2.xa
|
||||
* Child zone does not exist is not served by any NS.
|
||||
* Grandparent `ns1` lacks delegation of parent.
|
||||
* Grandparent `ns2` has delegation of parent (to both parent NS).
|
||||
* Parent zone lacks delegation of child.
|
||||
|
||||
### CHLD-FOUND-PAR-UNDET-1
|
||||
The child zone is delegated from one grandparent NS and from the parent zone.
|
||||
|
||||
* Zone: child.parent.chld-found-par-undet-1.methodsv2.xa
|
||||
* Grandparent `ns1` has delegation of child but lacks delegation of parent.
|
||||
* Grandparent `ns2` has delegation of parent (to both parent NS).
|
||||
* Parent zone has delegation of child.
|
||||
|
||||
### CHLD-FOUND-INCONSIST-1
|
||||
The child is delegated from one parent NS. On the other there is an NXDOMAIN
|
||||
response.
|
||||
|
||||
* Zone: child.parent.chld-found-inconsist-1.methodsv2.xa
|
||||
* Parent `ns1` has normal delegation of child to two child NS, `ns1` and `ns2`.
|
||||
* Parent `ns2` lacks delegation of child (NXDOMAIN).
|
||||
|
||||
### CHLD-FOUND-INCONSIST-2
|
||||
The child is delegated from one parent NS. On the other there is an CNAME
|
||||
response.
|
||||
|
||||
* Zone: child.parent.chld-found-inconsist-2.methodsv2.xa
|
||||
* Parent `ns1` has normal delegation of child to two child NS, `ns1` and `ns2`.
|
||||
* Parent `ns2` lacks delegation of child, and has a CNAME on that name,
|
||||
pointing at `no-child.parent.chld-found-inconsist-2.methodsv2.xa`, which has
|
||||
two address records (A and AAAA) with the IP addresses of child `ns2`.
|
||||
|
||||
### CHLD-FOUND-INCONSIST-3
|
||||
The child is delegated from one parent NS. On the other there is a CNAME
|
||||
to another name, and that other name is delegated.
|
||||
|
||||
* Zone: child.parent.chld-found-inconsist-3.methodsv2.xa
|
||||
* Parent `ns1` has normal delegation of child to two child NS, `ns1` and `ns2`.
|
||||
* Parent `ns2` lacks delegation of child, and has a CNAME on the name,
|
||||
pointing at `sister.parent.chld-found-inconsist-3.methodsv2.xa`, which is
|
||||
delegated to `ns6-delegated-child.methodsv2.xa` and
|
||||
`ns7-delegated-child.methodsv2.xa`.
|
||||
* Zone `sister` does not exist.
|
||||
|
||||
### CHLD-FOUND-INCONSIST-4
|
||||
The child is delegated from one parent NS. On the other there is a DNAME to
|
||||
another name.
|
||||
|
||||
* Zone: child.parent.chld-found-inconsist-4.methodsv2.xa
|
||||
* Parent `ns1` has normal delegation of child to two child NS, `ns1` and `ns2`.
|
||||
* Parent `ns2` has a DNAME on `child` pointing at
|
||||
`sister.parent.chld-found-inconsist-4.methodsv2.xa` which is delegated to
|
||||
`ns6-delegated-child.methodsv2.xa` and `ns7-delegated-child.methodsv2.xa`.
|
||||
* Zone `sister` does not exist.
|
||||
|
||||
### CHLD-FOUND-INCONSIST-5
|
||||
The child is delegated from one parent NS. On the other there is a NODATA
|
||||
response.
|
||||
|
||||
* Zone: child.parent.chld-found-inconsist-5.methodsv2.xa
|
||||
* Parent `ns1` has normal delegation of child to two child NS, `ns1` and `ns2`.
|
||||
* Parent `ns2` lacks delegation of child, instead `child` has two address
|
||||
records (A and AAAA) with the IP addresses of child `ns2`.
|
||||
|
||||
### CHLD-FOUND-INCONSIST-6
|
||||
The child is delegated from one parent NS, which is also NS for the child.
|
||||
On the other there is an NXDOMAIN response.
|
||||
|
||||
* Zone: child.parent.chld-found-inconsist-6.methodsv2.xa
|
||||
* Parent `ns1` has normal delegation of child to the two child NS.
|
||||
* Parent `ns2` lacks delegation of child (NXDOMAIN).
|
||||
* Child shares `ns1.parent.chld-found-inconsist-6.methodsv2.xa` with parent.
|
||||
* Child also uses child `ns1` and `ns2`.
|
||||
* Child exists with a zone.
|
||||
|
||||
### CHLD-FOUND-INCONSIST-7
|
||||
The child is delegated from one parent NS, which is also NS for the child. On the
|
||||
other there is an CNAME response.
|
||||
|
||||
* Zone: child.parent.chld-found-inconsist-7.methodsv2.xa
|
||||
* Parent `ns1` has normal delegation of child to two child NS, `ns1` and `ns2`.
|
||||
* Parent `ns2` lacks delegation of child, and has a CNAME on that name,
|
||||
pointing at `no-child.parent.chld-found-inconsist-7.methodsv2.xa`, which has
|
||||
two address records (A and AAAA) with the IP addresses of child `ns2`.
|
||||
* Child shares `ns1.parent.chld-found-inconsist-7.methodsv2.xa` with parent.
|
||||
* Child also uses `ns2`.
|
||||
* Child exists with a zone.
|
||||
|
||||
### CHLD-FOUND-INCONSIST-8
|
||||
The child is delegated from one parent NS, which is also NS for the child. On
|
||||
the other there is a CNAME to another name, and that other name is delegated.
|
||||
|
||||
* Zone: child.parent.chld-found-inconsist-8.methodsv2.xa
|
||||
* Parent `ns1` has normal delegation of child to two child NS, `ns1` and `ns2`.
|
||||
* Parent `ns2` lacks delegation of child, and has a CNAME on the name,
|
||||
pointing at `sister.parent.chld-found-inconsist-8.methodsv2.xa`, which is
|
||||
`ns6-delegated-child.methodsv2.xa` and `ns7-delegated-child.methodsv2.xa`.
|
||||
* Zone `sister` does not exist.
|
||||
* Child shares `ns1.parent.chld-found-inconsist-8.methodsv2.xa` with parent.
|
||||
* Child also uses `ns2`.
|
||||
* Child exists with a zone.
|
||||
|
||||
### CHLD-FOUND-INCONSIST-9
|
||||
The child is delegated from one parent NS, which is also NS for the child. On
|
||||
the other there is a DNAME to another name.
|
||||
|
||||
* Zone: child.parent.chld-found-inconsist-9.methodsv2.xa
|
||||
* Parent `ns1` has normal delegation of child to two child NS, `ns1` and `ns2`.
|
||||
* Parent `ns2` has a DNAME on `child` pointing at
|
||||
`sister.parent.chld-found-inconsist-9.methodsv2.xa` which is delegated to
|
||||
`ns6-delegated-child.methodsv2.xa` and `ns7-delegated-child.methodsv2.xa`.
|
||||
* Zone `sister` does not exist.
|
||||
* Child shares `ns1.parent.chld-found-inconsist-9.methodsv2.xa` with parent.
|
||||
* Child also uses `ns2`.
|
||||
* Child exists with a zone.
|
||||
|
||||
### CHLD-FOUND-INCONSIST-10
|
||||
The child is delegated from one parent NS, which is also NS for the child. On the
|
||||
other there is a NODATA response.
|
||||
|
||||
* Zone: child.parent.chld-found-inconsist-10.methodsv2.xa
|
||||
* Parent `ns1` has normal delegation of child to two child NS, `ns1` and `ns2`.
|
||||
* Parent `ns2` lacks delegation of child, instead `child` has two address
|
||||
records (A and AAAA) with the IP addresses of child `ns2`.
|
||||
* Child shares `ns1.parent.chld-found-inconsist-10.methodsv2.xa` with parent.
|
||||
* Child also uses `ns2`.
|
||||
* Child exists with a zone.
|
||||
|
||||
### NO-DEL-UNDEL-NO-PAR-1
|
||||
The child is not delegated, but there is undelegated data to test. Both
|
||||
grandparent NS return SERVFAIL.
|
||||
|
||||
* Zone: child.parent.no-del-undel-no-par-1.methodsv2.xa
|
||||
* Grandparent `ns1` and `ns2` both return SERVFAIL.
|
||||
* No need of parent zone.
|
||||
* Child zone is not delegated, but there is an undelegated version.
|
||||
* Undelegated data:
|
||||
* ns1.child.parent.no-del-undel-no-par-1.methodsv2.xa/IPv4
|
||||
* ns1.child.parent.no-del-undel-no-par-1.methodsv2.xa/IPv6
|
||||
* ns2.child.parent.no-del-undel-no-par-1.methodsv2.xa/IPv4
|
||||
* ns2.child.parent.no-del-undel-no-par-1.methodsv2.xa/IPv6
|
||||
|
||||
### NO-DEL-UNDEL-PAR-UND-1
|
||||
The child is not delegated, but there is an undelegated data to test. One
|
||||
grandparent NS lacks delegation of parent and return NXDOMAIN of child. The
|
||||
parent zone lacks delegation of child.
|
||||
|
||||
* Zone: child.parent.no-del-undel-par-und-1.methodsv2.xa
|
||||
* Child zone does not exist is not served by any NS.
|
||||
* Grandparent `ns1` has delegation of parent (to both parent NS).
|
||||
* Grandparent `ns2` lacks delegation of parent.
|
||||
* Parent zone lacks delegation of child.
|
||||
* Child zone is not delegated, but there is an undelegated version.
|
||||
* Undelegated data:
|
||||
* ns1.child.no-del-undel-par-und-1.methodsv2.xa/IPv4
|
||||
* ns1.child.no-del-undel-par-und-1.methodsv2.xa/IPv6
|
||||
* ns2.child.no-del-undel-par-und-1.methodsv2.xa/IPv4
|
||||
* ns2.child.no-del-undel-par-und-1.methodsv2.xa/IPv6
|
||||
|
||||
### NO-CHLD-NO-PAR-1
|
||||
The child is not delegated. Both grandparent NS return SERVFAIL.
|
||||
|
||||
* Zone: child.parent.no-chld-no-par-1.methodsv2.xa
|
||||
* Grandparent `ns1` and `ns2` both return SERVFAIL.
|
||||
* No need of parent zone.
|
||||
* Child zone is not delegated, and there is no undelegated data.
|
||||
* No need of child zone.
|
||||
|
||||
### CHILD-ALIAS-1
|
||||
The child zone does not exist, instead there is a DNAME in the parent zone.
|
||||
|
||||
* Zone: child.parent.child-alias-1.methodsv2.xa
|
||||
* Parent has a DNAME on `child` pointing at
|
||||
`sister.parent.child-alias-1.methodsv2.xa` which is delegated to
|
||||
`ns6-delegated-child.methodsv2.xa` and `ns7-delegated-child.methodsv2.xa`.
|
||||
* Zone `sister` does not exist.
|
||||
|
||||
### ZONE-ERR-GRANDPARENT-1
|
||||
Grandparent `ns2` responds with AA bit unset on queries for grandparent zone.
|
||||
|
||||
* Zone: child.parent.zone-err-grandparent-1.methodsv2.xa
|
||||
* Normal response on grandparent `ns1`.
|
||||
* Grandparent `ns2` responds with AA bit unset on queries for the
|
||||
grandparent zone.
|
||||
|
||||
### ZONE-ERR-GRANDPARENT-2
|
||||
Grandparent `ns2` responds with NODATA on NS query for grandparent zone.
|
||||
|
||||
* Zone: child.parent.zone-err-grandparent-2.methodsv2.xa
|
||||
* Normal response on grandparent `ns1`.
|
||||
* Grandparent `ns2` responds with NODATA on NS query for the
|
||||
grandparent zone.
|
||||
|
||||
### ZONE-ERR-GRANDPARENT-3
|
||||
Grandparent `ns2` responds with wrong owner name on NS
|
||||
on query for grandparent zone NS.
|
||||
|
||||
* Zone: child.parent.zone-err-grandparent-3.methodsv2.xa
|
||||
* Normal response on grandparent `ns1`.
|
||||
* Grandparent `ns2` responds with other owner name on NS query for
|
||||
`zone-err-grandparent-3.methodsv2.xa`:
|
||||
* Owner name `oncle.zone-err-grandparent-3.methodsv2.xa` instead.
|
||||
|
||||
### DELEG-OOB-W-ERROR-1
|
||||
Zone is delegated to two OOB NS, of which one has no IP (NODATA).
|
||||
|
||||
* Zone: child.parent.deleg-oob-w-error-1.methodsv2.xa
|
||||
* Zone is delegated to `ns3.deleg-oob-w-error-1.methodsv2.xa` and
|
||||
`ns4-nodata.deleg-oob-w-error-1.methodsv2.xa`.
|
||||
* `ns3` is fully functional with the zone which matches the
|
||||
delegation.
|
||||
* `ns4-nodata` cannot be resolved (NODATA).
|
||||
|
||||
### DELEG-OOB-W-ERROR-2
|
||||
Zone is delegated to two OOB NS, of which one has no IP (NXDOMAIN).
|
||||
|
||||
* Zone: child.parent.deleg-oob-w-error-2.methodsv2.xa
|
||||
* Zone is delegated to `ns3.deleg-oob-w-error-2.methodsv2.xa` and
|
||||
`ns4-nxdomain.deleg-oob-w-error-2.methodsv2.xa`.
|
||||
* `ns3` is fully functional with the zone which matches the
|
||||
delegation.
|
||||
* `ns4-nxdomain` cannot be resolved (NXDOMAIN).
|
||||
|
||||
### DELEG-OOB-W-ERROR-3
|
||||
Zone is delegated to two OOB NS, where both have no IP (NODATA).
|
||||
|
||||
* Zone: child.parent.deleg-oob-w-error-3.methodsv2.xa
|
||||
* Zone is delegated to `ns3-nodata.deleg-oob-w-error-3.methodsv2.xa` and
|
||||
`ns4-nodata.deleg-oob-w-error-3.methodsv2.xa`.
|
||||
* `ns3-nodata` and `ns4-nodata` cannot be resolved (NODATA).
|
||||
* There is no child zone.
|
||||
|
||||
### DELEG-OOB-W-ERROR-4
|
||||
Zone is delegated to two OOB NS, where both have no IP (NXDOMAIN).
|
||||
|
||||
* Zone: child.parent.deleg-oob-w-error-4.methodsv2.xa
|
||||
* Zone is delegated to `ns3-nxdomain.deleg-oob-w-error-4.methodsv2.xa` and
|
||||
`ns4-nxdomain.deleg-oob-w-error-4.methodsv2.xa`.
|
||||
* `ns3-nxdomain` and `ns4-nxdomain` cannot be resolved (NXDOMAIN).
|
||||
* There is no child zone.
|
||||
|
||||
### CHILD-NS-CNAME-1
|
||||
Zone is delegated to two IB NS, where both NS names are aliases (CNAME)
|
||||
to other names in zone.
|
||||
|
||||
* Zone: child.parent.child-ns-cname-1.methodsv2.xa
|
||||
* Zone is delegated to `ns1-cname` and `ns2-cname` and both are aliases to
|
||||
`ns1` and `ns2`, respectively.
|
||||
* Both names can be resolved to A and AAAA via CNAME and give correct IP.
|
||||
|
||||
### CHILD-NS-CNAME-2
|
||||
Zone is delegated to two IB NS, where both NS names are aliases (CNAME)
|
||||
to other names out of zone.
|
||||
|
||||
* Zone: child.parent.child-ns-cname-2.methodsv2.xa
|
||||
* Zone is delegated to `ns1-cname` and `ns2-cname` and both are aliases to
|
||||
`child-ns1.child-ns-cname-2.methodsv2.xa` and
|
||||
`child-ns2.child-ns-cname-2.methodsv2.xa`
|
||||
* Both names can be resolved to A and AAAA via CNAME and give correct IP.
|
||||
|
||||
### CHILD-NS-CNAME-3
|
||||
Zone is delegated to two OOB NS, where both NS names are aliases (CNAME)
|
||||
to other names out of zone.
|
||||
|
||||
* Zone: child.parent.child-ns-cname-3.methodsv2.xa
|
||||
* Zone is delegated to `ns3-cname.child-ns-cname-3.methodsv2.xa` and
|
||||
`ns4-cname.child-ns-cname-3.methodsv2.xa` and both are aliases to `ns3`
|
||||
and `ns4`, respectively.
|
||||
* Both names can be resolved to A and AAAA via CNAME and give correct IP.
|
||||
|
||||
### CHILD-NS-CNAME-4
|
||||
Zone is delegated to two IB NS, where both NS names are aliases (CNAME)
|
||||
to other names in zone.
|
||||
|
||||
* Zone: child.parent.child-ns-cname-4.methodsv2.xa
|
||||
* Zone is delegated to `ns1-cname` and `ns2-cname` and both are aliases to
|
||||
`ns1` and `ns2`, respectively.
|
||||
* Both names can be resolved to A via CNAME and give correct IP.
|
||||
* Neither name can be resolved to AAAA via CNAME.
|
||||
* The parent zone has glue records for `ns1-cname`, but not for `ns2-cname`.
|
||||
|
||||
### PARENT-NS-CNAME-1
|
||||
Parent is delegated to two IB NS, where both NS names are aliases (CNAME)
|
||||
to other names in parent zone.
|
||||
|
||||
* Zone: child.parent.parent-ns-cname-1.methodsv2.xa
|
||||
* Parent is delegated to `ns1-cname` and `ns2-cname` and both are aliases to
|
||||
`ns1` and `ns2`, respectively.
|
||||
* Both names can be resolved to A and AAAA via CNAME and give correct IP.
|
||||
|
||||
### PARENT-NS-CNAME-2
|
||||
Parent is delegated to two IB NS, where both NS names are aliases (CNAME)
|
||||
to other names out of zone.
|
||||
|
||||
* Zone: child.parent.parent-ns-cname-2.methodsv2.xa
|
||||
* Parent is delegated to `ns1-cname` and `ns2-cname` and both are aliases to
|
||||
`parent-ns1.parent-ns-cname-2.methodsv2.xa` and
|
||||
`parent-ns2.parent-ns-cname-2.methodsv2.xa`
|
||||
* Both names can be resolved to A and AAAA via CNAME and give correct IP.
|
||||
|
||||
### PARENT-NS-SAME-IP-1
|
||||
Parent is delegated to three IB NS. The delegation lists two name server names
|
||||
resolving to the same IP.
|
||||
|
||||
* Zone: child.parent.parent-ns-same-ip-1.methodsv2.xa
|
||||
* Parent zone (parent.parent-ns-name-ip-1.methodsv2.xa) is delegated to
|
||||
`ns1a`, `ns1b` and `ns2`.
|
||||
* Both `ns1a` and `ns1b` have A and AAAA records pointing to the same IPv4
|
||||
and IPv6 address respectively.
|
||||
|
||||
### PARENT-NS-SAME-IP-2
|
||||
Parent is delegated to two IB NS. Two of the in-zone NS records resolve to the
|
||||
same IP. The grandparent zone’s delegation lists name server names that are
|
||||
different from the in-zone NS record’s, but the sets of IP addresses are equal.
|
||||
|
||||
* Zone: child.parent.parent-ns-same-ip-2.methodsv2.xa
|
||||
* Grandparent zone (parent-ns-name-ip-2.methodsv2.xa) delegates the parent
|
||||
zone (parent.parent-ns-name-ip-2.methodsv2.xa) to `ns1` and `ns2`.
|
||||
* Parent zone’s NS records list `ns1a`, `ns1b` and `ns2` instead of `ns1` and
|
||||
`ns2`.
|
||||
* Both `ns1a` and `ns1b` have A and AAAA records pointing to the same IPv4
|
||||
and IPv6 address respectively.
|
||||
|
||||
<!-- Links to documents in this repository but outside the public tree must be
|
||||
absolute -->
|
||||
|
||||
[RCODE Name]: https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-6
|
||||
[Test zone README file]: ../../README.md
|
||||
[Test scenarios and setup of test zones]: #test-scenarios-and-setup-of-test-zones
|
||||
[MethodsV2]: ../../tests/MethodsV2.md
|
||||
[Get parent NS IP addresses]: ../../tests/MethodsV2.md#method-get-parent-ns-ip-addresses
|
||||
[the implementation of the scenarios]: https://github.com/zonemaster/zonemaster/blob/master/test-zone-data/MethodsV2/README.md
|
||||
Reference in New Issue
Block a user