mirror of
https://github.com/NeoCloud/NeoNetwork
synced 2024-11-22 18:40:41 +08:00
dns: add DNSKEY to db
This commit is contained in:
parent
fb8fece6f2
commit
226855c5f2
1 changed files with 20 additions and 9 deletions
|
@ -4,9 +4,14 @@ from pathlib import Path
|
||||||
|
|
||||||
import toml
|
import toml
|
||||||
|
|
||||||
from rfc2317 import gen_reverse_pointers
|
from rfc2317 import gen_reverse_pointers, ZONE as RFC2317_ZONE
|
||||||
|
from roa import export_dnssec_dnskey
|
||||||
|
|
||||||
RESOLVE_FILE = Path("dns", "db.10.127")
|
ZONE_FILE_MAP = {
|
||||||
|
'neo.': Path("dns", "neonetwork"),
|
||||||
|
'127.10.in-addr.arpa.': Path("dns", "db.10.127"),
|
||||||
|
'7.2.1.0.0.1.d.f.ip6.arpa.': Path("dns", "db.fd10.127")
|
||||||
|
}
|
||||||
RFC2317_FILE = Path("dns", "rfc2317.toml")
|
RFC2317_FILE = Path("dns", "rfc2317.toml")
|
||||||
|
|
||||||
|
|
||||||
|
@ -20,14 +25,20 @@ def iter_rfc2317_entry():
|
||||||
|
|
||||||
|
|
||||||
def main():
|
def main():
|
||||||
orignal = RESOLVE_FILE.read_text()
|
DNSKEYS = {entry['zone']: entry['records'] for entry in export_dnssec_dnskey()}
|
||||||
records = [orignal, "; AUTOGENERATED"]
|
for zone, zone_file in ZONE_FILE_MAP.items():
|
||||||
records.extend(("", "; rfc2317"))
|
orignal = zone_file.read_text()
|
||||||
for route, ns, ds, ttl in iter_rfc2317_entry():
|
records = [orignal, "; AUTOGENERATED"]
|
||||||
records.extend(gen_reverse_pointers(route, ns, ds, ttl))
|
if zone.strip('.') == RFC2317_ZONE.strip('.'):
|
||||||
|
records.extend(("", "; rfc2317"))
|
||||||
|
for route, ns, ds, ttl in iter_rfc2317_entry():
|
||||||
|
records.extend(gen_reverse_pointers(route, ns, ds, ttl))
|
||||||
|
records.append("")
|
||||||
|
records.extend(("", "; dnskey"))
|
||||||
|
for key_ds in DNSKEYS[zone]:
|
||||||
|
records.append(f"@ IN DNSKEY {key_ds['dnskey']}")
|
||||||
records.append("")
|
records.append("")
|
||||||
|
zone_file.write_text("\n".join(records))
|
||||||
RESOLVE_FILE.write_text("\n".join(records))
|
|
||||||
|
|
||||||
|
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
|
|
Loading…
Reference in a new issue