diff --git a/.gitignore b/.gitignore index 706f97b13..e5a5e2856 100644 --- a/.gitignore +++ b/.gitignore @@ -1,5 +1,7 @@ _MTN lib/ whoisd/ -utils/ -!utils/schema-check/*.py +/utils/ +!/utils/schema-check +!/utils/registry +__pycache__ \ No newline at end of file diff --git a/data/as-set/AS4242421231:AS-TRANSIT b/data/as-set/AS4242421231:AS-TRANSIT index ffaefc877..f54c2973f 100644 --- a/data/as-set/AS4242421231:AS-TRANSIT +++ b/data/as-set/AS4242421231:AS-TRANSIT @@ -12,8 +12,14 @@ remarks: WXMN-MNT members: AS4242422227 remarks: MARAUN-MNT members: AS4242422225 -remarks: JAKOB-MNT -members: AS4242421835 remarks: WRMSR-MNT members: AS4242421555 +remarks: BURBLE-MNT +members: AS4242422601 +remarks: HESSNET-MNT +members: AS4242423934 +remarks: MGL-MNT +members: AS4242420181 +remarks: HEXANET-MNT +members: AS4242423078 source: DN42 diff --git a/data/aut-num/AS4201270001 b/data/aut-num/AS4201270001 index b194c8581..2309ac774 100644 --- a/data/aut-num/AS4201270001 +++ b/data/aut-num/AS4201270001 @@ -1,5 +1,5 @@ aut-num: AS4201270001 -as-name: Septs Inter-NeoNetwork Exchange +as-name: NiceLabs Exchange admin-c: SEPTS-NEONETWORK tech-c: SEPTS-NEONETWORK remarks: Imported from neonetwork, do not edit! diff --git a/data/aut-num/AS4201270002 b/data/aut-num/AS4201270002 index c5b54e582..c26b34a6a 100644 --- a/data/aut-num/AS4201270002 +++ b/data/aut-num/AS4201270002 @@ -1,5 +1,5 @@ aut-num: AS4201270002 -as-name: Septs Home +as-name: Septs HomeLabs admin-c: SEPTS-NEONETWORK tech-c: SEPTS-NEONETWORK remarks: Imported from neonetwork, do not edit! diff --git a/data/aut-num/AS4201270009 b/data/aut-num/AS4201270009 deleted file mode 100644 index e311dae77..000000000 --- a/data/aut-num/AS4201270009 +++ /dev/null @@ -1,7 +0,0 @@ -aut-num: AS4201270009 -as-name: santost12 -admin-c: SANTOST12-NEONETWORK -tech-c: SANTOST12-NEONETWORK -remarks: Imported from neonetwork, do not edit! -mnt-by: DN42-MNT -source: NEONETWORK diff --git a/data/aut-num/AS4201270013 b/data/aut-num/AS4201270013 index 937197580..6bd546835 100644 --- a/data/aut-num/AS4201270013 +++ b/data/aut-num/AS4201270013 @@ -1,6 +1,6 @@ aut-num: AS4201270013 as-name: NDOSKRNL -descr: Ndoskrnls Network +descr: Ndoskrnl's Network admin-c: NDOSKRNL-NEONETWORK tech-c: NDOSKRNL-NEONETWORK remarks: Imported from neonetwork, do not edit! diff --git a/data/aut-num/AS4242420270 b/data/aut-num/AS4242420270 new file mode 100644 index 000000000..546fc8e9c --- /dev/null +++ b/data/aut-num/AS4242420270 @@ -0,0 +1,6 @@ +aut-num: AS4242420270 +as-name: SNH +admin-c: SNH-DN42 +tech-c: SNH-DN42 +mnt-by: SNH-MNT +source: DN42 diff --git a/data/aut-num/AS4242420621 b/data/aut-num/AS4242420621 new file mode 100644 index 000000000..4b4072d66 --- /dev/null +++ b/data/aut-num/AS4242420621 @@ -0,0 +1,6 @@ +aut-num: AS4242420621 +as-name: AS for Elise +admin-c: ELISE-DN42 +tech-c: ELISE-DN42 +mnt-by: ELISE-MNT +source: DN42 diff --git a/data/aut-num/AS4242421019 b/data/aut-num/AS4242421019 deleted file mode 100644 index aa5d03a26..000000000 --- a/data/aut-num/AS4242421019 +++ /dev/null @@ -1,7 +0,0 @@ -aut-num: AS4242421019 -as-name: ASHCK ASN -descr: ASHCK Network ASN -admin-c: ASHCK-DN42 -tech-c: ASHCK-DN42 -mnt-by: GATUNO-MNT -source: DN42 diff --git a/data/aut-num/AS4242421099 b/data/aut-num/AS4242421099 index e0fcf66aa..9b0b026be 100644 --- a/data/aut-num/AS4242421099 +++ b/data/aut-num/AS4242421099 @@ -4,3 +4,4 @@ admin-c: OWENSRESEARCH-DN42 tech-c: OWENSRESEARCH-DN42 mnt-by: OWENSRESEARCH-MNT source: DN42 +remarks: **Open to peering with Wireguard! - justin@owensresearch.org** diff --git a/data/aut-num/AS4242421181 b/data/aut-num/AS4242421181 new file mode 100644 index 000000000..c101a1d6a --- /dev/null +++ b/data/aut-num/AS4242421181 @@ -0,0 +1,6 @@ +aut-num: AS4242421181 +as-name: AS from ne-vlezay80 +admin-c: NEVLEZAY-DN42 +tech-c: NEVLEZAY-DN42 +mnt-by: NEVLEZAY-MNT +source: DN42 diff --git a/data/aut-num/AS4242421224 b/data/aut-num/AS4242421224 new file mode 100644 index 000000000..a65d0f0f2 --- /dev/null +++ b/data/aut-num/AS4242421224 @@ -0,0 +1,7 @@ +aut-num: AS4242421224 +as-name: BitBakers Network +admin-c: JASTRUP-DN42 +tech-c: JASTRUP-DN42 +mnt-by: BITBAKERS-MNT +org: ORG-BITBAKERS +source: DN42 diff --git a/data/aut-num/AS4242421237 b/data/aut-num/AS4242421237 new file mode 100644 index 000000000..6524d0fea --- /dev/null +++ b/data/aut-num/AS4242421237 @@ -0,0 +1,6 @@ +aut-num: AS4242421237 +as-name: AS for Recursive Network +admin-c: RG-DN42 +tech-c: RG-DN42 +mnt-by: RG-MNT +source: DN42 diff --git a/data/aut-num/AS4242421516 b/data/aut-num/AS4242421516 new file mode 100644 index 000000000..cc79fa152 --- /dev/null +++ b/data/aut-num/AS4242421516 @@ -0,0 +1,6 @@ +aut-num: AS4242421516 +as-name: w1kl4s network +admin-c: W1KL4S-DN42 +tech-c: W1KL4S-DN42 +mnt-by: W1KL4S-MNT +source: DN42 diff --git a/data/aut-num/AS4242421668 b/data/aut-num/AS4242421668 new file mode 100644 index 000000000..f789acfb5 --- /dev/null +++ b/data/aut-num/AS4242421668 @@ -0,0 +1,7 @@ +aut-num: AS4242421668 +as-name: MALINDEX-AS +descr: Peer with me at noc@imoe.ac.cn +admin-c: MALINDEX-DN42 +tech-c: MALINDEX-DN42 +mnt-by: MALINDEX-MNT +source: DN42 diff --git a/data/aut-num/AS4242422103 b/data/aut-num/AS4242422103 deleted file mode 100644 index 1cd34c34e..000000000 --- a/data/aut-num/AS4242422103 +++ /dev/null @@ -1,6 +0,0 @@ -aut-num: AS4242422103 -as-name: PLZ ASN -admin-c: PLZ-DN42 -tech-c: PLZ-DN42 -mnt-by: GATUNO-MNT -source: DN42 diff --git a/data/aut-num/AS4242422203 b/data/aut-num/AS4242422203 new file mode 100644 index 000000000..76b5cf4ba --- /dev/null +++ b/data/aut-num/AS4242422203 @@ -0,0 +1,7 @@ +aut-num: AS4242422203 +as-name: 0XCB-AS +descr: 0xCB.dev AS +admin-c: 0XCB-DN42 +tech-c: 0XCB-DN42 +mnt-by: 0XCB-MNT +source: DN42 diff --git a/data/aut-num/AS4242422551 b/data/aut-num/AS4242422551 new file mode 100644 index 000000000..318d33782 --- /dev/null +++ b/data/aut-num/AS4242422551 @@ -0,0 +1,6 @@ +aut-num: AS4242422551 +as-name: AS for vlcty network +admin-c: VLCTY-DN42 +tech-c: VLCTY-DN42 +mnt-by: VLCTY-MNT +source: DN42 diff --git a/data/aut-num/AS4242422576 b/data/aut-num/AS4242422576 new file mode 100644 index 000000000..517b976d9 --- /dev/null +++ b/data/aut-num/AS4242422576 @@ -0,0 +1,8 @@ +aut-num: AS4242422576 +as-name: ECOR-AS +admin-c: DFF3BC-DN42 +tech-c: DFF3BC-DN42 +descr: ECOR AS +org: ORG-ECOR +mnt-by: ECOR-MNT +source: DN42 diff --git a/data/aut-num/AS4242422610 b/data/aut-num/AS4242422610 new file mode 100644 index 000000000..f9defd2d5 --- /dev/null +++ b/data/aut-num/AS4242422610 @@ -0,0 +1,6 @@ +aut-num: AS4242422610 +as-name: VOTRIBE-AS +admin-c: VOTRIBE-DN42 +tech-c: VOTRIBE-DN42 +mnt-by: VOTRIBE-MNT +source: DN42 diff --git a/data/aut-num/AS46997 b/data/aut-num/AS46997 new file mode 100644 index 000000000..7163bc073 --- /dev/null +++ b/data/aut-num/AS46997 @@ -0,0 +1,6 @@ +aut-num: AS46997 +as-name: Nato Internet Service +admin-c: NATO-DN42 +tech-c: NATO-DN42 +mnt-by: NATO-MNT +source: ARIN diff --git a/data/dns/0xcb.dn42 b/data/dns/0xcb.dn42 new file mode 100644 index 000000000..8cf877dc9 --- /dev/null +++ b/data/dns/0xcb.dn42 @@ -0,0 +1,8 @@ +domain: 0xcb.dn42 +descr: 0xCB.dev +admin-c: 0XCB-DN42 +tech-c: 0XCB-DN42 +mnt-by: 0XCB-MNT +nserver: ns1.0xcb.dn42 172.22.135.20 +nserver: ns1.0xcb.dn42 fdfd:cbac:cb51:5957::20 +source: DN42 diff --git a/data/dns/as4242420119.dn42 b/data/dns/as4242420119.dn42 index b9da89120..491f922d4 100644 --- a/data/dns/as4242420119.dn42 +++ b/data/dns/as4242420119.dn42 @@ -1,9 +1,9 @@ domain: as4242420119.dn42 -nserver: ns1.as4242420119.dn42 fd42:5d71:219:1:addb:cca8:13a6:7fb -nserver: ns1.as4242420119.dn42 172.20.1.240 -nserver: ns2.as4242420119.dn42 fd42:5d71:219:1:addb:cca8:13a6:7fb -nserver: ns2.as4242420119.dn42 172.20.1.240 -ds-rdata: 36067 10 2 E9FACE1FBE06CF914850C9E1E522638DB973207F77676C88FB881F7BE35615B2 +nserver: ns1.as4242420119.dn42 fd42:5d71:219:0:addb:cca8:13a6:7fb +nserver: ns2.as4242420119.dn42 fd42:5d71:219:0:f54a:96c2:e50b:66af +nserver: ns1.as4242420119.dn42 172.20.1.252 +nserver: ns2.as4242420119.dn42 172.20.1.253 +ds-rdata: 27958 13 2 8ca148aa8598e8ca22d8989ef7598df8d3d78dcb1053f82e67ca9969832eefcd admin-c: JRB0001-DN42 tech-c: JRB0001-DN42 mnt-by: JRB0001-MNT diff --git a/data/dns/rg.dn42 b/data/dns/rg.dn42 new file mode 100644 index 000000000..7fdf3bdcf --- /dev/null +++ b/data/dns/rg.dn42 @@ -0,0 +1,7 @@ +domain: rg.dn42 +admin-c: RG-DN42 +tech-c: RG-DN42 +mnt-by: RG-MNT +nserver: ns1.foo.dn42 172.23.151.240 +nserver: ns1.foo.dn42 fdcc:8b7e:4593:53::1 +source: DN42 diff --git a/data/dns/snh.dn42 b/data/dns/snh.dn42 new file mode 100644 index 000000000..d53e534fd --- /dev/null +++ b/data/dns/snh.dn42 @@ -0,0 +1,9 @@ +domain: snh.dn42 +admin-c: SNH-DN42 +tech-c: SNH-DN42 +mnt-by: SNH-MNT +nserver: ns1.snh.dn42 172.20.21.142 +nserver: ns1.snh.dn42 fd36:cf83:36bd::e +nserver: ns2.snh.dn42 172.20.21.143 +nserver: ns2.snh.dn42 fd36:cf83:36bd::f +source: DN42 diff --git a/data/dns/w1kl4s.dn42 b/data/dns/w1kl4s.dn42 new file mode 100644 index 000000000..d157241c7 --- /dev/null +++ b/data/dns/w1kl4s.dn42 @@ -0,0 +1,7 @@ +domain: w1kl4s.dn42 +admin-c: W1KL4S-DN42 +tech-c: W1KL4S-DN42 +mnt-by: W1KL4S-MNT +nserver: ns1.w1kl4s.dn42 172.23.193.1 +nserver: ns2.w1kl4s.dn42 fd25:af2d:1f51:53::1 +source: DN42 diff --git a/data/inet6num/fd10:127:1919:810::_64 b/data/inet6num/fd10:127:1919:810::_64 new file mode 100644 index 000000000..9aef7630e --- /dev/null +++ b/data/inet6num/fd10:127:1919:810::_64 @@ -0,0 +1,8 @@ +inet6num: fd10:0127:1919:0810:0000:0000:0000:0000 - fd10:0127:1919:0810:ffff:ffff:ffff:ffff +cidr: fd10:127:1919:810::/64 +netname: chenx97 +admin-c: CHENX97-NEONETWORK +tech-c: CHENX97-NEONETWORK +remarks: Imported from neonetwork, do not edit! +mnt-by: DN42-MNT +source: NEONETWORK diff --git a/data/inet6num/fd10:127:233:1000::_64 b/data/inet6num/fd10:127:233:1000::_64 new file mode 100644 index 000000000..0a01f1f44 --- /dev/null +++ b/data/inet6num/fd10:127:233:1000::_64 @@ -0,0 +1,8 @@ +inet6num: fd10:0127:0233:1000:0000:0000:0000:0000 - fd10:0127:0233:1000:ffff:ffff:ffff:ffff +cidr: fd10:127:233:1000::/64 +netname: icecat +admin-c: ICECAT-NEONETWORK +tech-c: ICECAT-NEONETWORK +remarks: Imported from neonetwork, do not edit! +mnt-by: DN42-MNT +source: NEONETWORK diff --git a/data/inet6num/fd10:127:41::_48 b/data/inet6num/fd10:127:41::_48 index 4a659fc4b..cfc8bab73 100644 --- a/data/inet6num/fd10:127:41::_48 +++ b/data/inet6num/fd10:127:41::_48 @@ -1,6 +1,6 @@ inet6num: fd10:0127:0041:0000:0000:0000:0000:0000 - fd10:0127:0041:ffff:ffff:ffff:ffff:ffff cidr: fd10:127:41::/48 -netname: Septs IX IPv6 Pool +netname: NiceLabs IX IPv6 Pool admin-c: SEPTS-NEONETWORK tech-c: SEPTS-NEONETWORK remarks: Imported from neonetwork, do not edit! diff --git a/data/inet6num/fd10:127:6969::_48 b/data/inet6num/fd10:127:6969::_48 deleted file mode 100644 index 7d336898b..000000000 --- a/data/inet6num/fd10:127:6969::_48 +++ /dev/null @@ -1,8 +0,0 @@ -inet6num: fd10:0127:6969:0000:0000:0000:0000:0000 - fd10:0127:6969:ffff:ffff:ffff:ffff:ffff -cidr: fd10:127:6969::/48 -netname: santost12 -admin-c: SANTOST12-NEONETWORK -tech-c: SANTOST12-NEONETWORK -remarks: Imported from neonetwork, do not edit! -mnt-by: DN42-MNT -source: NEONETWORK diff --git a/data/inet6num/fd10:127::_64 b/data/inet6num/fd10:127::_64 new file mode 100644 index 000000000..dafc69171 --- /dev/null +++ b/data/inet6num/fd10:127::_64 @@ -0,0 +1,8 @@ +inet6num: fd10:0127:0000:0000:0000:0000:0000:0000 - fd10:0127:0000:0000:ffff:ffff:ffff:ffff +cidr: fd10:127::/64 +netname: Neo_Chen ZeroTier-One IPv6 Hub +admin-c: NEO-CHEN-NEONETWORK +tech-c: NEO-CHEN-NEONETWORK +remarks: Imported from neonetwork, do not edit! +mnt-by: DN42-MNT +source: NEONETWORK diff --git a/data/inet6num/fd22:3adc:a411::_48 b/data/inet6num/fd22:3adc:a411::_48 new file mode 100644 index 000000000..5461026b4 --- /dev/null +++ b/data/inet6num/fd22:3adc:a411::_48 @@ -0,0 +1,9 @@ +inet6num: fd22:3adc:a411:0000:0000:0000:0000:0000 - fd22:3adc:a411:ffff:ffff:ffff:ffff:ffff +cidr: fd22:3adc:a411::/48 +netname: VOTRIBE-NETWORK +descr: votribe +admin-c: VOTRIBE-DN42 +tech-c: VOTRIBE-DN42 +mnt-by: VOTRIBE-MNT +status: ASSIGNED +source: DN42 diff --git a/data/inet6num/fd23:42:c3d2:500::_56 b/data/inet6num/fd23:42:c3d2:500::_56 index 36ca8069b..9cd5ac69c 100644 --- a/data/inet6num/fd23:42:c3d2:500::_56 +++ b/data/inet6num/fd23:42:c3d2:500::_56 @@ -6,7 +6,7 @@ org: ORG-C3D2 admin-c: ASTRO-DN42 tech-c: ASTRO-DN42 mnt-by: ASTRO-MNT -nserver: ns.c3d2.de +nserver: dns.serv.zentralwerk.org status: ALLOCATED cidr: fd23:42:c3d2:500::/56 source: DN42 diff --git a/data/inet6num/fd25:af2d:1f51::_48 b/data/inet6num/fd25:af2d:1f51::_48 new file mode 100644 index 000000000..93103858f --- /dev/null +++ b/data/inet6num/fd25:af2d:1f51::_48 @@ -0,0 +1,10 @@ +inet6num: fd25:af2d:1f51:0000:0000:0000:0000:0000 - fd25:af2d:1f51:ffff:ffff:ffff:ffff:ffff +cidr: fd25:af2d:1f51::/48 +netname: W1KL4S-V6-NET +admin-c: W1KL4S-DN42 +tech-c: W1KL4S-DN42 +mnt-by: W1KL4S-MNT +status: ASSIGNED +nserver: ns1.w1kl4s.dn42 +nserver: ns2.w1kl4s.dn42 +source: DN42 diff --git a/data/inet6num/fd36:92df:6a62:9df2::_64 b/data/inet6num/fd36:92df:6a62:9df2::_64 new file mode 100644 index 000000000..422798ed1 --- /dev/null +++ b/data/inet6num/fd36:92df:6a62:9df2::_64 @@ -0,0 +1,11 @@ +inet6num: fd36:92df:6a62:9df2:0000:0000:0000:0000 - fd36:92df:6a62:9df2:ffff:ffff:ffff:ffff +cidr: fd36:92df:6a62:9df2::/64 +netname: ECOR-NETWORK +descr: Network of ECOR +country: US +admin-c: DFF3BC-DN42 +tech-c: DFF3BC-DN42 +mnt-by: ECOR-MNT +org: ORG-ECOR +status: ASSIGNED +source: DN42 diff --git a/data/inet6num/fd36:cf83:36bd::_48 b/data/inet6num/fd36:cf83:36bd::_48 new file mode 100644 index 000000000..7f8591542 --- /dev/null +++ b/data/inet6num/fd36:cf83:36bd::_48 @@ -0,0 +1,10 @@ +inet6num: fd36:cf83:36bd:0000:0000:0000:0000:0000 - fd36:cf83:36bd:ffff:ffff:ffff:ffff:ffff +cidr: fd36:cf83:36bd::/48 +netname: SNH-NETWORK +admin-c: SNH-DN42 +tech-c: SNH-DN42 +mnt-by: SNH-MNT +status: ASSIGNED +nserver: ns1.snh.dn42 +nserver: ns2.snh.dn42 +source: DN42 diff --git a/data/inet6num/fd42:4242:1099::_48 b/data/inet6num/fd42:4242:1099::_48 new file mode 100644 index 000000000..072139c28 --- /dev/null +++ b/data/inet6num/fd42:4242:1099::_48 @@ -0,0 +1,11 @@ +inet6num: fd42:4242:1099:0000:0000:0000:0000:0000 - fd42:4242:1099:ffff:ffff:ffff:ffff:ffff +cidr: fd42:4242:1099::/48 +netname: OWENSRESEARCH-NETWORK +descr: OWENSRESEARCH v6 ULA +country: US +admin-c: OWENSRESEARCH-DN42 +tech-c: OWENSRESEARCH-DN42 +mnt-by: OWENSRESEARCH-MNT +nserver: ns1.owensresearch.dn42 +status: ASSIGNED +source: DN42 diff --git a/data/inet6num/fd42:5d71:219::_48 b/data/inet6num/fd42:5d71:219::_48 index c9a49d7b0..183dc39bf 100644 --- a/data/inet6num/fd42:5d71:219::_48 +++ b/data/inet6num/fd42:5d71:219::_48 @@ -2,7 +2,7 @@ inet6num: fd42:5d71:0219:0000:0000:0000:0000:0000 - fd42:5d71:0219:fff netname: JRB0001 nserver: ns1.as4242420119.dn42 nserver: ns2.as4242420119.dn42 -ds-rdata: 17032 10 2 7A9920EFFE29DBBBF2EF23044B554B9DD8396064B5D428461C77D287261929A1 +ds-rdata: 27958 13 2 51ebdd82f68aea13ca1d1e7aad2282da2c471a7fc187c7852de33ced491411c9 admin-c: JRB0001-DN42 tech-c: JRB0001-DN42 mnt-by: JRB0001-MNT diff --git a/data/inet6num/fd91:9191:9191::_48 b/data/inet6num/fd91:9191:9191::_48 new file mode 100644 index 000000000..dfbb2544a --- /dev/null +++ b/data/inet6num/fd91:9191:9191::_48 @@ -0,0 +1,9 @@ +inet6num: fd91:9191:9191:0000:0000:0000:0000:0000 - fd91:9191:9191:ffff:ffff:ffff:ffff:ffff +cidr: fd91:9191:9191::/48 +netname: NEVLEZAY-NETWORK +descr: Network of Ne-vlezay80 +admin-c: NEVLEZAY-DN42 +tech-c: NEVLEZAY-DN42 +mnt-by: NEVLEZAY-MNT +status: ASSIGNED +source: DN42 diff --git a/data/inet6num/fd95:ea42:7f82::_48 b/data/inet6num/fd95:ea42:7f82::_48 new file mode 100644 index 000000000..db5aa57f5 --- /dev/null +++ b/data/inet6num/fd95:ea42:7f82::_48 @@ -0,0 +1,9 @@ +inet6num: fd95:ea42:7f82:0000:0000:0000:0000:0000 - fd95:ea42:7f82:ffff:ffff:ffff:ffff:ffff +cidr: fd95:ea42:7f82::/48 +netname: BITBAKERS-NET-1 +admin-c: JASTRUP-DN42 +tech-c: JASTRUP-DN42 +mnt-by: BITBAKERS-MNT +org: ORG-BITBAKERS +status: ASSIGNED +source: DN42 diff --git a/data/inet6num/fd96:399d:d7bd::_48 b/data/inet6num/fd96:399d:d7bd::_48 new file mode 100644 index 000000000..6d42aa579 --- /dev/null +++ b/data/inet6num/fd96:399d:d7bd::_48 @@ -0,0 +1,8 @@ +inet6num: fd96:399d:d7bd:0000:0000:0000:0000:0000 - fd96:399d:d7bd:ffff:ffff:ffff:ffff:ffff +cidr: fd96:399d:d7bd::/48 +netname: NATO-NET6-1 +admin-c: NATO-DN42 +tech-c: NATO-DN42 +mnt-by: NATO-MNT +status: ASSIGNED +source: DN42 diff --git a/data/inet6num/fdbe:f027:9965::_48 b/data/inet6num/fdbe:f027:9965::_48 new file mode 100644 index 000000000..c1f3f3ac8 --- /dev/null +++ b/data/inet6num/fdbe:f027:9965::_48 @@ -0,0 +1,10 @@ +inet6num: fdbe:f027:9965:0000:0000:0000:0000:0000 - fdbe:f027:9965:ffff:ffff:ffff:ffff:ffff +netname: MALINDEX-IPV6 +descr: Peer with me at i@imoe.ac.cn +country: CN +admin-c: MALINDEX-DN42 +tech-c: MALINDEX-DN42 +mnt-by: MALINDEX-MNT +status: ASSIGNED +cidr: fdbe:f027:9965::/48 +source: DN42 diff --git a/data/inet6num/fdc0:9c8d:ce13::_48 b/data/inet6num/fdc0:9c8d:ce13::_48 new file mode 100644 index 000000000..3749c5276 --- /dev/null +++ b/data/inet6num/fdc0:9c8d:ce13::_48 @@ -0,0 +1,8 @@ +inet6num: fdc0:9c8d:ce13:0000:0000:0000:0000:0000 - fdc0:9c8d:ce13:ffff:ffff:ffff:ffff:ffff +cidr: fdc0:9c8d:ce13::/48 +netname: VLCTY-NET-1 +admin-c: VLCTY-DN42 +tech-c: VLCTY-DN42 +mnt-by: VLCTY-MNT +status: ASSIGNED +source: DN42 diff --git a/data/inet6num/fdcc:8b7e:4593::_48 b/data/inet6num/fdcc:8b7e:4593::_48 new file mode 100644 index 000000000..20396fa84 --- /dev/null +++ b/data/inet6num/fdcc:8b7e:4593::_48 @@ -0,0 +1,10 @@ +inet6num: fdcc:8b7e:4593:0000:0000:0000:0000:0000 - fdcc:8b7e:4593:ffff:ffff:ffff:ffff:ffff +cidr: fdcc:8b7e:4593::/48 +netname: RECURSIVE-NETWORK +descr: Network of RG +country: US +admin-c: RG-DN42 +tech-c: RG-DN42 +mnt-by: RG-MNT +status: ASSIGNED +source: DN42 diff --git a/data/inet6num/fdd1:b48:88fb:fac5::_64 b/data/inet6num/fdd1:b48:88fb:fac5::_64 deleted file mode 100644 index cbfdcf3b2..000000000 --- a/data/inet6num/fdd1:b48:88fb:fac5::_64 +++ /dev/null @@ -1,9 +0,0 @@ -inet6num: fdd1:0b48:88fb:fac5:0000:0000:0000:0000 - fdd1:0b48:88fb:fac5:ffff:ffff:ffff:ffff -cidr: fdd1:b48:88fb:fac5::/64 -netname: ASHCK-Network -country: MX -admin-c: ASHCK-DN42 -tech-c: ASHCK-DN42 -mnt-by: GATUNO-MNT -status: ASSIGNED -source: DN42 diff --git a/data/inet6num/fdd6:6392:5e0c::_48 b/data/inet6num/fdd6:6392:5e0c::_48 new file mode 100644 index 000000000..764a17f95 --- /dev/null +++ b/data/inet6num/fdd6:6392:5e0c::_48 @@ -0,0 +1,10 @@ +inet6num: fdd6:6392:5e0c:0000:0000:0000:0000:0000 - fdd6:6392:5e0c:ffff:ffff:ffff:ffff:ffff +cidr: fdd6:6392:5e0c::/48 +netname: ELISE-NETWORK +descr: Personal Network of @EliseZeroTwo +country: DE +admin-c: ELISE-DN42 +tech-c: ELISE-DN42 +mnt-by: ELISE-MNT +status: ASSIGNED +source: DN42 diff --git a/data/inet6num/fde6:dee3:615d::_48 b/data/inet6num/fde6:dee3:615d::_48 deleted file mode 100644 index 683cc134f..000000000 --- a/data/inet6num/fde6:dee3:615d::_48 +++ /dev/null @@ -1,10 +0,0 @@ -inet6num: fde6:dee3:615d:0000:0000:0000:0000:0000 - fde6:dee3:615d:ffff:ffff:ffff:ffff:ffff -cidr: fde6:dee3:615d::/48 -netname: PLZ-NETWORK -descr: NETWORK of plz -country: MX -admin-c: PLZ-DN42 -tech-c: PLZ-DN42 -mnt-by: GATUNO-MNT -status: ASSIGNED -source: DN42 diff --git a/data/inet6num/fdfd:cbac:cb51:5957::_64 b/data/inet6num/fdfd:cbac:cb51:5957::_64 new file mode 100644 index 000000000..8ab2f3af6 --- /dev/null +++ b/data/inet6num/fdfd:cbac:cb51:5957::_64 @@ -0,0 +1,9 @@ +inet6num: fdfd:cbac:cb51:5957:0000:0000:0000:0000 - fdfd:cbac:cb51:5957:ffff:ffff:ffff:ffff +cidr: fdfd:cbac:cb51:5957::/64 +netname: 0XCB-V6-NET-1 +country: DE +admin-c: 0XCB-DN42 +tech-c: 0XCB-DN42 +mnt-by: 0XCB-MNT +status: ASSIGNED +source: DN42 diff --git a/data/inetnum/10.127.12.0_24 b/data/inetnum/10.127.12.0_24 index 34f16dbe7..2ecb7ef31 100644 --- a/data/inetnum/10.127.12.0_24 +++ b/data/inetnum/10.127.12.0_24 @@ -1,8 +1,8 @@ inetnum: 10.127.12.0 - 10.127.12.255 cidr: 10.127.12.0/24 netname: dfceaef NET -admin-c: YANGFL-NEONETWORK -tech-c: YANGFL-NEONETWORK +admin-c: YANGFL-NETWORK-NEONETWORK +tech-c: YANGFL-NETWORK-NEONETWORK remarks: Imported from neonetwork, do not edit! mnt-by: DN42-MNT source: NEONETWORK diff --git a/data/inetnum/10.127.16.0_24 b/data/inetnum/10.127.16.0_24 new file mode 100644 index 000000000..1da741128 --- /dev/null +++ b/data/inetnum/10.127.16.0_24 @@ -0,0 +1,8 @@ +inetnum: 10.127.16.0 - 10.127.16.255 +cidr: 10.127.16.0/24 +netname: Neo_Chen ZeroTier-One Hub +admin-c: NEO-CHEN-NEONETWORK +tech-c: NEO-CHEN-NEONETWORK +remarks: Imported from neonetwork, do not edit! +mnt-by: DN42-MNT +source: NEONETWORK diff --git a/data/inetnum/10.127.21.0_24 b/data/inetnum/10.127.21.0_24 new file mode 100644 index 000000000..9eaf8528c --- /dev/null +++ b/data/inetnum/10.127.21.0_24 @@ -0,0 +1,8 @@ +inetnum: 10.127.21.0 - 10.127.21.255 +cidr: 10.127.21.0/24 +netname: IEDON-NET +admin-c: IEDON-NEONETWORK +tech-c: IEDON-NEONETWORK +remarks: Imported from neonetwork, do not edit! +mnt-by: DN42-MNT +source: NEONETWORK diff --git a/data/inetnum/10.127.41.0_24 b/data/inetnum/10.127.41.0_24 index b1611e97c..ab29cb1fb 100644 --- a/data/inetnum/10.127.41.0_24 +++ b/data/inetnum/10.127.41.0_24 @@ -1,6 +1,6 @@ inetnum: 10.127.41.0 - 10.127.41.255 cidr: 10.127.41.0/24 -netname: Septs IX IPv4 Pool +netname: NiceLabs IX IPv4 Pool admin-c: SEPTS-NEONETWORK tech-c: SEPTS-NEONETWORK remarks: Imported from neonetwork, do not edit! diff --git a/data/inetnum/10.127.69.0_29 b/data/inetnum/10.127.69.0_29 deleted file mode 100644 index bf6d34866..000000000 --- a/data/inetnum/10.127.69.0_29 +++ /dev/null @@ -1,8 +0,0 @@ -inetnum: 10.127.69.0 - 10.127.69.7 -cidr: 10.127.69.0/29 -netname: santost12 -admin-c: SANTOST12-NEONETWORK -tech-c: SANTOST12-NEONETWORK -remarks: Imported from neonetwork, do not edit! -mnt-by: DN42-MNT -source: NEONETWORK diff --git a/data/inetnum/10.127.89.3_32 b/data/inetnum/10.127.89.3_32 new file mode 100644 index 000000000..4b5e2ee0c --- /dev/null +++ b/data/inetnum/10.127.89.3_32 @@ -0,0 +1,8 @@ +inetnum: 10.127.89.3 - 10.127.89.3 +cidr: 10.127.89.3/32 +netname: chenx97-conoha +admin-c: CHENX97-NEONETWORK +tech-c: CHENX97-NEONETWORK +remarks: Imported from neonetwork, do not edit! +mnt-by: DN42-MNT +source: NEONETWORK diff --git a/data/inetnum/172.20.1.0_24 b/data/inetnum/172.20.1.0_24 index c6152ac88..0b124d38f 100644 --- a/data/inetnum/172.20.1.0_24 +++ b/data/inetnum/172.20.1.0_24 @@ -2,7 +2,7 @@ inetnum: 172.20.1.0 - 172.20.1.255 netname: JRB0001 nserver: ns1.as4242420119.dn42 nserver: ns2.as4242420119.dn42 -ds-rdata: 19513 10 2 7880A37FEE6F6512B3BC3FDA8690D8ABA5C9D6432F4805827A7F58C21E9658A7 +ds-rdata: 27958 13 2 5d68d78ffdd0d7d92cf3654f06e1c9ab429f37d21b21ee9bb27970df070de1d9 admin-c: JRB0001-DN42 tech-c: JRB0001-DN42 mnt-by: JRB0001-MNT diff --git a/data/inetnum/172.20.143.128_25 b/data/inetnum/172.20.143.128_25 new file mode 100644 index 000000000..850253d82 --- /dev/null +++ b/data/inetnum/172.20.143.128_25 @@ -0,0 +1,9 @@ +inetnum: 172.20.143.128 - 172.20.143.255 +cidr: 172.20.143.128/25 +netname: ECOR-NETWORK +admin-c: DFF3BC-DN42 +tech-c: DFF3BC-DN42 +mnt-by: ECOR-MNT +org: ORG-ECOR +status: ASSIGNED +source: DN42 diff --git a/data/inetnum/172.20.171.160_27 b/data/inetnum/172.20.171.160_27 deleted file mode 100644 index d5b058632..000000000 --- a/data/inetnum/172.20.171.160_27 +++ /dev/null @@ -1,8 +0,0 @@ -inetnum: 172.20.171.160 - 172.20.171.191 -cidr: 172.20.171.160/27 -netname: PLZ-NETWORK -admin-c: PLZ-DN42 -tech-c: PLZ-DN42 -mnt-by: GATUNO-MNT -status: ASSIGNED -source: DN42 diff --git a/data/inetnum/172.20.184.240_29 b/data/inetnum/172.20.184.240_29 deleted file mode 100644 index 5d6294da2..000000000 --- a/data/inetnum/172.20.184.240_29 +++ /dev/null @@ -1,8 +0,0 @@ -inetnum: 172.20.184.240 - 172.20.184.247 -cidr: 172.20.184.240/29 -netname: SANTOST12-NETWORK -admin-c: SANTOST12-DN42 -tech-c: SANTOST12-DN42 -mnt-by: SANTOST12-MNT -status: ASSIGNED -source: DN42 diff --git a/data/inetnum/172.20.21.128_27 b/data/inetnum/172.20.21.128_27 new file mode 100644 index 000000000..537e009b5 --- /dev/null +++ b/data/inetnum/172.20.21.128_27 @@ -0,0 +1,10 @@ +inetnum: 172.20.21.128 - 172.20.21.159 +cidr: 172.20.21.128/27 +netname: SNH-NETWORK +admin-c: SNH-DN42 +tech-c: SNH-DN42 +mnt-by: SNH-MNT +status: ASSIGNED +nserver: ns1.snh.dn42 +nserver: ns2.snh.dn42 +source: DN42 diff --git a/data/inetnum/172.20.229.160_27 b/data/inetnum/172.20.229.160_27 index b2618e262..2ed2fb18b 100644 --- a/data/inetnum/172.20.229.160_27 +++ b/data/inetnum/172.20.229.160_27 @@ -1,4 +1,4 @@ -inetnum: 172.20.229.160-172.20.229.191 +inetnum: 172.20.229.160 - 172.20.229.191 cidr: 172.20.229.160/27 netname: E1MO-NETWORK admin-c: E1MO-DN42 diff --git a/data/inetnum/172.20.41.64_27 b/data/inetnum/172.20.41.64_27 deleted file mode 100644 index 0cf317644..000000000 --- a/data/inetnum/172.20.41.64_27 +++ /dev/null @@ -1,9 +0,0 @@ -inetnum: 172.20.41.64 - 172.20.41.95 -netname: ASHCK-NETWORK -country: MX -admin-c: ASHCK-DN42 -tech-c: ASHCK-DN42 -mnt-by: GATUNO-MNT -status: ASSIGNED -cidr: 172.20.41.64/27 -source: DN42 diff --git a/data/inetnum/172.20.55.192_28 b/data/inetnum/172.20.55.192_28 new file mode 100644 index 000000000..abb2c09be --- /dev/null +++ b/data/inetnum/172.20.55.192_28 @@ -0,0 +1,8 @@ +inetnum: 172.20.55.192 - 172.20.55.207 +cidr: 172.20.55.192/28 +netname: VOTRIBE-NETWORK +admin-c: VOTRIBE-DN42 +tech-c: VOTRIBE-DN42 +mnt-by: VOTRIBE-MNT +status: ASSIGNED +source: DN42 diff --git a/data/inetnum/172.20.72.0_21 b/data/inetnum/172.20.72.0_21 index 195d36937..f01e13407 100644 --- a/data/inetnum/172.20.72.0_21 +++ b/data/inetnum/172.20.72.0_21 @@ -1,4 +1,5 @@ inetnum: 172.20.72.0 - 172.20.79.255 +nserver: dns.serv.zentralwerk.org netname: NET-ZENTRALWERK-DN42 descr: zentralwerk network policy: reserved diff --git a/data/inetnum/172.21.66.0_27 b/data/inetnum/172.21.66.0_27 new file mode 100644 index 000000000..8752afa8a --- /dev/null +++ b/data/inetnum/172.21.66.0_27 @@ -0,0 +1,11 @@ +inetnum: 172.21.66.0 - 172.21.66.31 +netname: BITBAKERS-NET-DN42-POOL +descr: BitBakers Network Pool +country: NO +admin-c: JASTRUP-DN42 +tech-c: JASTRUP-DN42 +mnt-by: BITBAKERS-MNT +org: ORG-BITBAKERS +status: ASSIGNED +cidr: 172.21.66.0/27 +source: DN42 diff --git a/data/inetnum/172.21.99.128_29 b/data/inetnum/172.21.99.128_27 similarity index 64% rename from data/inetnum/172.21.99.128_29 rename to data/inetnum/172.21.99.128_27 index 1c32df63a..2f12ac1dc 100644 --- a/data/inetnum/172.21.99.128_29 +++ b/data/inetnum/172.21.99.128_27 @@ -1,9 +1,10 @@ -inetnum: 172.21.99.128 - 172.21.99.135 +inetnum: 172.21.99.128 - 172.21.99.159 netname: OWENSRESEARCH-NETWORK country: US admin-c: OWENSRESEARCH-DN42 tech-c: OWENSRESEARCH-DN42 mnt-by: OWENSRESEARCH-MNT +nserver: ns1.owensresearch.dn42 status: ASSIGNED -cidr: 172.21.99.128/29 +cidr: 172.21.99.128/27 source: DN42 diff --git a/data/inetnum/172.22.101.112_28 b/data/inetnum/172.22.101.112_28 new file mode 100644 index 000000000..d106ab9e6 --- /dev/null +++ b/data/inetnum/172.22.101.112_28 @@ -0,0 +1,8 @@ +inetnum: 172.22.101.112 - 172.22.101.127 +cidr: 172.22.101.112/28 +netname: ELISE-NETWORK +admin-c: ELISE-DN42 +tech-c: ELISE-DN42 +mnt-by: ELISE-MNT +status: ASSIGNED +source: DN42 diff --git a/data/inetnum/172.22.122.128_27 b/data/inetnum/172.22.122.128_27 new file mode 100644 index 000000000..5ab113366 --- /dev/null +++ b/data/inetnum/172.22.122.128_27 @@ -0,0 +1,11 @@ +inetnum: 172.22.122.128 - 172.22.122.159 +netname: MALINDEX-IPV4 +remarks: Peer with me at i@imoe.ac.cn +descr: Peer with me at i@imoe.ac.cn +country: CN +admin-c: MALINDEX-DN42 +tech-c: MALINDEX-DN42 +mnt-by: MALINDEX-MNT +status: ASSIGNED +cidr: 172.22.122.128/27 +source: DN42 diff --git a/data/inetnum/172.22.135.16_28 b/data/inetnum/172.22.135.16_28 new file mode 100644 index 000000000..196fa01d7 --- /dev/null +++ b/data/inetnum/172.22.135.16_28 @@ -0,0 +1,9 @@ +inetnum: 172.22.135.16 - 172.22.135.31 +cidr: 172.22.135.16/28 +netname: 0XCB-V4-NET-1 +country: DE +admin-c: 0XCB-DN42 +tech-c: 0XCB-DN42 +mnt-by: 0XCB-MNT +status: ASSIGNED +source: DN42 diff --git a/data/inetnum/172.22.64.0_24 b/data/inetnum/172.22.64.0_24 index adc8e8190..83c17dcc9 100644 --- a/data/inetnum/172.22.64.0_24 +++ b/data/inetnum/172.22.64.0_24 @@ -2,7 +2,7 @@ inetnum: 172.22.64.0 - 172.22.64.255 cidr: 172.22.64.0/24 netname: SCHRODINGER-DN42-INET4 descr: Schrodinger's hosted subnet INET4 -country: FR +country: NL admin-c: SCHRODINGER-DN42 tech-c: SCHRODINGER-DN42 mnt-by: SCHRODINGER-MNT diff --git a/data/inetnum/172.23.151.224_28 b/data/inetnum/172.23.151.224_28 new file mode 100644 index 000000000..671d3b5fa --- /dev/null +++ b/data/inetnum/172.23.151.224_28 @@ -0,0 +1,10 @@ +inetnum: 172.23.151.224 - 172.23.151.239 +netname: VCLTY-1 +descr: vlcty networks +country: DE +admin-c: VLCTY-DN42 +tech-c: VLCTY-DN42 +mnt-by: VLCTY-MNT +status: ASSIGNED +cidr: 172.23.151.224/28 +source: DN42 diff --git a/data/inetnum/172.23.151.240_28 b/data/inetnum/172.23.151.240_28 new file mode 100644 index 000000000..2c0af1d07 --- /dev/null +++ b/data/inetnum/172.23.151.240_28 @@ -0,0 +1,8 @@ +inetnum: 172.23.151.240 - 172.23.151.255 +cidr: 172.23.151.240/28 +netname: RECURSIVE-LEGACY-NETWORK +admin-c: RG-DN42 +tech-c: RG-DN42 +mnt-by: RG-MNT +status: ASSIGNED +source: DN42 diff --git a/data/inetnum/172.23.158.32_27 b/data/inetnum/172.23.158.32_27 new file mode 100644 index 000000000..fcbc74f83 --- /dev/null +++ b/data/inetnum/172.23.158.32_27 @@ -0,0 +1,8 @@ +inetnum: 172.23.158.32 - 172.23.158.63 +cidr: 172.23.158.32/27 +netname: NEVLEZAY-NETWORK +admin-c: NEVLEZAY-DN42 +tech-c: NEVLEZAY-DN42 +mnt-by: NEVLEZAY-MNT +status: ASSIGNED +source: DN42 diff --git a/data/inetnum/172.23.193.0_27 b/data/inetnum/172.23.193.0_27 new file mode 100644 index 000000000..3d3f24232 --- /dev/null +++ b/data/inetnum/172.23.193.0_27 @@ -0,0 +1,10 @@ +inetnum: 172.23.193.0 - 172.23.193.31 +cidr: 172.23.193.0/27 +netname: W1KL4S-V4-NET +admin-c: W1KL4S-DN42 +tech-c: W1KL4S-DN42 +mnt-by: W1KL4S-MNT +status: ASSIGNED +nserver: ns1.w1kl4s.dn42 +nserver: ns2.w1kl4s.dn42 +source: DN42 diff --git a/data/mntner/0XCB-MNT b/data/mntner/0XCB-MNT new file mode 100644 index 000000000..c4b6317aa --- /dev/null +++ b/data/mntner/0XCB-MNT @@ -0,0 +1,6 @@ +mntner: 0XCB-MNT +admin-c: 0XCB-DN42 +tech-c: 0XCB-DN42 +mnt-by: 0XCB-MNT +source: DN42 +auth: pgp-fingerprint BD7401F38011727F62D8D980FDA1A4D605892699 diff --git a/data/mntner/ASTRO-MNT b/data/mntner/ASTRO-MNT index 68096cc8a..5003a047b 100644 --- a/data/mntner/ASTRO-MNT +++ b/data/mntner/ASTRO-MNT @@ -4,3 +4,4 @@ admin-c: ASTRO-DN42 tech-c: ASTRO-DN42 mnt-by: ASTRO-MNT source: DN42 +auth: pgp-fingerprint A5EE826D645DBE35F9B0993358512AE87A69900F diff --git a/data/mntner/BITBAKERS-MNT b/data/mntner/BITBAKERS-MNT new file mode 100644 index 000000000..e3527f86f --- /dev/null +++ b/data/mntner/BITBAKERS-MNT @@ -0,0 +1,6 @@ +mntner: BITBAKERS-MNT +admin-c: JASTRUP-DN42 +tech-c: JASTRUP-DN42 +mnt-by: BITBAKERS-MNT +auth: pgp-fingerprint 82380827805E7C1C0BAF37C28A1B645730313ECD +source: DN42 diff --git a/data/mntner/ECOR-MNT b/data/mntner/ECOR-MNT new file mode 100644 index 000000000..51266eb4a --- /dev/null +++ b/data/mntner/ECOR-MNT @@ -0,0 +1,6 @@ +mntner: ECOR-MNT +admin-c: DFF3BC-DN42 +tech-c: DFF3BC-DN42 +mnt-by: ECOR-MNT +auth: pgp-fingerprint 44960CDAE39E57F2E8D5492AFAD5705C95A70008 +source: DN42 diff --git a/data/mntner/ELISE-MNT b/data/mntner/ELISE-MNT new file mode 100644 index 000000000..938f64022 --- /dev/null +++ b/data/mntner/ELISE-MNT @@ -0,0 +1,6 @@ +mntner: ELISE-MNT +admin-c: ELISE-DN42 +tech-c: ELISE-DN42 +mnt-by: ELISE-MNT +auth: pgp-fingerprint A959C773BC0D89A5998E0C5F83C9B05B776CE76C +source: DN42 diff --git a/data/mntner/MALINDEX-MNT b/data/mntner/MALINDEX-MNT new file mode 100644 index 000000000..e792f2860 --- /dev/null +++ b/data/mntner/MALINDEX-MNT @@ -0,0 +1,6 @@ +mntner: MALINDEX-MNT +admin-c: MALINDEX-DN42 +tech-c: MALINDEX-DN42 +mnt-by: MALINDEX-MNT +auth: pgp-fingerprint 10B0FFEFF2D8263A9B5987D418B67B0FDF8E4CF1 +source: DN42 diff --git a/data/mntner/NATO-MNT b/data/mntner/NATO-MNT index 8e89b5251..11b537b5f 100644 --- a/data/mntner/NATO-MNT +++ b/data/mntner/NATO-MNT @@ -1,6 +1,7 @@ mntner: NATO-MNT -descr: Maho Morichika -admin-c: DUMMY-DN42 -tech-c: DUMMY-DN42 +descr: Nato Morichika +admin-c: NATO-DN42 +tech-c: NATO-DN42 mnt-by: NATO-MNT +auth: pgp-fingerprint E8F687F1BDD7522159B5CB05978E4B558819DF80 source: DN42 diff --git a/data/mntner/NEVLEZAY-MNT b/data/mntner/NEVLEZAY-MNT new file mode 100644 index 000000000..e787d36d5 --- /dev/null +++ b/data/mntner/NEVLEZAY-MNT @@ -0,0 +1,6 @@ +mntner: NEVLEZAY-MNT +admin-c: NEVLEZAY-DN42 +tech-c: NEVLEZAY-DN42 +mnt-by: NEVLEZAY-MNT +auth: ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAABgQDADIFAhpqFhF6ZH1RxJSNd7Zh+Zm8NuAZapv1lSN2GrA5uz2kBNhUj6t+R+nWCLe3YBfeOYMz/CfqzNF0i2z0viUJYNHQbNGdRF8mkMn9Flh72OEUquVhKPGxoJPCEoRNmKP+IAwM5gmeoXVXpl0WTS2j2MhhlvckHbX05ugSw0eGJbFdVET+KfqDlY0T+GysXWsGtaOh0hJhHW6JDbZ8KpIfjyo8W/0NxBM609VOLAxsAB0aWfWNN0uH1Bgt+/FytDTzi2aUfYgwOons+KhUcqJSvVAgCKP5aKH29CrJ2zpg4Xv8fDaIjmtL+au8TmJC5YE/0ZblC8gwFSBa5spD9JpiPr4xmF5O5jxAlfJ5JIbTtHuasc60YSof/F46mRorDjWKGCm/pRODTWnWO1whJKStbbIdZo5QdyouV5yK8v0NxoMZg6zCvOG7miO3TpZoJqEtX29YGeXT/cWaLTb9vr+RmFIM/nWzlv981gYM4AnaPH3kbbTIZxEHKRdzMebM= user@nogtk +source: DN42 diff --git a/data/mntner/RG-MNT b/data/mntner/RG-MNT new file mode 100644 index 000000000..6c8d0508c --- /dev/null +++ b/data/mntner/RG-MNT @@ -0,0 +1,6 @@ +mntner: RG-MNT +admin-c: RG-DN42 +tech-c: RG-DN42 +mnt-by: RG-MNT +auth: pgp-fingerprint A8B5B9B9BC55C043672DB4DC324B5DCF474B8B95 +source: DN42 diff --git a/data/mntner/SCHRODINGER-MNT b/data/mntner/SCHRODINGER-MNT index 2ec98cf64..f4696d535 100644 --- a/data/mntner/SCHRODINGER-MNT +++ b/data/mntner/SCHRODINGER-MNT @@ -3,4 +3,5 @@ descr: Schrodinger maintainer object admin-c: SCHRODINGER-DN42 tech-c: SCHRODINGER-DN42 mnt-by: SCHRODINGER-MNT +auth: pgp-fingerprint b928b7e63c5d8c7c9b41d7ee1062edc8cd2a74e3 source: DN42 diff --git a/data/mntner/SNH-MNT b/data/mntner/SNH-MNT new file mode 100644 index 000000000..e68bb67ca --- /dev/null +++ b/data/mntner/SNH-MNT @@ -0,0 +1,6 @@ +mntner: SNH-MNT +admin-c: SNH-DN42 +tech-c: SNH-DN42 +mnt-by: SNH-MNT +auth: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIKgZLd/fbPclpWZjoJajUwLGj24voWQfaCEMDwGbLzFQ +source: DN42 diff --git a/data/mntner/VLCTY-MNT b/data/mntner/VLCTY-MNT new file mode 100644 index 000000000..2a9f6f8e5 --- /dev/null +++ b/data/mntner/VLCTY-MNT @@ -0,0 +1,6 @@ +mntner: VLCTY-MNT +admin-c: VLCTY-DN42 +tech-c: VLCTY-DN42 +mnt-by: VLCTY-MNT +auth: pgp-fingerprint 87A8C897300C3464E9F8B0ABFB7F2741CA106CBC +source: DN42 diff --git a/data/mntner/VOTRIBE-MNT b/data/mntner/VOTRIBE-MNT new file mode 100644 index 000000000..2dbe1565c --- /dev/null +++ b/data/mntner/VOTRIBE-MNT @@ -0,0 +1,6 @@ +mntner: VOTRIBE-MNT +admin-c: VOTRIBE-DN42 +tech-c: VOTRIBE-DN42 +mnt-by: VOTRIBE-MNT +auth: pgp-fingerprint 294AFE455687D61DD054DB001C717081B7F29EA9 +source: DN42 diff --git a/data/mntner/W1KL4S-MNT b/data/mntner/W1KL4S-MNT new file mode 100644 index 000000000..91f81ba97 --- /dev/null +++ b/data/mntner/W1KL4S-MNT @@ -0,0 +1,7 @@ +mntner: W1KL4S-MNT +admin-c: W1KL4S-DN42 +tech-c: W1KL4S-DN42 +mnt-by: W1KL4S-MNT +auth: pgp-fingerprint 0520E1E9942F365B838A5A2B4D23BFA98644479C +auth: ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAIHA+JLd3+Zmd/xWY6P7Vhf/OXxYZn1DH4GQxOpxf+wL8 +source: DN42 diff --git a/data/mntner/ZW-MNT b/data/mntner/ZW-MNT index e411d1986..56f88315d 100644 --- a/data/mntner/ZW-MNT +++ b/data/mntner/ZW-MNT @@ -4,3 +4,4 @@ admin-c: ASTRO-DN42 tech-c: ASTRO-DN42 mnt-by: ZW-MNT source: DN42 +auth: pgp-fingerprint A5EE826D645DBE35F9B0993358512AE87A69900F diff --git a/data/organisation/ORG-BITBAKERS b/data/organisation/ORG-BITBAKERS new file mode 100644 index 000000000..7e3ee12a6 --- /dev/null +++ b/data/organisation/ORG-BITBAKERS @@ -0,0 +1,6 @@ +organisation: ORG-BITBAKERS +org-name: BitBakers +admin-c: JASTRUP-DN42 +tech-c: JASTRUP-DN42 +mnt-by: BITBAKERS-MNT +source: DN42 diff --git a/data/organisation/ORG-ECOR b/data/organisation/ORG-ECOR new file mode 100644 index 000000000..3a51d8be8 --- /dev/null +++ b/data/organisation/ORG-ECOR @@ -0,0 +1,7 @@ +organisation: ORG-ECOR +org-name: Evans Computing Organization +admin-c: DFF3BC-DN42 +tech-c: DFF3BC-DN42 +abuse-c: DFF3BC-DN42 +mnt-by: ECOR-MNT +source: DN42 diff --git a/data/person/0XCB-DN42 b/data/person/0XCB-DN42 new file mode 100644 index 000000000..ebc9b22f9 --- /dev/null +++ b/data/person/0XCB-DN42 @@ -0,0 +1,7 @@ +person: Conor Burns +contact: mail+bgp@conor-burns.com +www: https://0xcb.dev/ +pgp-fingerprint: BD7401F38011727F62D8D980FDA1A4D605892699 +nic-hdl: 0XCB-DN42 +mnt-by: 0XCB-MNT +source: DN42 diff --git a/data/person/ALANYHQ-NEONETWORK b/data/person/ALANYHQ-NEONETWORK index d8e6d6902..8bb854b8f 100644 --- a/data/person/ALANYHQ-NEONETWORK +++ b/data/person/ALANYHQ-NEONETWORK @@ -1,7 +1,7 @@ person: alanyhq nic-hdl: ALANYHQ-NEONETWORK -contact: telegram:@alanyhq -contact: irc:alanyhq +contact: irc: alanyhq +contact: telegram: alanyhq remarks: Imported from neonetwork, do not edit! mnt-by: DN42-MNT source: NEONETWORK diff --git a/data/person/ASHCK-DN42 b/data/person/ASHCK-DN42 deleted file mode 100644 index 707dec426..000000000 --- a/data/person/ASHCK-DN42 +++ /dev/null @@ -1,6 +0,0 @@ -person: ASHCK admin -contact: email:alexisn.n@outlook.com -address: Somewhere the Hell -nic-hdl: ASHCK-DN42 -mnt-by: GATUNO-MNT -source: DN42 diff --git a/data/person/CHENX97-NEONETWORK b/data/person/CHENX97-NEONETWORK index 071b2d032..628c76088 100644 --- a/data/person/CHENX97-NEONETWORK +++ b/data/person/CHENX97-NEONETWORK @@ -1,7 +1,7 @@ person: chenx97 nic-hdl: CHENX97-NEONETWORK +contact: github: chenx97 e-mail: chenx97@gmail.com -contact: github:chenx97 remarks: Imported from neonetwork, do not edit! mnt-by: DN42-MNT source: NEONETWORK diff --git a/data/person/DFF3BC-DN42 b/data/person/DFF3BC-DN42 new file mode 100644 index 000000000..752dab714 --- /dev/null +++ b/data/person/DFF3BC-DN42 @@ -0,0 +1,5 @@ +person: Dustin Evans +contact: dustinaevans@gmail.com +nic-hdl: DFF3BC-DN42 +mnt-by: ECOR-MNT +source: DN42 diff --git a/data/person/ELISE-DN42 b/data/person/ELISE-DN42 new file mode 100644 index 000000000..a71a47cbb --- /dev/null +++ b/data/person/ELISE-DN42 @@ -0,0 +1,5 @@ +person: EliseZeroTwo +contact: elise@headpat.services +nic-hdl: ELISE-DN42 +mnt-by: ELISE-MNT +source: DN42 diff --git a/data/person/ICECAT-NEONETWORK b/data/person/ICECAT-NEONETWORK index e7ec5b37a..766531a4c 100644 --- a/data/person/ICECAT-NEONETWORK +++ b/data/person/ICECAT-NEONETWORK @@ -1,7 +1,7 @@ person: Icecat nic-hdl: ICECAT-NEONETWORK -contact: telegram:@fakeicecat -contact: github:Myer921 +contact: github: Myer921 +contact: telegram: fakeicecat remarks: Imported from neonetwork, do not edit! mnt-by: DN42-MNT source: NEONETWORK diff --git a/data/person/IEDON-NEONETWORK b/data/person/IEDON-NEONETWORK new file mode 100644 index 000000000..de478163c --- /dev/null +++ b/data/person/IEDON-NEONETWORK @@ -0,0 +1,6 @@ +person: iEdon +nic-hdl: IEDON-NEONETWORK +contact: irc: iedon +remarks: Imported from neonetwork, do not edit! +mnt-by: DN42-MNT +source: NEONETWORK diff --git a/data/person/JASTRUP-DN42 b/data/person/JASTRUP-DN42 new file mode 100644 index 000000000..459ec43f3 --- /dev/null +++ b/data/person/JASTRUP-DN42 @@ -0,0 +1,7 @@ +person: Jan Astrup +e-mail: jesastrup@gmail.com +contact: jastrup@hackint +pgp-fingerprint: 82380827805E7C1C0BAF37C28A1B645730313ECD +nic-hdl: JASTRUP-DN42 +mnt-by: BITBAKERS-MNT +source: DN42 diff --git a/data/person/JERRYXIAO-NEONETWORK b/data/person/JERRYXIAO-NEONETWORK index 0dbc7413a..caf3cf463 100644 --- a/data/person/JERRYXIAO-NEONETWORK +++ b/data/person/JERRYXIAO-NEONETWORK @@ -1,9 +1,10 @@ person: JerryXiao nic-hdl: JERRYXIAO-NEONETWORK +contact: github: isjerryxiao +contact: irc: JerryXiao@hackint +contact: telegram: JerryXiao e-mail: neonet@mail.jerryxiao.cc -contact: telegram:@JerryXiao -contact: irc:JerryXiao@hackint -contact: github:isjerryxiao +pgp-fingerprint: 186242204A2EC70438E9CE3B9D9CE43650FF2BAA remarks: Imported from neonetwork, do not edit! mnt-by: DN42-MNT source: NEONETWORK diff --git a/data/person/JUNDE-YHI-NEONETWORK b/data/person/JUNDE-YHI-NEONETWORK index 555763409..7daa069b5 100644 --- a/data/person/JUNDE-YHI-NEONETWORK +++ b/data/person/JUNDE-YHI-NEONETWORK @@ -1,9 +1,10 @@ person: Junde Yhi nic-hdl: JUNDE-YHI-NEONETWORK +contact: github: lmy441900 +contact: mastodon: @lmy441900@sn.angry.im +contact: telegram: lmy441900 e-mail: lmy441900@live.com -contact: telegram:@lmy441900 -contact: mastodon:@lmy441900@sn.angry.im -contact: github:lmy441900 +pgp-fingerprint: E6C74782A1FBEE741D09885FD274286F672C800A remarks: Imported from neonetwork, do not edit! mnt-by: DN42-MNT source: NEONETWORK diff --git a/data/person/LEEDAGEE-NEONETWORK b/data/person/LEEDAGEE-NEONETWORK index c420bf6e2..d9f8d722c 100644 --- a/data/person/LEEDAGEE-NEONETWORK +++ b/data/person/LEEDAGEE-NEONETWORK @@ -1,9 +1,9 @@ person: leedagee nic-hdl: LEEDAGEE-NEONETWORK +contact: github: leedagee +contact: irc: lizr +contact: telegram: leedagee e-mail: leedageea@gmail.com -contact: telegram:@leedagee -contact: irc:lizr -contact: github:leedagee remarks: Imported from neonetwork, do not edit! mnt-by: DN42-MNT source: NEONETWORK diff --git a/data/person/LIBREHOUSE-NEONETWORK b/data/person/LIBREHOUSE-NEONETWORK index 36ecd4700..f7d7ba85a 100644 --- a/data/person/LIBREHOUSE-NEONETWORK +++ b/data/person/LIBREHOUSE-NEONETWORK @@ -1,9 +1,10 @@ person: LibreHouse nic-hdl: LIBREHOUSE-NEONETWORK +contact: github: outloudvi +contact: mastodon: @outvi@moe.cat +contact: telegram: outvi e-mail: i+noc@outv.im -contact: telegram:@outvi -contact: mastodon:@outvi@moe.cat -contact: github:@outloudvi +pgp-fingerprint: 47627D2288B20CC033C7B7D72D83E4E89C15DA36 remarks: Imported from neonetwork, do not edit! mnt-by: DN42-MNT source: NEONETWORK diff --git a/data/person/LICSON-NEONETWORK b/data/person/LICSON-NEONETWORK index 309806bb2..ea8507b5d 100644 --- a/data/person/LICSON-NEONETWORK +++ b/data/person/LICSON-NEONETWORK @@ -1,9 +1,8 @@ person: licson nic-hdl: LICSON-NEONETWORK +contact: github: licson0729 +contact: telegram: licson e-mail: admin@licson.net -contact: telegram:licson -contact: irc:licson -contact: github:licson0729 remarks: Imported from neonetwork, do not edit! mnt-by: DN42-MNT source: NEONETWORK diff --git a/data/person/LINE-NZ-NEONETWORK b/data/person/LINE-NZ-NEONETWORK index 75b90473a..2eb8e94ea 100644 --- a/data/person/LINE-NZ-NEONETWORK +++ b/data/person/LINE-NZ-NEONETWORK @@ -1,7 +1,7 @@ person: LINE-NZ nic-hdl: LINE-NZ-NEONETWORK +contact: github: line-nz e-mail: dn42@line.co.nz -contact: github:line-nz remarks: Imported from neonetwork, do not edit! mnt-by: DN42-MNT source: NEONETWORK diff --git a/data/person/MALINDEX-DN42 b/data/person/MALINDEX-DN42 new file mode 100644 index 000000000..eab808673 --- /dev/null +++ b/data/person/MALINDEX-DN42 @@ -0,0 +1,5 @@ +person: Li Ma +contact: i@imoe.ac.cn +nic-hdl: MALINDEX-DN42 +mnt-by: MALINDEX-MNT +source: DN42 diff --git a/data/person/NATO-DN42 b/data/person/NATO-DN42 index 3874a97d0..60af72280 100644 --- a/data/person/NATO-DN42 +++ b/data/person/NATO-DN42 @@ -1,4 +1,4 @@ -person: Maho Morichika +person: Nato Morichika contact: nat@nat.moe nic-hdl: NATO-DN42 mnt-by: NATO-MNT diff --git a/data/person/NDOSKRNL-NEONETWORK b/data/person/NDOSKRNL-NEONETWORK index 22f632cc3..53a1f19ac 100644 --- a/data/person/NDOSKRNL-NEONETWORK +++ b/data/person/NDOSKRNL-NEONETWORK @@ -1,8 +1,8 @@ person: Ndoskrnl nic-hdl: NDOSKRNL-NEONETWORK remarks: We can start chat happily with Google Translate :) +contact: github: magic0whi e-mail: lollipop.studio.cn@gmail.com -contact: github:magic0whi remarks: Imported from neonetwork, do not edit! mnt-by: DN42-MNT source: NEONETWORK diff --git a/data/person/NEO-CHEN-NEONETWORK b/data/person/NEO-CHEN-NEONETWORK index 570a85c9b..0f8c94b48 100644 --- a/data/person/NEO-CHEN-NEONETWORK +++ b/data/person/NEO-CHEN-NEONETWORK @@ -1,10 +1,11 @@ person: Neo_Chen nic-hdl: NEO-CHEN-NEONETWORK +contact: github: Neo_Chen +contact: irc: Neo_Chen +contact: mastodon: @Neo_Chen@mastodon.xyz +contact: telegram: Neo_Chen e-mail: chenkolei@gmail.com -contact: telegram:@Neo_Chen -contact: irc:Neo_Chen -contact: mastodon:@Neo_Chen@mastodon.xyz -contact: github:NeoChen1024 +pgp-fingerprint: D306BB628837043150CD1E42CA0957540FD996CD remarks: Imported from neonetwork, do not edit! mnt-by: DN42-MNT source: NEONETWORK diff --git a/data/person/NEVLEZAY-DN42 b/data/person/NEVLEZAY-DN42 new file mode 100644 index 000000000..161eab2eb --- /dev/null +++ b/data/person/NEVLEZAY-DN42 @@ -0,0 +1,5 @@ +person: Alexey +contact: ne-vlezay80@yandex.ru +nic-hdl: NEVLEZAY-DN42 +mnt-by: NEVLEZAY-MNT +source: DN42 diff --git a/data/person/PLZ-DN42 b/data/person/PLZ-DN42 deleted file mode 100644 index f197ce7e6..000000000 --- a/data/person/PLZ-DN42 +++ /dev/null @@ -1,6 +0,0 @@ -person: MirandaPLZ admin -contact: mirandachidoplz@hotmail.com -address: BikiniBottom -nic-hdl: PLZ-DN42 -mnt-by: GATUNO-MNT -source: DN42 diff --git a/data/person/RG-DN42 b/data/person/RG-DN42 new file mode 100644 index 000000000..3e5de5f25 --- /dev/null +++ b/data/person/RG-DN42 @@ -0,0 +1,5 @@ +person: Recursive G +contact: g.recursive+dn42@gmail.com +nic-hdl: RG-DN42 +mnt-by: RG-MNT +source: DN42 diff --git a/data/person/SANTOST12-NEONETWORK b/data/person/SANTOST12-NEONETWORK deleted file mode 100644 index 53ce03a1f..000000000 --- a/data/person/SANTOST12-NEONETWORK +++ /dev/null @@ -1,7 +0,0 @@ -person: santost12 -nic-hdl: SANTOST12-NEONETWORK -e-mail: tylersantos12@protonmail.com -contact: github:santost12 -remarks: Imported from neonetwork, do not edit! -mnt-by: DN42-MNT -source: NEONETWORK diff --git a/data/person/SCHRODINGER-DN42 b/data/person/SCHRODINGER-DN42 index bc0c48c7e..b4c223636 100644 --- a/data/person/SCHRODINGER-DN42 +++ b/data/person/SCHRODINGER-DN42 @@ -1,6 +1,5 @@ person: SCHRODINGER contact: mailto:schrodinger@konundrum.org -contact: xmpp:schrodinger@jabber.ccc.de nic-hdl: SCHRODINGER-DN42 mnt-by: SCHRODINGER-MNT source: DN42 diff --git a/data/person/SEPTS-NEONETWORK b/data/person/SEPTS-NEONETWORK index 5b88c901a..73ffa889d 100644 --- a/data/person/SEPTS-NEONETWORK +++ b/data/person/SEPTS-NEONETWORK @@ -1,5 +1,7 @@ -person: Septs +person: septs nic-hdl: SEPTS-NEONETWORK +contact: github: NiceLabs +contact: telegram: septs e-mail: bgp@septs.email remarks: Imported from neonetwork, do not edit! mnt-by: DN42-MNT diff --git a/data/person/SNH-DN42 b/data/person/SNH-DN42 new file mode 100644 index 000000000..7d8d874bf --- /dev/null +++ b/data/person/SNH-DN42 @@ -0,0 +1,5 @@ +person: snh +contact: dn42@snh.io +nic-hdl: SNH-DN42 +mnt-by: SNH-MNT +source: DN42 diff --git a/data/person/STAPH-NEONETWORK b/data/person/STAPH-NEONETWORK index f7363a1e9..b1605085d 100644 --- a/data/person/STAPH-NEONETWORK +++ b/data/person/STAPH-NEONETWORK @@ -1,10 +1,10 @@ person: Staph nic-hdl: STAPH-NEONETWORK remarks: A programming prokaryotic organism +contact: github: StephDC +contact: irc: Staph_aureus +contact: telegram: Staph e-mail: staph@aosc.io -contact: telegram:@Staph -contact: irc:Staph_aureus -contact: github:StephDC remarks: Imported from neonetwork, do not edit! mnt-by: DN42-MNT source: NEONETWORK diff --git a/data/person/VLCTY-DN42 b/data/person/VLCTY-DN42 new file mode 100644 index 000000000..6ac43e346 --- /dev/null +++ b/data/person/VLCTY-DN42 @@ -0,0 +1,8 @@ +person: Josef 'veloc1ty' Stautner +contact: twitter: @DerVeloc1ty +nic-hdl: VLCTY-DN42 +mnt-by: VLCTY-MNT +pgp-fingerprint: 87A8C897300C3464E9F8B0ABFB7F2741CA106CBC +www: https://blog.veloc1ty.de +e-mail: dn42@veloc1ty.de +source: DN42 diff --git a/data/person/VOTRIBE-DN42 b/data/person/VOTRIBE-DN42 new file mode 100644 index 000000000..66c14e390 --- /dev/null +++ b/data/person/VOTRIBE-DN42 @@ -0,0 +1,6 @@ +person: votribe +contact: me@votri.be +nic-hdl: VOTRIBE-DN42 +mnt-by: VOTRIBE-MNT +pgp-fingerprint: 294AFE455687D61DD054DB001C717081B7F29EA9 +source: DN42 diff --git a/data/person/W1KL4S-DN42 b/data/person/W1KL4S-DN42 new file mode 100644 index 000000000..17651232b --- /dev/null +++ b/data/person/W1KL4S-DN42 @@ -0,0 +1,5 @@ +person: w1kl4s +contact: w1kl4s@cock.li +nic-hdl: W1KL4S-DN42 +mnt-by: W1KL4S-MNT +source: DN42 diff --git a/data/person/YANGFL-NEONETWORK b/data/person/YANGFL-NETWORK-NEONETWORK similarity index 77% rename from data/person/YANGFL-NEONETWORK rename to data/person/YANGFL-NETWORK-NEONETWORK index fa2465173..c2d4f1af7 100644 --- a/data/person/YANGFL-NEONETWORK +++ b/data/person/YANGFL-NETWORK-NEONETWORK @@ -1,5 +1,5 @@ person: Yangfl Network -nic-hdl: YANGFL-NEONETWORK +nic-hdl: YANGFL-NETWORK-NEONETWORK remarks: Imported from neonetwork, do not edit! mnt-by: DN42-MNT source: NEONETWORK diff --git a/data/route/10.127.12.0_24 b/data/route/10.127.12.0_24 index 36c0edba7..a2e89e49a 100644 --- a/data/route/10.127.12.0_24 +++ b/data/route/10.127.12.0_24 @@ -1,8 +1,8 @@ route: 10.127.12.0/24 origin: AS4242420140 max-length: 29 -admin-c: YANGFL-NEONETWORK -tech-c: YANGFL-NEONETWORK +admin-c: YANGFL-NETWORK-NEONETWORK +tech-c: YANGFL-NETWORK-NEONETWORK remarks: Imported from neonetwork, do not edit! mnt-by: DN42-MNT source: NEONETWORK diff --git a/data/route/10.127.16.0_24 b/data/route/10.127.16.0_24 new file mode 100644 index 000000000..11f2b8df8 --- /dev/null +++ b/data/route/10.127.16.0_24 @@ -0,0 +1,8 @@ +route: 10.127.16.0/24 +origin: AS4201270000 +max-length: 29 +admin-c: NEO-CHEN-NEONETWORK +tech-c: NEO-CHEN-NEONETWORK +remarks: Imported from neonetwork, do not edit! +mnt-by: DN42-MNT +source: NEONETWORK diff --git a/data/route/10.127.21.0_24 b/data/route/10.127.21.0_24 new file mode 100644 index 000000000..a150dc694 --- /dev/null +++ b/data/route/10.127.21.0_24 @@ -0,0 +1,8 @@ +route: 10.127.21.0/24 +origin: AS4242422189 +max-length: 29 +admin-c: IEDON-NEONETWORK +tech-c: IEDON-NEONETWORK +remarks: Imported from neonetwork, do not edit! +mnt-by: DN42-MNT +source: NEONETWORK diff --git a/data/route/10.127.69.0_29 b/data/route/10.127.69.0_29 deleted file mode 100644 index 154c30125..000000000 --- a/data/route/10.127.69.0_29 +++ /dev/null @@ -1,8 +0,0 @@ -route: 10.127.69.0/29 -origin: AS4201270009 -max-length: 29 -admin-c: SANTOST12-NEONETWORK -tech-c: SANTOST12-NEONETWORK -remarks: Imported from neonetwork, do not edit! -mnt-by: DN42-MNT -source: NEONETWORK diff --git a/data/route/10.127.89.3_32 b/data/route/10.127.89.3_32 new file mode 100644 index 000000000..e25c14a36 --- /dev/null +++ b/data/route/10.127.89.3_32 @@ -0,0 +1,8 @@ +route: 10.127.89.3/32 +origin: AS4201270003 +max-length: 32 +admin-c: CHENX97-NEONETWORK +tech-c: CHENX97-NEONETWORK +remarks: Imported from neonetwork, do not edit! +mnt-by: DN42-MNT +source: NEONETWORK diff --git a/data/route/172.20.143.128_25 b/data/route/172.20.143.128_25 new file mode 100644 index 000000000..d69bb01ae --- /dev/null +++ b/data/route/172.20.143.128_25 @@ -0,0 +1,4 @@ +route: 172.20.143.128/25 +origin: AS4242422575 +mnt-by: ECOR-MNT +source: DN42 diff --git a/data/route/172.20.171.160_27 b/data/route/172.20.171.160_27 deleted file mode 100644 index 0d8689799..000000000 --- a/data/route/172.20.171.160_27 +++ /dev/null @@ -1,4 +0,0 @@ -route: 172.20.171.160/27 -origin: AS4242422103 -mnt-by: GATUNO-MNT -source: DN42 diff --git a/data/route/172.20.172.16_28 b/data/route/172.20.172.16_28 index de2ea95da..99aca1c11 100644 --- a/data/route/172.20.172.16_28 +++ b/data/route/172.20.172.16_28 @@ -2,6 +2,7 @@ route: 172.20.172.16/28 origin: AS4242421231 admin-c: INRIN-DN42 tech-c: INRIN-DN42 +max-length: 28 pingable: 172.20.172.17 mnt-by: CAESIA-MNT source: DN42 diff --git a/data/route/172.20.184.240_29 b/data/route/172.20.184.240_29 deleted file mode 100644 index ac26a0237..000000000 --- a/data/route/172.20.184.240_29 +++ /dev/null @@ -1,4 +0,0 @@ -route: 172.20.184.240/29 -origin: AS4242420661 -mnt-by: SANTOST12-MNT -source: DN42 diff --git a/data/route/172.20.21.128_27 b/data/route/172.20.21.128_27 new file mode 100644 index 000000000..b86245293 --- /dev/null +++ b/data/route/172.20.21.128_27 @@ -0,0 +1,4 @@ +route: 172.20.21.128/27 +origin: AS4242420270 +mnt-by: SNH-MNT +source: DN42 diff --git a/data/route/172.20.41.64_27 b/data/route/172.20.41.64_27 deleted file mode 100644 index f2ddb1c50..000000000 --- a/data/route/172.20.41.64_27 +++ /dev/null @@ -1,4 +0,0 @@ -route: 172.20.41.64/27 -origin: AS4242421019 -mnt-by: GATUNO-MNT -source: DN42 diff --git a/data/route/172.20.55.192_28 b/data/route/172.20.55.192_28 new file mode 100644 index 000000000..b70f29800 --- /dev/null +++ b/data/route/172.20.55.192_28 @@ -0,0 +1,4 @@ +route: 172.20.55.192/28 +origin: AS4242422610 +mnt-by: VOTRIBE-MNT +source: DN42 diff --git a/data/route/172.21.66.0_27 b/data/route/172.21.66.0_27 new file mode 100644 index 000000000..4bd4d8b22 --- /dev/null +++ b/data/route/172.21.66.0_27 @@ -0,0 +1,4 @@ +route: 172.21.66.0/27 +origin: AS4242421224 +mnt-by: BITBAKERS-MNT +source: DN42 diff --git a/data/route/172.21.99.128_29 b/data/route/172.21.99.128_27 similarity index 72% rename from data/route/172.21.99.128_29 rename to data/route/172.21.99.128_27 index f37c8a89e..2e6e1e3c1 100644 --- a/data/route/172.21.99.128_29 +++ b/data/route/172.21.99.128_27 @@ -1,4 +1,4 @@ -route: 172.21.99.128/29 +route: 172.21.99.128/27 origin: AS4242421099 mnt-by: OWENSRESEARCH-MNT source: DN42 diff --git a/data/route/172.22.101.112_28 b/data/route/172.22.101.112_28 new file mode 100644 index 000000000..18ab4c2cf --- /dev/null +++ b/data/route/172.22.101.112_28 @@ -0,0 +1,4 @@ +route: 172.22.101.112/28 +origin: AS4242420621 +mnt-by: ELISE-MNT +source: DN42 diff --git a/data/route/172.22.122.128_27 b/data/route/172.22.122.128_27 new file mode 100644 index 000000000..1b06b4530 --- /dev/null +++ b/data/route/172.22.122.128_27 @@ -0,0 +1,4 @@ +route: 172.22.122.128/27 +origin: AS4242421668 +mnt-by: MALINDEX-MNT +source: DN42 diff --git a/data/route/172.22.135.16_28 b/data/route/172.22.135.16_28 new file mode 100644 index 000000000..52a0a6815 --- /dev/null +++ b/data/route/172.22.135.16_28 @@ -0,0 +1,4 @@ +route: 172.22.135.16/28 +origin: AS4242422203 +mnt-by: 0XCB-MNT +source: DN42 diff --git a/data/route/172.23.151.224_28 b/data/route/172.23.151.224_28 new file mode 100644 index 000000000..fde3accf6 --- /dev/null +++ b/data/route/172.23.151.224_28 @@ -0,0 +1,4 @@ +route: 172.23.151.224/28 +origin: AS4242422551 +mnt-by: VLCTY-MNT +source: DN42 diff --git a/data/route/172.23.151.240_28 b/data/route/172.23.151.240_28 new file mode 100644 index 000000000..133fa1632 --- /dev/null +++ b/data/route/172.23.151.240_28 @@ -0,0 +1,6 @@ +route: 172.23.151.240/28 +origin: AS4242421237 +admin-c: RG-DN42 +tech-c: RG-DN42 +mnt-by: RG-MNT +source: DN42 diff --git a/data/route/172.23.158.32_27 b/data/route/172.23.158.32_27 new file mode 100644 index 000000000..8fb668654 --- /dev/null +++ b/data/route/172.23.158.32_27 @@ -0,0 +1,4 @@ +route: 172.23.158.32/27 +origin: AS4242421181 +mnt-by: NEVLEZAY-MNT +source: DN42 diff --git a/data/route/172.23.193.0_27 b/data/route/172.23.193.0_27 new file mode 100644 index 000000000..f9fe4e2a2 --- /dev/null +++ b/data/route/172.23.193.0_27 @@ -0,0 +1,6 @@ +route: 172.23.193.0/27 +origin: AS4242421516 +admin-c: W1KL4S-DN42 +tech-c: W1KL4S-DN42 +mnt-by: W1KL4S-MNT +source: DN42 diff --git a/data/route6/fd10:127:1919:810::_64 b/data/route6/fd10:127:1919:810::_64 new file mode 100644 index 000000000..8dc6e52cd --- /dev/null +++ b/data/route6/fd10:127:1919:810::_64 @@ -0,0 +1,8 @@ +route6: fd10:127:1919:810::/64 +origin: AS4201270003 +max-length: 64 +admin-c: CHENX97-NEONETWORK +tech-c: CHENX97-NEONETWORK +remarks: Imported from neonetwork, do not edit! +mnt-by: DN42-MNT +source: NEONETWORK diff --git a/data/route6/fd10:127:233:1000::_64 b/data/route6/fd10:127:233:1000::_64 new file mode 100644 index 000000000..b85ea577d --- /dev/null +++ b/data/route6/fd10:127:233:1000::_64 @@ -0,0 +1,8 @@ +route6: fd10:127:233:1000::/64 +origin: AS4242421025 +max-length: 64 +admin-c: ICECAT-NEONETWORK +tech-c: ICECAT-NEONETWORK +remarks: Imported from neonetwork, do not edit! +mnt-by: DN42-MNT +source: NEONETWORK diff --git a/data/route6/fd10:127:6969::_48 b/data/route6/fd10:127:6969::_48 deleted file mode 100644 index 80db4c818..000000000 --- a/data/route6/fd10:127:6969::_48 +++ /dev/null @@ -1,8 +0,0 @@ -route6: fd10:127:6969::/48 -origin: AS4201270009 -max-length: 64 -admin-c: SANTOST12-NEONETWORK -tech-c: SANTOST12-NEONETWORK -remarks: Imported from neonetwork, do not edit! -mnt-by: DN42-MNT -source: NEONETWORK diff --git a/data/route6/fd10:127::_64 b/data/route6/fd10:127::_64 new file mode 100644 index 000000000..a94553a6f --- /dev/null +++ b/data/route6/fd10:127::_64 @@ -0,0 +1,8 @@ +route6: fd10:127::/64 +origin: AS4201270000 +max-length: 64 +admin-c: NEO-CHEN-NEONETWORK +tech-c: NEO-CHEN-NEONETWORK +remarks: Imported from neonetwork, do not edit! +mnt-by: DN42-MNT +source: NEONETWORK diff --git a/data/route6/fd22:3adc:a411::_48 b/data/route6/fd22:3adc:a411::_48 new file mode 100644 index 000000000..701ec2226 --- /dev/null +++ b/data/route6/fd22:3adc:a411::_48 @@ -0,0 +1,5 @@ +route6: fd22:3adc:a411::/48 +origin: AS4242422610 +max-length: 48 +mnt-by: VOTRIBE-MNT +source: DN42 diff --git a/data/route6/fd25:af2d:1f51::_48 b/data/route6/fd25:af2d:1f51::_48 new file mode 100644 index 000000000..4d25406cd --- /dev/null +++ b/data/route6/fd25:af2d:1f51::_48 @@ -0,0 +1,7 @@ +route6: fd25:af2d:1f51::/48 +origin: AS4242421516 +max-length: 48 +admin-c: W1KL4S-DN42 +tech-c: W1KL4S-DN42 +mnt-by: W1KL4S-MNT +source: DN42 diff --git a/data/route6/fd36:92df:6a62:9df2::_64 b/data/route6/fd36:92df:6a62:9df2::_64 new file mode 100644 index 000000000..fe31aa5ea --- /dev/null +++ b/data/route6/fd36:92df:6a62:9df2::_64 @@ -0,0 +1,5 @@ +route6: fd36:92df:6a62:9df2::/64 +origin: AS4242422575 +max-length: 64 +mnt-by: ECOR-MNT +source: DN42 diff --git a/data/route6/fd36:cf83:36bd::_48 b/data/route6/fd36:cf83:36bd::_48 new file mode 100644 index 000000000..3b16b5e4e --- /dev/null +++ b/data/route6/fd36:cf83:36bd::_48 @@ -0,0 +1,5 @@ +route6: fd36:cf83:36bd::/48 +origin: AS4242420270 +max-length: 48 +mnt-by: SNH-MNT +source: DN42 diff --git a/data/route6/fd42:4242:1099::_48 b/data/route6/fd42:4242:1099::_48 new file mode 100644 index 000000000..daa311d9d --- /dev/null +++ b/data/route6/fd42:4242:1099::_48 @@ -0,0 +1,5 @@ +route6: fd42:4242:1099::/48 +origin: AS4242421099 +max-length: 48 +mnt-by: OWENSRESEARCH-MNT +source: DN42 diff --git a/data/route6/fd91:9191:9191::_48 b/data/route6/fd91:9191:9191::_48 new file mode 100644 index 000000000..9d5af7379 --- /dev/null +++ b/data/route6/fd91:9191:9191::_48 @@ -0,0 +1,5 @@ +route6: fd91:9191:9191::/48 +origin: AS4242421181 +max-length: 48 +mnt-by: NEVLEZAY-MNT +source: DN42 diff --git a/data/route6/fd95:ea42:7f82::_48 b/data/route6/fd95:ea42:7f82::_48 new file mode 100644 index 000000000..4df636c77 --- /dev/null +++ b/data/route6/fd95:ea42:7f82::_48 @@ -0,0 +1,5 @@ +route6: fd95:ea42:7f82::/48 +origin: AS4242421224 +max-length: 48 +mnt-by: BITBAKERS-MNT +source: DN42 diff --git a/data/route6/fd96:399d:d7bd::_48 b/data/route6/fd96:399d:d7bd::_48 new file mode 100644 index 000000000..f157bbb39 --- /dev/null +++ b/data/route6/fd96:399d:d7bd::_48 @@ -0,0 +1,5 @@ +route6: fd96:399d:d7bd::/48 +origin: AS46997 +max-length: 48 +mnt-by: NATO-MNT +source: DN42 diff --git a/data/route6/fdbe:f027:9965::_48 b/data/route6/fdbe:f027:9965::_48 new file mode 100644 index 000000000..f84a6b2ae --- /dev/null +++ b/data/route6/fdbe:f027:9965::_48 @@ -0,0 +1,4 @@ +route6: fdbe:f027:9965::/48 +origin: AS4242421668 +mnt-by: MALINDEX-MNT +source: DN42 diff --git a/data/route6/fdc0:9c8d:ce13::_48 b/data/route6/fdc0:9c8d:ce13::_48 new file mode 100644 index 000000000..8e6bbfb46 --- /dev/null +++ b/data/route6/fdc0:9c8d:ce13::_48 @@ -0,0 +1,5 @@ +route6: fdc0:9c8d:ce13::/48 +origin: AS4242422551 +max-length: 48 +mnt-by: VLCTY-MNT +source: DN42 diff --git a/data/route6/fdcc:8b7e:4593::_48 b/data/route6/fdcc:8b7e:4593::_48 new file mode 100644 index 000000000..f6a720870 --- /dev/null +++ b/data/route6/fdcc:8b7e:4593::_48 @@ -0,0 +1,7 @@ +route6: fdcc:8b7e:4593::/48 +origin: AS4242421237 +max-length: 48 +admin-c: RG-DN42 +tech-c: RG-DN42 +mnt-by: RG-MNT +source: DN42 diff --git a/data/route6/fdd1:b48:88fb:fac5::_64 b/data/route6/fdd1:b48:88fb:fac5::_64 deleted file mode 100644 index c215b131f..000000000 --- a/data/route6/fdd1:b48:88fb:fac5::_64 +++ /dev/null @@ -1,4 +0,0 @@ -route6: fdd1:b48:88fb:fac5::/64 -origin: AS4242421019 -mnt-by: GATUNO-MNT -source: DN42 diff --git a/data/route6/fdd6:6392:5e0c::_48 b/data/route6/fdd6:6392:5e0c::_48 new file mode 100644 index 000000000..30a9750af --- /dev/null +++ b/data/route6/fdd6:6392:5e0c::_48 @@ -0,0 +1,5 @@ +route6: fdd6:6392:5e0c::/48 +origin: AS4242420621 +max-length: 48 +mnt-by: ELISE-MNT +source: DN42 diff --git a/data/route6/fdde:4869:4062::_48 b/data/route6/fdde:4869:4062::_48 index 73dc4fcae..2c14157bd 100644 --- a/data/route6/fdde:4869:4062::_48 +++ b/data/route6/fdde:4869:4062::_48 @@ -2,6 +2,7 @@ route6: fdde:4869:4062::/48 origin: AS4242421231 admin-c: INRIN-DN42 tech-c: INRIN-DN42 +max-length: 48 pingable: fdde:4869:4062::1 pingable: fdde:4869:4062:: mnt-by: CAESIA-MNT diff --git a/data/route6/fde6:dee3:615d::_48 b/data/route6/fde6:dee3:615d::_48 deleted file mode 100644 index 921ed38a5..000000000 --- a/data/route6/fde6:dee3:615d::_48 +++ /dev/null @@ -1,5 +0,0 @@ -route6: fde6:dee3:615d::/48 -origin: AS4242422103 -max-length: 48 -mnt-by: GATUNO-MNT -source: DN42 diff --git a/data/route6/fded:e0fd:05fe::_48 b/data/route6/fded:e0fd:5fe::_48 similarity index 73% rename from data/route6/fded:e0fd:05fe::_48 rename to data/route6/fded:e0fd:5fe::_48 index 2b60e57a0..582af2ec0 100644 --- a/data/route6/fded:e0fd:05fe::_48 +++ b/data/route6/fded:e0fd:5fe::_48 @@ -1,4 +1,4 @@ -route6: fded:e0fd:05fe::/48 +route6: fded:e0fd:5fe::/48 origin: AS4242420565 max-length: 48 mnt-by: E1MO-MNT diff --git a/data/route6/fdfd:cbac:cb51:5957::_64 b/data/route6/fdfd:cbac:cb51:5957::_64 new file mode 100644 index 000000000..280ceeda9 --- /dev/null +++ b/data/route6/fdfd:cbac:cb51:5957::_64 @@ -0,0 +1,4 @@ +route6: fdfd:cbac:cb51:5957::/64 +origin: AS4242422203 +mnt-by: 0XCB-MNT +source: DN42 diff --git a/utils/registry/Makefile b/utils/registry/Makefile new file mode 100644 index 000000000..6e18e28fd --- /dev/null +++ b/utils/registry/Makefile @@ -0,0 +1,2 @@ +test: + python3 -m unittest discover \ No newline at end of file diff --git a/utils/registry/dom/__init__.py b/utils/registry/dom/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/utils/registry/dom/filedom.py b/utils/registry/dom/filedom.py new file mode 100644 index 000000000..2f3449de5 --- /dev/null +++ b/utils/registry/dom/filedom.py @@ -0,0 +1,176 @@ +"""FileDOM parse and formating""" + +import re +from dataclasses import dataclass +from typing import Sequence, NamedTuple, List, Dict, Optional, Union +import ipaddress + +import log + + +@dataclass +class Value: + """Dom Value""" + value: str + + def __eq__(self, other: str) -> bool: + return self.value == other + + def __str__(self) -> str: + return self.value + + def lines(self) -> List[str]: + """return value split into lines""" + return self.value.splitlines() + + def fields(self) -> List[str]: + """return value split into fields""" + return self.value.split() + + def as_ip(self) -> Union[ipaddress.IPv4Address, ipaddress.IPv6Address]: + """return value as an ip address""" + return ipaddress.ip_address(self.value) + + def as_net(self) -> Union[ipaddress.IPv4Network, ipaddress.IPv6Network]: + """return value as an ip network""" + return ipaddress.ip_network(self.value) + + def as_key(self) -> str: + """Format as key name""" + return self.value.replace("/", "_").replace(" ", "") + + +class Row(NamedTuple): + """DOM Row""" + key: str + value: Value + lineno: int + src: str = None + + def loc(self) -> str: + """format as location""" + s = f"{self.src} Line {self.lineno} " + s += "" if self.key == "" else f"Key [{self.key}]:" + return s + + +class FileDOM: + """Parses a reg file""" + + def __init__(self, src: Optional[str] = None): + self.valid = False + self.dom = [] # type: List[Row] + self.keys = {} # type: Dict[str, int] + self.multi = {} # type: Dict[str, int] + self.mntner = [] # type: List[str] + self.schema = None # type: Optional[str] + self.src = src + + def parse(self, input_str: Sequence[str], src: Optional[str] = None): + """Parse an input string generator""" + dom = [] + keys = {} + multi = {} + mntner = [] + last_multi = None + self.valid = True + self.src = self.src if src is None else src + + for lineno, i in enumerate(input_str, 1): + # print(lineno, i) + if re.match(r'[ \t]', i): + if len(dom) == 0: + log.error(f"File {src} does not parse properly") + self.valid = False + return + + dom[-1][1] += "\n" + i.strip() + + if dom[-1][0] not in multi: + multi[dom[-1][0]] = [] + + if last_multi is None: + multi[dom[-1][0]].append(lineno) + last_multi = dom[-1][0] + + else: + if i[0] == '+': + dom[-1][1] += "\n" + + if dom[-1][0] not in multi: + multi[dom[-1][0]] = [] + + if last_multi is None: + multi[dom[-1][0]].append(lineno) + last_multi = dom[-1][0] + + i = i.split(":") + if len(i) < 2: + continue + + dom.append([i[0].strip(), ':'.join( + i[1:]).strip(), lineno - 1]) + + if i[0].strip() not in keys: + keys[i[0].strip()] = [] + + keys[i[0].strip()].append(len(dom) - 1) + + last_multi = None + + if dom[-1][0] == 'mnt-by': + mntner.append(dom[-1][1]) + + self.dom = [Row(k, Value(v), n) for k, v, n in dom] + self.keys = keys + self.multi = multi + self.mntner = mntner + self.schema = self.dom[0].key + + def __str__(self): + length = 19 + for i in self.dom: + if len(i.key) > length: + length = len(i.key) + 2 + s = "" + for i in self.dom: + sp = i.value.lines() + + s += i.key + ":" + " " * (length - len(i.key)) + sp[0] + "\n" + for m in sp[1:]: + if m == "": + s += "+\n" + continue + s += " " * (length + 1) + m + "\n" + + return s + + def get(self, key, index=0, default=None): + """Get a key value""" + if key not in self.keys: + return default + if index >= len(self.keys[key]) or index <= -len(self.keys[key]): + return default + + return self.dom[self.keys[key][index]].value + + def put(self, key, value, index=0, append=False): + """Put a value""" + if key not in self.keys: + self.keys[key] = [] + + i = (self.keys[key][index:index+1] or (None,))[0] + if i is None or append: + i = len(self.dom) + self.dom.append(Row(key, Value(value), i)) + elif i is not None: + self.dom[i] = Row(key, Value(value), i) + + if index not in self.keys[key]: + self.keys[key].append(i) + + +def read_file(fn: str) -> FileDOM: + """Parses FileDOM from file""" + with open(fn, mode='r', encoding='utf-8') as f: + return FileDOM().parse(f.readlines()) diff --git a/utils/registry/dom/schema.py b/utils/registry/dom/schema.py new file mode 100644 index 000000000..dd182584e --- /dev/null +++ b/utils/registry/dom/schema.py @@ -0,0 +1,244 @@ +"""Schema DOM""" +import re +from dataclasses import dataclass, field +from enum import Enum +from typing import Optional, List, Tuple + +import log + +from .filedom import FileDOM, Row + + +SCHEMA_NAMESPACE = "dn42." + + +class Level(Enum): + """State error level""" + info = 1 + warning = 2 + error = 3 + + +@dataclass +class State: + """State of schema check + """ + state: bool = True + msgs: List[Tuple[Level, Row, str]] = field(default_factory=list) + + def __eq__(self, other: bool) -> bool: + return self.state == other + + def __bool__(self): + return self.state + + def __str__(self) -> str: + return "PASS" if self.state else "FAIL" + + def print(self): + """print out state info""" + for (level, row, msg) in self.msgs: + if level == Level.info: + log.info(f"{row.loc()} {msg}") + elif level == Level.warning: + log.warning(f"{row.loc()} {msg}") + elif level == Level.error: + log.error(f"{row.loc()} {msg}") + + def info(self, r: Row, s: str): + """Add warning""" + self.msgs.append((Level.info, r, s)) + + def warning(self, r: Row, s: str): + """Add warning""" + self.msgs.append((Level.warning, r, s)) + + def error(self, r: Row, s: str): + """Add error""" + self.state = False + self.msgs.append((Level.error, r, s)) + + +class SchemaDOM: + """Schema DOM""" + def __init__(self, src: Optional[str] = None): + self.valid = False + self.name = None + self.ref = None + self.primary = None + self.type = None + self.src = src + self.schema = {} + + def parse(self, f: FileDOM): + """Parse a FileDOM into a SchemaDOM""" + + self.src = self.src if f.src is None else f.src + + schema = {} + for row in f.dom: + if row.key == 'ref': + self.ref = str(row.value) + elif row.key == 'schema': + self.name = str(row.value) + + if row.key != 'key': + continue + + lines = row.value.fields() + key = lines.pop(0) + + schema[key] = set() + for i in lines: + if i == ">": + break + + schema[key].add(i) + + schema = self._process_schema(schema) + + self.valid = True + self.schema = schema + return schema + + def _process_schema(self, schema): + for k, v in schema.items(): + if 'schema' in v: + self.type = k + + if 'primary' in v: + self.primary = k + schema[k].add("oneline") + if "multiline" in v: + schema[k].remove("multiline") + schema[k].add("single") + if "multiple" in v: + schema[k].remove("multiple") + schema[k].add("required") + if "optional" in v: + schema[k].remove("optional") + if "recommend" in v: + schema[k].remove("recommend") + if "deprecate" in v: + schema[k].remove("deprecate") + + if 'oneline' not in v: + schema[k].add("multiline") + if 'single' not in v: + schema[k].add("multiple") + + return schema + + def check_file(self, f: FileDOM, lookups=None) -> State: + """Check a FileDOM for correctness(tm)""" + state = State() + + if not f.valid: + state.error(Row("", "", 0, f.src), "file does not parse") + + state = self._check_file_structure(state, f) + state = self._check_file_values(state, f, lookups) + state = inetnum_check(state, f) + + print("CHECK\t%-54s\t%s\tMNTNERS: %s" % + (f.src, state, ','.join(f.mntner))) + + return state + + def _check_file_structure(self, state: State, f: FileDOM) -> State: + for k, v in self.schema.items(): + row = Row(k, "", 0, f.src) + if 'required' in v and k not in f.keys: + state.error(row, "not found and is required") + elif 'recommend' in v and k not in f.keys: + state.info(row, "not found and is recommended") + + if 'schema' in v and SCHEMA_NAMESPACE + f.dom[0].key != self.ref: + state.error(row, "not found and is required as the first line") + + if 'single' in v and k in f.keys and len(f.keys[k]) > 1: + state.warning(row, "first defined here and has repeated keys") + for i in f.keys[k][1:]: + state.error(row, f"repeated on {i} can only appear once") + + if 'oneline' in v and k in f.multi: + for i in f.keys[k]: + state.error(row, "can not have multiple lines") + + return state + + def _check_file_values(self, + state: State, + f: FileDOM, + lookups: Optional[List[Tuple[str, str]]] = None + ) -> State: + for row in f.dom: + c = row.value.as_key() + + src = "None" if f.src is None else f.src + if row.key == self.primary and not src.endswith(c): + state.error(row, + f"primary [{row.value}]" + + f" does not match filename [{src}].") + + if row.key.startswith("x-"): + state.info(row, "is user defined") + + elif row.key not in self.schema: + state.error(row, "not in schema") + continue + else: + if 'deprecate' in self.schema[row.key]: + state.info(row, "was found and is deprecated") + + if lookups is not None: + state = self._check_file_lookups(state, row, lookups) + + return state + + def _check_file_lookups(self, + state: State, + row: Row, + lookups: List[Tuple[str, str]] = None + ) -> State: + for o in self.schema[row.key]: + if o.startswith("lookup="): + refs = o.split("=", 2)[1].split(",") + val = row.value.fields()[0] + found = False + for ref in refs: + if (ref, val) in lookups: + found = True + if not found: + state.error(row, + f"references object {val} " + + f"in {refs} but does not exist.") + return state + + +def read_file(src: str) -> SchemaDOM: + """Parses SchemaDOM from file""" + with open(src, mode='r', encoding='utf-8') as f: + dom = FileDOM(src=src) + dom.parse(f.readlines()) + + return SchemaDOM().parse(dom) + + +def inetnum_check(state: State, dom: FileDOM) -> State: + """Sanity Check for checking the inet[6]num value""" + if dom.schema == "inetnum" or dom.schema == "inet6num": + cidr = dom.get("cidr").as_net() + Lnet = cidr.network_address.exploded + Hnet = cidr.broadcast_address.exploded + + cidr_range = f"{Lnet}-{Hnet}" + file_range = dom.get(dom.schema) + file_range = re.sub(r"\s+", "", str(file_range), flags=re.UNICODE) + + if cidr_range != file_range: + state.error(Row("", "", 0, dom.src), + f"inetnum range [{file_range}] " + + f"does not match: [{cidr_range}]") + + return state diff --git a/utils/registry/dom/test_filedom.py b/utils/registry/dom/test_filedom.py new file mode 100644 index 000000000..f3ca42e5e --- /dev/null +++ b/utils/registry/dom/test_filedom.py @@ -0,0 +1,136 @@ +#!/usr/bin/env python3 +"""Test FileDOM""" +import unittest +import inspect +from pprint import pprint + +from .filedom import FileDOM + + +class TestFileDOM(unittest.TestCase): + """Test FileDOM""" + + def test_parse(self): + """Test Parsing""" + s = """ + person: Xuu + remarks: test + + + Multi-Line + contact: xmpp:xuu@xmpp.dn42 + contact: mail:xuu@dn42.us + pgp-fingerprint: 20AE2F310A74EA7CEC3AE69F8B3B0604F164E04F + nic-hdl: XUU-DN42 + mnt-by: XUU-MNT + source: DN42 + """ + s = inspect.cleandoc(s)+"\n" + + dom = FileDOM() + dom.parse(s.splitlines()) + + self.assertTrue(dom.valid) + self.assertEqual(dom.schema, "person") + self.assertEqual(dom.get("person"), "Xuu") + self.assertEqual(dom.get("contact"), "xmpp:xuu@xmpp.dn42") + self.assertEqual(dom.get("contact", index=1), "mail:xuu@dn42.us") + self.assertIsNone(dom.get("xxx")) + self.assertEqual(dom.get("xxx", default="default"), "default") + self.assertEqual(str(dom), s) + + def test_put_values(self): + """Test putting values""" + s = """ + person: Xuu + remarks: test + contact: xmpp:xuu@xmpp.dn42 + contact: mail:xuu@dn42.us + pgp-fingerprint: 20AE2F310A74EA7CEC3AE69F8B3B0604F164E04F + nic-hdl: XUU-DN42 + mnt-by: XUU-MNT + source: DN42 + """ + s = inspect.cleandoc(s)+"\n" + + dom = FileDOM() + dom.parse(s.splitlines()) + + dom.put("source", "SOURIS") + self.assertEqual(dom.get("source"), "SOURIS") + + dom.put("contact", "mail:me@sour.is", append=True) + self.assertEqual(str(dom.get("contact")), "xmpp:xuu@xmpp.dn42") + self.assertEqual(dom.get("contact", index=1), "mail:xuu@dn42.us") + self.assertEqual(dom.get("contact", index=2), "mail:me@sour.is") + + def test_parse_ip6address(self): + """Test network ip address parsing""" + s = """ + inet6num: fd00:0000:0000:0000:0000:0000:0000:0000 - fdff:ffff:ffff:ffff:ffff:ffff:ffff:ffff + cidr: fd00::/8 + netname: ROOT-DN42-ULA + descr: DN42 ULA Address Space + status: ALLOCATED + policy: open + org: ORG-DN42 + mnt-by: DN42-MNT + source: DN42 + """ # noqa: E501 + + s = inspect.cleandoc(s)+"\n" + + dom = FileDOM() + dom.parse(s.splitlines()) + + cidr = dom.get("cidr").as_net() + self.assertEqual(cidr.compressed, "fd00::/8") + self.assertEqual( + cidr.exploded, "fd00:0000:0000:0000:0000:0000:0000:0000/8") + + end = cidr.broadcast_address.exploded + start = cidr.network_address.exploded + + self.assertEqual(dom.get("inet6num"), f"{start} - {end}") + + def test_parse_ip4address(self): + """Test network ip address parsing""" + s = """ + inetnum: 172.20.0.0 - 172.23.255.255 + cidr: 172.20.0.0/14 + netname: ROOT-DN42 + """ + + s = inspect.cleandoc(s)+"\n" + + dom = FileDOM() + dom.parse(s.splitlines()) + + cidr = dom.get("cidr").as_net() + self.assertEqual(cidr.compressed, "172.20.0.0/14") + self.assertEqual( + cidr.exploded, "172.20.0.0/14") + + end = cidr.broadcast_address.exploded + start = cidr.network_address.exploded + + self.assertEqual(dom.get("inetnum"), f"{start} - {end}") + + @unittest.skip + def test_bad_parse(self): + """bad parse stuff""" + s = """ + person: Xuu + EXTRA + : + source: DN42 + """ + s = inspect.cleandoc(s)+"\n" + + dom = FileDOM() + dom.parse(s.splitlines()) + pprint(dom.dom) + self.assertEqual(str(dom), s) + + +if __name__ == '__main__': + unittest.main() diff --git a/utils/registry/dom/test_schema.py b/utils/registry/dom/test_schema.py new file mode 100644 index 000000000..90b72ccec --- /dev/null +++ b/utils/registry/dom/test_schema.py @@ -0,0 +1,285 @@ +"""Test SchemaDOM""" + +import inspect +import unittest + +from .schema import SchemaDOM +from .filedom import FileDOM + + +def clean(s: str) -> str: + "Clean input for use" + return inspect.cleandoc(s) + "\n" + + +test_files = [ + ("SCHEMA-SCHEMA", clean( + r""" + schema: SCHEMA-SCHEMA + ref: dn42.schema + key: schema required single primary schema > [name] + key: ref required single > [schema] + key: key required multiple > [key-name] + {required|optional|recommend|deprecate} + {single|multiple} {primary|} {schema|} + lookup=str '>' [spec]... + key: mnt-by required multiple lookup=dn42.mntner > [mntner] + key: remarks optional multiple > [text]... + key: source required single lookup=dn42.registry + mnt-by: DN42-MNT + source: DN42 + remarks: # option descriptions + Attribute names must match /[a-zA-Z]([a-zA-Z0-9_\-]*[a-zA-Z0-9])?/. + + + required + : object required to have at least one + optional + : object not required to have at least one + + + single + : only one of this type allowed + multiple + : more than one of this type allowed + + + primary + : use field as lookup key for lookup + * only one allowed per schema + * does not allow newlines + + + schema + : use field name as the name of the schema + * only one allowed per schema + * does not allow newlines + + + lookup + : schema match to use for related record + """ # noqa: E501 + )), + ("INETNUM-SCHEMA", clean( + r""" + schema: INETNUM-SCHEMA + ref: dn42.inetnum + key: inetnum required single schema + key: cidr required single primary + key: netname required single + key: nserver optional multiple > [domain-name] + key: country optional multiple + key: descr optional single + key: status optional single > {ALLOCATED|ASSIGNED} {PI|PA|} + key: policy optional single > {open|closed|ask|reserved} + key: admin-c optional multiple lookup=dn42.person,dn42.role + key: tech-c optional multiple lookup=dn42.person,dn42.role + key: zone-c optional multiple lookup=dn42.person,dn42.role + key: mnt-by optional multiple lookup=dn42.mntner + key: remarks optional multiple + key: source required single lookup=dn42.registry + mnt-by: DN42-MNT + source: DN42 + """ # noqa: E501 + )), + ("ROLE-SCHEMA", clean( + r""" + schema: ROLE-SCHEMA + ref: dn42.role + key: role required single schema + key: nic-hdl required single primary + key: mnt-by required multiple lookup=dn42.mntner + key: org optional multiple lookup=dn42.organisation + key: admin-c optional multiple lookup=dn42.person + key: tech-c optional multiple lookup=dn42.person + key: abuse-c optional multiple lookup=dn42.person + key: abuse-mailbox optional multiple + key: descr optional single + key: remarks optional multiple + key: source required single lookup=dn42.registry + mnt-by: DN42-MNT + source: DN42 + """ # noqa: E501 + )), + ("PERSON-SCHEMA", clean( + r""" + schema: PERSON-SCHEMA + ref: dn42.person + key: person required single schema + key: nic-hdl required single primary + key: mnt-by required multiple lookup=dn42.mntner + key: org optional multiple lookup=dn42.organisation + key: nick optional multiple + key: pgp-fingerprint optional multiple + key: www optional multiple + key: e-mail optional multiple + key: contact optional multiple + key: abuse-mailbox optional multiple + key: phone optional multiple + key: fax-no optional multiple + key: address optional multiple + key: remarks optional multiple + key: source required single lookup=dn42.registry + mnt-by: DN42-MNT + source: DN42 + """ # noqa: E501 + )), + ("MNTNER-SCHEMA", clean( + r""" + schema: MNTNER-SCHEMA + ref: dn42.mntner + key: mntner required single primary schema + key: descr optional single + key: mnt-by required multiple lookup=dn42.mntner + key: admin-c optional multiple lookup=dn42.person,dn42.role + key: tech-c optional multiple lookup=dn42.person,dn42.role + key: auth optional multiple > [method] [value]... + key: org optional multiple lookup=dn42.organisation + key: abuse-mailbox optional single + key: remarks optional multiple + key: source required single lookup=dn42.registry + mnt-by: DN42-MNT + source: DN42 + """ # noqa: E501 + )), + ("REGISTRY-SCHEMA", clean( + r""" + schema: REGISTRY-SCHEMA + ref: dn42.registry + key: registry required single primary schema + key: url required multiple + key: descr optional multiple + key: mnt-by required multiple lookup=dn42.mntner + key: admin-c optional multiple lookup=dn42.person,dn42.role + key: tech-c optional multiple lookup=dn42.person,dn42.role + key: source required single lookup=dn42.registry + mnt-by: DN42-MNT + source: DN42 + """ # noqa: E501 + )), + ("172.21.64.0_29", clean( + r""" + inetnum: 172.21.64.0 - 172.21.64.7 + cidr: 172.21.64.0/29 + netname: XUU-TEST-NET + descr: Xuu TestNet + country: US + admin-c: SOURIS-DN42 + tech-c: SOURIS-DN42 + mnt-by: XUU-MNT + nserver: lavana.sjc.xuu.dn42 + nserver: kapha.mtr.xuu.dn42 + nserver: rishi.bre.xuu.dn42 + status: ALLOCATED + remarks: This is a transfernet. + source: DN42 + """ + )), + ("SOURIS-DN42", clean( + r""" + role: Souris Organization Role + abuse-mailbox: abuse@sour.is + admin-c: XUU-DN42 + tech-c: XUU-DN42 + nic-hdl: SOURIS-DN42 + mnt-by: XUU-MNT + source: DN42 + """ + )), + ("XUU-DN42", clean( + r""" + person: Xuu + remarks: test + contact: xmpp:xuu@xmpp.dn42 + contact: mail:xuu@dn42.us + pgp-fingerprint: 20AE2F310A74EA7CEC3AE69F8B3B0604F164E04F + nic-hdl: XUU-DN42 + mnt-by: XUU-MNT + source: DN42 + """ + )), + ("XUU-MNT", clean( + r""" + mntner: XUU-MNT + descr: Xuu Maintenance Object + admin-c: SOURIS-DN42 + tech-c: SOURIS-DN42 + mnt-by: XUU-MNT + source: DN42 + """ + )), + ("DN42-MNT", clean( + r""" + mntner: DN42-MNT + descr: mntner for owning objects in the name of whole dn42. + mnt-by: DN42-MNT + source: DN42 + """ # noqa: E501 + )), + ("DN42", clean( + r""" + registry: DN42 + url: https://git.dn42.us/dn42/registry + mnt-by: DN42-MNT + source: DN42 + """ + )), + ] + + +class TestSchema(unittest.TestCase): + """Test SchemaDOM + """ + + def test_schema_parse(self): + """Test schema parsing + """ + d = FileDOM(src="schema/SCHEMA-SCHEMA") + d.parse(test_files[0][1].splitlines()) + + self.assertEqual(str(d), test_files[0][1]) + self.assertTrue(d.valid) + + s = SchemaDOM() + s.parse(d) + + self.assertTrue(s.valid) + + state = s.check_file(d) + + self.assertTrue(state) + state.print() + + def test_schema_all(self): + """Test schema failures + """ + + schemas = {} + for (fname, text) in { + row for row in test_files if row[0].endswith("-SCHEMA")}: + dom = FileDOM(src=fname) + dom.parse(text.splitlines()) + + schema = SchemaDOM() + schema.parse(dom) + + self.assertTrue(schema.valid) + + schemas[schema.ref] = schema + + files = [] + idx = {} + + for (fname, text) in test_files: + dom = FileDOM(src=fname) + dom.parse(text.splitlines()) + + self.assertTrue(dom.valid) + self.assertEqual(str(dom), text) + + files.append(dom) + + name = dom.src.split("/")[-1].replace("_", "/") + idx[(f"dn42.{dom.schema}", name)] = (dom.src, ",".join(dom.mntner)) + + for dom in files: + s = schemas["dn42." + dom.schema] + state = s.check_file(dom, idx) + + self.assertTrue(state) + state.print() diff --git a/utils/registry/log.py b/utils/registry/log.py new file mode 100644 index 000000000..52dab50aa --- /dev/null +++ b/utils/registry/log.py @@ -0,0 +1,206 @@ +"""Simple Logger""" + +from __future__ import print_function + +import os +import sys +import inspect +import datetime +import traceback +from enum import IntEnum + +OUTPUT = sys.stderr + +LEVEL = ["CRIT", "ERR ", "WARN", "NOTE", "INFO", "DBUG", "...."] +CLEVEL = ["\x1B[41mCRIT\x1B[0m", + "\x1B[31mERR \x1B[0m", + "\x1B[33mWARN\x1B[0m", + "\x1B[32mNOTE\x1B[0m", + "\x1B[34mINFO\x1B[0m", + "\x1B[90mDBUG\x1B[0m", + "\x1B[90m....\x1B[0m"] + +MSG = "{0} {1} {2} {3} {4} {5} :: {6}" +CMSG = "[{1}]\x1B[90m {2} {3}:{5} [{4}]\x1B[0m {6}\x1B[0m" +CMULTI = "[{1}]\x1B[90m {2}\x1B[0m" + + +class Level(IntEnum): + """Log Level enumeration""" + VERB_CRITICAL = 0 + VERB_ERROR = 1 + VERB_WARN = 2 + VERB_NOTICE = 3 + VERB_INFO = 4 + VERB_DEBUG = 5 + VERB_NONE = -1 + + +class Log: + """Logger""" + log_dir = "" + log_pfx = "main" + + level_console = Level.VERB_ERROR + level_file = Level.VERB_NONE + level_full = False + + count = [0, 0, 0, 0, 0, 0] + + def __init__(self): + self.prog_name = sys.argv[0].rsplit("/", 1)[-1] + self.prog_name = self.prog_name.split(".", 1)[0] + self.log_pfx = self.prog_name + + def __del__(self): + if self.level_console >= 5: + crit, err, warn, note, inf, dbug = tuple(self.count) + os.write(1, "[\x1B[90m\x1B[90mDBUG\x1B[90m] Log Counters" + + f" crit:{crit}" + + f" err:{err}" + + f" warn: {warn}" + + f" note: {note}" + + f" info: {inf}" + + f" dbug: {dbug}\x1B[0m\n") + + def set_dir(self, name: str): + """Set output directory""" + if not os.path.isdir(name): + os.makedirs(name) + self.log_dir = name + + def output(self, level: Level, message: str, frame=1): + """Write a message to console or log, conditionally.""" + if level < 0 or level > 5: + level = 5 + + self.count[level] += 1 + + # function_name = inspect.stack()[1][3] + cur_date = datetime.datetime.now() + + (frame, file, ln, fn, _, _) = inspect.getouterframes( + inspect.currentframe())[frame] + + message = str(message).split("\n") + cmsg = CMSG if self.level_full else CMULTI + + if self.level_console >= level: + + if len(message) == 1: + if self.level_full: + arg = (str(cur_date), + CLEVEL[level], + self.prog_name, + file, fn, ln, message[0]) + else: + arg = str(cur_date), CLEVEL[level], message[0] + + print(cmsg.format(*arg), file=OUTPUT) + else: + if self.level_full: + arg = str(cur_date), CLEVEL[ + level], self.prog_name, file, fn, ln, "" + print(cmsg.format(*arg), file=OUTPUT) + + for line in message: + print(CMULTI.format(str(cur_date), + CLEVEL[Level.VERB_NONE], line), + file=OUTPUT) + + if self.level_file >= level: + self.set_dir("./logs") + log_file_name = os.path.join( + self.log_dir, + self.log_pfx + str(cur_date.strftime('%Y-%m-%d')) + ".txt") + + with open(log_file_name, "a") as logger: + logger.write(MSG.format(str(cur_date), + LEVEL[level], + self.prog_name, + file, fn, ln, message[0]) + "\n") + for line in message[1:]: + logger.write(MSG.format(str(cur_date), + LEVEL[Level.VERB_NONE], + self.prog_name, + file, fn, ln, line) + "\n") + + def fatal(self, message: str): + """Log a fatal error""" + self.output(Level.VERB_CRITICAL, message, 2) + sys.exit(1) + + def critical(self, message: str): + """Log a critical error""" + self.output(Level.VERB_CRITICAL, message, 2) + + def error(self, message: str): + """Log a normal error""" + self.output(Level.VERB_ERROR, message, 2) + + def warning(self, message: str): + """Log a warning""" + self.output(Level.VERB_WARN, message, 2) + + def notice(self, message: str): + """Log a notice""" + self.output(Level.VERB_NOTICE, message, 2) + + def info(self, message: str): + """Log an informational""" + self.output(Level.VERB_INFO, message, 2) + + def debug(self, message: str): + """Log a debug""" + self.output(Level.VERB_DEBUG, message, 2) + + +default = Log() + +fatal = default.fatal +critical = default.critical +error = default.error +warning = default.warning +notice = default.notice +info = default.info +debug = default.debug + + +class LogException: + """Catches an exception to log it""" + stop = None + + def __init__(self, stop: bool = True): + self.stop = stop + + def __enter__(self, stop: bool = True): + pass + + def __exit__(self, exc_type, value, trace) -> bool: + + if exc_type is None: + return True + + if exc_type is SystemExit and value.args == (0,): + return True + + log_string, _ = fmt_exception(exc_type, value, trace) + default.output(Level.VERB_CRITICAL, 'Failure\n\n' + log_string, 2) + + if self.stop is False: + return False + + fatal("ABORTING EXECUTION") + return False + + +def fmt_exception(exc_type, exc_value, exc_traceback): + """format exception to string""" + lines = traceback.format_exception(exc_type, exc_value, exc_traceback) + log_string = ''.join(line for line in lines) + email_string = ''.join('
' + line for line in lines) + + return log_string, email_string + + +exception = LogException diff --git a/utils/registry/run.py b/utils/registry/run.py new file mode 100644 index 000000000..e69de29bb