179 lines
7.1 KiB
Markdown
179 lines
7.1 KiB
Markdown
|
|
# Specification of test zones for NAMESERVER15
|
||
|
|
|
||
|
|
|
||
|
|
## 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 zones for test case [NAMESERVER15].
|
||
|
|
|
||
|
|
|
||
|
|
## Test scenarios
|
||
|
|
|
||
|
|
The purpose of the test scenarios is to cover all reasonable contexts where
|
||
|
|
different message tags are outputted when [NAMESERVER15] is run on a test zone.
|
||
|
|
The message tags are defined in the test case ([NAMESERVER15]) 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 (`nameserver15.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.
|
||
|
|
|
||
|
|
|
||
|
|
## 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
|
||
|
|
:-------------------------|:--------------------------------------|:-------------------------------------------
|
||
|
|
NO-VERSION-REVEALED-1 | N15_NO_VERSION_REVEALED | N15_ERROR_ON_VERSION_QUERY, N15_SOFTWARE_VERSION, N15_WRONG_CLASS
|
||
|
|
NO-VERSION-REVEALED-2 | N15_NO_VERSION_REVEALED | N15_ERROR_ON_VERSION_QUERY, N15_SOFTWARE_VERSION, N15_WRONG_CLASS
|
||
|
|
NO-VERSION-REVEALED-3 | N15_NO_VERSION_REVEALED | N15_ERROR_ON_VERSION_QUERY, N15_SOFTWARE_VERSION, N15_WRONG_CLASS
|
||
|
|
NO-VERSION-REVEALED-4 | N15_NO_VERSION_REVEALED | N15_ERROR_ON_VERSION_QUERY, N15_SOFTWARE_VERSION, N15_WRONG_CLASS
|
||
|
|
NO-VERSION-REVEALED-5 | N15_NO_VERSION_REVEALED | N15_ERROR_ON_VERSION_QUERY, N15_SOFTWARE_VERSION, N15_WRONG_CLASS
|
||
|
|
NO-VERSION-REVEALED-6 | N15_NO_VERSION_REVEALED | N15_ERROR_ON_VERSION_QUERY, N15_SOFTWARE_VERSION, N15_WRONG_CLASS
|
||
|
|
ERROR-ON-VERSION-QUERY-1 | N15_ERROR_ON_VERSION_QUERY, N15_NO_VERSION_REVEALED | N15_SOFTWARE_VERSION, N15_WRONG_CLASS
|
||
|
|
ERROR-ON-VERSION-QUERY-2 | N15_ERROR_ON_VERSION_QUERY, N15_NO_VERSION_REVEALED | N15_SOFTWARE_VERSION, N15_WRONG_CLASS
|
||
|
|
SOFTWARE-VERSION-1 | N15_SOFTWARE_VERSION | N15_ERROR_ON_VERSION_QUERY, N15_NO_VERSION_REVEALED, N15_WRONG_CLASS
|
||
|
|
SOFTWARE-VERSION-2 | N15_SOFTWARE_VERSION | N15_ERROR_ON_VERSION_QUERY, N15_NO_VERSION_REVEALED, N15_WRONG_CLASS
|
||
|
|
WRONG-CLASS-1 | N15_SOFTWARE_VERSION, N15_WRONG_CLASS | N15_ERROR_ON_VERSION_QUERY, N15_NO_VERSION_REVEALED
|
||
|
|
WRONG-CLASS-2 | N15_SOFTWARE_VERSION, N15_WRONG_CLASS | N15_ERROR_ON_VERSION_QUERY, N15_NO_VERSION_REVEALED
|
||
|
|
|
||
|
|
|
||
|
|
## Zone setup for test scenarios
|
||
|
|
|
||
|
|
Assumptions for the scenario specifications:
|
||
|
|
* For each scenario zone there is one name server configured.
|
||
|
|
* Unless stated otherwise, all name servers respond as follows:
|
||
|
|
* Responds with a SOA record for the zone on query for SOA.
|
||
|
|
* Responds with CH class on queries on CH class.
|
||
|
|
* Software version query names are "version.bind" and "version.server".
|
||
|
|
* All responses are [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.
|
||
|
|
|
||
|
|
### NO-VERSION-REVEALED-1
|
||
|
|
This is a happy path
|
||
|
|
|
||
|
|
* Zone: "no-version-revealed-1.nameserver15.xa."
|
||
|
|
* The name server responds with empty answer section on both software version
|
||
|
|
query names.
|
||
|
|
|
||
|
|
### NO-VERSION-REVEALED-2
|
||
|
|
This is a happy path
|
||
|
|
|
||
|
|
* Zone: "no-version-revealed-2.nameserver15.xa."
|
||
|
|
* The name server responds with empty answer section on both software version
|
||
|
|
query names.
|
||
|
|
* The name server responds with [RCODE Name] "NxDomain" on both software
|
||
|
|
version query names.
|
||
|
|
|
||
|
|
### NO-VERSION-REVEALED-3
|
||
|
|
This is a happy path
|
||
|
|
|
||
|
|
* Zone: "no-version-revealed-3.nameserver15.xa."
|
||
|
|
* The name server responds with empty answer section on both software version
|
||
|
|
query names.
|
||
|
|
* The name server responds with [RCODE Name] "Refused" on both software
|
||
|
|
version query names.
|
||
|
|
|
||
|
|
### NO-VERSION-REVEALED-4
|
||
|
|
This is a happy path
|
||
|
|
|
||
|
|
* Zone: "no-version-revealed-4.nameserver15.xa."
|
||
|
|
* The name server responds with a single CNAME record and no other record in
|
||
|
|
answer section on both software version query names.
|
||
|
|
* "version.bind. CNAME version.server." when query name is version.bind.
|
||
|
|
* "version.server. CNAME version.bind." when query name is version.server.
|
||
|
|
|
||
|
|
### NO-VERSION-REVEALED-5
|
||
|
|
This is a happy path
|
||
|
|
|
||
|
|
* Zone: "no-version-revealed-5.nameserver15.xa."
|
||
|
|
* RDATA of the TXT records for both software version query names is the empty
|
||
|
|
string.
|
||
|
|
|
||
|
|
### NO-VERSION-REVEALED-6
|
||
|
|
This is a happy path
|
||
|
|
|
||
|
|
* Zone: "no-version-revealed-6.nameserver15.xa."
|
||
|
|
* RDATA of the TXT records for both software version query names only consists
|
||
|
|
of space characters.
|
||
|
|
|
||
|
|
### ERROR-ON-VERSION-QUERY-1
|
||
|
|
Unexpected response from server
|
||
|
|
|
||
|
|
* Zone: "error-on-version-query-1.nameserver15.xa."
|
||
|
|
* The name server responds with empty answer section on both software version
|
||
|
|
query names.
|
||
|
|
* The name server responds with [RCODE Name] "ServFail" on both software
|
||
|
|
version query names.
|
||
|
|
|
||
|
|
### ERROR-ON-VERSION-QUERY-2
|
||
|
|
Unexpected response from server
|
||
|
|
|
||
|
|
* Zone: "error-on-version-query-2.nameserver15.xa."
|
||
|
|
* The name server does not respond at all to the queries with the software
|
||
|
|
version query names.
|
||
|
|
|
||
|
|
### SOFTWARE-VERSION-1
|
||
|
|
Normal version string
|
||
|
|
|
||
|
|
* Zone: "software-version-1.nameserver15.xa."
|
||
|
|
* Empty response on software query name "version.bind".
|
||
|
|
* TXT record with RDATA "v0" in response on software query name
|
||
|
|
"version.server" in answer section.
|
||
|
|
|
||
|
|
### SOFTWARE-VERSION-2
|
||
|
|
Normal version string
|
||
|
|
|
||
|
|
* Zone: "software-version-2.nameserver15.xa."
|
||
|
|
* Empty response on software query name "version.server".
|
||
|
|
* TXT record with RDATA "v0" in response on software query name
|
||
|
|
"version.bind" in answer section.
|
||
|
|
|
||
|
|
### WRONG-CLASS-1
|
||
|
|
Version string returned in wrong class
|
||
|
|
|
||
|
|
* Zone: "wrong-class-1.nameserver15.xa."
|
||
|
|
* Empty response on software query name "version.bind".
|
||
|
|
* TXT record with RDATA "v0" in response on software query name
|
||
|
|
"version.server" in answer section.
|
||
|
|
* TXT record is in IN class, not CH class.
|
||
|
|
|
||
|
|
### WRONG-CLASS-2
|
||
|
|
Version string returned in wrong class
|
||
|
|
|
||
|
|
* Zone: "wrong-class-2.nameserver15.xa."
|
||
|
|
* Empty response on software query name "version.server".
|
||
|
|
* TXT record with RDATA "v0" in response on software query name
|
||
|
|
"version.bind" in answer section.
|
||
|
|
* TXT record is in IN class, not CH class.
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
|
||
|
|
[NAMESERVER15]: ../../tests/Nameserver-TP/nameserver15.md
|
||
|
|
[RCODE Name]: https://www.iana.org/assignments/dns-parameters/dns-parameters.xhtml#dns-parameters-6
|
||
|
|
[Test zone README file]: ../README.md
|
||
|
|
[Zone setup for test scenarios]: #zone-setup-for-test-scenarios
|
||
|
|
|