## root
.:53 {
    bind 127.13.4.23               # ns1
    bind fda1:b2:c3:0:127:13:4:23  # ns1
    bind 127.13.4.24               # ns2
    bind fda1:b2:c3:0:127:13:4:24  # ns2
    log
    file Connectivity-TP/connectivity04/root-zone.zone .
}

# Resolver using test case local root
. {
    bind 127.13.4.53
    unbound {
       option root-hints Connectivity-TP/connectivity04/hintfile.zone
    }
    log
}


connectivity04.xa:53 {
    bind 127.13.4.21               # ns1
    bind fda1:b2:c3:0:127:13:4:21  # ns1
    bind 127.13.4.22               # ns2
    bind fda1:b2:c3:0:127:13:4:22  # ns2
    log
    file Connectivity-TP/connectivity04/connectivity04.xa.zone connectivity04.xa
}

### ==== ASN lookup ====

asnlookup.zonemaster.net:53 {
    bind 127.13.4.25               # ns1
    bind fda1:b2:c3:0:127:13:4:25  # ns1
    bind 127.13.4.26               # ns2
    bind fda1:b2:c3:0:127:13:4:26  # ns2
    log
    file Connectivity-TP/connectivity04/asnlookup.zonemaster.net.zone asnlookup.zonemaster.net

    # 110
    template IN ANY 110.100.127.origin.asnlookup.zonemaster.net {
       rcode "SERVFAIL"
    }
    template IN ANY 0.1.1.0.0.0.1.0.7.2.1.0.0.0.0.0.3.c.0.0.2.b.0.0.1.a.d.f.origin6.asnlookup.zonemaster.net {
       rcode "SERVFAIL"
    }
    # 111
    template IN ANY 111.100.127.origin.asnlookup.zonemaster.net {
       rcode "REFUSED"
    }
    template IN ANY 1.1.1.0.0.0.1.0.7.2.1.0.0.0.0.0.3.c.0.0.2.b.0.0.1.a.d.f.origin6.asnlookup.zonemaster.net {
       rcode "REFUSED"
    }
    # 112
    acl 112.100.127.origin.asnlookup.zonemaster.net {
        drop
    }
    acl 2.1.1.0.0.0.1.0.7.2.1.0.0.0.0.0.3.c.0.0.2.b.0.0.1.a.d.f.origin6.asnlookup.zonemaster.net {
        drop
    }
}


### ==== Scenarios Connectivity04 ====

good-1.connectivity04.xa:53 {
    bind 127.100.100.1
    bind fda1:b2:c3:0:127:100:100:1
    bind 127.100.101.1
    bind fda1:b2:c3:0:127:100:101:1
    log
    template IN NS good-1.connectivity04.xa {
        answer "good-1.connectivity04.xa. 3600 IN  NS      dns0.connectivity04.xa."
        answer "good-1.connectivity04.xa. 3600 IN  NS      dns1.connectivity04.xa."
    }
}

good-2.connectivity04.xa:53 {
    bind 127.100.102.1
    bind 127.100.103.1
    log
    template IN NS good-2.connectivity04.xa {
        answer "good-2.connectivity04.xa. 3600 IN  NS      dns2.connectivity04.xa."
        answer "good-2.connectivity04.xa. 3600 IN  NS      dns3.connectivity04.xa."
    }
}

good-3.connectivity04.xa:53 {
    bind fda1:b2:c3:0:127:100:104:1
    bind fda1:b2:c3:0:127:100:105:1
    log
    template IN NS good-3.connectivity04.xa {
        answer "good-3.connectivity04.xa. 3600 IN  NS      dns4.connectivity04.xa."
        answer "good-3.connectivity04.xa. 3600 IN  NS      dns5.connectivity04.xa."
    }
}

empty-prefix-set-1.connectivity04.xa:53 {
    bind 127.100.107.1
    bind fda1:b2:c3:0:127:100:107:1
    log
    template IN NS empty-prefix-set-1.connectivity04.xa {
        answer "empty-prefix-set-1.connectivity04.xa. 3600 IN  NS      dns7.connectivity04.xa."
    }
}

empty-prefix-set-2.connectivity04.xa:53 {
    bind 127.100.108.1
    bind fda1:b2:c3:0:127:100:108:1
    log
    template IN NS empty-prefix-set-2.connectivity04.xa {
        answer "empty-prefix-set-2.connectivity04.xa. 3600 IN  NS      dns8.connectivity04.xa."
    }
}

error-prefix-database-1.connectivity04.xa:53 {
    bind 127.100.110.1
    bind fda1:b2:c3:0:127:100:110:1
    log
    template IN NS error-prefix-database-1.connectivity04.xa {
        answer "error-prefix-database-1.connectivity04.xa. 3600 IN  NS      dns10.connectivity04.xa."
    }
}

error-prefix-database-2.connectivity04.xa:53 {
    bind 127.100.111.1
    bind fda1:b2:c3:0:127:100:111:1
    log
    template IN NS error-prefix-database-2.connectivity04.xa {
        answer "error-prefix-database-2.connectivity04.xa. 3600 IN  NS      dns11.connectivity04.xa."
    }
}

error-prefix-database-3.connectivity04.xa:53 {
    bind 127.100.112.1
    bind fda1:b2:c3:0:127:100:112:1
    log
    template IN NS error-prefix-database-3.connectivity04.xa {
        answer "error-prefix-database-3.connectivity04.xa. 3600 IN  NS      dns12.connectivity04.xa."
    }
}

# Scenarios ERROR-PREFIX-DATABASE-4 and -5 have been renamed.

error-prefix-database-6.connectivity04.xa:53 {
    bind 127.100.125.1                        # dns25
    bind fda1:b2:c3:0:127:100:125:1
    bind 127.100.101.1                        # dns1
    bind fda1:b2:c3:0:127:100:101:1
    log
    template IN NS error-prefix-database-6.connectivity04.xa {
        answer "error-prefix-database-6.connectivity04.xa. 3600 IN  NS      dns25.connectivity04.xa."
        answer "error-prefix-database-6.connectivity04.xa. 3600 IN  NS      dns1.connectivity04.xa."
    }
}

error-prefix-database-7.connectivity04.xa:53 {
    bind 127.100.126.1                        # dns26
    bind fda1:b2:c3:0:127:100:126:1
    log
    template IN NS error-prefix-database-7.connectivity04.xa {
        answer "error-prefix-database-7.connectivity04.xa. 3600 IN  NS      dns26.connectivity04.xa."
    }
}

error-prefix-database-8.connectivity04.xa:53 {
    bind 127.100.127.1                        # dns27
    bind fda1:b2:c3:0:127:100:127:1
    log
    template IN NS error-prefix-database-8.connectivity04.xa {
        answer "error-prefix-database-8.connectivity04.xa. 3600 IN  NS      dns27.connectivity04.xa."
    }
}

has-non-asn-txt-1.connectivity04.xa:53 {
    bind 127.100.106.1 # dns6
    bind fda1:b2:c3:0:127:100:106:1
    bind 127.100.101.1 # dns1
    bind fda1:b2:c3:0:127:100:101:1
    log
    template IN NS has-non-asn-txt-1.connectivity04.xa {
        answer "has-non-asn-txt-1.connectivity04.xa. 3600 IN  NS      dns6.connectivity04.xa."
        answer "has-non-asn-txt-1.connectivity04.xa. 3600 IN  NS      dns1.connectivity04.xa."
    }
}

has-non-asn-txt-2.connectivity04.xa:53 {
    bind 127.100.109.1 # dns9
    bind fda1:b2:c3:0:127:100:109:1
    log
    template IN NS has-non-asn-txt-2.connectivity04.xa {
        answer "has-non-asn-txt-2.connectivity04.xa. 3600 IN  NS      dns9.connectivity04.xa."
    }
}

ipv4-one-prefix-1.connectivity04.xa:53 {
    bind 127.100.113.1
    bind 127.100.113.2
    log
    template IN NS ipv4-one-prefix-1.connectivity04.xa {
        answer "ipv4-one-prefix-1.connectivity04.xa. 3600 IN  NS      dns13-1.connectivity04.xa."
        answer "ipv4-one-prefix-1.connectivity04.xa. 3600 IN  NS      dns13-2.connectivity04.xa."
    }
}

ipv4-two-prefixes-1.connectivity04.xa:53 {
    bind 127.100.114.1
    bind 127.100.114.2
    bind 127.100.115.1
    log
    template IN NS ipv4-two-prefixes-1.connectivity04.xa {
        answer "ipv4-two-prefixes-1.connectivity04.xa. 3600 IN  NS      dns14-1.connectivity04.xa."
        answer "ipv4-two-prefixes-1.connectivity04.xa. 3600 IN  NS      dns14-2.connectivity04.xa."
        answer "ipv4-two-prefixes-1.connectivity04.xa. 3600 IN  NS      dns15.connectivity04.xa."
    }
}

ipv6-one-prefix-1.connectivity04.xa:53 {
    bind fda1:b2:c3:0:127:100:116:1
    bind fda1:b2:c3:0:127:100:116:2
    log
    template IN NS ipv6-one-prefix-1.connectivity04.xa {
        answer "ipv6-one-prefix-1.connectivity04.xa. 3600 IN  NS      dns16-1.connectivity04.xa."
        answer "ipv6-one-prefix-1.connectivity04.xa. 3600 IN  NS      dns16-2.connectivity04.xa."
    }
}

ipv6-two-prefixes-1.connectivity04.xa:53 {
    bind fda1:b2:c3:0:127:100:117:1
    bind fda1:b2:c3:0:127:100:117:2
    bind fda1:b2:c3:0:127:100:118:1
    log
    template IN NS ipv6-two-prefixes-1.connectivity04.xa {
        answer "ipv6-two-prefixes-1.connectivity04.xa. 3600 IN  NS      dns17-1.connectivity04.xa."
        answer "ipv6-two-prefixes-1.connectivity04.xa. 3600 IN  NS      dns17-2.connectivity04.xa."
        answer "ipv6-two-prefixes-1.connectivity04.xa. 3600 IN  NS      dns18.connectivity04.xa."
    }
}

ipv4-single-ns-1.connectivity04.xa:53 {
    bind 127.100.119.1
    log
    template IN NS ipv4-single-ns-1.connectivity04.xa {
        answer "ipv4-single-ns-1.connectivity04.xa. 3600 IN  NS      dns19.connectivity04.xa."
    }
}

ipv6-single-ns-1.connectivity04.xa:53 {
    bind fda1:b2:c3:0:127:100:120:1
    log
    template IN NS ipv6-single-ns-1.connectivity04.xa {
        answer "ipv6-single-ns-1.connectivity04.xa. 3600 IN  NS      dns20.connectivity04.xa."
    }
}

double-prefix-1.connectivity04.xa:53 {
    bind 127.100.121.1
    bind 127.100.122.1
    bind fda1:b2:c3:0:127:100:121:1
    bind fda1:b2:c3:0:127:100:122:1
    log
    template IN NS double-prefix-1.connectivity04.xa {
        answer "double-prefix-1.connectivity04.xa. 3600 IN  NS      dns21.connectivity04.xa."
        answer "double-prefix-1.connectivity04.xa. 3600 IN  NS      dns22.connectivity04.xa."
    }
}

double-prefix-2.connectivity04.xa:53 {
    bind 127.100.123.1
    bind 127.100.124.1
    bind fda1:b2:c3:0:127:100:123:1
    bind fda1:b2:c3:0:127:100:124:1
    log
    template IN NS double-prefix-2.connectivity04.xa {
        answer "double-prefix-2.connectivity04.xa. 3600 IN  NS      dns23.connectivity04.xa."
        answer "double-prefix-2.connectivity04.xa. 3600 IN  NS      dns24.connectivity04.xa."
    }
}
