diff options
author | Mark Karpilovskij <mark.karpilovskij@nic.cz> | 2019-02-25 13:34:12 +0100 |
---|---|---|
committer | Mark Karpilovskij <mark.karpilovskij@nic.cz> | 2019-02-25 16:05:33 +0100 |
commit | 32f517c0668ddb22ded04a349633c609a1ba8a0c (patch) | |
tree | 8b60987a8b61b8027908c63851c27622c9c514e8 | |
parent | test-extra: add test for re-signing with changed NSEC3 parameters (diff) | |
download | knot-32f517c0668ddb22ded04a349633c609a1ba8a0c.tar.xz knot-32f517c0668ddb22ded04a349633c609a1ba8a0c.zip |
tests-extra: extend modules/geoip test
-rw-r--r-- | tests-extra/tests/modules/geoip/data/geo.conf | 501 | ||||
-rw-r--r-- | tests-extra/tests/modules/geoip/test.py | 65 |
2 files changed, 62 insertions, 504 deletions
diff --git a/tests-extra/tests/modules/geoip/data/geo.conf b/tests-extra/tests/modules/geoip/data/geo.conf deleted file mode 100644 index 67c5bdee2..000000000 --- a/tests-extra/tests/modules/geoip/data/geo.conf +++ /dev/null @@ -1,501 +0,0 @@ -foo.example.com: - - geo: "AD;1" - A: 127.255.1.0 - - geo: "AE;2" - A: 127.255.2.0 - - geo: "AF;3" - A: 127.255.3.0 - - geo: "AG;4" - A: 127.255.4.0 - - geo: "AI;5" - A: 127.255.5.0 - - geo: "AL;6" - A: 127.255.6.0 - - geo: "AM;7" - A: 127.255.7.0 - - geo: "AO;8" - A: 127.255.8.0 - - geo: "AQ;9" - A: 127.255.9.0 - - geo: "AR;10" - A: 127.255.10.0 - - geo: "AS;11" - A: 127.255.11.0 - - geo: "AT;12" - A: 127.255.12.0 - - geo: "AU;13" - A: 127.255.13.0 - - geo: "AW;14" - A: 127.255.14.0 - - geo: "AX;15" - A: 127.255.15.0 - - geo: "AZ;16" - A: 127.255.16.0 - - geo: "BA;17" - A: 127.255.17.0 - - geo: "BB;18" - A: 127.255.18.0 - - geo: "BD;19" - A: 127.255.19.0 - - geo: "BE;20" - A: 127.255.20.0 - - geo: "BF;21" - A: 127.255.21.0 - - geo: "BG;22" - A: 127.255.22.0 - - geo: "BH;23" - A: 127.255.23.0 - - geo: "BI;24" - A: 127.255.24.0 - - geo: "BJ;25" - A: 127.255.25.0 - - geo: "BL;26" - A: 127.255.26.0 - - geo: "BM;27" - A: 127.255.27.0 - - geo: "BN;28" - A: 127.255.28.0 - - geo: "BO;29" - A: 127.255.29.0 - - geo: "BQ;30" - A: 127.255.30.0 - - geo: "BQ;31" - A: 127.255.31.0 - - geo: "BR;32" - A: 127.255.32.0 - - geo: "BS;33" - A: 127.255.33.0 - - geo: "BT;34" - A: 127.255.34.0 - - geo: "BV;35" - A: 127.255.35.0 - - geo: "BW;36" - A: 127.255.36.0 - - geo: "BY;37" - A: 127.255.37.0 - - geo: "BZ;38" - A: 127.255.38.0 - - geo: "CA;39" - A: 127.255.39.0 - - geo: "CC;40" - A: 127.255.40.0 - - geo: "CD;41" - A: 127.255.41.0 - - geo: "CF;42" - A: 127.255.42.0 - - geo: "CG;43" - A: 127.255.43.0 - - geo: "CH;44" - A: 127.255.44.0 - - geo: "CI;45" - A: 127.255.45.0 - - geo: "CK;46" - A: 127.255.46.0 - - geo: "CL;47" - A: 127.255.47.0 - - geo: "CM;48" - A: 127.255.48.0 - - geo: "CN;49" - A: 127.255.49.0 - - geo: "CO;50" - A: 127.255.50.0 - - geo: "CR;51" - A: 127.255.51.0 - - geo: "CU;52" - A: 127.255.52.0 - - geo: "CV;53" - A: 127.255.53.0 - - geo: "CW;54" - A: 127.255.54.0 - - geo: "CX;55" - A: 127.255.55.0 - - geo: "CY;56" - A: 127.255.56.0 - - geo: "CZ;57" - A: 127.255.57.0 - - geo: "DE;58" - A: 127.255.58.0 - - geo: "DJ;59" - A: 127.255.59.0 - - geo: "DK;60" - A: 127.255.60.0 - - geo: "DM;61" - A: 127.255.61.0 - - geo: "DO;62" - A: 127.255.62.0 - - geo: "DZ;63" - A: 127.255.63.0 - - geo: "EC;64" - A: 127.255.64.0 - - geo: "EE;65" - A: 127.255.65.0 - - geo: "EG;66" - A: 127.255.66.0 - - geo: "EH;67" - A: 127.255.67.0 - - geo: "ER;68" - A: 127.255.68.0 - - geo: "ES;69" - A: 127.255.69.0 - - geo: "ET;70" - A: 127.255.70.0 - - geo: "FI;71" - A: 127.255.71.0 - - geo: "FJ;72" - A: 127.255.72.0 - - geo: "FK;73" - A: 127.255.73.0 - - geo: "FM;74" - A: 127.255.74.0 - - geo: "FO;75" - A: 127.255.75.0 - - geo: "FR;76" - A: 127.255.76.0 - - geo: "GA;77" - A: 127.255.77.0 - - geo: "GB;78" - A: 127.255.78.0 - - geo: "GD;79" - A: 127.255.79.0 - - geo: "GE;80" - A: 127.255.80.0 - - geo: "GF;81" - A: 127.255.81.0 - - geo: "GG;82" - A: 127.255.82.0 - - geo: "GH;83" - A: 127.255.83.0 - - geo: "GI;84" - A: 127.255.84.0 - - geo: "GL;85" - A: 127.255.85.0 - - geo: "GM;86" - A: 127.255.86.0 - - geo: "GN;87" - A: 127.255.87.0 - - geo: "GP;88" - A: 127.255.88.0 - - geo: "GQ;89" - A: 127.255.89.0 - - geo: "GR;90" - A: 127.255.90.0 - - geo: "GS;91" - A: 127.255.91.0 - - geo: "GT;92" - A: 127.255.92.0 - - geo: "GU;93" - A: 127.255.93.0 - - geo: "GW;94" - A: 127.255.94.0 - - geo: "GY;95" - A: 127.255.95.0 - - geo: "HK;96" - A: 127.255.96.0 - - geo: "HM;97" - A: 127.255.97.0 - - geo: "HN;98" - A: 127.255.98.0 - - geo: "HR;99" - A: 127.255.99.0 - - geo: "HT;100" - A: 127.255.100.0 - - geo: "HU;101" - A: 127.255.101.0 - - geo: "ID;102" - A: 127.255.102.0 - - geo: "IE;103" - A: 127.255.103.0 - - geo: "IL;104" - A: 127.255.104.0 - - geo: "IM;105" - A: 127.255.105.0 - - geo: "IN;106" - A: 127.255.106.0 - - geo: "IO;107" - A: 127.255.107.0 - - geo: "IQ;108" - A: 127.255.108.0 - - geo: "IR;109" - A: 127.255.109.0 - - geo: "IS;110" - A: 127.255.110.0 - - geo: "IT;111" - A: 127.255.111.0 - - geo: "JE;112" - A: 127.255.112.0 - - geo: "JM;113" - A: 127.255.113.0 - - geo: "JO;114" - A: 127.255.114.0 - - geo: "JP;115" - A: 127.255.115.0 - - geo: "KE;116" - A: 127.255.116.0 - - geo: "KG;117" - A: 127.255.117.0 - - geo: "KH;118" - A: 127.255.118.0 - - geo: "KI;119" - A: 127.255.119.0 - - geo: "KM;120" - A: 127.255.120.0 - - geo: "KN;121" - A: 127.255.121.0 - - geo: "KP;122" - A: 127.255.122.0 - - geo: "KR;123" - A: 127.255.123.0 - - geo: "KW;124" - A: 127.255.124.0 - - geo: "KY;125" - A: 127.255.125.0 - - geo: "KZ;126" - A: 127.255.126.0 - - geo: "LA;127" - A: 127.255.127.0 - - geo: "LB;128" - A: 127.255.128.0 - - geo: "LC;129" - A: 127.255.129.0 - - geo: "LI;130" - A: 127.255.130.0 - - geo: "LK;131" - A: 127.255.131.0 - - geo: "LR;132" - A: 127.255.132.0 - - geo: "LS;133" - A: 127.255.133.0 - - geo: "LT;134" - A: 127.255.134.0 - - geo: "LU;135" - A: 127.255.135.0 - - geo: "LV;136" - A: 127.255.136.0 - - geo: "LY;137" - A: 127.255.137.0 - - geo: "MA;138" - A: 127.255.138.0 - - geo: "MC;139" - A: 127.255.139.0 - - geo: "MD;140" - A: 127.255.140.0 - - geo: "ME;141" - A: 127.255.141.0 - - geo: "MF;142" - A: 127.255.142.0 - - geo: "MG;143" - A: 127.255.143.0 - - geo: "MH;144" - A: 127.255.144.0 - - geo: "MK;145" - A: 127.255.145.0 - - geo: "ML;146" - A: 127.255.146.0 - - geo: "MM;147" - A: 127.255.147.0 - - geo: "MN;148" - A: 127.255.148.0 - - geo: "MO;149" - A: 127.255.149.0 - - geo: "MP;150" - A: 127.255.150.0 - - geo: "MQ;151" - A: 127.255.151.0 - - geo: "MR;152" - A: 127.255.152.0 - - geo: "MS;153" - A: 127.255.153.0 - - geo: "MT;154" - A: 127.255.154.0 - - geo: "MU;155" - A: 127.255.155.0 - - geo: "MV;156" - A: 127.255.156.0 - - geo: "MW;157" - A: 127.255.157.0 - - geo: "MX;158" - A: 127.255.158.0 - - geo: "MY;159" - A: 127.255.159.0 - - geo: "MZ;160" - A: 127.255.160.0 - - geo: "NA;161" - A: 127.255.161.0 - - geo: "NC;162" - A: 127.255.162.0 - - geo: "NE;163" - A: 127.255.163.0 - - geo: "NF;164" - A: 127.255.164.0 - - geo: "NG;165" - A: 127.255.165.0 - - geo: "NI;166" - A: 127.255.166.0 - - geo: "NL;167" - A: 127.255.167.0 - - geo: "NO;168" - A: 127.255.168.0 - - geo: "NP;169" - A: 127.255.169.0 - - geo: "NR;170" - A: 127.255.170.0 - - geo: "NU;171" - A: 127.255.171.0 - - geo: "NZ;172" - A: 127.255.172.0 - - geo: "OM;173" - A: 127.255.173.0 - - geo: "PA;174" - A: 127.255.174.0 - - geo: "PE;175" - A: 127.255.175.0 - - geo: "PF;176" - A: 127.255.176.0 - - geo: "PG;177" - A: 127.255.177.0 - - geo: "PH;178" - A: 127.255.178.0 - - geo: "PK;179" - A: 127.255.179.0 - - geo: "PL;180" - A: 127.255.180.0 - - geo: "PM;181" - A: 127.255.181.0 - - geo: "PN;182" - A: 127.255.182.0 - - geo: "PR;183" - A: 127.255.183.0 - - geo: "PS;184" - A: 127.255.184.0 - - geo: "PT;185" - A: 127.255.185.0 - - geo: "PW;186" - A: 127.255.186.0 - - geo: "PY;187" - A: 127.255.187.0 - - geo: "QA;188" - A: 127.255.188.0 - - geo: "RE;189" - A: 127.255.189.0 - - geo: "RO;190" - A: 127.255.190.0 - - geo: "RS;191" - A: 127.255.191.0 - - geo: "RU;192" - A: 127.255.192.0 - - geo: "RW;193" - A: 127.255.193.0 - - geo: "SA;194" - A: 127.255.194.0 - - geo: "SB;195" - A: 127.255.195.0 - - geo: "SC;196" - A: 127.255.196.0 - - geo: "SD;197" - A: 127.255.197.0 - - geo: "SE;198" - A: 127.255.198.0 - - geo: "SG;199" - A: 127.255.199.0 - - geo: "SH;200" - A: 127.255.200.0 - - geo: "SI;201" - A: 127.255.201.0 - - geo: "SJ;202" - A: 127.255.202.0 - - geo: "SK;203" - A: 127.255.203.0 - - geo: "SL;204" - A: 127.255.204.0 - - geo: "SM;205" - A: 127.255.205.0 - - geo: "SN;206" - A: 127.255.206.0 - - geo: "SO;207" - A: 127.255.207.0 - - geo: "SR;208" - A: 127.255.208.0 - - geo: "SS;209" - A: 127.255.209.0 - - geo: "ST;210" - A: 127.255.210.0 - - geo: "SV;211" - A: 127.255.211.0 - - geo: "SX;212" - A: 127.255.212.0 - - geo: "SY;213" - A: 127.255.213.0 - - geo: "SZ;214" - A: 127.255.214.0 - - geo: "TC;215" - A: 127.255.215.0 - - geo: "TD;216" - A: 127.255.216.0 - - geo: "TF;217" - A: 127.255.217.0 - - geo: "TG;218" - A: 127.255.218.0 - - geo: "TH;219" - A: 127.255.219.0 - - geo: "TJ;220" - A: 127.255.220.0 - - geo: "TK;221" - A: 127.255.221.0 - - geo: "TL;222" - A: 127.255.222.0 - - geo: "TM;223" - A: 127.255.223.0 - - geo: "TN;224" - A: 127.255.224.0 - - geo: "TO;225" - A: 127.255.225.0 - - geo: "TR;226" - A: 127.255.226.0 - - geo: "TT;227" - A: 127.255.227.0 - - geo: "TV;228" - A: 127.255.228.0 - - geo: "TW;229" - A: 127.255.229.0 - - geo: "TZ;230" - A: 127.255.230.0 - - geo: "UA;231" - A: 127.255.231.0 - - geo: "UG;232" - A: 127.255.232.0 - - geo: "UM;233" - A: 127.255.233.0 - - geo: "US;234" - A: 127.255.234.0 - - geo: "UY;235" - A: 127.255.235.0 - - geo: "UZ;236" - A: 127.255.236.0 - - geo: "VA;237" - A: 127.255.237.0 - - geo: "VC;238" - A: 127.255.238.0 - - geo: "VE;239" - A: 127.255.239.0 - - geo: "VG;240" - A: 127.255.240.0 - - geo: "VI;241" - A: 127.255.241.0 - - geo: "VN;242" - A: 127.255.242.0 - - geo: "VU;243" - A: 127.255.243.0 - - geo: "WF;244" - A: 127.255.244.0 - - geo: "WS;245" - A: 127.255.245.0 - - geo: "YE;246" - A: 127.255.246.0 - - geo: "YT;247" - A: 127.255.247.0 - - geo: "ZA;248" - A: 127.255.248.0 - - geo: "ZM;249" - A: 127.255.249.0 - - geo: "ZW;250" - A: 127.255.250.0 diff --git a/tests-extra/tests/modules/geoip/test.py b/tests-extra/tests/modules/geoip/test.py index a9642decf..136f06099 100644 --- a/tests-extra/tests/modules/geoip/test.py +++ b/tests-extra/tests/modules/geoip/test.py @@ -6,6 +6,29 @@ from dnstest.test import Test from dnstest.module import ModGeoip from dnstest.utils import * import random +import os + +iso_codes = ['AD', 'AE', 'AF', 'AG', 'AI', 'AL', 'AM', 'AO', 'AQ', 'AR', 'AS', 'AT', + 'AU', 'AW', 'AX', 'AZ', 'BA', 'BB', 'BD', 'BE', 'BF', 'BG', 'BH', 'BI', + 'BJ', 'BL', 'BM', 'BN', 'BO', 'BQ', 'BQ', 'BR', 'BS', 'BT', 'BV', 'BW', + 'BY', 'BZ', 'CA', 'CC', 'CD', 'CF', 'CG', 'CH', 'CI', 'CK', 'CL', 'CM', + 'CN', 'CO', 'CR', 'CU', 'CV', 'CW', 'CX', 'CY', 'CZ', 'DE', 'DJ', 'DK', + 'DM', 'DO', 'DZ', 'EC', 'EE', 'EG', 'EH', 'ER', 'ES', 'ET', 'FI', 'FJ', + 'FK', 'FM', 'FO', 'FR', 'GA', 'GB', 'GD', 'GE', 'GF', 'GG', 'GH', 'GI', + 'GL', 'GM', 'GN', 'GP', 'GQ', 'GR', 'GS', 'GT', 'GU', 'GW', 'GY', 'HK', + 'HM', 'HN', 'HR', 'HT', 'HU', 'ID', 'IE', 'IL', 'IM', 'IN', 'IO', 'IQ', + 'IR', 'IS', 'IT', 'JE', 'JM', 'JO', 'JP', 'KE', 'KG', 'KH', 'KI', 'KM', + 'KN', 'KP', 'KR', 'KW', 'KY', 'KZ', 'LA', 'LB', 'LC', 'LI', 'LK', 'LR', + 'LS', 'LT', 'LU', 'LV', 'LY', 'MA', 'MC', 'MD', 'ME', 'MF', 'MG', 'MH', + 'MK', 'ML', 'MM', 'MN', 'MO', 'MP', 'MQ', 'MR', 'MS', 'MT', 'MU', 'MV', + 'MW', 'MX', 'MY', 'MZ', 'NA', 'NC', 'NE', 'NF', 'NG', 'NI', 'NL', 'NO', + 'NP', 'NR', 'NU', 'NZ', 'OM', 'PA', 'PE', 'PF', 'PG', 'PH', 'PK', 'PL', + 'PM', 'PN', 'PR', 'PS', 'PT', 'PW', 'PY', 'QA', 'RE', 'RO', 'RS', 'RU', + 'RW', 'SA', 'SB', 'SC', 'SD', 'SE', 'SG', 'SH', 'SI', 'SJ', 'SK', 'SL', + 'SM', 'SN', 'SO', 'SR', 'SS', 'ST', 'SV', 'SX', 'SY', 'SZ', 'TC', 'TD', + 'TF', 'TG', 'TH', 'TJ', 'TK', 'TL', 'TM', 'TN', 'TO', 'TR', 'TT', 'TV', + 'TW', 'TZ', 'UA', 'UG', 'UM', 'US', 'UY', 'UZ', 'VA', 'VC', 'VE', 'VG', + 'VI', 'VN', 'VU', 'WF', 'WS', 'YE', 'YT', 'ZA', 'ZM', 'ZW']; t = Test(address=4, stress=False) knot = t.server("knot") @@ -13,10 +36,31 @@ knot = t.server("knot") zone = t.zone("example.com.", storage=".") t.link(zone, knot) +# Generate configuration files for geoip module. +geodb_filename = knot.data_dir + "geo.conf" +subnet_filename = knot.data_dir + "net.conf" +geo_conf = open(geodb_filename, "w") +net_conf = open(subnet_filename, "w") +dname_count = len(iso_codes) +for i in range(1, dname_count + 1): + print("d" + str(i) + ".example.com:", file=geo_conf) + print("d" + str(i) + ".example.com:", file=net_conf) + geo_id = 1 + for iso_code in iso_codes: + print(" - geo: \"" + iso_code + ";" + str(geo_id) + "\"", file=geo_conf) + print(" A: 127.255." + str(geo_id) + ".0", file=geo_conf) + print(" - net: 127.255." + str(geo_id) + ".0/24", file=net_conf) + print(" A: 127.255." + str(geo_id) + ".0", file=net_conf) + geo_id += 1 +geo_conf.close() +net_conf.close() + ModGeoip.check() -mod_geoip = ModGeoip(t.data_dir + "geo.conf", "geodb", t.data_dir + "db.mmdb", +mod_geoip = ModGeoip(geodb_filename, "geodb", t.data_dir + "db.mmdb", ["country/iso_code", "(id)city/geoname_id"]) +mod_subnet = ModGeoip(subnet_filename) + knot.add_module(zone, mod_geoip); t.start() @@ -29,6 +73,21 @@ resp.check(rcode="NOERROR", rdata="192.0.2.4") # Test geo-dependent answers. for i in range(1, 1000): - random_client = "127.255." + str(random.randint(1, 250)) + ".0" - resp = knot.dig("foo.example.com", "A", source=random_client) + random_client = "127.255." + str(random.randint(1, dname_count)) + ".0" + resp = knot.dig("d" + str(random.randint(1, dname_count)) + ".example.com", "A", source=random_client) + resp.check(rcode="NOERROR", rdata=random_client) + +# Test subnet-dependent answers. +knot.clear_modules(None) +knot.add_module(zone, mod_subnet); +knot.gen_confile() +knot.reload() +knot.zone_wait(zone) + +for i in range(1, 1000): + random_client = "127.255." + str(random.randint(1, dname_count)) + ".0" + resp = knot.dig("d" + str(random.randint(1, dname_count)) + ".example.com", "A", source=random_client) resp.check(rcode="NOERROR", rdata=random_client) + +os.remove(geodb_filename) +os.remove(subnet_filename) |