UDM Pro Wan

Es gibt 59 Antworten in diesem Thema, welches 17.184 mal aufgerufen wurde. Der letzte Beitrag () ist von daimonion.

  • Den PPP-Dämon auf der UDM-P killen:

    Code
    /usr/bin/killall -HUP pppd

    Das unterbricht die PPP-Verbindung. Der Dämon wird vom System neu gestartet und baut eine neue Verbindung auf. In der Regel hast du danach eine neue öffentliche IP.

  • EDIT:


    Wer um 3 Uhr nachts PPPoE Neustarten möchte, um die Zwangstrennung in den Griff zu kriegen, der führt bitte die Befehle des folgenden Posts aus:



    Alles andere kann zu Irritationen führen oder auch nicht funktionieren. Wir haben die Lösung in diesem Thread erarbeitet. Vor dem zuvor aufgeführten Post findet man einige falsche bzw. überflüssige Befehle, die tlws. nicht funktionieren.


    Voraussetzung dafür ist eine Dream Machine (Base/Pro/SE) mit einer Firmware >2.x. Ob das mit UXG, UDR und UDW funktioniert, weiß ich nicht, da ich diese Geräte nicht kenne. Müsste mal jemand anderes bestätigen.


    Das folgende bitte nicht ausführen:


    ———————————


    Moin, die Lösung findest du hier:


    UDMP scheduled PPPoE reconnect cronjob
    Is there any way to schedule a cronjob on the UDMP that reconnects the PPPoE connection? My ISP reconnects automatically after 24h. There were...
    www.reddit.com


    -----------------------


    1- SSH into the UDM and install UDM Utilities boot script


    2- Create a new file in the base OS (not unifi shell) called 10-restart-pppoe.sh in the folder /mnt/data/on_boot.d/, and add the following contents to it:


    Bash
    #!/bin/sh
    
    echo "0 6 * * * killall -HUP pppd" > /etc/cron.d/restart_pppoe
    
    /etc/init.d/crond reload /etc/cron.d/restart_pppoe

    3- Give executable permissions and run the script once


    Code
    chmod +x /mnt/data/on_boot.d/10-restart-pppoe.sh
    
    /mnt/data/on_boot.d/10-restart-pppoe.sh

    4- Now the cron job will run everyday at the predefined time from the cron file (in this example, I used 6 am everyday). You can change the "0 6 * * *" to whatever time you want.


    5- The cron file will be installed when you restart the UDM thanks to the boot script. If you want to test out whether it works on boot, just check that the cron file /etc/cron.d/restart_pppoe is created when you restart the UDM.


    -----------------------


    Falls du IPv6 einsetzen möchtest und es wegen fehlender Route nicht funktioniert, kann folgendes Script evtl. Abhilfe schaffen:


    RE: öffentliche IPv6-Adresse auslesen


    Gruß Hoppel

    3 Mal editiert, zuletzt von hoppel118 ()

  • Moin Hoppel!
    Ich versuche seit einiger Zeit dieses Script auf meiner UDM SE zu installieren.


    Ich habe in einem deiner anderen Beiträge gesehen wie du jemandem das ganze mit einem poweroff Script hast versucht das ganze zu erklären und da auch den cat befehl gesehen.

    Hier das ganze wie es dann bei mir aussieht:

    Code
    root@UDM-SE:/# cat /mnt/data/on_boot.d/10-restart-pppoe.sh
    #!/bin/sh
    echo "0 6 * * * killall -HUP pppd" > /etc/cron.d/restart_pppoe
    /etc/init.d/crond reload /etc/cron.d/restart_pppoe
    root@UDM-SE:/#

    Ich würde behaupten, dass das erstmal so richtig aussieht.


    Wenn ich dann aber das Script ausführen will kommt folgendes:

    Code
    root@UDM-SE:/# /mnt/data/on_boot.d/10-restart-pppoe.sh
    /mnt/data/on_boot.d/10-restart-pppoe.sh: 3: /mnt/data/on_boot.d/10-restart-pppoe.sh: /etc/init.d/crond: not found
    root@UDM-SE:/#


    Auch wenn ich schon im Verzeichnis bin funktioniert es nicht:


    Code
    root@UDM-SE:/mnt/data/on_boot.d# 10-restart-pppoe.sh
    -bash: 10-restart-pppoe.sh: command not found
    root@UDM-SE:/mnt/data/on_boot.d#

    Auch das habe ich genutzt:


    Code
    root@UDM-SE:/mnt/data/on_boot.d#
    root@UDM-SE:/mnt/data/on_boot.d# chmod +x /mnt/data/on_boot.d/10-restart-pppoe.sh
    root@UDM-SE:/mnt/data/on_boot.d#

    Hast du irgend eine Idee woran es liegen könnte ?


    Liebe Grüße

    Sven

  • Moin,


    mit dem Script habe ich mich auf meiner UDM-SE bisher noch nicht auseinandergesetzt, brauche ich auch nicht, da ich mittlerweile eine feste IP von meinem Provider erhalte. :winking_face:


    Die boostchicken Variante von der UDM-Pro funktioniert so nicht mehr auf der UDM-SE.


    Existiert die Cron Datei denn überhaupt? Zeig mal den Output der folgenden Befehle:


    Code
    ls -l /mnt/data/on_boot.d/10-restart-pppoe.sh
    ls- l /etc/cron.d/restart_pppoe


    Wenn du nun das boostchicken Paket installiert hast, empfehle dir das erstmal rückgängig zu machen und dich an folgende Anleitung zu halten:


    UDMPRO SE · Issue #214 · boostchicken-dev/udm-utilities
    Describe the bug Hi just received the UDMPRO SE. I'm not able to get this package to install on it. Wondering if anyone has any ideas? When I SSH into the…
    github.com


    Wenn du nur einfache Scripte ausführen willst, werden keine zusätzlichen Pakete mehr benötigt. Auf der UDM-SE macht man das einfach per systemd. Wenn die Anleitung bei github bei dir Fragen oder Fehler aufwirft, melde dich nochmal. Bei mir laufen auf diese Art und Weise ein paar Masqueraden.


    Wobei der ganze Script Teil eigentlich identisch sein müsste. Bin ich mir gerade unsicher.


    EDIT: Schau mal, der Author des zuvor verlinkten Beitrags schreibt folgendes:


    Zitat

    Make sure there weren't any issues running your scripts because of bash/sh incompatibilities. You might have to tweak some scripts a little for bash syntax.


    Das würde ja zu deinem Ergebnis passen:


    Code
    root@UDM-SE:/mnt/data/on_boot.d# 10-restart-pppoe.sh
    -bash: 10-restart-pppoe.sh: command not found


    Wenn du das Script selbst nicht an die Gegebenheiten anpassen kannst, brauchen wir jemand anderes der das kann. Davon habe ich auch keine Ahnung. Kriegen wir aber sicherlich notfalls irgendwie hin. :winking_face:


    Gruß Hoppel

    Einmal editiert, zuletzt von hoppel118 ()

  • Moin Hoppel,


    erst einmal vielen Dank für deine Antwort.


    Der Output zu den oben genannten Befehlen sieht folgendermaßen aus:


    Code
    root@UDM-SE:~# ls -l /mnt/data/on_boot.d/10-restart-pppoe.sh
    -rwxr-xr-x 1 root root 123 Feb  3 02:18 /mnt/data/on_boot.d/10-restart-pppoe.sh*
    root@UDM-SE:~#
    
    root@UDM-SE:~# ls- l /etc/cron.d/restart_pppoe
    -bash: ls-: command not found
    root@UDM-SE:~#


    was ich schon komisch finde, da das restart_pppoe ansich schon existiert:

    Code
    root@UDM-SE:/etc/cron.d# dir
    fingerprinting  ips-service-signature  redirector_keys  restart_pppoe  sysstat  ubnt-report
    root@UDM-SE:/etc/cron.d#


    Ich habe ehrlich gesagt jede Menge fragen :grinning_squinting_face:


    Zum einen weiß ich gar nicht, wie ich die Boot tools wieder deinstalliert bekomme.


    In deinem Link bezüglich der systemd denke ich das ich es vermutlich hinbekommen sollte der Anleitung selbst zu folgen. Allerdings bin ich noch nicht durchgestiegen wo denn anschließend das eigentliche script zum neustarten des pppoe Dienstes abgelegt werden soll.


    Ich habe gesehen, dass es hier einen Discord Server gibt. Darf ich eventuell vorsichtig anfragen, ob wir uns dort ggf. mal treffen können wenn es deine Zeit zulässt? Eventuell wäre das ja das effektivste wenn man zum einen miteinander sprechen kann und zum anderen ggf. auch die Bildschirmübertragung nutzen kann um zusammen zu sehen was dort passiert.


    Ich bin leider mehr oder weniger absoluter Linux-Laie und es ist für mich sowieso schon sehr mühselig jeden Befehl, den ich irgendwie nutzen will per google herauszufinden :winking_face:


    Liebe Grüße

    Sven

  • Dann mach es doch so wie es am einfachsten ist. Schaltbare Steckdose für das Modem. Mache ich so für mein Backup LTE Modem am WAN2 Port auch.

  • sven2084 wofür wird der reconnect denn benötigt? Wenn du dich mit Linux so gar nicht auskennst würde ich von solchen Basteleien am Router die Finger lassen. Nicht bös gemeint.

  • Dann mach es doch so wie es am einfachsten ist. Schaltbare Steckdose für das Modem. Mache ich so für mein Backup LTE Modem am WAN2 Port auch.

    Leider ist das nicht möglich. Wir haben FTTH in einem Mehrfamilienhaus mit einem separaten Providerschrank in dem ein Switch vom Provider hängt. Von dort geht ein LAN-Kabel in meinen eigenen 19" Schrank der daneben hängt.

    Solange es also keine Zeitschaltuhr für RJ45 Verbindungen gibt geht das also nicht.




    sven2084 wofür wird der reconnect denn benötigt? Wenn du dich mit Linux so gar nicht auskennst würde ich von solchen Basteleien am Router die Finger lassen. Nicht bös gemeint.

    Der reconnect wird benötigt, da mein Provider nach etwas mehr als 24h disconnected und neu verbindet. Das heisst die Zeit verschiebt sich jeden Tag um ca. 30 Minuten. Da ich einen privaten Teamspeak 3 Server betreibe auf dem jeden Tag betrieb ist, ist es natürlich sehr unglücklich wenn der reconnect in den Tag fällt. Vor allem weil es eine weile dauert, bis die bis dahin verbundenen Clients über die dyndns Adresse die neue IP auflösen. Ich kann schlecht jedem sagen, dass er nach einem Verbindungsverlust ipconfig /flushdns machen soll :winking_face:



    hoppel118

    Ich habe nun die UDM SE auf default zurück gesetzt und sie neu eingerichtet. Nicht wegen dem Boot Skript sondern wegen anderen Problemen die aufgetreten sind, als ich das Controller Backup eingespielt hatte. Im nachhinein hatte ich da auch gelesen, dass das wohl diverse Probleme verursacht. Seit dem Factory reset gibt es auch die Datei 10-restart-pppoe.sh und das Verzeichnis /mnt/data/on_boot.d/ nicht mehr. Ich würde also davon ausgehen, dass das boot script dadurch wohl nun auch weg ist?!


    Es wäre super, wenn wir den reconnect dann irgendwie eingerichtet bekommen. Soll ich schon einmal anhand der geposteten Anleitung die Datei unter /etc/systemd/system/udm-boot.service anlegen?


    Liebe Grüße

    Sven

  • Dann mach es doch so wie es am einfachsten ist. Schaltbare Steckdose für das Modem. Mache ich so für mein Backup LTE Modem am WAN2 Port auch.


    Uff, auf der UDM laufen permanent Datenbankaktivitäten. Ich würde das gute Stück niemals einfach so abschalten. :winking_face:


    sven2084 wofür wird der reconnect denn benötigt? Wenn du dich mit Linux so gar nicht auskennst würde ich von solchen Basteleien am Router die Finger lassen. Nicht bös gemeint.


    Da hast du irgendwie Recht. Ich bin jetzt auch kein großer Scripter, verwende aber seit fast 20 Jahren im privaten Umfeld irgendwelche Linux Systeme. Von daher sind mir die meisten Abläufe und Befehle irgendwie bekannt. Den Rest verrät mir Google. Wenn man das selbst so nicht beherrscht, ist es fragwürdig am Router auf diese Weise herumzuschrauben.


    Aber was kann hierbei schon passieren? Im schlimmsten Fall muss man die UDM neu aufsetzen...


    Es wäre super, wenn wir den reconnect dann irgendwie eingerichtet bekommen.


    Moinsen,


    ich hoffe, du hast noch nicht angefangen. Ich habe mir darüber gerade nochmal kurz den Kopf zerbrochen. Evtl. geht's sogar viel einfacher.


    Schauen wir mal. Mach erstmal ein Backup für den Fall der Fälle.


    Wenn die UDM-SE wirklich so persistent ist, wie es bei Github suggeriert wird, dann reicht es evtl. aus einen simplen Cronjob einzurichten.


    1. Logge dich als root per SSH auf der UDM-SE ein


    Passe die IP-Adresse bei Bedarf an deine Umgebung an:



    2. Testen, ob "killall -HUP -pppd" auf der UDM-SE funktioniert


    Logge dich mit zwei weiteren Sessions als root per SSH auf der UDM-SE ein. Du brauchst drei parallele Fenster, um zusehen zu können, was passiert. Sobald du den dritten Befehl ausgeführt hast, wird die PPPoE Verbindung beendet und neu aufgebaut. Das dauert ein Bisschen (vrsl. weniger als eine Minute, ich weiß es nicht genau). In den anderen beiden Fenstern siehst du nun folgendes:

    • im ersten Fenster die Logmeldungen dazu live und
    • Im zweiten Fenster wird der ping zum Google Server beim Beenden der PPPoE Verbindung unterbrochen und sobald die Verbindung wieder steht, geht auch der ping weiter.


    2.1 Gib im ersten Fenster folgenden Befehl ein:


    Code
    tail -f /var/log/messages


    2.2 Gib im zweiten Fenster folgenden Befehl ein:


    Code
    ping www.google.de


    2.3 Anschließend gib im dritten Fenster folgenden Befehl ein:


    Code
    killall -HUP pppd


    tail und ping kannst du beenden indem du das entsprechende Fenster anklickst und auf deiner Tastatur die Tastenkombination "Strg+C" drückst.


    Nur wenn dieser Test erfolgreich war, bei Schritt 3 weiter machen. War er nicht erfolgreich, beschreibe bitte was genau passiert ist. Kopiere bitte sämtliche Logausgaben hier in einen Post (Denk dran, deine öffentliche IP-Adresse zu anonymisieren).


    3. Gib folgenden Befehl ein (um 3 Uhr morgens wird PPPoE neugestartet):


    Achtung: Ab hier nur weiter machen, wenn der vorangegangene Test erfolgreich war!


    Wenn du den Cronjob zu einer anderen Uhrzeit starten möchtest, passe die beiden Zahlen vor den drei Sternchen wie folgt an:


    0 = Minuten

    3 = Stunden


    Beispiel (Cronjob wird um 2:30 Uhr ausgeführt): echo "30 2 * * * killall -HUP pppd" > /etc/cron.d/restart_pppoe


    Code
    echo "0 3 * * * killall -HUP pppd" > /etc/cron.d/restart_pppoe


    4. Prüfe nochmal mit "ls -l" die Rechte und die Verfügbarkeit der Datei:


    Code
    ls -l /etc/cron.d/


    Die Ausgabe des vorangegangenen Befehls sollte dann wie folgt aussehen:


    Das ist wichtig für deinen "restart_pppoe" Cronjob:


    Zitat

    -rw-r--r-- 1 root root

    5. Gib folgenden Befehl ein, um den Cronjob zu laden:


    Code
    /etc/init.d/cron reload /etc/cron.d/restart_pppoe


    Jetzt wartest du bis zum nächsten morgen und prüfst unter /var/log/messages, ob um 3 Uhr morgens (oder was du auch immer konfiguriert hast) deine PPPoE Verbindung beendet und wieder aufgebaut wurde:


    Code
    cat /var/log/messages


    Wenn das geklappt, führst du einen Reboot durch und prüfst wieder am nächsten morgen, ob noch alles funktioniert.


    Man könnte das alles natürlich viel schneller testen/umsetzen. Das setzt aber Voraus, dass der jenige der das umsetzen will, weiß was er tut oder der der jenige der fleißig die Anleitung geschrieben hat, Lust hat noch mehr zu schreiben… :grinning_squinting_face:


    Meiner Ansicht nach, ist das so eine sichere Variante.


    Viel Erfolg und berichte bitte. :winking_face:


    Ich kann das momentan leider nicht testen, da ich "Uptime" brauche (andere Story).


    Gruß Hoppel

  • Um zu sehen, ob das Script funktioniert müsste man es doch nur lokal ausführen, z.B. mit sh /etc/cron.d/restart_pppoe.

    Ich bin irritert, dass das Script nicht ausführbar (x) sein muss :thinking_face: . Kann aber OK sein.

  • Nee, das ist kein Script. Das ist ein Cronjob (oder Crontab? Weiß die genaue Bezeichnung gerade nicht.).


    Ich habe die Vermutung, dass der Cronjob auch ohne Startscript auf der UDM-SE persistent bleibt.


    Wenn nicht, ist er halt nach dem Reboot weg. Dann können wir immer noch das systemd Startscript bauen.


    Wir müssen ja erstmal validieren, ob der Befehl „killall -HUP pppd“ auf der UDM-SE überhaupt funktioniert. Ich gehe aber davon aus. Funktioniert ja auf der USG bzw. UDM(-Pro) auch.


    Gruß Hoppel

  • Uff, auf der UDM laufen permanent Datenbankaktivitäten. Ich würde das gute Stück niemals einfach so abschalten. :winking_face:


    Modem nicht UDM!

  • Moin hoppel118 ,

    erst einmal vielen Dank für deine sehr ausführliche Anleitung.


    Erst einmal folgende Info:


    Code
    killall -HUP pppd

    hat so funktioniert wie es soll. Die Verbindung wurde getrennt und ca. 10 Sekunden später wieder aufgebaut mit neuer IP Adresse.


    Code
    root@UDMSE:~# ls -l /etc/cron.d/
    total 21
    -rw-r--r-- 1 root root  77 Feb  5 03:23 fingerprinting
    -rw-r--r-- 1 root root  79 Feb  5 03:24 ips-service-signature
    -rw-r--r-- 1 root root  68 Feb  5 03:23 redirector_keys
    -rw-r--r-- 1 root root  28 Feb  6 23:58 restart_pppoe
    -rw-r--r-- 1 root root 396 Apr  6  2019 sysstat
    -rw-r--r-- 1 root root  54 Feb  5 03:23 ubnt-report
    root@UDMSE:~#

    Auch das sieht für mich erst einmal so aus, wie es aussehen soll.



    Voller Vorfreude, dass es nun doch so einfach ist habe ich heute morgen gespannt in die Logs geschaut und siehe da... nichts :grinning_squinting_face::grinning_squinting_face:

    Dann habe ich noch einmal deine Anleitung gelesen und mir ist aufgefallen, dass ich folgenden Punkt wohl überlesen hatte:

    Code
    /etc/init.d/cron reload /etc/cron.d/restart_pppoe


    Das habe ich nun nachgeholt:

    Code
    root@UDMSE:~# /etc/init.d/cron reload /etc/cron.d/restart_pppoe
    [ ok ] Reloading configuration files for periodic command scheduler: cron.
    root@UDMSE:~#


    Ich werde dann morgen berichten, ob das ganze nun so funktioniert, oder nicht :smiling_face:


    Liebe Grüße

    Sven

  • Jo, ohne Cron Reload wird das nichts. :smiling_face:


    Aber das hört sich grundsätzlich schonmal gut an.


    Wenn es denn morgen früh geklappt hat, kannst du anschließend mal deine UDM-SE Neustarten und dann schauen wir mal, ob es übermorgen immer noch funktioniert.


    • Wenn nicht, müssen wir doch das Startscript bauen.
    • Wenn ja, bleibt die Frage, ob so ein Cron auch ein UDM-SE Firmware bzw. ein Network Application Update übersteht. Anscheinend ist das zumindest laut dem GitHub Beitrag für die Startscripte der Fall. Wenn dieser Cron das Update nicht übersteht, müssen wir das ganze auch in ein Startscript packen.

    Ich sehe da momentan quasi keine größeren Herausforderungen. :winking_face:


    Gruß Hoppel

  • Ich konnte es natürlich nicht abwarten und hab die Zeit angepasst:

    Code
    root@UDMSE:/etc/cron.d# echo "40 12 * * * killall -HUP pppd" > /etc/cron.d/restart_pppoe
    root@UDMSE:/etc/cron.d# /etc/init.d/cron reload /etc/cron.d/restart_pppoe
    [ ok ] Reloading configuration files for periodic command scheduler: cron.


    Leider ist vor 5 Minuten nichts passiert. Hast du da eine Idee? :winking_face:

  • Wie viel Minuten lag der Cronjob in der Zukunft? Den Zeitraum evtl. Mal erhöhen.


    Zeig mal bitte die folgende Ausgabe:


    Code
    cat /etc/cron.d/restart_pppoe


    Wenn du einfach nur den Echo Befehl mehrfach ausführst, wird der Cron meinem Verständnis nach einfach nur als weitere Zeile in der restart_pppoe Datei ergänzt. Keine Ahnung, ob das so funktionieren würde, wenn da mehrere Zeilen enthalten sind.


    Gruß Hoppel


    Aber grundsätzlich schonmal super, Du hast das Cron Prinzip verstanden. :winking_face:

    Einmal editiert, zuletzt von razor () aus folgendem Grund: Ein Beitrag von hoppel118 mit diesem Beitrag zusammengefügt.