modified: netbox_dns_bridge/catalog_zone_manager.py
modified: netbox_dns_bridge/notify_handler.py
This commit is contained in:
1 parent
f5791e94d5
commit
a5d163b4af
2 files changed
+11
-15
No files matched your search
@@ -181,18 +181,12 @@ def _create_soa_rdataset() -> dns.rdataset:
|
|||||||
ttl = 0
|
ttl = 0
|
||||||
rclass = dns.rdataclass.IN
|
rclass = dns.rdataclass.IN
|
||||||
rtype = dns.rdatatype.SOA
|
rtype = dns.rdatatype.SOA
|
||||||
mname = dns.name.from_text("invalid", dns.name.root)
|
|
||||||
rname = dns.name.from_text("invalid", dns.name.root)
|
|
||||||
refresh = 60
|
|
||||||
retry = 10
|
|
||||||
expire = 1209600
|
|
||||||
minimum = 0
|
|
||||||
|
|
||||||
# Create SOA rdata object
|
# Create SOA rdata object
|
||||||
rdata = dns.rdata.from_text(
|
rdata = dns.rdata.from_text(
|
||||||
rclass,
|
rclass,
|
||||||
rtype,
|
rtype,
|
||||||
f"{mname} {rname} {serial} {refresh} {retry} {expire} {minimum}",
|
f"invalid. invalid. {serial} 60 10 1209600 0",
|
||||||
)
|
)
|
||||||
|
|
||||||
# Create Rdataset and add the RDATA to it
|
# Create Rdataset and add the RDATA to it
|
||||||
|
|||||||
@@ -70,6 +70,7 @@ class SendDNSNotify(JobRunner):
|
|||||||
)
|
)
|
||||||
|
|
||||||
for zone_name, soa_serial in zones:
|
for zone_name, soa_serial in zones:
|
||||||
|
zone_name = dns.name.from_text(zone_name, dns.name.root).to_text()
|
||||||
msg = dns.message.make_query(zone_name, dns.rdatatype.SOA)
|
msg = dns.message.make_query(zone_name, dns.rdatatype.SOA)
|
||||||
msg.flags = 0
|
msg.flags = 0
|
||||||
msg.set_opcode(dns.opcode.NOTIFY)
|
msg.set_opcode(dns.opcode.NOTIFY)
|
||||||
@@ -77,10 +78,10 @@ class SendDNSNotify(JobRunner):
|
|||||||
soa_rdata = dns.rdata.from_text(
|
soa_rdata = dns.rdata.from_text(
|
||||||
dns.rdataclass.IN,
|
dns.rdataclass.IN,
|
||||||
dns.rdatatype.SOA,
|
dns.rdatatype.SOA,
|
||||||
f"invalid invalid {soa_serial} 60 10 1209600 0",
|
f"invalid. invalid. {soa_serial} 60 10 1209600 0",
|
||||||
)
|
)
|
||||||
soa_rrset = dns.rrset.from_rdata(
|
soa_rrset = dns.rrset.from_rdata(
|
||||||
dns.name.from_text(zone_name, dns.name.root), 0, soa_rdata
|
zone_name, 0, soa_rdata
|
||||||
)
|
)
|
||||||
msg.authority.append(soa_rrset)
|
msg.authority.append(soa_rrset)
|
||||||
msg.use_tsig(keyring={tsig_key.name: tsig_key}, keyname=tsig_key.name)
|
msg.use_tsig(keyring={tsig_key.name: tsig_key}, keyname=tsig_key.name)
|
||||||
@@ -88,18 +89,19 @@ class SendDNSNotify(JobRunner):
|
|||||||
for client in clients:
|
for client in clients:
|
||||||
try:
|
try:
|
||||||
if notify_over_tcp:
|
if notify_over_tcp:
|
||||||
LOGGER.info("Sending over TCP")
|
LOGGER.debug("Sending NOTIFY over TCP")
|
||||||
dns.query.tcp(msg, client.source_ip, timeout=2)
|
dns.query.tcp(msg, client.source_ip, port=5355, timeout=2)
|
||||||
else:
|
else:
|
||||||
LOGGER.info("Sending over UDP")
|
LOGGER.debug("Sending NOTIFY over UDP")
|
||||||
dns.query.udp(msg, client.source_ip, timeout=2)
|
dns.query.udp(msg, client.source_ip, port=5355, timeout=2)
|
||||||
|
|
||||||
LOGGER.info(
|
LOGGER.info(
|
||||||
f"NOTIFY sent to {client.source_ip} for zone {zone_name}"
|
f"NOTIFY sent: {client.source_ip} {view_name}/{zone_name} {soa_serial}"
|
||||||
)
|
)
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
LOGGER.error(
|
LOGGER.error(
|
||||||
f"NOTIFY failed for {client.source_ip} zone {zone_name}: {e}"
|
f"NOTIFY failed: {client.source_ip}"
|
||||||
|
f" {view_name}/{zone_name} {soa_serial}: {e}"
|
||||||
)
|
)
|
||||||
|
|
||||||
except IntegerKeyValueSetting.DoesNotExist as e:
|
except IntegerKeyValueSetting.DoesNotExist as e:
|
||||||
|
|||||||
Reference in new issue
Block a user