1*7a540f2bSchristos; config options 2*7a540f2bSchristosserver: 3*7a540f2bSchristos target-fetch-policy: "0 0 0 0 0" 4*7a540f2bSchristos 5*7a540f2bSchristosauth-zone: 6*7a540f2bSchristos name: "example.com." 7*7a540f2bSchristos ## zonefile (or none). 8*7a540f2bSchristos ## zonefile: "example.com.zone" 9*7a540f2bSchristos ## master by IP address or hostname 10*7a540f2bSchristos ## can list multiple masters, each on one line. 11*7a540f2bSchristos ## master: 12*7a540f2bSchristos ## url for http fetch 13*7a540f2bSchristos ## url: 14*7a540f2bSchristos ## queries from downstream clients get authoritative answers. 15*7a540f2bSchristos ## for-downstream: yes 16*7a540f2bSchristos for-downstream: no 17*7a540f2bSchristos ## queries are used to fetch authoritative answers from this zone, 18*7a540f2bSchristos ## instead of unbound itself sending queries there. 19*7a540f2bSchristos ## for-upstream: yes 20*7a540f2bSchristos for-upstream: yes 21*7a540f2bSchristos ## on failures with for-upstream, fallback to sending queries to 22*7a540f2bSchristos ## the authority servers 23*7a540f2bSchristos ## fallback-enabled: no 24*7a540f2bSchristos zonemd-check: yes 25*7a540f2bSchristos 26*7a540f2bSchristos ## this line generates zonefile: \n"/tmp/xxx.example.com"\n 27*7a540f2bSchristos zonefile: 28*7a540f2bSchristosTEMPFILE_NAME example.com 29*7a540f2bSchristos ## this is the inline file /tmp/xxx.example.com 30*7a540f2bSchristos ## the tempfiles are deleted when the testrun is over. 31*7a540f2bSchristosTEMPFILE_CONTENTS example.com 32*7a540f2bSchristosexample.com. IN SOA ns.example.com. hostmaster.example.com. 200154054 28800 7200 604800 3600 33*7a540f2bSchristosexample.com. IN NS ns.example.com. 34*7a540f2bSchristos; good zonemd 35*7a540f2bSchristos;example.com. IN ZONEMD 200154054 1 2 EFAA5B78B38AB1C45DE57B8167BCCE906451D0E72118E1F5E80B5F0C3CF04BFFC65D53C011185528EAD439D6F3A02F511961E090E5E4E0DFA013BD276D728B22 36*7a540f2bSchristos; wrong zonemd 37*7a540f2bSchristosexample.com. IN ZONEMD 200154054 1 2 EFAA5B78B38AB1C45DE57B8167BCCE906451D0E72118E1F5E80B5F0C3CF04BFFC65D53C011185528EAD439D6F3A02F511961E090E5E4E0DFA013BD276D7AAAAA 38*7a540f2bSchristoswww.example.com. IN A 127.0.0.1 39*7a540f2bSchristosns.example.com. IN A 127.0.0.1 40*7a540f2bSchristosbar.example.com. IN A 1.2.3.4 41*7a540f2bSchristosding.example.com. IN A 1.2.3.4 42*7a540f2bSchristosfoo.example.com. IN A 1.2.3.4 43*7a540f2bSchristosTEMPFILE_END 44*7a540f2bSchristos 45*7a540f2bSchristosstub-zone: 46*7a540f2bSchristos name: "." 47*7a540f2bSchristos stub-addr: 193.0.14.129 # K.ROOT-SERVERS.NET. 48*7a540f2bSchristosCONFIG_END 49*7a540f2bSchristos 50*7a540f2bSchristosSCENARIO_BEGIN Test authority zone with ZONEMD failure from zonefile 51*7a540f2bSchristos 52*7a540f2bSchristos; K.ROOT-SERVERS.NET. 53*7a540f2bSchristosRANGE_BEGIN 0 100 54*7a540f2bSchristos ADDRESS 193.0.14.129 55*7a540f2bSchristosENTRY_BEGIN 56*7a540f2bSchristosMATCH opcode qtype qname 57*7a540f2bSchristosADJUST copy_id 58*7a540f2bSchristosREPLY QR NOERROR 59*7a540f2bSchristosSECTION QUESTION 60*7a540f2bSchristos. IN NS 61*7a540f2bSchristosSECTION ANSWER 62*7a540f2bSchristos. IN NS K.ROOT-SERVERS.NET. 63*7a540f2bSchristosSECTION ADDITIONAL 64*7a540f2bSchristosK.ROOT-SERVERS.NET. IN A 193.0.14.129 65*7a540f2bSchristosENTRY_END 66*7a540f2bSchristos 67*7a540f2bSchristosENTRY_BEGIN 68*7a540f2bSchristosMATCH opcode subdomain 69*7a540f2bSchristosADJUST copy_id copy_query 70*7a540f2bSchristosREPLY QR NOERROR 71*7a540f2bSchristosSECTION QUESTION 72*7a540f2bSchristoscom. IN NS 73*7a540f2bSchristosSECTION AUTHORITY 74*7a540f2bSchristoscom. IN NS a.gtld-servers.net. 75*7a540f2bSchristosSECTION ADDITIONAL 76*7a540f2bSchristosa.gtld-servers.net. IN A 192.5.6.30 77*7a540f2bSchristosENTRY_END 78*7a540f2bSchristosRANGE_END 79*7a540f2bSchristos 80*7a540f2bSchristos; a.gtld-servers.net. 81*7a540f2bSchristosRANGE_BEGIN 0 100 82*7a540f2bSchristos ADDRESS 192.5.6.30 83*7a540f2bSchristosENTRY_BEGIN 84*7a540f2bSchristosMATCH opcode qtype qname 85*7a540f2bSchristosADJUST copy_id 86*7a540f2bSchristosREPLY QR NOERROR 87*7a540f2bSchristosSECTION QUESTION 88*7a540f2bSchristoscom. IN NS 89*7a540f2bSchristosSECTION ANSWER 90*7a540f2bSchristoscom. IN NS a.gtld-servers.net. 91*7a540f2bSchristosSECTION ADDITIONAL 92*7a540f2bSchristosa.gtld-servers.net. IN A 192.5.6.30 93*7a540f2bSchristosENTRY_END 94*7a540f2bSchristos 95*7a540f2bSchristosENTRY_BEGIN 96*7a540f2bSchristosMATCH opcode subdomain 97*7a540f2bSchristosADJUST copy_id copy_query 98*7a540f2bSchristosREPLY QR NOERROR 99*7a540f2bSchristosSECTION QUESTION 100*7a540f2bSchristosexample.com. IN NS 101*7a540f2bSchristosSECTION AUTHORITY 102*7a540f2bSchristosexample.com. IN NS ns.example.com. 103*7a540f2bSchristosSECTION ADDITIONAL 104*7a540f2bSchristosns.example.com. IN A 1.2.3.44 105*7a540f2bSchristosENTRY_END 106*7a540f2bSchristosRANGE_END 107*7a540f2bSchristos 108*7a540f2bSchristos; ns.example.net. 109*7a540f2bSchristosRANGE_BEGIN 0 100 110*7a540f2bSchristos ADDRESS 1.2.3.44 111*7a540f2bSchristosENTRY_BEGIN 112*7a540f2bSchristosMATCH opcode qtype qname 113*7a540f2bSchristosADJUST copy_id 114*7a540f2bSchristosREPLY QR NOERROR 115*7a540f2bSchristosSECTION QUESTION 116*7a540f2bSchristosexample.net. IN NS 117*7a540f2bSchristosSECTION ANSWER 118*7a540f2bSchristosexample.net. IN NS ns.example.net. 119*7a540f2bSchristosSECTION ADDITIONAL 120*7a540f2bSchristosns.example.net. IN A 1.2.3.44 121*7a540f2bSchristosENTRY_END 122*7a540f2bSchristos 123*7a540f2bSchristosENTRY_BEGIN 124*7a540f2bSchristosMATCH opcode qtype qname 125*7a540f2bSchristosADJUST copy_id 126*7a540f2bSchristosREPLY QR NOERROR 127*7a540f2bSchristosSECTION QUESTION 128*7a540f2bSchristosns.example.net. IN A 129*7a540f2bSchristosSECTION ANSWER 130*7a540f2bSchristosns.example.net. IN A 1.2.3.44 131*7a540f2bSchristosSECTION AUTHORITY 132*7a540f2bSchristosexample.net. IN NS ns.example.net. 133*7a540f2bSchristosENTRY_END 134*7a540f2bSchristos 135*7a540f2bSchristosENTRY_BEGIN 136*7a540f2bSchristosMATCH opcode qtype qname 137*7a540f2bSchristosADJUST copy_id 138*7a540f2bSchristosREPLY QR NOERROR 139*7a540f2bSchristosSECTION QUESTION 140*7a540f2bSchristosns.example.net. IN AAAA 141*7a540f2bSchristosSECTION AUTHORITY 142*7a540f2bSchristosexample.net. IN NS ns.example.net. 143*7a540f2bSchristosSECTION ADDITIONAL 144*7a540f2bSchristoswww.example.net. IN A 1.2.3.44 145*7a540f2bSchristosENTRY_END 146*7a540f2bSchristos 147*7a540f2bSchristosENTRY_BEGIN 148*7a540f2bSchristosMATCH opcode qtype qname 149*7a540f2bSchristosADJUST copy_id 150*7a540f2bSchristosREPLY QR NOERROR 151*7a540f2bSchristosSECTION QUESTION 152*7a540f2bSchristosexample.com. IN NS 153*7a540f2bSchristosSECTION ANSWER 154*7a540f2bSchristosexample.com. IN NS ns.example.net. 155*7a540f2bSchristosENTRY_END 156*7a540f2bSchristos 157*7a540f2bSchristosENTRY_BEGIN 158*7a540f2bSchristosMATCH opcode qtype qname 159*7a540f2bSchristosADJUST copy_id 160*7a540f2bSchristosREPLY QR NOERROR 161*7a540f2bSchristosSECTION QUESTION 162*7a540f2bSchristoswww.example.com. IN A 163*7a540f2bSchristosSECTION ANSWER 164*7a540f2bSchristoswww.example.com. IN A 10.20.30.40 165*7a540f2bSchristosENTRY_END 166*7a540f2bSchristosRANGE_END 167*7a540f2bSchristos 168*7a540f2bSchristosSTEP 1 QUERY 169*7a540f2bSchristosENTRY_BEGIN 170*7a540f2bSchristosREPLY RD 171*7a540f2bSchristosSECTION QUESTION 172*7a540f2bSchristoswww.example.com. IN A 173*7a540f2bSchristosENTRY_END 174*7a540f2bSchristos 175*7a540f2bSchristos; recursion happens here. 176*7a540f2bSchristosSTEP 20 CHECK_ANSWER 177*7a540f2bSchristosENTRY_BEGIN 178*7a540f2bSchristosMATCH all 179*7a540f2bSchristosREPLY QR RD RA SERVFAIL 180*7a540f2bSchristosSECTION QUESTION 181*7a540f2bSchristoswww.example.com. IN A 182*7a540f2bSchristosSECTION ANSWER 183*7a540f2bSchristosENTRY_END 184*7a540f2bSchristos 185*7a540f2bSchristosSCENARIO_END 186