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,301 @@
|
||||
# Specification of Test Scenarios for Connectivity04
|
||||
|
||||
|
||||
## Table of contents
|
||||
|
||||
* [Background](#background)
|
||||
* [Test Case](#test-case)
|
||||
* [Test scenarios](#test-scenarios)
|
||||
* [Test zone names](#test-zone-names)
|
||||
* [All message tags](#all-message-tags)
|
||||
* [Test scenarios and message tags](#test-scenarios-and-message-tags)
|
||||
* [Test scenarios and setup of test zones]
|
||||
|
||||
|
||||
## Background
|
||||
|
||||
See the [test scenario README file].
|
||||
|
||||
|
||||
## Test Case
|
||||
This document specifies defined test scenarios for test case [Connectivity04].
|
||||
|
||||
|
||||
## Test scenarios
|
||||
|
||||
The purpose of the test scenarios is to cover all reasonable contexts where
|
||||
different message tags are outputted when [Connectivity04] is run on a test zone.
|
||||
The message tags are defined in the test case ([Connectivity04]) and the
|
||||
scenarios are defined below.
|
||||
|
||||
The test scenarios are structured as stated in the [test scenario README file].
|
||||
|
||||
## Test zone names
|
||||
|
||||
The test zone or zones for each test scenario in this document is a subdomain
|
||||
(or lower zone) delegated from the base name (`connectivity04.xa`) and that subdomain
|
||||
having the same name as the scenario. The names of those zones are given in
|
||||
section "[Test scenarios and setup of test zones]" below.
|
||||
|
||||
|
||||
## All message tags
|
||||
The test case can output any of these message tags, but not necessarily in any
|
||||
combination. See [Connectivity04] for the specification of the tags.
|
||||
|
||||
* CN04_EMPTY_PREFIX_SET
|
||||
* CN04_ERROR_PREFIX_DATABASE
|
||||
* CN04_IPV4_DIFFERENT_PREFIX
|
||||
* CN04_IPV4_SAME_PREFIX
|
||||
* CN04_IPV4_SINGLE_PREFIX
|
||||
* CN04_IPV6_DIFFERENT_PREFIX
|
||||
* CN04_IPV6_SAME_PREFIX
|
||||
* CN04_IPV6_SINGLE_PREFIX
|
||||
|
||||
## Test scenarios and message tags
|
||||
|
||||
If a message tag is not listed for the scenario, its presence or non-presence is
|
||||
irrelevant to the test scenario and must be ignored.
|
||||
|
||||
Scenario name | Mandatory message tag | Forbidden message tags
|
||||
:------------------------|:----------------------------------------------------------------------------------|:--------------------
|
||||
GOOD-1 | CN04_IPV4_DIFFERENT_PREFIX, CN04_IPV6_DIFFERENT_PREFIX | 2)
|
||||
GOOD-2 | CN04_IPV4_DIFFERENT_PREFIX | 2)
|
||||
GOOD-3 | CN04_IPV6_DIFFERENT_PREFIX | 2)
|
||||
EMPTY-PREFIX-SET-1 | CN04_EMPTY_PREFIX_SET | 2)
|
||||
EMPTY-PREFIX-SET-2 | CN04_EMPTY_PREFIX_SET | 2)
|
||||
ERROR-PREFIX-DATABASE-1 | CN04_ERROR_PREFIX_DATABASE | 2)
|
||||
ERROR-PREFIX-DATABASE-2 | CN04_ERROR_PREFIX_DATABASE | 2)
|
||||
ERROR-PREFIX-DATABASE-3 | CN04_ERROR_PREFIX_DATABASE | 2)
|
||||
ERROR-PREFIX-DATABASE-6 | CN04_IPV4_DIFFERENT_PREFIX, CN04_IPV6_DIFFERENT_PREFIX, CN04_ERROR_PREFIX_DATABASE| 2)
|
||||
ERROR-PREFIX-DATABASE-7 | CN04_ERROR_PREFIX_DATABASE | 2)
|
||||
ERROR-PREFIX-DATABASE-8 | CN04_ERROR_PREFIX_DATABASE | 2)
|
||||
HAS-NON-ASN-TXT-1 | CN04_IPV4_DIFFERENT_PREFIX, CN04_IPV6_DIFFERENT_PREFIX | 2)
|
||||
HAS-NON-ASN-TXT-2 | CN04_EMPTY_PREFIX_SET | 2)
|
||||
IPV4-ONE-PREFIX-1 | CN04_IPV4_SAME_PREFIX, CN04_IPV4_SINGLE_PREFIX | 2)
|
||||
IPV4-TWO-PREFIXES-1 | CN04_IPV4_SAME_PREFIX, CN04_IPV4_DIFFERENT_PREFIX | 2)
|
||||
IPV6-ONE-PREFIX-1 | CN04_IPV6_SAME_PREFIX, CN04_IPV6_SINGLE_PREFIX | 2)
|
||||
IPV6-TWO-PREFIXES-1 | CN04_IPV6_SAME_PREFIX, CN04_IPV6_DIFFERENT_PREFIX | 2)
|
||||
IPV4-SINGLE-NS-1 | CN04_IPV4_SINGLE_PREFIX, CN04_IPV4_DIFFERENT_PREFIX | 2)
|
||||
IPV6-SINGLE-NS-1 | CN04_IPV6_SINGLE_PREFIX, CN04_IPV6_DIFFERENT_PREFIX | 2)
|
||||
DOUBLE-PREFIX-1 | CN04_IPV4_DIFFERENT_PREFIX, CN04_IPV6_DIFFERENT_PREFIX | 2)
|
||||
DOUBLE-PREFIX-2 | CN04_IPV4_DIFFERENT_PREFIX, CN04_IPV6_DIFFERENT_PREFIX | 2)
|
||||
|
||||
* (1) All tags except for those specified as "Forbidden message tags" (no instances for these test scenarios)
|
||||
* (2) All tags except for those specified as "Mandatory message tags"
|
||||
|
||||
|
||||
## Test scenarios and setup of test zones
|
||||
|
||||
### Default zone configuration
|
||||
Unless otherwise specified in the specific scenario specification, the test zone
|
||||
or zones for the scenario will follow the default setup as stated below. The
|
||||
`child zone` is the zone to be tested for the scenario.
|
||||
|
||||
* The child zone is `SCENARIO.connectivity04.xa`.
|
||||
* It is delegated to out-of-bailiwick NS, specified per scenario.
|
||||
* The names of the NS exist in the parent zone.
|
||||
* The NS for a child will only reply to NS query and do that
|
||||
consistently.
|
||||
* The parent zone is `connectivity04.xa`.
|
||||
* It is served by two 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.
|
||||
* All responses will have the [RCODE Name] "NoError".
|
||||
|
||||
### GOOD-1
|
||||
Everything is fine.
|
||||
|
||||
* Zone: good-1.connectivity04.xa
|
||||
* 2 NS.
|
||||
* Both with IPv4 and IPv6.
|
||||
* Each NS IP in different prefixes.
|
||||
|
||||
### GOOD-2
|
||||
Everything is fine. IPv4 only.
|
||||
|
||||
* Zone: good-2.connectivity04.xa
|
||||
* 2 NS.
|
||||
* IPv4 only.
|
||||
* Each NS IP in different prefixes.
|
||||
|
||||
### GOOD-3
|
||||
Everything is fine. IPv6 only.
|
||||
|
||||
* Zone: good-3.connectivity04.xa
|
||||
* 2 NS.
|
||||
* IPv4 only.
|
||||
* Each NS IP in different prefixes.
|
||||
|
||||
### EMPTY-PREFIX-SET-1
|
||||
No ASN data (NXDOMAIN).
|
||||
|
||||
* Zone: empty-prefix-set-1.connectivity04.xa
|
||||
* 1 NS.
|
||||
* IPv4 and IPv6 on NS.
|
||||
* The ASN-lookup returns [RCODE Name] NXDOMAIN.
|
||||
|
||||
### EMPTY-PREFIX-SET-2
|
||||
No ASN data (NODATA).
|
||||
|
||||
* Zone: empty-prefix-set-2.connectivity04.xa
|
||||
* 1 NS.
|
||||
* IPv4 and IPv6 on NS.
|
||||
* The ASN-lookup returns no TXT record (NODATA).
|
||||
|
||||
### ERROR-PREFIX-DATABASE-1
|
||||
No ASN data due to SERVFAIL.
|
||||
|
||||
* Zone: error-prefix-database-1.connectivity04.xa
|
||||
* 1 NS.
|
||||
* IPv4 and IPv6 on NS.
|
||||
* The ASN-lookup returns SERVFAIL.
|
||||
|
||||
### ERROR-PREFIX-DATABASE-2
|
||||
No ASN data due to REFUSED.
|
||||
|
||||
* Zone: error-prefix-database-2.connectivity04.xa
|
||||
* 1 NS.
|
||||
* IPv4 and IPv6 on NS.
|
||||
* The ASN-lookup returns REFUSED.
|
||||
|
||||
### ERROR-PREFIX-DATABASE-3
|
||||
No ASN data, no DNS response at all.
|
||||
|
||||
* Zone: error-prefix-database-3.connectivity04.xa
|
||||
* 1 NS.
|
||||
* IPv4 and IPv6 on NS.
|
||||
* The ASN-lookup returns no DNS response (no response at all).
|
||||
|
||||
### ERROR-PREFIX-DATABASE-4
|
||||
(Renamed)
|
||||
|
||||
### ERROR-PREFIX-DATABASE-5
|
||||
(Renamed)
|
||||
|
||||
### ERROR-PREFIX-DATABASE-6
|
||||
Extra ASN lookup TXT record with wrong IP prefix.
|
||||
|
||||
* Zone: error-prefix-database-6.connectivity04.xa
|
||||
* 2 NS.
|
||||
* Both with IPv4 and IPv6.
|
||||
* Each NS IP in different prefixes.
|
||||
* For one NS (both IPs) the ASN lookup returns an extra TXT with an IP prefix
|
||||
that does not match the IP address.
|
||||
|
||||
### ERROR-PREFIX-DATABASE-7
|
||||
ASN lookup TXT record with wrong IP prefix.
|
||||
|
||||
* Zone: error-prefix-database-7.connectivity04.xa
|
||||
* 1 NS.
|
||||
* IPv4 and IPv6 on NS.
|
||||
* The ASN-lookup returns one TXT record for both IP with an IP prefix that
|
||||
does not match the IP address.
|
||||
|
||||
### ERROR-PREFIX-DATABASE-8
|
||||
ASN lookup gives no TXT-record but a CNAME.
|
||||
|
||||
* Zone: error-prefix-database-8.connectivity04.xa
|
||||
* 1 NS.
|
||||
* IPv4 and IPv6 on NS.
|
||||
* The ASN-lookup returns no TXT record for both IP but a CNAME record.
|
||||
|
||||
### HAS-NON-ASN-TXT-1
|
||||
IPv4 and IPv6. Extra non-ASN lookup TXT record.
|
||||
|
||||
* Zone: has-non-asn-txt-1.connectivity04.xa
|
||||
* 2 NS.
|
||||
* Both NS with IPv4 and IPv6.
|
||||
* Each NS IP in different prefixes.
|
||||
* For one NS (both IPs) the ASN lookup returns an extra TXT record with the
|
||||
text "This is not ASN data".
|
||||
|
||||
### HAS-NON-ASN-TXT-2
|
||||
No ASN data, some other TXT record.
|
||||
|
||||
* Zone: has-non-asn-txt-2.connectivity04.xa
|
||||
* 1 NS.
|
||||
* IPv4 and IPv6 on NS.
|
||||
* The ASN-lookup returns one TXT record for both IP with the string
|
||||
"This is not ASN data".
|
||||
|
||||
### IPV4-ONE-PREFIX-1
|
||||
All NS IPs in the same prefix. IPv4 only.
|
||||
|
||||
* Zone: ipv4-one-prefix-1.connectivity04.xa
|
||||
* 2 NS.
|
||||
* IPv4 only.
|
||||
* Both NS in the same prefix.
|
||||
|
||||
### IPV4-TWO-PREFIXES-1
|
||||
Two NS in the same prefix. One NS in its own prefix. IPv4 only.
|
||||
|
||||
* Zone: ipv4-two-prefixes-1.connectivity04.xa
|
||||
* 3 NS.
|
||||
* IPv4 only.
|
||||
* Two NS in the same prefix.
|
||||
* One NS in its own prefix.
|
||||
|
||||
### IPV6-ONE-PREFIX-1
|
||||
All NS IPs in the same prefix. IPv6 only.
|
||||
|
||||
* Zone: ipv6-one-prefix-1.connectivity04.xa
|
||||
* 2 NS.
|
||||
* Ipv6 only.
|
||||
* Both NS in the same prefix.
|
||||
|
||||
### IPV6-TWO-PREFIXES-1
|
||||
Two NS in the same prefix. One NS in its own prefix. IPv6 only.
|
||||
|
||||
* Zone: ipv6-two-prefixes-1.connectivity04.xa
|
||||
* 3 NS.
|
||||
* IPv6 only.
|
||||
* Two NS in the same prefix.
|
||||
* One NS in its own prefix.
|
||||
|
||||
### IPV4-SINGLE-NS-1
|
||||
One NS, IPv4 only.
|
||||
|
||||
* Zone: ipv4-single-ns-1.connectivity04.xa
|
||||
* 1 NS.
|
||||
* IPv4 only.
|
||||
|
||||
### IPV6-SINGLE-NS-1
|
||||
One NS, IPv6 only.
|
||||
|
||||
* Zone: ipv6-single-ns-1.connectivity04.xa
|
||||
* 1 NS.
|
||||
* IPv6 only.
|
||||
|
||||
### DOUBLE-PREFIX-1
|
||||
The IP addresses of the NS are announced from both a larger prefix and a more
|
||||
specific one.
|
||||
|
||||
* Zone: double-prefix-1.connectivity04.xa
|
||||
* 2 NS
|
||||
* IPv4 and IPv6.
|
||||
* The two IPv4 addresses are announced in one large (less specific) prefix that includes
|
||||
both NS IP addresses.
|
||||
* Each NS IP address is also announced in a more specific prefix only including
|
||||
that IP address.
|
||||
* Same with IPv6.
|
||||
|
||||
|
||||
### DOUBLE-PREFIX-2
|
||||
The IP addresses of the NS are announced in a larger (less specific) prefix that
|
||||
includes both NS IP. The addresses of one NS are also announced in more
|
||||
specific prefixes.
|
||||
|
||||
* Zone: double-prefix-2.connectivity04.xa
|
||||
* 2 NS
|
||||
* IPv4 and IPv6.
|
||||
* The two IPv4 addresses are announced in one large (less specific) prefix that
|
||||
includes both IP addresses.
|
||||
* The address of one of the NS is also announced in a more specific prefix.
|
||||
* Same with IPv6.
|
||||
|
||||
[Connectivity04]: ../../tests/Connectivity-TP/connectivity04.md
|
||||
[RCODE Name]: https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-6
|
||||
[Test scenario README file]: ../README.md
|
||||
[Test scenarios and setup of test zones]: #test-scenarios-and-setup-of-test-zones
|
||||
|
||||
Reference in New Issue
Block a user