diff --git a/README.md b/README.md index fde3d99..a49a2f1 100644 --- a/README.md +++ b/README.md @@ -29,6 +29,7 @@ Die Konfiguration erfolgt vollständig über Umgebungsvariablen. | :--- | :--- | :--- | | `REFRESH_INTERVAL` | `600` | Synchronisationsintervall in Sekunden. | | `NETBOX_SSL_VERIFY` | `true` | SSL-Zertifikatsprüfung aktivieren (`true`/`false`). Bei selbstsignierten Zertifikaten auf `false` setzen. | +| `NETBOX_EXTRA_FILTER` | `""` | Zusätzliche Filterparameter für die NetBox-API-Abfrage (z.B. `&vrf=internal` oder `&tag__n=external`). | | `OUTPUT_FILE_FWD` | `/zones/db.fwd` | Pfad im Container für die Forward-Zonendatei. | | `OUTPUT_FILE_REV` | `/zones/db.rev` | Pfad im Container für die Reverse-Zonendatei. | | `FALLBACK_NS_HOSTNAME`| `ns1` | Hostname, der als NS-Eintrag verwendet wird, falls keiner in NetBox existiert. | diff --git a/sync.py b/sync.py index 3cbfcc0..e925dc1 100644 --- a/sync.py +++ b/sync.py @@ -35,6 +35,9 @@ HEALTH_FILE = os.getenv("HEALTH_FILE", "/tmp/healthy") verify_ssl_env = os.getenv("NETBOX_SSL_VERIFY", "true").lower() VERIFY_SSL = verify_ssl_env in ("true", "1", "yes") +# Zusätzlicher Filter für IP-Abfragen (z.B. "&vrf=internal" oder "&tag__n=external") +EXTRA_FILTER = os.getenv("NETBOX_EXTRA_FILTER", "") + # Fallback Konfiguration (wenn KEIN NS in NetBox gefunden wird) FALLBACK_NS_HOSTNAME = os.getenv("FALLBACK_NS_HOSTNAME", "ns1") FALLBACK_NS_IP = os.getenv("FALLBACK_NS_IP", "127.0.0.1") @@ -57,7 +60,7 @@ def fetch_ipam_data(): Holt alle aktiven IPs mit DNS-Namen aus NetBox. Wirft eine Exception, wenn NetBox nicht erreichbar ist. """ - url = f"{NETBOX_URL}/api/ipam/ip-addresses/?status=active&dns_name__n=&limit=0" + url = f"{NETBOX_URL}/api/ipam/ip-addresses/?status=active&dns_name__n=&limit=0{EXTRA_FILTER}" log(f"Abruf IPAM: {url}") r = requests.get(url, headers=HEADERS, timeout=10, verify=VERIFY_SSL)