Delegation02 (delegation02)
Status: Final
Purpose
- Detect nameserver IP-address reuse within delegation data, within child data, and across the combined delegation+child addressed NS set.
Preconditions And Inputs
- Preconditions:
- A
zone.Zoneobject is available.
- A
- Required inputs:
- Delegation addressed NS from
methods.Method4. - Child addressed NS from
methods.Method5.
- Delegation addressed NS from
- Profile/config knobs that affect behavior:
- No direct profile knob in this testcase.
Algorithm And Decision Flow
- Emit
TEST_CASE_START. - Read delegation addressed NS (
Method4) and child addressed NS (Method5). - Run duplicate-IP detection for delegation addressed NS:
- For each IP used by two or more different NS names, emit
DEL_NS_SAME_IP. - Else, when delegation list is non-empty, emit
DEL_DISTINCT_NS_IP.
- For each IP used by two or more different NS names, emit
- Run duplicate-IP detection for child addressed NS:
- For each IP used by two or more different NS names, emit
CHILD_NS_SAME_IP. - Else, when child list is non-empty, emit
CHILD_DISTINCT_NS_IP.
- For each IP used by two or more different NS names, emit
- Run duplicate-IP detection for the combined delegation+child addressed NS list:
- For each IP used by two or more different NS names, emit
SAME_IP_ADDRESS. - Else, when combined list is non-empty, emit
DISTINCT_IP_ADDRESS.
- For each IP used by two or more different NS names, emit
- Emit
TEST_CASE_END.
Emitted Tags (Possible Set)
| Tag | Emitted when |
|---|---|
CHILD_DISTINCT_NS_IP | Child addressed NS list is non-empty and has no repeated IP across different NS names. |
CHILD_NS_SAME_IP | Child addressed NS includes an IP shared by two or more different NS names. |
DEL_DISTINCT_NS_IP | Delegation addressed NS list is non-empty and has no repeated IP across different NS names. |
DEL_NS_SAME_IP | Delegation addressed NS includes an IP shared by two or more different NS names. |
DISTINCT_IP_ADDRESS | Combined delegation+child addressed NS list is non-empty and has no repeated IP across different NS names. |
SAME_IP_ADDRESS | Combined delegation+child addressed NS includes an IP shared by two or more different NS names. |
TEST_CASE_END | Testcase completion marker is emitted. |
TEST_CASE_START | Testcase start marker is emitted. |
Tag Arguments
| Tag | Argument key | Type | Meaning |
|---|---|---|---|
CHILD_DISTINCT_NS_IP | - | - | No arguments. |
CHILD_NS_SAME_IP | servers | array<object> | Structured nameserver names as {ns} items sharing ns_ip. |
CHILD_NS_SAME_IP | ns_ip | string | Reused IP address. |
DEL_DISTINCT_NS_IP | - | - | No arguments. |
DEL_NS_SAME_IP | servers | array<object> | Structured nameserver names as {ns} items sharing ns_ip. |
DEL_NS_SAME_IP | ns_ip | string | Reused IP address. |
DISTINCT_IP_ADDRESS | - | - | No arguments. |
SAME_IP_ADDRESS | servers | array<object> | Structured nameserver names as {ns} items sharing ns_ip. |
SAME_IP_ADDRESS | ns_ip | string | Reused IP address. |
TEST_CASE_END | testcase | string | Testcase display name (Delegation02). |
TEST_CASE_START | testcase | string | Testcase display name (Delegation02). |
Severity Levels Per Tag
| Tag | Level | Notes |
|---|---|---|
CHILD_DISTINCT_NS_IP | INFO | Default from share/profile.json (test_levels.DELEGATION). |
CHILD_NS_SAME_IP | ERROR | Default from share/profile.json (test_levels.DELEGATION). |
DEL_DISTINCT_NS_IP | INFO | Default from share/profile.json (test_levels.DELEGATION). |
DEL_NS_SAME_IP | ERROR | Default from share/profile.json (test_levels.DELEGATION). |
DISTINCT_IP_ADDRESS | INFO | Default from share/profile.json (test_levels.DELEGATION). |
SAME_IP_ADDRESS | ERROR | Default from share/profile.json (test_levels.DELEGATION). |
TEST_CASE_END | DEBUG | Default from share/profile.json (test_levels.DELEGATION). |
TEST_CASE_START | DEBUG | Default from share/profile.json (test_levels.DELEGATION). |
Differences From Upstream
- Upstream reference:
delegation02.md - Differences (Upstream vs Gonemaster):
- Upstream: specifies duplicate-IP evaluation for delegation side and child side only. Gonemaster: adds a third evaluation over the combined delegation+child set, with
SAME_IP_ADDRESSorDISTINCT_IP_ADDRESS. - Upstream: does not describe testcase boundary debug markers. Gonemaster: emits
TEST_CASE_STARTandTEST_CASE_END.
- Upstream: specifies duplicate-IP evaluation for delegation side and child side only. Gonemaster: adds a third evaluation over the combined delegation+child set, with
- Potential upstream report:
yes
- If yes, include:
- Upstream expected behavior: Scope is delegation-side and child-side duplicate detection.
- Gonemaster observed behavior: Adds combined-scope duplicate detection and extra tags.
- evidence:
docs/specifications/upstream/tests/Delegation-TP/delegation02.md,engine/test/delegation/delegation.go - report status:
not filed
Edge Cases And Limitations
- Exact duplicate
name/ipentries are deduplicated before grouping by IP. - If an evaluated input list is empty, neither the duplicate tag nor the distinct tag is emitted for that list.