217 lines
8.2 KiB
Markdown
217 lines
8.2 KiB
Markdown
|
|
# Specification of test scenarios for ADDRESS01
|
||
|
|
|
||
|
|
|
||
|
|
## Table of contents
|
||
|
|
|
||
|
|
* [Background](#background)
|
||
|
|
* [Test Case](#test-case)
|
||
|
|
* [Test scenarios](#test-scenarios)
|
||
|
|
* [Test zone names](#test-zone-names)
|
||
|
|
* [Test scenarios and message tags](#test-scenarios-and-message-tags)
|
||
|
|
* [Zone setup for test scenarios]
|
||
|
|
|
||
|
|
|
||
|
|
## Background
|
||
|
|
|
||
|
|
See the [test zone README file].
|
||
|
|
|
||
|
|
## Test Case
|
||
|
|
This document specifies defined test scenarios for test case [ADDRESS01].
|
||
|
|
|
||
|
|
## Test scenarios
|
||
|
|
|
||
|
|
The purpose of the test scenarios is to cover all reasonable contexts where
|
||
|
|
different message tags are outputted when [ADDRESS01] is run on a test zone.
|
||
|
|
The message tags are defined in the test case ([ADDRESS01]) and the scenarios
|
||
|
|
are defined below.
|
||
|
|
|
||
|
|
The test scenarios are structured as stated in the [test zone README file].
|
||
|
|
|
||
|
|
## Test zone names
|
||
|
|
|
||
|
|
The test zone for each test scenario in this document is a subdomain delegated
|
||
|
|
from the base name (`address01.xa`) and that subdomain having the same name as the
|
||
|
|
scenario. The names of those zones are given in section
|
||
|
|
"[Zone setup for test scenarios]" below.
|
||
|
|
|
||
|
|
## All tags
|
||
|
|
|
||
|
|
The test case can output any of these message tags, but not necessarily in any combination.
|
||
|
|
|
||
|
|
- A01_ADDR_NOT_GLOBALLY_REACHABLE
|
||
|
|
- A01_DOCUMENTATION_ADDR
|
||
|
|
- A01_GLOBALLY_REACHABLE_ADDR
|
||
|
|
- A01_LOCAL_USE_ADDR
|
||
|
|
- A01_NO_GLOBALLY_REACHABLE_ADDR
|
||
|
|
- A01_NO_NAME_SERVERS_FOUND
|
||
|
|
|
||
|
|
## 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 | A01_GLOBALLY_REACHABLE_ADDR | 2) |
|
||
|
|
| MIXED-LOCAL-DOC-1 | A01_LOCAL_USE_ADDR, A01_DOCUMENTATION_ADDR, A01_GLOBALLY_REACHABLE_ADDR | 2) |
|
||
|
|
| MIXED-LOCAL-DOC-2 | A01_LOCAL_USE_ADDR, A01_DOCUMENTATION_ADDR, A01_GLOBALLY_REACHABLE_ADDR | 2) |
|
||
|
|
| MIXED-LOCAL-OTHER-1 | A01_LOCAL_USE_ADDR, A01_ADDR_NOT_GLOBALLY_REACHABLE, A01_GLOBALLY_REACHABLE_ADDR | 2) |
|
||
|
|
| MIXED-LOCAL-OTHER-2 | A01_LOCAL_USE_ADDR, A01_ADDR_NOT_GLOBALLY_REACHABLE, A01_GLOBALLY_REACHABLE_ADDR | 2) |
|
||
|
|
| MIXED-DOC-OTHER-1 | A01_DOCUMENTATION_ADDR, A01_ADDR_NOT_GLOBALLY_REACHABLE, A01_GLOBALLY_REACHABLE_ADDR | 2) |
|
||
|
|
| MIXED-DOC-OTHER-2 | A01_DOCUMENTATION_ADDR, A01_ADDR_NOT_GLOBALLY_REACHABLE, A01_GLOBALLY_REACHABLE_ADDR | 2) |
|
||
|
|
| MIXED-ALL-1 | A01_ADDR_NOT_GLOBALLY_REACHABLE, A01_DOCUMENTATION_ADDR, A01_LOCAL_USE_ADDR, A01_GLOBALLY_REACHABLE_ADDR | 2) |
|
||
|
|
| MIXED-ALL-2 | A01_ADDR_NOT_GLOBALLY_REACHABLE, A01_DOCUMENTATION_ADDR, A01_LOCAL_USE_ADDR, A01_GLOBALLY_REACHABLE_ADDR | 2) |
|
||
|
|
| ALL-NON-REACHABLE | A01_ADDR_NOT_GLOBALLY_REACHABLE, A01_LOCAL_USE_ADDR, A01_DOCUMENTATION_ADDR, A01_NO_GLOBALLY_REACHABLE_ADDR | 2) |
|
||
|
|
| NO_NAME_SERVERS | A01_NO_NAME_SERVERS_FOUND | 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"
|
||
|
|
|
||
|
|
## Zone setup for test scenarios
|
||
|
|
|
||
|
|
Assumptions for the scenario specifications unless otherwise specified for
|
||
|
|
the specific scenario:
|
||
|
|
* The child zone is `SCENARIO.address01.xa`.
|
||
|
|
* There is no zone file or zone data for the child zone.
|
||
|
|
* For each scenario zone there are two NS records (ns\[1-2]).
|
||
|
|
* All NS are in-bailiwick
|
||
|
|
* All NS have both IPv4 and IPv6 addresses
|
||
|
|
* All required glue are present in the delegation.
|
||
|
|
* EDNS, version 0, is included in all responses on queries with EDNS.
|
||
|
|
* EDNS is not included in responses on queries without EDNS.
|
||
|
|
|
||
|
|
| Address designation | Meaning |
|
||
|
|
|:-----------------------|:------------------------------------------------------------------------------------------------------|
|
||
|
|
| OK | Globally routable, public IPv4 address or global IPv6 address (not from any special purpose registry) |
|
||
|
|
| OK_SPECIAL | Globally routable IPv4 or IPv6 address from one of the special purpose registries |
|
||
|
|
| LOCAL_USE_ADDR | Address part of range used for private networks (loopback, RFC1918, Provider shared, etc.) |
|
||
|
|
| DOCUMENTATION_ADDR | Address part of range used for documentation purposes |
|
||
|
|
| NOT_GLOBALLY_REACHABLE | Address part of any other range listed as not globally reachable |
|
||
|
|
|
||
|
|
Designations are based on the address block ranges from the
|
||
|
|
[Special purpose IPv4 addresses] and [Special purpose IPv6 addresses] registries.
|
||
|
|
|
||
|
|
### GOOD-1
|
||
|
|
The "happy path". Everything is fine.
|
||
|
|
|
||
|
|
* Zone: good-1.address01.xa
|
||
|
|
* ns1
|
||
|
|
* IPv4 address OK
|
||
|
|
* IPv6 address OK
|
||
|
|
* ns2
|
||
|
|
* IPv4 address OK_SPECIAL
|
||
|
|
* IPv6 address OK_SPECIAL
|
||
|
|
|
||
|
|
### MIXED-LOCAL-DOC-1
|
||
|
|
|
||
|
|
* Zone: mixed-local-doc-1.address01.xa
|
||
|
|
* ns1
|
||
|
|
* IPv4 address LOCAL_USE_ADDR
|
||
|
|
* IPv6 address OK
|
||
|
|
* ns2
|
||
|
|
* IPv4 address OK
|
||
|
|
* IPv6 address DOCUMENTATION_ADDR
|
||
|
|
|
||
|
|
### MIXED-LOCAL-DOC-2
|
||
|
|
|
||
|
|
* Zone: mixed-local-doc-2.address01.xa
|
||
|
|
* ns1
|
||
|
|
* IPv4 address DOCUMENTATION_ADDR
|
||
|
|
* IPv6 address OK
|
||
|
|
* ns2
|
||
|
|
* IPv4 address OK
|
||
|
|
* IPv6 address LOCAL_USE_ADDR
|
||
|
|
|
||
|
|
### MIXED-DOC-OTHER-1
|
||
|
|
|
||
|
|
* Zone: mixed-doc-other-1.address01.xa
|
||
|
|
* ns1
|
||
|
|
* IPv4 address DOCUMENTATION_ADDR
|
||
|
|
* IPv6 address OK
|
||
|
|
* ns2
|
||
|
|
* IPv4 address OK
|
||
|
|
* IPv6 address NOT_GLOBALLY_REACHABLE
|
||
|
|
|
||
|
|
### MIXED-DOC-OTHER-2
|
||
|
|
|
||
|
|
* Zone: mixed-doc-other-2.address01.xa
|
||
|
|
* ns1
|
||
|
|
* IPv4 address NOT_GLOBALLY_REACHABLE
|
||
|
|
* IPv6 address OK
|
||
|
|
* ns2
|
||
|
|
* IPv4 address OK
|
||
|
|
* IPv6 address DOCUMENTATION_ADDR
|
||
|
|
|
||
|
|
### MIXED-LOCAL-OTHER-1
|
||
|
|
|
||
|
|
* Zone: mixed-local-other-1.address01.xa
|
||
|
|
* ns1
|
||
|
|
* IPv4 address LOCAL_USE_ADDR
|
||
|
|
* IPv6 address OK
|
||
|
|
* ns2
|
||
|
|
* IPv4 address OK
|
||
|
|
* IPv6 address NOT_GLOBALLY_REACHABLE
|
||
|
|
|
||
|
|
### MIXED-LOCAL-OTHER-2
|
||
|
|
|
||
|
|
* Zone: mixed-local-other-2.address01.xa
|
||
|
|
* ns1
|
||
|
|
* IPv4 address NOT_GLOBALLY_REACHABLE
|
||
|
|
* IPv6 address OK
|
||
|
|
* ns2
|
||
|
|
* IPv4 address OK
|
||
|
|
* IPv6 address LOCAL_USE_ADDR
|
||
|
|
|
||
|
|
### MIXED-ALL-1
|
||
|
|
|
||
|
|
* Zone: mixed-all-1.address01.xa
|
||
|
|
* ns1
|
||
|
|
* IPv4 address LOCAL_USE_ADDR
|
||
|
|
* IPv6 address OK
|
||
|
|
* ns2
|
||
|
|
* IPv4 address DOCUMENTATION_ADDR
|
||
|
|
* IPv6 address NOT_GLOBALLY_REACHABLE
|
||
|
|
|
||
|
|
### MIXED-ALL-2
|
||
|
|
|
||
|
|
* Zone: mixed-all-2.address01.xa
|
||
|
|
* ns1
|
||
|
|
* IPv4 address NOT_GLOBALLY_REACHABLE
|
||
|
|
* IPv6 address LOCAL_USE_ADDR
|
||
|
|
* ns2
|
||
|
|
* IPv4 address OK
|
||
|
|
* IPv6 address DOCUMENTATION_ADDR
|
||
|
|
|
||
|
|
### ALL-NON-REACHABLE
|
||
|
|
All addresses of all nameservers falls within one of the address blocks listed
|
||
|
|
as not globally reachable. Delegation contains three name servers to cover all
|
||
|
|
combinations of defined address block types.
|
||
|
|
|
||
|
|
* Zone: all-non-reachable.address01.xa
|
||
|
|
* ns1
|
||
|
|
* IPv4 address LOCAL_USE_ADDR
|
||
|
|
* IPv6 address NOT_GLOBALLY_REACHABLE
|
||
|
|
* ns2
|
||
|
|
* IPv4 address DOCUMENTATION_ADDR
|
||
|
|
* IPv6 address LOCAL_USE_ADDR
|
||
|
|
+ ns3
|
||
|
|
* IPv4 address NOT_GLOBALLY_REACHABLE
|
||
|
|
* IPv6 address DOCUMENTATION_ADDR
|
||
|
|
|
||
|
|
### NO_NAME_SERVERS
|
||
|
|
No delegation for the zone and the zone does not exist.
|
||
|
|
|
||
|
|
* Zone: no-name-servers.address01.xa
|
||
|
|
* No delegation
|
||
|
|
* No zone
|
||
|
|
|
||
|
|
[ADDRESS01]: ../../tests/Address-TP/address01.md
|
||
|
|
[RCODE Name]: https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-6
|
||
|
|
[Special purpose IPv4 addresses]: https://www.iana.org/assignments/iana-ipv4-special-registry/iana-ipv4-special-registry.xml
|
||
|
|
[Special purpose IPv6 addresses]: https://www.iana.org/assignments/iana-ipv6-special-registry/iana-ipv6-special-registry.xml
|
||
|
|
[Test zone README file]: ../README.md
|
||
|
|
[Zone setup for test scenarios]: #zone-setup-for-test-scenarios
|