Nameserver07 (nameserver07)
Status: Final
Purpose
- Detect upward referrals (root NS records in authority section) returned by authoritative nameservers.
Preconditions And Inputs
- Preconditions:
- A
zone.Zoneobject is available.
- A
- Required inputs:
- Nameserver addresses from
methods.Method4and5. - NS query responses for qname
..
- Nameserver addresses from
- Profile/config knobs that affect behavior:
net.ipv4andnet.ipv6: disabled transports are skipped with transport debug tags.resolver.defaults.parallel: parallel nameserver query fanout.
Algorithm And Decision Flow
- Emit
TEST_CASE_START. - If tested zone name is
.:- Emit
UPWARD_REFERRAL_IRRELEVANT. - Emit
TEST_CASE_ENDand return.
- Emit
- Read nameserver list from
Method4and5, deduplicate byname/ip, preserving first-seen order. - For each deduplicated nameserver (parallelized, input-order merged logs):
- If transport is disabled, emit
IPV4_DISABLEDorIPV6_DISABLEDfor rrtypeNS, mark not included in summary, and skip. - Mark nameserver as included.
- Query qname
.rrtypeNS. - If response exists and authority section contains
NSrecords, record server as having upward referral.
- If transport is disabled, emit
- After all tasks, emit a single consolidated
UPWARD_REFERRALwithserverslist (if any), or a singleNO_UPWARD_REFERRALwithserverslist (if at least one nameserver was included and none had errors). - Emit
TEST_CASE_END.
Emitted Tags (Possible Set)
| Tag | Emitted when |
|---|---|
IPV4_DISABLED | IPv4 nameserver evaluation is skipped because IPv4 is disabled. |
IPV6_DISABLED | IPv6 nameserver evaluation is skipped because IPv6 is disabled. |
NO_UPWARD_REFERRAL | Included nameservers showed no upward-referral evidence. |
TEST_CASE_END | Testcase completion marker is emitted. |
TEST_CASE_START | Testcase start marker is emitted. |
UPWARD_REFERRAL | Authority section in root NS query response contains NS records. |
UPWARD_REFERRAL_IRRELEVANT | Tested zone is root (.), so upward-referral check is skipped. |
Tag Arguments
| Tag | Argument key | Type | Meaning |
|---|---|---|---|
IPV4_DISABLED | ns | string | Nameserver identity (ns name only; use address for IP) skipped on IPv4. |
IPV4_DISABLED | address | string | Nameserver IP address for the same endpoint. |
IPV4_DISABLED | rrtype | string | rrtype skipped (NS). |
IPV6_DISABLED | ns | string | Nameserver identity (ns name only; use address for IP) skipped on IPv6. |
IPV6_DISABLED | address | string | Nameserver IP address for the same endpoint. |
IPV6_DISABLED | rrtype | string | rrtype skipped (NS). |
NO_UPWARD_REFERRAL | servers | array<object> | Structured sorted list of nameservers without upward referral ({ns}, {address} items). |
TEST_CASE_END | testcase | string | Testcase display name (Nameserver07). |
TEST_CASE_START | testcase | string | Testcase display name (Nameserver07). |
UPWARD_REFERRAL | servers | array<object> | Structured sorted list of nameservers returning upward referral ({ns}, {address} items). |
UPWARD_REFERRAL_IRRELEVANT | - | - | No arguments. |
Severity Levels Per Tag
| Tag | Level | Notes |
|---|---|---|
IPV4_DISABLED | DEBUG | Default from share/profile.json (test_levels.NAMESERVER). |
IPV6_DISABLED | DEBUG | Default from share/profile.json (test_levels.NAMESERVER). |
NO_UPWARD_REFERRAL | INFO | Default from share/profile.json (test_levels.NAMESERVER). |
TEST_CASE_END | DEBUG | Default from share/profile.json (test_levels.NAMESERVER). |
TEST_CASE_START | DEBUG | Default from share/profile.json (test_levels.NAMESERVER). |
UPWARD_REFERRAL | WARNING | Default from share/profile.json (test_levels.NAMESERVER). |
UPWARD_REFERRAL_IRRELEVANT | INFO | Default from share/profile.json (test_levels.NAMESERVER). |
Differences From Upstream
- Upstream reference:
nameserver07.md - Differences (Upstream vs Gonemaster):
- Upstream: says to exit when tested zone is root. Gonemaster: emits explicit
UPWARD_REFERRAL_IRRELEVANTbefore ending testcase. - Upstream: describes evaluation over nameserver IP set. Gonemaster: deduplicates by
name/ipand emits positive summary tagNO_UPWARD_REFERRALwhen included nameservers have no findings. - Upstream: does not explicitly describe testcase boundary and transport-disabled debug emissions. Gonemaster: emits
TEST_CASE_START,TEST_CASE_END,IPV4_DISABLED, andIPV6_DISABLED.
- Upstream: says to exit when tested zone is root. Gonemaster: emits explicit
- Potential upstream report:
no
Edge Cases And Limitations
- Query failures or missing responses do not produce dedicated failure tags in this testcase.
- If all nameservers are skipped (disabled transport),
NO_UPWARD_REFERRALis not emitted. - Both
UPWARD_REFERRALandNO_UPWARD_REFERRALnow use consolidatedserverslists with{ns}and{address}items.