diff --git a/README.md b/README.md index cc3fad9..4d88d88 100644 --- a/README.md +++ b/README.md @@ -79,4 +79,5 @@ Falls Ihr CoreDNS-Container (hier beispielhaft `coredns` genannt) via **macvlan* ``` ## Changelog +* **2026-03-20:** Restriktiver FQDN-Check entfernt. IPs mit abweichenden FQDNs (z. B. auf zusätzlichen Interfaces) werden nun ebenfalls synchronisiert, sofern der DNS-Name zur Zone passt. * **2026-03-20:** Skript bricht bei API- oder Netzwerkfehlern nicht mehr ab (Container bleibt aktiv und versucht den Sync im nächsten Intervall). \ No newline at end of file diff --git a/sync.py b/sync.py index ede9f61..00f8c5a 100644 --- a/sync.py +++ b/sync.py @@ -171,31 +171,6 @@ def generate_zone_file_fwd(ipam_data, plugin_records): short_name = dns_name.replace(f".{ZONE_NAME}", "") if short_name == "": short_name = "@" - # Check: DNS Name muss zum Device/VM Namen passen (wenn zugewiesen) - # Verhindert, dass externe IPs auf anderen Hosts (Split-Brain) hier landen. - assigned = ip.get('assigned_object') - if assigned: - device_name = None - if 'device' in assigned and assigned['device']: - device_name = assigned['device']['name'] - elif 'virtual_machine' in assigned and assigned['virtual_machine']: - device_name = assigned['virtual_machine']['name'] - - if device_name: - # Case-Insensitive Vergleich - d_norm = device_name.lower() - s_norm = short_name.lower() - - # Erlaube Match mit Shortname ODER Full-FQDN als Devicename - fqdn_norm = dns_name.lower().rstrip('.') - - if d_norm != s_norm and d_norm != fqdn_norm: - # Ausnahme: Wenn der Shortname "device-name-irgendwas" ist? - # Nein, User will strikte Trennung. - # Wir loggen das als Info, damit man es debuggen kann. - # log(f"DEBUG: Skipping {dns_name} on device {device_name} (Mismatch)") - continue - if ":" in address: rtype = "AAAA" else: