From a90ba585b3249774e4847cc3c7ee341d80d760fe Mon Sep 17 00:00:00 2001 From: Daniel Salzman <daniel.salzman@nic.cz> Date: Mon, 17 Mar 2014 15:06:51 +0100 Subject: [PATCH] tests-extra: add basic/opt-out test case --- .../tests/basic/opt-out/data/example.zone | 226 ++++++++++++++++++ tests-extra/tests/basic/opt-out/test.py | 54 +++++ 2 files changed, 280 insertions(+) create mode 100644 tests-extra/tests/basic/opt-out/data/example.zone create mode 100644 tests-extra/tests/basic/opt-out/test.py diff --git a/tests-extra/tests/basic/opt-out/data/example.zone b/tests-extra/tests/basic/opt-out/data/example.zone new file mode 100644 index 000000000..3f7c06d72 --- /dev/null +++ b/tests-extra/tests/basic/opt-out/data/example.zone @@ -0,0 +1,226 @@ +; This zone comes from RFC-5155 +; H(example) = 0p9mhaveqvm6t7vbl5lop2u3t2rp3tom +; H(a.example) = 35mthgpgcu1qg68fab165klnsnk3dpvl +; H(ai.example) = gjeqe526plbf1g8mklp59enfd789njgi +; H(ns1.example) = 2t7b4g4vsa5smi47k61mv5bv1a22bojr +; H(ns2.example) = q04jkcevqvmu85r014c7dkba38o0ji5r +; H(w.example) = k8udemvp1j2f7eg6jebps17vp3n8i58h +; H(*.w.example) = r53bq7cc2uvmubfu5ocmm6pers9tk9en +; H(x.w.example) = b4um86eghhds6nea196smvmlo4ors995 +; H(y.w.example) = ji6neoaepv8b5o6k4ev33abha8ht9fgc +; H(x.y.w.example) = 2vptu5timamqttgl4luu9kg21e0aor3s +; H(xx.example) = t644ebqk9bibcna874givr6joj62mlhv +; H(2t7b4g4vsa5smi47k61mv5bv1a22bojr.example) +; = kohar7mbb8dc2ce8a9qvl8hon4k53uhi +example. 3600 IN SOA ns1.example. bugs.x.w.example. 1 3600 300 ( + 3600000 3600 ) + RRSIG SOA 7 1 3600 20150420235959 20051021000000 ( + 40430 example. + Hu25UIyNPmvPIVBrldN+9Mlp9Zql39qaUd8i + q4ZLlYWfUUbbAS41pG+68z81q1xhkYAcEyHd + VI2LmKusbZsT0Q== ) + NS ns1.example. + NS ns2.example. + RRSIG NS 7 1 3600 20150420235959 20051021000000 ( + 40430 example. + PVOgtMK1HHeSTau+HwDWC8Ts+6C8qtqd4pQJ + qOtdEVgg+MA+ai4fWDEhu3qHJyLcQ9tbD2vv + CnMXjtz6SyObxA== ) + MX 1 xx.example. + RRSIG MX 7 1 3600 20150420235959 20051021000000 ( + 40430 example. + GgQ1A9xs47k42VPvpL/a1BWUz/6XsnHkjotw + 9So8MQtZtl2wJBsnOQsaoHrRCrRbyriEl/GZ + n9Mto/Kx+wBo+w== ) + DNSKEY 256 3 7 AwEAAaetidLzsKWUt4swWR8yu0wPHPiUi8LU ( + sAD0QPWU+wzt89epO6tHzkMBVDkC7qphQO2h + TY4hHn9npWFRw5BYubE= ) + DNSKEY 257 3 7 AwEAAcUlFV1vhmqx6NSOUOq2R/dsR7Xm3upJ ( + j7IommWSpJABVfW8Q0rOvXdM6kzt+TAu92L9 + AbsUdblMFin8CVF3n4s= ) + RRSIG DNSKEY 7 1 3600 20150420235959 ( + 20051021000000 12708 example. + AuU4juU9RaxescSmStrQks3Gh9FblGBlVU31 + uzMZ/U/FpsUb8aC6QZS+sTsJXnLnz7flGOsm + MGQZf3bH+QsCtg== ) + NSEC3PARAM 1 0 12 aabbccdd + RRSIG NSEC3PARAM 7 1 3600 20150420235959 ( + 20051021000000 40430 example. + C1Gl8tPZNtnjlrYWDeeUV/sGLCyy/IHie2re + rN05XSA3Pq0U3+4VvGWYWdUMfflOdxqnXHwJ + TLQsjlkynhG6Cg== ) +0p9mhaveqvm6t7vbl5lop2u3t2rp3tom.example. NSEC3 1 1 12 aabbccdd ( + 2t7b4g4vsa5smi47k61mv5bv1a22bojr MX DNSKEY NS + SOA NSEC3PARAM RRSIG ) + RRSIG NSEC3 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + OSgWSm26B+cS+dDL8b5QrWr/dEWhtCsKlwKL + IBHYH6blRxK9rC0bMJPwQ4mLIuw85H2EY762 + BOCXJZMnpuwhpA== ) +2t7b4g4vsa5smi47k61mv5bv1a22bojr.example. A 192.0.2.127 + RRSIG A 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + h6c++bzhRuWWt2bykN6mjaTNBcXNq5UuL5Ed + K+iDP4eY8I0kSiKaCjg3tC1SQkeloMeub2GW + k8p6xHMPZumXlw== ) + NSEC3 1 1 12 aabbccdd ( + 2vptu5timamqttgl4luu9kg21e0aor3s A RRSIG ) + RRSIG NSEC3 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + OmBvJ1Vgg1hCKMXHFiNeIYHK9XVW0iLDLwJN + 4TFoNxZuP03gAXEI634YwOc4YBNITrj413iq + NI6mRk/r1dOSUw== ) +2vptu5timamqttgl4luu9kg21e0aor3s.example. NSEC3 1 1 12 aabbccdd ( + 35mthgpgcu1qg68fab165klnsnk3dpvl MX RRSIG ) + RRSIG NSEC3 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + KL1V2oFYghNV0Hm7Tf2vpJjM6l+0g1JCcVYG + VfI0lKrhPmTsOA96cLEACgo1x8I7kApJX+ob + TuktZ+sdsZPY1w== ) +35mthgpgcu1qg68fab165klnsnk3dpvl.example. NSEC3 1 1 12 aabbccdd ( + b4um86eghhds6nea196smvmlo4ors995 NS DS RRSIG ) + RRSIG NSEC3 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + g6jPUUpduAJKRljUsN8gB4UagAX0NxY9shwQ + Aynzo8EUWH+z6hEIBlUTPGj15eZll6VhQqgZ + XtAIR3chwgW+SA== ) +a.example. NS ns1.a.example. + NS ns2.a.example. + DS 58470 5 1 ( + 3079F1593EBAD6DC121E202A8B766A6A4837206C ) + RRSIG DS 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + XacFcQVHLVzdoc45EJhN616zQ4mEXtE8FzUh + M2KWjfy1VfRKD9r1MeVGwwoukOKgJxBPFsWo + o722vZ4UZ2dIdA== ) +ns1.a.example. A 192.0.2.5 +ns2.a.example. A 192.0.2.6 +ai.example. A 192.0.2.9 + RRSIG A 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + hVe+wKYMlObTRPhX0NL67GxeZfdxqr/QeR6F + tfdAj5+FgYxyzPEjIzvKWy00hWIl6wD3Vws+ + rznEn8sQ64UdqA== ) + HINFO "KLH-10" "ITS" + RRSIG HINFO 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + Yi42uOq43eyO6qXHNvwwfFnIustWgV5urFcx + enkLvs6pKRh00VBjODmf3Z4nMO7IOl6nHSQ1 + v0wLHpEZG7Xj2w== ) + AAAA 2001:db8:0:0:0:0:f00:baa9 + RRSIG AAAA 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + LcdxKaCB5bGZwPDg+3JJ4O02zoMBrjxqlf6W + uaHQZZfTUpb9Nf2nxFGe2XRPfR5tpJT6GdRG + cHueLuXkMjBArQ== ) +b4um86eghhds6nea196smvmlo4ors995.example. NSEC3 1 1 12 aabbccdd ( + gjeqe526plbf1g8mklp59enfd789njgi MX RRSIG ) + RRSIG NSEC3 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + ZkPG3M32lmoHM6pa3D6gZFGB/rhL//Bs3Omh + 5u4m/CUiwtblEVOaAKKZd7S959OeiX43aLX3 + pOv0TSTyiTxIZg== ) +c.example. NS ns1.c.example. + NS ns2.c.example. +ns1.c.example. A 192.0.2.7 +ns2.c.example. A 192.0.2.8 +gjeqe526plbf1g8mklp59enfd789njgi.example. NSEC3 1 1 12 aabbccdd ( + ji6neoaepv8b5o6k4ev33abha8ht9fgc HINFO A AAAA + RRSIG ) + RRSIG NSEC3 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + IVnezTJ9iqblFF97vPSmfXZ5Zozngx3KX3by + LTZC4QBH2dFWhf6scrGFZB980AfCxoD9qbbK + Dy+rdGIeRSVNyw== ) +ji6neoaepv8b5o6k4ev33abha8ht9fgc.example. NSEC3 1 1 12 aabbccdd ( + k8udemvp1j2f7eg6jebps17vp3n8i58h ) + RRSIG NSEC3 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + gPkFp1s2QDQ6wQzcg1uSebZ61W33rUBDcTj7 + 2F3kQ490fEdp7k1BUIfbcZtPbX3YCpE+sIt0 + MpzVSKfTwx4uYA== ) +k8udemvp1j2f7eg6jebps17vp3n8i58h.example. NSEC3 1 1 12 aabbccdd ( + kohar7mbb8dc2ce8a9qvl8hon4k53uhi ) + RRSIG NSEC3 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + FtXGbvF0+wf8iWkyo73enAuVx03klN+pILBK + S6qCcftVtfH4yVzsEZquJ27NHR7ruxJWDNMt + Otx7w9WfcIg62A== ) +kohar7mbb8dc2ce8a9qvl8hon4k53uhi.example. NSEC3 1 1 12 aabbccdd ( + q04jkcevqvmu85r014c7dkba38o0ji5r A RRSIG ) + RRSIG NSEC3 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + VrDXs2uVW21N08SyQIz88zml+y4ZCInTwgDr + 6zz43yAg+LFERjOrj3Ojct51ac7Dp4eZbf9F + QJazmASFKGxGXg== ) +ns1.example. A 192.0.2.1 + RRSIG A 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + bu6kx73n6XEunoVGuRfAgY7EF/AJqHy7hj0j + kiqJjB0dOrx3wuz9SaBeGfqWIdn/uta3SavN + 4FRvZR9SCFHF5Q== ) +ns2.example. A 192.0.2.2 + RRSIG A 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + ktQ3TqE0CfRfki0Rb/Ip5BM0VnxelbuejCC4 + zpLbFKA/7eD7UNAwxMgxJPtbdST+syjYSJaj + 4IHfeX6n8vfoGA== ) +q04jkcevqvmu85r014c7dkba38o0ji5r.example. NSEC3 1 1 12 aabbccdd ( + r53bq7cc2uvmubfu5ocmm6pers9tk9en A RRSIG ) + RRSIG NSEC3 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + hV5I89b+4FHJDATp09g4bbN0R1F845CaXpL3 + ZxlMKimoPAyqletMlEWwLfFia7sdpSzn+ZlN + NlkxWcLsIlMmUg== ) +r53bq7cc2uvmubfu5ocmm6pers9tk9en.example. NSEC3 1 1 12 aabbccdd ( + t644ebqk9bibcna874givr6joj62mlhv MX RRSIG ) + RRSIG NSEC3 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + aupviViruXs4bDg9rCbezzBMf9h1ZlDvbW/C + ZFKulIGXXLj8B/fsDJarXVDA9bnUoRhEbKp+ + HF1FWKW7RIJdtQ== ) +t644ebqk9bibcna874givr6joj62mlhv.example. NSEC3 1 1 12 aabbccdd ( + 0p9mhaveqvm6t7vbl5lop2u3t2rp3tom HINFO A AAAA + RRSIG ) + RRSIG NSEC3 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + RAjGECB8P7O+F4Pa4Dx3tC0M+Z3KmlLKImca + fb9XWwx+NWUNz7NBEDBQHivIyKPVDkChcePI + X1xPl1ATNa+8Dw== ) +*.w.example. MX 1 ai.example. + RRSIG MX 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + CikebjQwGQPwijVcxgcZcSJKtfynugtlBiKb + 9FcBTrmOoyQ4InoWVudhCWsh/URX3lc4WRUM + ivEBP6+4KS3ldA== ) +x.w.example. MX 1 xx.example. + RRSIG MX 7 3 3600 20150420235959 20051021000000 ( + 40430 example. + IrK3tq/tHFIBF0scHiE/1IwMAvckS/55hAVv + QyxTFbkAdDloP3NbZzu+yoSsr3b3OX6qbBpY + 7WCtwwekLKRAwQ== ) +x.y.w.example. MX 1 xx.example. + RRSIG MX 7 4 3600 20150420235959 20051021000000 ( + 40430 example. + MqSt5HqJIN8+SLlzTOImrh5h9Xa6gDvAW/Gn + nbdPc6Z7nXvCpLPJj/5lCwx3VuzVOjkbvXze + 8/8Ccl2Zn2hbug== ) +xx.example. A 192.0.2.10 + RRSIG A 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + T35hBWEZ017VC5u2c4OriKyVn/pu+fVK4AlX + YOxJ6iQylfV2HQIKjv6b7DzINB3aF/wjJqgX + pQvhq+Ac6+ZiFg== ) + HINFO "KLH-10" "TOPS-20" + RRSIG HINFO 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + KimG+rDd+7VA1zRsu0ITNAQUTRlpnsmqWrih + FRnU+bRa93v2e5oFNFYCs3Rqgv62K93N7AhW + 6Jfqj/8NzWjvKg== ) + AAAA 2001:db8:0:0:0:0:f00:baaa + RRSIG AAAA 7 2 3600 20150420235959 20051021000000 ( + 40430 example. + IXBcXORITNwd8h3gNwyxtYFvAupS/CYWufVe + uBUX0O25ivBCULjZjpDxFSxfohb/KA7YRdxE + NzYfMItpILl/Xw== ) + diff --git a/tests-extra/tests/basic/opt-out/test.py b/tests-extra/tests/basic/opt-out/test.py new file mode 100644 index 000000000..542e9a133 --- /dev/null +++ b/tests-extra/tests/basic/opt-out/test.py @@ -0,0 +1,54 @@ +#!/usr/bin/env python3 + +'''NSEC3 opt-out flag test based on RFC-5155 example.''' + +from dnstest.test import Test + +t = Test() + +knot = t.server("knot") +knot.DIG_TIMEOUT = 2 +bind = t.server("bind") +zone = t.zone("example.", storage=".") + +t.link(zone, knot) +t.link(zone, bind) + +t.start() + +# B1. Name Error. +resp = knot.dig("a.c.x.w.example.", "A", dnssec=True) +resp.check(rcode="NXDOMAIN", flags="QR AA", eflags="DO") +resp.cmp(bind) + +# B2. No Data Error. +resp = knot.dig("ns1.example.", "MX", dnssec=True) +resp.check(rcode="NOERROR", flags="QR AA", eflags="DO") +resp.cmp(bind) + +# B2.1. No Data Error, Empty Non-Terminal. +resp = knot.dig("y.w.example.", "A", dnssec=True) +resp.check(rcode="NOERROR", flags="QR AA", eflags="DO") +resp.cmp(bind) + +# B3. Referral to an Opt-Out Unsigned Zone. +resp = knot.dig("mc.c.example.", "MX", dnssec=True) +resp.check(rcode="NOERROR", flags="QR", noflags="AA", eflags="DO") +resp.cmp(bind) + +# B4. Wildcard Expansion. +resp = knot.dig("a.z.w.example.", "MX", dnssec=True) +resp.check(rcode="NOERROR", flags="QR AA", eflags="DO") +resp.cmp(bind) + +# B5. Wildcard No Data Error. +resp = knot.dig("a.z.w.example.", "AAAA", dnssec=True) +resp.check(rcode="NOERROR", flags="QR AA", eflags="DO") +resp.cmp(bind) + +# B6. DS Child Zone No Data Error. +resp = knot.dig("example.", "DS", dnssec=True) +resp.check(rcode="NOERROR", flags="QR AA", eflags="DO") +resp.cmp(bind) + +t.end() -- GitLab