OPNsense Forum

International Forums => German - Deutsch => Topic started by: astromeier on June 06, 2020, 10:13:56 pm

Title: Script triggern wenn externe WAN IP sich ändert
Post by: astromeier on June 06, 2020, 10:13:56 pm
Hallo allerseits!
Ich suche eine Möglichkeit (ähnlich dem Service Dyn DNS) ein eigenes Script zu triggern, wenn sich die externe WAN IP ändert.
Hintergrund:
Ich habe bei Lima-City eine Domain mit Mail, deren A-Record auf meine IP zeigt. Wenn diese sich ändert, soll das Script eine API bei Lima-City aufrufen und die neue IP setzen.
Das Script:
Code: [Select]
#!/bin/bash
ip=$(curl -s http://whatismyip.akamai.com/)
data={\"nameserver_record\":{\"name\":\"MeineDomain.de\",\"type\":\"A\",\"ttl\":\"1000\",\"content\":\"$ip\"}}
curl -X PATCH --header 'Content-Type: application/json' --header 'Accept: application/json' -u api:API-KEY --url https://www.lima-city.de/usercp/domains/Domain-ID/records/Record-ID -d $data

# response: {"status":"ok"}

Unter Services/Monit hab ich nichts passendes gefunden und das script per cron dauerfeuern lassen möchte ich nicht.

Und mit dem Service Plugin "newwanip" steigt ich noch nicht durch...

Hat jemand eine Idee oder einen Hinweis?
Dank vorab!
Title: Re: Script triggern wenn externe WAN IP sich ändert
Post by: superwinni2 on June 06, 2020, 10:31:26 pm
Hätte 3 Ideen...
1. Wenn dein DNS Server Aktualisierungen via ddclient zulässt, einen kleinen Linuxserver installieren und via ddclient die IP aktualisieren lassen

2. Ein Script schreiben, welches via curl die aktuelle IP in eine Datei schreibt wenn es diese noch nicht gibt. Wenn es die Datei bereits gibt, dann den Inhalt vergleichen und bei Änderung die Aktualisierung ausführen.

3. DNS Anbieter wechseln. Beispielsweise auf cloudflare.

Gesendet von meinem LG-H815 mit Tapatalk

Title: Re: Script triggern wenn externe WAN IP sich ändert
Post by: astromeier on June 06, 2020, 10:33:28 pm
Mit dem Web-Interface der Sense fand ich nix passendes,
... aber: auf der command line finde ich mit "pluginctl -c" den hook "newwanip"..
Wie gehts dann weiter?
Title: Re: Script triggern wenn externe WAN IP sich ändert
Post by: astromeier on June 06, 2020, 10:35:57 pm
Danke, SuperWinni2,
Mein Provider stellt ja eine API zur Verfügung und ich suche eine Funktion in der Sense...
Ansonsten kann ich ja auch was externes aufsetzen, wie du vorschlägst.
Title: Re: Script triggern wenn externe WAN IP sich ändert
Post by: superwinni2 on June 06, 2020, 10:44:48 pm
Alternative...
Du kannst doch den DNS Anbieter "custom" benutzen...
ist doch relativ easy....


Service Type: Custom
Client
Client


Benutzername und Passwort leer lassen
und bei Update URL dein kompletter Updatestring rein... Musst eben deine Variablen mit einbauen...


Dann sollte das bereits klappen?!?
Title: Re: Script triggern wenn externe WAN IP sich ändert
Post by: astromeier on June 06, 2020, 10:49:44 pm
Super, Winni2!!!
Das teste ich mal
... mal sehen wie da die neue IP-Adresse reinkriege. 
Also "ip=$(curl -s http://whatismyip.akamai.com/)"

Hast Du einen Tip?
Title: Re: Script triggern wenn externe WAN IP sich ändert
Post by: superwinni2 on June 06, 2020, 10:52:07 pm
Kommt drauf an welche lösung du anstrebst.. .
Ich würde meine letzte (die Alternative) nehmen da hier alles bereits in der OPNsense integriert ist...
Einfach deinen einen Befehl in eine Zeile schreiben... dort wo deine neue IP hinein kommt musst du %IP% eingeben ( steht auch so in der hilfe)  ;)
Title: Re: Script triggern wenn externe WAN IP sich ändert
Post by: micneu on June 07, 2020, 02:28:18 am
Moin, ich nutze Cloudflare als DNS Service. So kann ich über die api der Sense mit dem packet dyndns nutzen, läuft super bei mir. Und kostet nix


Gesendet von iPad mit Tapatalk Pro
Title: Re: Script triggern wenn externe WAN IP sich ändert
Post by: astromeier on June 07, 2020, 09:23:12 pm
Hallo Superwinni2, ich kriegs nicht hin - es hängt wohl daran, dass die API im json format arbeitet und ich den data-string nicht an die Update-URL anhängen kann..
Ich hatte die Hoffnung, dass diese als curl-Argument direkt an curl geht...

Meine Einstellungen:
x Enable verbose logging
username api
password API-Key (siehe meinen curl-aufruf im script)
update-url "https://www.lima-city.de/usercp/domains/Domain-ID/records/Record-ID -d {"nameserver_record":{"name":"domain.de","type":"A","ttl":"1000","content":"%IP%"}}"
result match "\{"status":"ok"\}" mit und ohne escape getestet.


Title: Re: Script triggern wenn externe WAN IP sich ändert
Post by: astromeier on June 07, 2020, 09:26:01 pm
Moin, ich nutze Cloudflare als DNS Service. So kann ich über die api der Sense mit dem packet dyndns nutzen, läuft super bei mir. Und kostet nix

Danke, ich suche halt für meinen Provider (mit domain mit mail) eine Lösung.

Ich denke, ich gehe noch mal tiefer ins Thema Legacy Plugin Hook "newwanip" rein...
Title: Re: Script triggern wenn externe WAN IP sich ändert
Post by: astromeier on June 07, 2020, 09:55:23 pm
weiter gehts:
Ein test ohne den result match test "result match "\{"status":"ok"\}" "
lief laut log der Sense erfolgreich durch und nun wird die gecachte IP in der Sense angezeigt......
Danke, SuperWinni2, scheint wohl soweit zu klappen.
Ich kann leider nicht nachprüfen, ob der A-record bei Lima-City wirklich aktualisiert wurde.
Ich warte mal den nächsten IP-Wechsel ab..
Title: Re: Script triggern wenn externe WAN IP sich ändert
Post by: superwinni2 on June 07, 2020, 09:57:05 pm
Okay dann ist ja gut...

Zum testen alternativ manuell mit nem curl Befehl kurz die IP ändern und dann nochmals nen force update machen

Gesendet von meinem LG-H815 mit Tapatalk