ubuntuusers.de

Networkd-dispatcher bemerkt IP-Wechsel nicht

Status: Gelöst | Ubuntu-Version: Ubuntu 24.04 (Noble Numbat)
Antworten |

Tone866

Anmeldungsdatum:
3. April 2016

Beiträge: 7

Ich möchte ein Skript starten, wenn sich meine IP ändert, aber irgendwie bemerkt networkd-dispatcher das nicht.

Ich sehe die IP-Änderung in meinem Syslog von avahi:

2025-03-06T04:26:24.554197+01:00 Server avahi-daemon[828]: Registering new address record for 2003:...35 on br0.*.

aber wenn ich über

journalctl -b -u networkd-dispatcher

nachsehe, ist zur Zeit nichts zu sehen.

Wenn ich einen linkloss habe, funktioniert alles, aber ich brauche es, wenn sich meine IP ändert.

Wie kann ich das machen?

Vielen Dank!

micneu

Avatar von micneu

Anmeldungsdatum:
19. Januar 2021

Beiträge: 702

Wohnort: Hamburg

Moin, bitte zeige uns, was du bisher erstellt hast und wie dein Versuch genau aussieht, dann können wir darauf aufbauen.

  • Deinen code bitte im Code Block posten

  • Wo hast du was versucht?

  • was ist genau dein ziel?

PS: wenn sich nur die IP ändert, wird das der Network Manager-Dispatchers nicht mitbekommen, nur wenn sich die Schnittstelle hoch/runter fährt bekommt er das mit

kB Team-Icon

Supporter, Wikiteam
Avatar von kB

Anmeldungsdatum:
4. Oktober 2007

Beiträge: 9564

Wohnort: Münster

Tone866 schrieb:

Ich möchte ein Skript starten, wenn sich meine IP ändert, aber irgendwie bemerkt networkd-dispatcher das nicht.

Lese das Wiki: systemd/networkd-dispatcher

Eine Änderung der IP-Adresse ist keine Änderung des Schnittstellenstatus, aber auf Verlust der letzten Adresse oder Erwerb der ersten Adresse einer Schnittstelle sollte er reagieren.

[…] wenn ich über

journalctl -b -u networkd-dispatcher 

nachsehe, ist zur Zeit nichts zu sehen

Dann läuft er vermutlich nicht. Dagegen hilft, ihn zu starten.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14248

Tone866 schrieb:

Wenn ich einen linkloss habe, funktioniert alles, aber ich brauche es, wenn sich meine IP ändert.

Wie kann ich das machen?

Wie sind z. Zt. die Ausgaben von:

systemctl is-active networkd-dispatcher
systemctl status networkd-dispatcher
systemctl status systemd-networkd

? (... denn: "networkd-dispatcher - Dispatcher service for systemd-networkd connection status changes)

Tone866

(Themenstarter)

Anmeldungsdatum:
3. April 2016

Beiträge: 7

kB schrieb:

aber auf Verlust der letzten Adresse oder Erwerb der ersten Adresse einer Schnittstelle sollte er reagieren.

Ok, dass würde es erklären. Ich bekomme zwar eine neue, öffentliche IP(v6), behalte aber weiterhin meine Linklocal, meine ULA und meine normale IPv4.

Könnt ihr mir dann etwas anderes empfehlen, wie ich ein Script starten kann, wenn sich meine IPv6 Adresse ändert? Ich möchte mein DynDNS updaten und halte nicht viel von der Variante, einfach stumpf alle 5min. ein Webrequest abzufeuern.

dingsbums

Anmeldungsdatum:
13. November 2010

Beiträge: 3771

Ich würde mir da ein Skript schreiben, welches

  • per systemd-unit gestartet wird

  • als Schleife läuft

  • alle x Sekunden die aktuelle IP ermittelt und mit dem Vorwert vergleicht

  • bei Änderung die gewünschte Aktion ausführt

Als Helferlein für das Skript kommen mir sleep, ip, grep, awk, cut und tr in den Sinn.

Nachtrag: Wenn man das hinter einem NAT-Router prüfen möchte, kann man z.B. eine Seite wie https://wieistmeineip mit Lynx abrufen und die Ausgabe entsprechend analysieren.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14248

Tone866 schrieb:

Könnt ihr mir dann etwas anderes empfehlen, wie ich ein Script starten kann, wenn sich meine IPv6 Adresse ändert?

Erstelle bzw. konfiguriere ein Interface das nur die öffentliche IPv6-Adresse zugewiesen bekommt bzw. kennt und lasse den dispatcher nur darauf reagieren/auslösen.

Tone866

(Themenstarter)

Anmeldungsdatum:
3. April 2016

Beiträge: 7

Nur eine IP auf dem Interface funktioniert bei IPv6 nicht, hier braucht man auch immer eine Link Local.

Ich habe es jetzt mit ip monitor gelöst.

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14248

Tone866 schrieb:

Nur eine IP auf dem Interface funktioniert bei IPv6 nicht, hier braucht man auch immer eine Link Local.

Nein, es geht auch ohne, z. B. mit:

LinkLocalAddressing=no

(oder gleichwertig).
Siehe auch: https://www.ip-phone-forum.de/threads/onlinechanged-funktioniert-nicht.321389/

micneu

Avatar von micneu

Anmeldungsdatum:
19. Januar 2021

Beiträge: 702

Wohnort: Hamburg

Tone866 schrieb:

Könnt ihr mir dann etwas anderes empfehlen, wie ich ein Script starten kann, wenn sich meine IPv6 Adresse ändert? Ich möchte mein DynDNS updaten und halte nicht viel von der Variante, einfach stumpf alle 5min. ein Webrequest abzufeuern.

  1. Wie andere auch schon vorgeschlagen, schreib dir was selbst, habe auch gerade meinen eigenen dyndns update geschrieben (setze desec.io mit eigener Domain ein Dual Stack)

  2. ich verstehe nicht das ihr immer Probleme habt, es gibt doch auch genug fertige Produkte (mit ein wenig googlen bekommt man genug antworten)

micneu

Avatar von micneu

Anmeldungsdatum:
19. Januar 2021

Beiträge: 702

Wohnort: Hamburg

dingsbums schrieb:

Als Helferlein für das Skript kommen mir sleep, ip, grep, awk, cut und tr in den Sinn.

Nachtrag: Wenn man das hinter einem NAT-Router prüfen möchte, kann man z.B. eine Seite wie https://wieistmeineip mit Lynx abrufen und die Ausgabe entsprechend analysieren.

ich habe den Aufruf bei mir mit

curl

gemacht

lubux

Anmeldungsdatum:
21. November 2012

Beiträge: 14248

Tone866 schrieb:

Nur eine IP auf dem Interface funktioniert bei IPv6 nicht, ...

Versuch mal, ob Du mit z. B.:

ip -6 a s br0 | grep "scope global" | grep -Po '(?<=inet6 )[\da-z:]+'

nur die externe/öffentliche IPv6-Adresse vom Interface br0 (deines border device, wenn es um IPv6 geht und das ist nicht dein Router!) bekommst. br0 evtl. anpassen.

Antworten |