# CONSISTENCY02: SOA RNAME consistency

## Test case identifier

**CONSISTENCY02**

## Objective

All authoritative name servers must serve the same SOA record for the
tested domain  (section 4.2.1 of [RFC 1034]). As per section 3.3.13 of [RFC 1035],
the RNAME field in the SOA RDATA refers to the administrative contact. An inconsistency in
the administrative contact for the domain might result in operational
failures being reported to different persons.

The objective of this test is to verify that the administrative contact is
consistent between different authoritative name servers.

## Scope

It is assumed that *Child Zone* is also tested by [Connectivity01]. This test
case will set DEBUG level on messages for non-responsive name servers.

## Inputs

* The domain name to be tested ("Child Zone")

## Ordered description of steps to be taken to execute the test case

 1. Obtain the list of name server IPs for the *Child Zone* from [Method4] 
    and [Method5].
 2. Create an SOA query for *Child Zone* apex and send it to all name 
    server IPs.
 3. Retrieve the SOA RR from the responses from all name server IPs.
 4. If a name server does not respond, emit *[NO_RESPONSE]*.
 5. If a name server responds but does not include a SOA record 
    in the response, emit *[NO_RESPONSE_SOA_QUERY]*.
 6. If at least one SOA record has been retrieved and RNAME is 
    identical in all SOA records, emit *[ONE_SOA_RNAME]*.
 7. If RNAME is not identical in all SOA records, emit 
    *[MULTIPLE_SOA_RNAMES]*.

## Outcome(s)

The outcome of this Test Case is "fail" if there is at least one message
with the severity level *ERROR* or *CRITICAL*.

The outcome of this Test Case is "warning" if there is at least one message
with the severity level *WARNING*, but no message with severity level
*ERROR* or *CRITICAL*.

In other cases the outcome of this Test Case is "pass".

Message                       | Default severity level (if message is emitted)
:-----------------------------|:-----------------------------------
NO_RESPONSE                   | DEBUG
NO_RESPONSE_SOA_QUERY         | DEBUG
ONE_SOA_RNAME                 | INFO
MULTIPLE_SOA_RNAMES           | NOTICE


## Special procedural requirements	

If either IPv4 or IPv6 transport is disabled, ignore the evaluation of the
result of any test using this transport protocol. Log a message reporting
on the ignored result.

## Intercase dependencies

None


[Connectivity01]:             ../Connectivity-TP/connectivity01.md
[MULTIPLE_SOA_RNAMES]:        #outcomes
[Method4]:                    ../Methods.md#method-4-obtain-glue-address-records-from-parent
[Method5]:                    ../Methods.md#method-5-obtain-the-name-server-address-records-from-child
[NO_RESPONSE]:                #outcomes
[NO_RESPONSE_SOA_QUERY]:      #outcomes
[ONE_SOA_RNAME]:              #outcomes
[RFC 1034]:                   https://datatracker.ietf.org/doc/html/rfc1034
[RFC 1035]:                   https://datatracker.ietf.org/doc/html/rfc1035
[RFC 1982]:                   https://datatracker.ietf.org/doc/html/rfc1982

