Zone06 (zone06)

Status: Final

Purpose

  • Validate that SOA default TTL (minimum field) is within configured lower and upper bounds.

Preconditions And Inputs

  • Preconditions:
    • A zone.Zone object is available.
  • Required inputs:
    • Child nameserver addresses from methods.Method5.
    • One authoritative SOA response for the child zone apex (if obtainable).
  • Profile/config knobs that affect behavior:
    • test_cases_vars.zone06.soa_default_ttl_maximum_value (Zone06.SOADefaultTTLMaximumValue in code): upper bound.
    • test_cases_vars.zone06.soa_default_ttl_minimum_value (Zone06.SOADefaultTTLMinimumValue in code): lower bound.
    • net.ipv4 and net.ipv6 affect transport availability during SOA retrieval.

Algorithm And Decision Flow

  1. Emit TEST_CASE_START.
  2. Retrieve SOA from child nameservers using shared helper logic:
    • iterate Method5 nameservers in order;
    • skip disabled transports;
    • return the first response that has SOA in answer and AA=true.
  3. If no qualifying SOA response is found, emit NO_RESPONSE_SOA_QUERY.
  4. Else read SOA minimum (Minttl) and compare against configured bounds:
    • if minimum > highest_minimum, emit SOA_DEFAULT_TTL_MAXIMUM_VALUE_HIGHER;
    • else if minimum < lowest_minimum, emit SOA_DEFAULT_TTL_MAXIMUM_VALUE_LOWER;
    • else emit SOA_DEFAULT_TTL_MAXIMUM_VALUE_OK.
  5. Emit TEST_CASE_END.

Emitted Tags (Possible Set)

TagEmitted when
NO_RESPONSE_SOA_QUERYNo authoritative SOA response containing an SOA answer record was received from any queried nameserver.
SOA_DEFAULT_TTL_MAXIMUM_VALUE_HIGHERSOA minimum is above configured upper bound.
SOA_DEFAULT_TTL_MAXIMUM_VALUE_LOWERSOA minimum is below configured lower bound.
SOA_DEFAULT_TTL_MAXIMUM_VALUE_OKSOA minimum is within configured bounds (inclusive).
TEST_CASE_ENDTestcase completion marker is emitted.
TEST_CASE_STARTTestcase start marker is emitted.

Tag Arguments

TagArgument keyTypeMeaning
NO_RESPONSE_SOA_QUERY--No arguments.
SOA_DEFAULT_TTL_MAXIMUM_VALUE_HIGHERminimumintObserved SOA minimum (Minttl).
SOA_DEFAULT_TTL_MAXIMUM_VALUE_HIGHERhighest_minimumintConfigured maximum allowed value.
SOA_DEFAULT_TTL_MAXIMUM_VALUE_LOWERminimumintObserved SOA minimum (Minttl).
SOA_DEFAULT_TTL_MAXIMUM_VALUE_LOWERlowest_minimumintConfigured minimum allowed value.
SOA_DEFAULT_TTL_MAXIMUM_VALUE_OKminimumintObserved SOA minimum (Minttl).
SOA_DEFAULT_TTL_MAXIMUM_VALUE_OKhighest_minimumintConfigured maximum allowed value.
SOA_DEFAULT_TTL_MAXIMUM_VALUE_OKlowest_minimumintConfigured minimum allowed value.
TEST_CASE_ENDtestcasestringTestcase display name (Zone06).
TEST_CASE_STARTtestcasestringTestcase display name (Zone06).

Severity Levels Per Tag

TagLevelNotes
NO_RESPONSE_SOA_QUERYDEBUGDefault from share/profile.json (test_levels.ZONE).
SOA_DEFAULT_TTL_MAXIMUM_VALUE_HIGHERNOTICEDefault from share/profile.json (test_levels.ZONE).
SOA_DEFAULT_TTL_MAXIMUM_VALUE_LOWERNOTICEDefault from share/profile.json (test_levels.ZONE).
SOA_DEFAULT_TTL_MAXIMUM_VALUE_OKINFODefault from share/profile.json (test_levels.ZONE).
TEST_CASE_ENDDEBUGDefault from share/profile.json (test_levels.ZONE).
TEST_CASE_STARTDEBUGDefault from share/profile.json (test_levels.ZONE).

Differences From Upstream

  • Upstream reference: zone06.md
  • Differences (Upstream vs Gonemaster):
    • Upstream: describes querying over a Method4+Method5-derived nameserver IP set. Gonemaster: retrieval helper iterates Method5 child nameserver addresses only.
    • Upstream: describes fixed bounds (300 to 86400) as failure criteria. Gonemaster: uses profile-configurable bounds and notice-level findings for out-of-range cases under default profile.
    • Upstream: does not describe testcase boundary debug markers. Gonemaster: emits TEST_CASE_START and TEST_CASE_END.
  • Potential upstream report:
    • yes
  • If yes, include:
    • Upstream expected behavior: Upstream prose defines fixed numeric bounds and explicit fail semantics.
    • Gonemaster observed behavior: Bounds are profile-driven and out-of-range branches are tagged findings (NOTICE by default).
    • evidence: docs/specifications/upstream/tests/Zone-TP/zone06.md, engine/test/zone/zone.go, share/profile.json
    • report status: not filed

Edge Cases And Limitations

  • The shared retrieval helper emits IPV4_DISABLED or IPV6_DISABLED when the corresponding transport is disabled; these tags are not declared in this testcase’s Metadata() function.
  • If helper cannot find an authoritative SOA answer, bound checks are not attempted.