PfSense Auto-Update Dynamic DNS



  • Hallo zusammen,

    ich habe einen dynamic DNS Account bei SelfHost. In der Fritte hat das immer wunderbar funktioniert und ich hatte nie Probleme damit. In der pfSense habe ich allerdings das Problem, dass bei einer Neueinwahl die IP Adresse nicht automatisch geändert wird. Kann mir jemand helfen und sagen, wie ich einstellen kann, dass das Update automatisch gemacht wird?

    Besten Dank im Voraus…
    Marc



  • Moin,

    installiere cron und dann:
    1  */1  *  *  *  root  /usr/bin/nice -n20 /etc/rc.dyndns.update

    Den Zeitintervall natürlich nach Deinen Wünschen, z.B.
    /15 *  *  *  *
    für viertelstündlich

    -teddy



  • Moin,

    danke, das scheint zu klappen. Jedenfalls bekomme ich nach einer neuen Einwahl die richtige IP bei einem Ping von draußen. Allerdings zeigt die pfSense die IP nicht in der Gui an. Da steht immer die falsche und ist rot. Gibt es da auch einen trick, dass hier die richtige IP und grün angezeigt wird? Das verwirrt schon etwas. Wenn ich in der Gui auf "Save and Force Update" klicke, wird sie grün und ist OK. Aber geht das auch automatisiert? Habe im Dashboard ja auch das Widget dazu…

    EDIT:
    Meine Crontab sieht also jetzt so aus:

    [2.2.5-RELEASE][root@pfSense.itsdo.local]/root: crontab -l
    #
    #Min    Std     Tag     Mon     WoTag   User    Befehl                                          Kommentar/Beschreibung
    #---------------------------------------------------------------------------------------------------------------------------------
    */15    *       *       *       *       root    /usr/bin/nice -n20 /etc/rc.dyndns.update        # Alle 15 Min DynDNS Update
    #---------------------------------------------------------------------------------------------------------------------------------
    

    LG Marc.


  • LAYER 8 Moderator

    dass bei einer Neueinwahl die IP Adresse nicht automatisch geändert wird. Kann mir jemand helfen und sagen, wie ich einstellen kann, dass das Update automatisch gemacht wird?

    Sofern die pfSense selbst die Neueinwahl macht und das Down/Up des Interfaces mitbekommt, sollte genau das automatisch passieren. Oder steht da noch ein Router davor? Dann ist das Problem klarer.



  • Moin Jens,

    ja, es hängt hier leider nach wie vor eine Fritzbox vor der pfSense. Diese stellt aber nur noch die Telefonie und die Einwahl zum ISP bereit. Alles andere läuft dann über die pfSense. Aber die Einwahl zum DynDNS Provider macht die pfSense selber. Leider bekommt diese aber das Up / Down der ISP Einwahl nicht mit.


  • LAYER 8 Moderator

    Aber die Einwahl zum DynDNS Provider macht die pfSense selber. Leider bekommt diese aber das Up / Down der ISP Einwahl nicht mit.

    Jein, macht sie nicht ;) Wenn da noch eine Fritte vornedran hängt, dann hat die pfSense dahinter wohl sehr wahrscheinlich eine private IP. Die sie auch nicht verliert. Ergo: Sie bekommt keinerlei IP Wechsel mit, kann daher auch ihr DynDNS Refresh Skript nicht laufen lassen. Dann ist Teddys Variante die einzig sinnvolle, würde das aber nicht jede Minute rennen lassen, das dreht ein wenig arg durch (und einige Dienste finden es nicht lustig so oft abgefragt zu werden). Würde hier */5 empfehlen oder sogar */10 oder 15 wenn noch im Rahmen für euch. Die Widget Problematik sollte in 2.2 eigentlich besser sein, habt ihr schon 2.2 im Einsatz?



  • Ach so, ja das stimmt natürlich. Sie hat eine private IP. Die pfSense ist als extended Host an der Fritte freigegeben und darf somit alles. Das Skript kann ich auf 15 Minuten einstellen, das ist in Ordnung. Ich habe leider sehr viele Internetabbrüche in letzter Zeit. Daher habe ich mehr als nur die "Zwangstrennung" Nachts. Und ja, ich habe die aktuelle 2.2.5 im Einsatz. Leider bleibt die IP immer rot!

    LG Marc.



  • Heyho,

    leider muss ich das Thema noch mal aufgreifen.
    Es scheint nicht zu klappen. Die IP bleibt rot! Wenn ich per SSH direkt "/usr/bin/nice -n20 /etc/rc.dyndns.update" in die Konsole tippe, kommt der Fehler:

    [2.2.6-RELEASE][root@pfSense.itsdo.local]/: /usr/bin/nice -n20 /etc/rc.dyndns.update
    Warning: dns_get_record(): DNS Query failed in /etc/inc/notices.inc on line 393
    Warning: dns_get_record(): DNS Query failed in /etc/inc/notices.inc on line 393
    

    Kann mit bitte einer erklären was der erste Teil ("/usr/bin/nice -n20") bedeutet? Ich werde daraus nicht so wirklich schlau. Habe das aber schon öfter in Cronjobs gelesen.
    Warum funktioniert das ganze nicht? Hier noch mal meine Contab:

    [2.2.6-RELEASE][root@pfSense.itsdo.local]/: crontab -l
    ## EIGENE CRONTAB VON USER ROOT
    #----------------------------------------------------------------------------------------------------------------------------------------
    #Min    Std     Tag     Mon     WoTag   User    Befehl                                          Kommentar/Beschreibung
    #----------------------------------------------------------------------------------------------------------------------------------------
    */15    *       *       *       *       root    /usr/bin/nice -n20 /etc/rc.dyndns.update        # Alle 15 Min DynDNS Update
    #----------------------------------------------------------------------------------------------------------------------------------------
    [2.2.6-RELEASE][root@pfSense.itsdo.local]/:
    

    Edit:
    Wenn ich das ganze zweimal hintereinander ausführe, scheint es zu klappen. Was mache ich falsch?

    [2.2.6-RELEASE][root@pfSense.itsdo.local]/: /usr/bin/nice -n20 /etc/rc.dyndns.update
    Warning: dns_get_record(): DNS Query failed in /etc/inc/notices.inc on line 393
    Warning: dns_get_record(): DNS Query failed in /etc/inc/notices.inc on line 393
    [2.2.6-RELEASE][root@pfSense.itsdo.local]/: /usr/bin/nice -n20 /etc/rc.dyndns.update
    [2.2.6-RELEASE][root@pfSense.itsdo.local]/:
    


  • Warum den dyndns Dienst nicht in der Fritzbox lassen, wenn die eh noch im Einsatz ist?

    Wenn du eine private IP am WAN der pfsense hast wird jede Nacht (um 1 Uhr meine ich) automatisch ein update von der tatsächlichen public WAN IP gemacht.

    Das funktioniert problemlos. Habe ich in diversen pfsensen so am laufen.

    Bist du sicher dass nicht ggf. ein Fehler in der dyndns Konfiguration versteckt ist?



  • Moin,

    die DynDNS Konfiguration dürfte ok sein, sonst würde es beim zweiten Versuch ja nicht klappen ;-).
    Ich vermute eher das der verwendete Nameserver etwas träge ist und das Update dort noch nicht angekommen ist?

    nice -20 bedeutet höchste Priorität für den Prozess, siehe https://www.freebsd.org/cgi/man.cgi?query=nice&apropos=0&sektion=0&manpath=FreeBSD+4.6.2-RELEASE&format=html

    -teddy



  • Nabnd…

    Meine Haupt-Fritte hat bereits einen Dynamic DNS Eintrag. Sie kann leider nur einen, ich habe aber noch eine. Diese ist nur zu Testzwecken, von daher nicht ganz so schlimm, wenn's nicht geht.

    Was mich nur wundert ist, dass trotz des Cronjobs die Anzeige dauerhaft rot bleibt. Nur wenn ich es zweimal händisch über die Konsole mache, wirds grün...

    Hat hier jemand noch eine andere Idee?



  • Moin,

    was passiert wen Du 2 Cron Jobs im Abstand von einer Minute laufen lässt?

    -teddy



  • Hey, lasse ich ja nicht. Wenn ich das unmittelbar hintereinander in der Konsole absetze, geht es. Erst kommt der Fehler, dann geht's durch.



  • Moin,

    blöd formuliert, das war ein Vorschlag das mal auzuprobieren :-\

    -teddy



  • Upps sorry, mein Fehler - falsch gelesen…

    Okay, das habe ich nun mal so eingestellt:

    ## EIGENE CRONTAB VON USER ROOT
    #----------------------------------------------------------------------------------------------------------------------------------------
    #Min    Std     Tag     Mon     WoTag   User    Befehl                                          Kommentar/Beschreibung
    #----------------------------------------------------------------------------------------------------------------------------------------
    */15    *       *       *       *       root    /usr/bin/nice -n20 /etc/rc.dyndns.update        # Alle 15 Min DynDNS Update
    */16    *       *       *       *       root    /usr/bin/nice -n20 /etc/rc.dyndns.update        # Alle 15 Min DynDNS Update
    #----------------------------------------------------------------------------------------------------------------------------------------
    

    Scheint aber nicht so wirklich zu laufen.



  • Moin Marc, nee das klappt so nicht
    Du müsstest dann insgesamt 8 Cron Jobs anlegen

    0    *       *       *       *
    1    *       *       *       *  
    
    15    *       *       *       *
    16    *       *       *       *  
    
    30    *       *       *       *
    31    *       *       *       *  
    
    45    *       *       *       *
    46    *       *       *       *  
    
    

    -teddy



  • Moin teddy,

    auch das klappt leider nicht. Du hast vor ein paar Tagen etwas bezüglich trägem Nameserver angesprochen. Vielleicht muss ich da ansetzen.

    Ich habe in den general settings die Fritte als DNS eingetragen und die pfSense LAN (192.168.1.1) mit Gateway none. Dann habe ich einen DNS forwarder eingerichtet auf (ich glaube) allen interfaces. Kann es sein, dass ich da etwas falsch gemacht / verstanden habe? Ist hier ein DNS resolver sinnvoller? Oder benötige ich gar keinen von beiden? Scheinbar steht hier etwas quer. Die Nameserver bekommt die Fritte ja über die Provider-Einwahl zugeteilt. Hier habe ich nichts geändert. Also bekomme ich die von 1&1 per DHCP denke ich.

    Edit:
    Im Log habe ich u.a. folgende Einträge gefunden:

    Status: System Logs:General

    Feb 9 12:13:42 	php-fpm[52439]: /rc.dyndns.update: DynDNS (home.xxx.de) There was an error trying to determine the public IP for interface - wan(re0). Probably interface is not a WAN interface.
    Feb 9 12:13:42 	php-fpm[52439]: /rc.dyndns.update: DynDns (home.xxx.de): IP address could not be extracted from checkip.dyndns.org
    

    Status: System Logs: Resolver

    Feb 9 12:19:10 	filterdns: clearing entry 62.153.xxx.yyy from table DnyDNS_2 on host home.xxx.de
    Feb 9 12:19:10 	filterdns: adding entry 62.153.xxx.yyy to table DnyDNS_2 on host home.xxx.de
    Feb 9 12:14:38 	filterdns: failed to resolve host home.xxx.de will retry later again.
    

  • LAYER 8 Moderator

    Feb 9 12:13:42 php-fpm[52439]: /rc.dyndns.update: DynDns (home.xxx.de): IP address could not be extracted from checkip.dyndns.org

    Das sieht mir eher als das Problem aus. Evtl. solltest du auf der pfSense sinnvolle externe DNSe eintragen, nicht sich selbst oder die Fritzbox die selbst dann auch erstmal die Provider DNSe fragt. Ich würde das testweise mal auf gut erreichbare externe Dienste umstellen. Forwarder oder Resolver auf der pfSense macht schon Sinn, aber die müssen selbst auch Upstream Server haben, die sie fragen können. Deshalb hier mal was wie 8.8.8.8 und 8.8.4.4 reinklöppeln und testen.



  • Guten Morgen,

    danke für den Hinweis. Ich dachte immer die Provider Nameserver sind i.O. Mit den Google Nameservern (8.8.8.8 und 8.8.4.4) klappt es scheinbar nun. Allerdings scheint der Cronjob nicht zu laufen. Die Anzeige im Dashboard bleibt nach wie vor rot.

    Zudem habe ich noch ein Problem. Meine Fritte wählt sich in der Regel gegen 2-3 Uhr neu ein. Die pfSense macht das DynDNS Update aber gegen 1. Kann man das irgendwie verspäten?

    Und, wie kann ich sehen, ob der Cronjob richtig arbeitet? Gibts da Logfiles?


Log in to reply