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,416 @@
|
||||
# Specification of Test Scenarios for Basic02
|
||||
|
||||
|
||||
## 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](#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 [Basic02].
|
||||
|
||||
|
||||
## Test scenarios
|
||||
|
||||
The purpose of the test scenarios is to cover all reasonable contexts where
|
||||
different message tags are outputted when [Basic02] is run on a test zone.
|
||||
The message tags are defined in the test case ([Basic02]) 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 (`basic02.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 [Basic02] for the specification of the tags.
|
||||
|
||||
* B02_AUTH_RESPONSE_SOA
|
||||
* B02_NO_DELEGATION
|
||||
* B02_NO_WORKING_NS
|
||||
* B02_NS_BROKEN
|
||||
* B02_NS_NOT_AUTH
|
||||
* B02_NS_NO_IP_ADDR
|
||||
* B02_NS_NO_RESPONSE
|
||||
* B02_UNEXPECTED_RCODE
|
||||
|
||||
## 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 | B02_AUTH_RESPONSE_SOA | 2)
|
||||
GOOD-2 | B02_AUTH_RESPONSE_SOA | 2)
|
||||
GOOD-UNDEL-1 | B02_AUTH_RESPONSE_SOA | 2)
|
||||
GOOD-UNDEL-2 | B02_AUTH_RESPONSE_SOA | 2)
|
||||
GOOD-UNDEL-3 | B02_AUTH_RESPONSE_SOA | 2)
|
||||
GOOD-UNDEL-4 | B02_AUTH_RESPONSE_SOA | 2)
|
||||
GOOD-UNDEL-5 | B02_AUTH_RESPONSE_SOA | 2)
|
||||
GOOD-UNDEL-6 | B02_AUTH_RESPONSE_SOA | 2)
|
||||
GOOD-UNDEL-7 | B02_AUTH_RESPONSE_SOA | 2)
|
||||
GOOD-UNDEL-8 | B02_AUTH_RESPONSE_SOA | 2)
|
||||
GOOD-UNDEL-9 | B02_AUTH_RESPONSE_SOA | 2)
|
||||
GOOD-UNDEL-10 | B02_AUTH_RESPONSE_SOA | 2)
|
||||
GOOD-UNDEL-11 | B02_AUTH_RESPONSE_SOA | 2)
|
||||
MIXED-1 | B02_AUTH_RESPONSE_SOA | 2)
|
||||
NO-DELEGATION-1 | B02_NO_DELEGATION | 2)
|
||||
NS-BROKEN-1 | B02_NS_BROKEN, B02_NO_WORKING_NS | 2)
|
||||
NS-NOT-AUTH-1 | B02_NS_NOT_AUTH, B02_NO_WORKING_NS | 2)
|
||||
NS-NO-IP-1 | B02_NS_NO_IP_ADDR, B02_NO_WORKING_NS | 2)
|
||||
NS-NO-IP-2 | B02_NS_NO_IP_ADDR, B02_NO_WORKING_NS | 2)
|
||||
NS-NO-IP-3 | B02_NS_NO_IP_ADDR, B02_NO_WORKING_NS | 2)
|
||||
NS-NO-IP-UNDEL-1 | B02_NS_NO_IP_ADDR, B02_NO_WORKING_NS | 2)
|
||||
NS-NO-IP-UNDEL-2 | B02_NS_NO_IP_ADDR, B02_NO_WORKING_NS | 2)
|
||||
NS-NO-RESPONSE-1 | B02_NS_NO_RESPONSE, B02_NO_WORKING_NS | 2)
|
||||
UNEXPECTED-RCODE-1 | B02_UNEXPECTED_RCODE, B02_NO_WORKING_NS | 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.
|
||||
|
||||
`basic02.xb` is a zone for out-of-bailiwick name servers for applicable
|
||||
scenario.
|
||||
|
||||
* The child zone is `SCENARIO.basic02.xa`.
|
||||
* It is delegated to two name servers, `ns1.SCENARIO.basic02.xa`
|
||||
and `ns2.SCENARIO.basic02.xa`.
|
||||
* The name server names have A and AAAA records to avoid non-relevant error
|
||||
messages.
|
||||
* The delegation of the child zone is complete with glue records.
|
||||
* There is a zone file for the child zone.
|
||||
* All child zone servers give the same response.
|
||||
* All responses will have the AA bit set.
|
||||
* All responses will have the [RCODE Name] "NoError".
|
||||
* NS and any glue matches NS and authoritative address records in zone.
|
||||
* If NS are out of bailiwick, the names are defined in another zone with correct
|
||||
A and AAAA records.
|
||||
|
||||
### GOOD-1
|
||||
A "happy path". Everything is fine.
|
||||
|
||||
* Zone: good-1.basic02.xa
|
||||
* Zone is set up as default.
|
||||
|
||||
### GOOD-2
|
||||
Like GOOD-1 but name servers are out-of-bailiwick.
|
||||
|
||||
* Zone: good-1.basic02.xa
|
||||
* ns1 is ns1.good-2.basic02.xb.
|
||||
* ns2 is ns2.good-2.basic02.xb.
|
||||
* Delegation is without glue.
|
||||
|
||||
### Overview of the GOOD-UNDEL-x scenarios
|
||||
|
||||
Scenario name | Delegated zone | Undelegated data
|
||||
:--------------|:------------------------------|:--------------------
|
||||
GOOD-UNDEL-1 | no delegation | IB with glue
|
||||
GOOD-UNDEL-2 | no delegation | OOB without glue, NS names are defined
|
||||
GOOD-UNDEL-3 | IB, no response | OOB without glue, NS names are defined
|
||||
GOOD-UNDEL-4 | IB, no glue | OOB without glue, NS names are defined
|
||||
GOOD-UNDEL-5 | IB, no glue | IB with glue
|
||||
GOOD-UNDEL-6 | OOB, no response | IB with glue
|
||||
GOOD-UNDEL-7 | OOB, no address records | OOB with glue, NS names are undefined
|
||||
GOOD-UNDEL-8 | IB, no response | IB, IP redefined
|
||||
GOOD-UNDEL-9 | OOB, no response | OOB, IP redefined
|
||||
GOOD-UNDEL-10 | OOB, SERVFAIL/REFUSED | OOB
|
||||
GOOD-UNDEL-11 | OOB, cannot look addr up | OOB, IP through lookup
|
||||
|
||||
### GOOD-UNDEL-1
|
||||
The zone is not delegated. Undelegated data provides a working zone.
|
||||
|
||||
* Zone: good-undel-1.basic02.xa
|
||||
* The zone is not delegated.
|
||||
* Else, the zone from undelegated data is set up as default.
|
||||
* Undelegated data:
|
||||
* ns1.good-undel-1.basic02.xa/IPv4
|
||||
* ns1.good-undel-1.basic02.xa/IPv6
|
||||
* ns2.good-undel-1.basic02.xa/IPv4
|
||||
* ns2.good-undel-1.basic02.xa/IPv6
|
||||
|
||||
### GOOD-UNDEL-2
|
||||
The zone is not delegated. Undelegated data provides a working zone. NS are
|
||||
out-of-bailiwick.
|
||||
|
||||
* Zone: good-undel-2.basic02.xa
|
||||
* The zone is not delegated.
|
||||
* The undelegated data has out-of-bailiwick name servers without glue.
|
||||
* Normal lookup provides IP addresses for the name server names.
|
||||
* Else, the zone from undelegated data is set up as default.
|
||||
* Undelegated data:
|
||||
* ns1.good-undel-2.basic02.xb
|
||||
* ns2.good-undel-2.basic02.xb
|
||||
|
||||
### GOOD-UNDEL-3
|
||||
Delegated zone does not respond. There is a working zone from undelegated data.
|
||||
Those NS are out-of-bailiwick.
|
||||
|
||||
* Zone: good-undel-3.basic02.xa
|
||||
* The name servers in delegation are ns1 and ns2.
|
||||
* Name servers from delegation do not respond.
|
||||
* The undelegated data has out-of-bailiwick name servers without glue.
|
||||
* Normal lookup provides IP addresses for the name server names.
|
||||
* Else, the zone from undelegated data is set up as default.
|
||||
* Undelegated data:
|
||||
* ns3.good-undel-3.basic02.xb
|
||||
* ns4.good-undel-3.basic02.xb
|
||||
|
||||
### GOOD-UNDEL-4
|
||||
Delegation of zone lacks glue. There is a working zone from undelegated data.
|
||||
Those NS are out-of-bailiwick.
|
||||
|
||||
* Zone: good-undel-4.basic02.xa
|
||||
* The name servers in delegation are ns1 and ns2.
|
||||
* There is no glue for ns1 and ns2.
|
||||
* The undelegated data has out-of-bailiwick name servers without glue.
|
||||
* Normal lookup provides IP addresses for the name server names.
|
||||
* Else, the zone from undelegated data is set up as default.
|
||||
* Undelegated data:
|
||||
* ns1.good-undel-4.basic02.xb
|
||||
* ns2.good-undel-4.basic02.xb
|
||||
|
||||
### GOOD-UNDEL-5
|
||||
Delegation of zone lacks glue. There is a working zone from undelegated data.
|
||||
|
||||
* Zone: good-undel-5.basic02.xa
|
||||
* The name servers in delegation ns1 and ns2.
|
||||
* There is no glue for ns1 and ns2.
|
||||
* The undelegated data has the same NS names with glue.
|
||||
* Else, the zone from undelegated data is set up as default.
|
||||
* Undelegated data:
|
||||
* ns1.good-undel-5.basic02.xa/IPv4
|
||||
* ns1.good-undel-5.basic02.xa/IPv6
|
||||
* ns2.good-undel-5.basic02.xa/IPv4
|
||||
* ns2.good-undel-5.basic02.xa/IPv6
|
||||
|
||||
### GOOD-UNDEL-6
|
||||
Zone is delegated to out-of-bailiwick NS, but with no response. There is a
|
||||
working zone from undelegated data.
|
||||
|
||||
* Zone: good-undel-6.basic02.xa
|
||||
* The name servers in delegation are ns1.good-undel-6.basic02.xb and
|
||||
ns2.good-undel-6.basic02.xb.
|
||||
* Normal lookup provides IP addresses for the name server names.
|
||||
* The servers in delegation do not respond.
|
||||
* The zone from undelegated data is set up as default.
|
||||
* Undelegated data:
|
||||
* ns3.good-undel-6.basic02.xa/IPv4
|
||||
* ns3.good-undel-6.basic02.xa/IPv6
|
||||
* ns4.good-undel-6.basic02.xa/IPv4
|
||||
* ns4.good-undel-6.basic02.xa/IPv6
|
||||
|
||||
### GOOD-UNDEL-7
|
||||
Zone is delegated to out-of-bailiwick NS, but with no IP for NS. There is a
|
||||
working zone from undelegated data, also out-of-bailiwick.
|
||||
|
||||
* Zone: good-undel-7.basic02.xa
|
||||
* The name servers in delegation are ns1.good-undel-7.basic02.xb and
|
||||
ns2.good-undel-7.basic02.xb.
|
||||
* ns1 and ns2 are defined, but with no address records.
|
||||
* The NS in undelegated data use names that are not defined.
|
||||
* The zone from undelegated data is set up as default.
|
||||
* Undelegated data:
|
||||
* ns3.good-undel-7.basic02.xb/IPv4
|
||||
* ns3.good-undel-7.basic02.xb/IPv6
|
||||
* ns4.good-undel-7.basic02.xb/IPv4
|
||||
* ns5.good-undel-7.basic02.xb/IPv6
|
||||
|
||||
### GOOD-UNDEL-8
|
||||
Zone is delegated, but no response from the NS of delegation. There is a working
|
||||
zone from undelegated data.
|
||||
|
||||
* Zone: good-undel-8.basic02.xa
|
||||
* The name servers in delegation are dns1 and dns2.
|
||||
* There is no response from dns1 and dns2.
|
||||
* The NS in undelegated data use the same NS names with other IP addresses.
|
||||
* Else, the zone from undelegated data is set up as default.
|
||||
* Undelegated data:
|
||||
* dns1.good-undel-8.basic02.xa/IPv4
|
||||
* dns1.good-undel-8.basic02.xa/IPv6
|
||||
* dns2.good-undel-8.basic02.xa/IPv4
|
||||
* dns2.good-undel-8.basic02.xa/IPv6
|
||||
|
||||
### GOOD-UNDEL-9
|
||||
Zone is delegated to out-of-bailiwick NS, but with no response. There is a
|
||||
working zone from undelegated data.
|
||||
|
||||
* Zone: good-undel-9.basic02.xa
|
||||
* The name servers in delegation are dns1.good-undel-9.basic02.xb and
|
||||
dns2.good-undel-9.basic02.xb.
|
||||
* Normal lookup provides IP addresses for the name server names.
|
||||
* The servers in delegation do not respond.
|
||||
* The NS in undelegated data use the same NS names with other IP addresses.
|
||||
* The zone from undelegated data is set up as default.
|
||||
* Undelegated data:
|
||||
* dns1.good-undel-9.basic02.xb/IPv4
|
||||
* dns1.good-undel-9.basic02.xb/IPv6
|
||||
* dns2.good-undel-9.basic02.xb/IPv4
|
||||
* dns2.good-undel-9.basic02.xb/IPv6
|
||||
|
||||
### GOOD-UNDEL-10
|
||||
Zone is delegated to out-of-bailiwick NS, but with SERVFAIL or REFUSED response.
|
||||
There is a working zone from undelegated data, also out-of-bailiwick.
|
||||
|
||||
* Zone: good-undel-10.basic02.xa
|
||||
* The name servers in delegation are ns1.good-undel-10.basic02.xb and
|
||||
ns2.good-undel-10.basic02.xb.
|
||||
* Normal lookup provides IP addresses for the name server names.
|
||||
* The servers in delegation respond with SERVFAIL (ns1) or REFUSED (ns2).
|
||||
* The NS in undelegated data use other IP addresses.
|
||||
* The zone from undelegated data is set up as default.
|
||||
* Undelegated data:
|
||||
* ns3.good-undel-10.basic02.xb/IPv4
|
||||
* ns3.good-undel-10.basic02.xb/IPv6
|
||||
* ns4.good-undel-10.basic02.xb/IPv4
|
||||
* ns4.good-undel-10.basic02.xb/IPv6
|
||||
|
||||
### GOOD-UNDEL-11
|
||||
Zone is delegated to out-of-bailiwick NS whose names are in a zone that is
|
||||
not reachable (addresses cannot be looked up). There is a working zone from
|
||||
undelegated data, also out-of-bailiwick.
|
||||
|
||||
* Zone: good-undel-11.basic02.xa
|
||||
* The name servers in delegation are ns1.delegated.good-undel-11.basic02.xb
|
||||
and ns2.delegated.good-undel-11.basic02.xb.
|
||||
* Normal lookup fails to provides IP addresses for the name server names
|
||||
since zone delegated.good-undel-11.basic02.xb cannot be reached.
|
||||
* delegated.good-undel-11.basic02.xb is delegated to dns1 and dns2 relative
|
||||
to that domain.
|
||||
* There is no actual zone for the delegated data (not needed).
|
||||
* The zone from undelegated data is set up as default.
|
||||
* The addresses for the NS for the undelegated zone are found via lookup.
|
||||
* Undelegated data:
|
||||
* ns3.good-undel-11.basic02.xb
|
||||
* ns4.good-undel-11.basic02.xb
|
||||
|
||||
### MIXED-1
|
||||
The zone is delegated to four NS, of which ns1 responds correctly, ns2 does
|
||||
not respond, ns3 returns SERVFAIL and ns4 is not authoritative.
|
||||
|
||||
* Zone: mixed-1.basic02.xa
|
||||
* The zone is set-up as default, but with four NS (ns1-4).
|
||||
* ns1 gives correct response.
|
||||
* ns2 does not respond.
|
||||
* ns3 returns SERVFAIL on all queries.
|
||||
* ns4 returns all responses with AA flag unset.
|
||||
|
||||
### NO-DELEGATION
|
||||
There is no delegation for the zone.
|
||||
|
||||
* Zone: no-delegation.basic02.xa
|
||||
* No zone.
|
||||
* No name servers.
|
||||
* No delegation.
|
||||
|
||||
### NS-BROKEN-1
|
||||
The servers for the zone do not respond with SOA record on SOA query.
|
||||
|
||||
* Zone: ns-broken-1.basic02.xa
|
||||
* No SOA record in response from ns1 and ns2.
|
||||
* RCODE is NOERROR and AA bit is set.
|
||||
|
||||
### NS-NOT-AUTH-1
|
||||
The servers for the zone do not give authoritative responses.
|
||||
|
||||
* Zone: ns-not-auth-1.basic02.xa
|
||||
* AA bit is unset in responses from ns1 and ns2.
|
||||
|
||||
### NS-NO-IP-1
|
||||
The delegation is without glue.
|
||||
|
||||
* Zone: ns-no-ip-1.basic02.xa
|
||||
* There is no glue in delegation for ns1 and ns2.
|
||||
* No zone is set up.
|
||||
|
||||
### NS-NO-IP-2
|
||||
The name server are out-of-bailiwick but have no address records.
|
||||
|
||||
* Zone: ns-no-ip-2.basic02.xa
|
||||
* ns1 and ns2 are out-of-bailiwick.
|
||||
* ns1 is ns1.ns-no-ip-2.basic02.xb.
|
||||
* ns2 is ns2.ns-no-ip-2.basic02.xb.
|
||||
* ns1 and ns2 exist as names, but have no address records.
|
||||
* No zone is set up.
|
||||
|
||||
### NS-NO-IP-3
|
||||
The name server are out-of-bailiwick but the names are not defined.
|
||||
|
||||
* Zone: ns-no-ip-3.basic02.xa
|
||||
* ns1 and ns2 are out-of-bailiwick.
|
||||
* ns1 is ns1.ns-no-ip-3.basic02.xb.
|
||||
* ns2 is ns2.ns-no-ip-3.basic02.xb.
|
||||
* ns1 and ns2 do not exist as names.
|
||||
* No zone is set up.
|
||||
|
||||
### NS-NO-IP-UNDEL-1
|
||||
The delegated zone works correctly. The undelegated data has in-bailiwick NS
|
||||
without glue.
|
||||
|
||||
* Zone: ns-no-ip-undel-1.basic02.xa
|
||||
* ns1 and ns2 serves a working zone.
|
||||
* The undelegated data uses the same NS names but without glue.
|
||||
* There is no need for a zone for undelegated data.
|
||||
* Undelegated data:
|
||||
* ns1.ns-no-ip-undel-1.basic02.xa
|
||||
* ns2.ns-no-ip-undel-1.basic02.xa
|
||||
|
||||
### NS-NO-IP-UNDEL-2
|
||||
The delegated zone works correctly. The undelegated data has out-of-bailiwick NS
|
||||
without glue. The NS names have no address records.
|
||||
|
||||
* Zone: ns-no-ip-undel-2.basic02.xa
|
||||
* ns1 and ns2 serves a working zone.
|
||||
* The undelegated data uses out-of-bailiwick NS.
|
||||
* NS names exists.
|
||||
* NS names do not resolve to address records.
|
||||
* There is no need for a zone for undelegated data.
|
||||
* Undelegated data:
|
||||
* ns1.ns-no-ip-undel-2.basic02.xb
|
||||
* ns2.ns-no-ip-undel-2.basic02.xb
|
||||
|
||||
### NS-NO-RESPONSE-1
|
||||
The name servers do not respond on the queries.
|
||||
|
||||
* Zone: ns-no-response-1.basic02.xa
|
||||
* ns1 and ns2 do not respond to queries.
|
||||
* No zone is set up.
|
||||
|
||||
### UNEXPECTED-RCODE-1
|
||||
The name servers respond with NXDOMAIN, REFUSED or SERVFAIL on SOA query.
|
||||
|
||||
* Zone: unexpected-rcode-1.basic02.xa
|
||||
* ns1 responds with NXDOMAIN.
|
||||
* ns2 responds with REFUSED.
|
||||
* ns3 responds with SERVFAIL.
|
||||
* No actual zone exists.
|
||||
|
||||
|
||||
[Basic02]: ../../tests/Basic-TP/basic02.md
|
||||
[test scenario README file]: ../README.md
|
||||
[RCODE Name]: https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-6
|
||||
[Test scenarios and setup of test zones]: #test-scenarios-and-setup-of-test-zones
|
||||
Reference in New Issue
Block a user