## root
.:53 {
    bind 127.16.2.27               # ns1
    bind fda1:b2:c3:0:127:16:2:27  # ns1
    bind 127.16.2.28               # ns2
    bind fda1:b2:c3:0:127:16:2:28  # ns2
    log
    file Delegation-TP/delegation02/root-zone.zone .
}

# Resolver using test case local root
. {
    bind 127.16.2.53
    unbound {
       option root-hints Delegation-TP/delegation02/hintfile.zone
    }
    log
}

delegation02.xb:53 { # xb
    bind 127.16.2.25               # ns1
    bind fda1:b2:c3:0:127:16:2:25  # ns1
    bind 127.16.2.26               # ns2
    bind fda1:b2:c3:0:127:16:2:26  # ns2
    log
    file Delegation-TP/delegation02/delegation02.xb.zone delegation02.xb
}

delegation02.xa:53 { # xa
    bind 127.16.2.21               # ns1
    bind fda1:b2:c3:0:127:16:2:21  # ns1
    bind 127.16.2.22               # ns2
    bind fda1:b2:c3:0:127:16:2:22  # ns2
    log
    file Delegation-TP/delegation02/delegation02.xa.zone delegation02.xa
}

### Child zones

all-distinct-1.delegation02.xa:53 {
    bind 127.16.2.31               # ns1
    bind fda1:b2:c3:0:127:16:2:31  # ns1
    bind 127.16.2.32               # ns2
    bind fda1:b2:c3:0:127:16:2:32  # ns2
    log
    file Delegation-TP/delegation02/all-distinct-1.delegation02.xa.zone all-distinct-1.delegation02.xa
}


all-distinct-2.delegation02.xa:53 {
    bind 127.16.2.37               # ns1.all-distinct-2.delegation02.xb.
    bind fda1:b2:c3:0:127:16:2:37  # ns1.all-distinct-2.delegation02.xb.
    bind 127.16.2.38               # ns2.all-distinct-2.delegation02.xb.
    bind fda1:b2:c3:0:127:16:2:38  # ns2.all-distinct-2.delegation02.xb.
    log
    file Delegation-TP/delegation02/all-distinct-2.delegation02.xa.zone all-distinct-2.delegation02.xa
}


all-distinct-3.delegation02.xa:53 { # Force sibling glue in referral from parent
    bind 127.16.2.21               # ns1 (parent)
    bind fda1:b2:c3:0:127:16:2:21  # ns1 (parent)
    bind 127.16.2.22               # ns2 (parent)
    bind fda1:b2:c3:0:127:16:2:22  # ns2 (parent)
    log
    template IN ANY all-distinct-3.delegation02.xa {
        authority  "all-distinct-3.delegation02.xa.    3600 IN NS   ns1.all-distinct-3.sibling.delegation02.xa."
        authority  "all-distinct-3.delegation02.xa.    3600 IN NS   ns2.all-distinct-3.sibling.delegation02.xa."
        additional "ns1.all-distinct-3.sibling.delegation02.xa 3600 IN A    127.16.2.31"
        additional "ns1.all-distinct-3.sibling.delegation02.xa 3600 IN AAAA fda1:b2:c3:0:127:16:2:31"
        additional "ns2.all-distinct-3.sibling.delegation02.xa 3600 IN A    127.16.2.32"
        additional "ns2.all-distinct-3.sibling.delegation02.xa 3600 IN AAAA fda1:b2:c3:0:127:16:2:32"
    }
    header {
        response clear aa
    }
} 
all-distinct-3.delegation02.xa:53 {
    bind 127.16.2.31               # ns1.all-distinct-3.sibling.delegation02.xa
    bind fda1:b2:c3:0:127:16:2:31  # ns1.all-distinct-3.sibling.delegation02.xa
    bind 127.16.2.32               # ns2.all-distinct-3.sibling.delegation02.xa
    bind fda1:b2:c3:0:127:16:2:32  # ns2.all-distinct-3.sibling.delegation02.xa
    log
    file Delegation-TP/delegation02/all-distinct-3.delegation02.xa.zone all-distinct-3.delegation02.xa
}


del-non-distinct.delegation02.xa:53 {
    bind 127.16.2.31               # ns1a, ns1b
    bind fda1:b2:c3:0:127:16:2:31  # ns1a, ns1b
    bind 127.16.2.32               # ns1b
    bind fda1:b2:c3:0:127:16:2:32  # ns1b
    log
    file Delegation-TP/delegation02/del-non-distinct.delegation02.xa.zone del-non-distinct.delegation02.xa
}

del-non-distinct-und.delegation02.xa:53 { # Undelegated
    bind 127.16.2.31               # ns1a, ns1b
    bind fda1:b2:c3:0:127:16:2:31  # ns1a, ns1b
    bind 127.16.2.32               # ns1b
    bind fda1:b2:c3:0:127:16:2:32  # ns1b
    log
    file Delegation-TP/delegation02/del-non-distinct-und.delegation02.xa.zone del-non-distinct-und.delegation02.xa
}

child-non-distinct.delegation02.xa:53 {
    bind 127.16.2.31               # ns1a, ns1b
    bind fda1:b2:c3:0:127:16:2:31  # ns1a, ns1b
    bind 127.16.2.32               # ns1b
    bind fda1:b2:c3:0:127:16:2:32  # ns1b
    log
    file Delegation-TP/delegation02/child-non-distinct.delegation02.xa.zone child-non-distinct.delegation02.xa
}

child-non-distinct-und.delegation02.xa:53 { # Undelegated
    bind 127.16.2.31               # ns1a, ns1b
    bind fda1:b2:c3:0:127:16:2:31  # ns1a, ns1b
    bind 127.16.2.32               # ns1b
    bind fda1:b2:c3:0:127:16:2:32  # ns1b
    log
    file Delegation-TP/delegation02/child-non-distinct-und.delegation02.xa.zone child-non-distinct-und.delegation02.xa
}

non-distinct-1.delegation02.xa:53 {
    bind 127.16.2.31               # ns1a, ns1b
    bind fda1:b2:c3:0:127:16:2:31  # ns1a, ns1b
    bind 127.16.2.32               # ns2
    bind fda1:b2:c3:0:127:16:2:32  # ns2
    log
    file Delegation-TP/delegation02/non-distinct-1.delegation02.xa.zone non-distinct-1.delegation02.xa
}

non-distinct-2.delegation02.xa:53 {
    bind 127.16.2.37               # ns1a, ns1b.non-distinct-2.delegation02.xb.
    bind fda1:b2:c3:0:127:16:2:37  # ns1a, ns1b.non-distinct-2.delegation02.xb.
    bind 127.16.2.38               # ns2.non-distinct-2.delegation02.xb.
    bind fda1:b2:c3:0:127:16:2:38  # ns2.non-distinct-2.delegation02.xb.
    log
    file Delegation-TP/delegation02/non-distinct-2.delegation02.xa.zone non-distinct-2.delegation02.xa
}


non-distinct-3.delegation02.xa:53 { # Force sibling glue in referral from parent
    bind 127.16.2.21               # ns1 (parent)
    bind fda1:b2:c3:0:127:16:2:21  # ns1 (parent)
    bind 127.16.2.22               # ns2 (parent)
    bind fda1:b2:c3:0:127:16:2:22  # ns2 (parent)
    log
    template IN ANY non-distinct-3.delegation02.xa {
        authority  "non-distinct-3.delegation02.xa.    3600 IN NS   ns1a.non-distinct-3.sibling.delegation02.xa."
        authority  "non-distinct-3.delegation02.xa.    3600 IN NS   ns1b.non-distinct-3.sibling.delegation02.xa."
        authority  "non-distinct-3.delegation02.xa.    3600 IN NS   ns2.non-distinct-3.sibling.delegation02.xa."
        additional "ns1a.non-distinct-3.sibling.delegation02.xa 3600 IN A    127.16.2.31"
        additional "ns1a.non-distinct-3.sibling.delegation02.xa 3600 IN AAAA fda1:b2:c3:0:127:16:2:31"
        additional "ns1b.non-distinct-3.sibling.delegation02.xa 3600 IN A    127.16.2.31"
        additional "ns1b.non-distinct-3.sibling.delegation02.xa 3600 IN AAAA fda1:b2:c3:0:127:16:2:31"
        additional "ns2.non-distinct-3.sibling.delegation02.xa 3600 IN A    127.16.2.32"
        additional "ns2.non-distinct-3.sibling.delegation02.xa 3600 IN AAAA fda1:b2:c3:0:127:16:2:32"
    }
    header {
        response clear aa
    }
} 
non-distinct-3.delegation02.xa:53 {
    bind 127.16.2.31               # ns1a, ns1b.non-distinct-3.sibling.delegation02.xa
    bind fda1:b2:c3:0:127:16:2:31  # ns1a, ns1b.non-distinct-3.sibling.delegation02.xa
    bind 127.16.2.32               # ns2.non-distinct-3.sibling.delegation02.xa
    bind fda1:b2:c3:0:127:16:2:32  # ns2.non-distinct-3.sibling.delegation02.xa
    log
    file Delegation-TP/delegation02/non-distinct-3.delegation02.xa.zone non-distinct-3.delegation02.xa
}
