Netgate Discussion Forum
    • Categories
    • Recent
    • Tags
    • Popular
    • Users
    • Search
    • Register
    • Login

    Verständnisfrage DYNDNS auf pfS hinter Provider Modem

    Scheduled Pinned Locked Moved Deutsch
    30 Posts 7 Posters 2.3k Views
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • JeGrJ
      JeGr LAYER 8 Moderator @NOCling
      last edited by

      @nocling said in Verständnisfrage DYNDNS auf pfS hinter Provider Modem:

      Du musst doch dann nur das Skript bauen und dann im Custom Dnydns Dienst nicht die WAN IP sondern deine ermittelte eintragen.

      Warum soll man im DynDNS Dienst mit Custom irgendwas rumbasteln? Verstehe die Logik gerade nicht. Was soll das bringen?

      Don't forget to upvote 👍 those who kindly offered their time and brainpower to help you!

      If you're interested, I'm available to discuss details of German-speaking paid support (for companies) if needed.

      1 Reply Last reply Reply Quote 0
      • N
        NOCling
        last edited by

        Na da kann man doch dann die eigene Variable laden und muss nicht die WAN-IP fressen die bei den vordefinierten gegeben ist.
        Oder bin ich gerade auf der Holzbrücke unterwegs?

        Netgate 6100 & Netgate 2100

        JeGrJ 1 Reply Last reply Reply Quote 0
        • JeGrJ
          JeGr LAYER 8 Moderator @NOCling
          last edited by

          @nocling Versteh ich gerade nicht, sorry, vielleicht zu spät heute. Warum welche WAN IP die man nicht will? Hä?

          Man stellt das Interface ein (WAN1/WAN2/blubb) und wenn pfSense ne RFC1918 Adresse am Interface erschnüffelt, wird automatisch gegen den IP Service der eingestellt ist gegangen (default checkip.dyndns.org, kann man beliebig eigene hinterlegen). Ergo stimmt die rückgelieferte IP4 immer mit dem überein, was das Interface hat. Hab da noch nie Probleme gehabt egal an welchem der drei WANs.

          Don't forget to upvote 👍 those who kindly offered their time and brainpower to help you!

          If you're interested, I'm available to discuss details of German-speaking paid support (for companies) if needed.

          noplanN 1 Reply Last reply Reply Quote 0
          • noplanN
            noplan @JeGr
            last edited by

            @jegr @NOCling

            So ich les das morgen noch mal in Ruhe
            Vielleicht versteh ich es dann und mich lenkt dieses the masked singer Austria nicht sooo ab

            1 Reply Last reply Reply Quote 0
            • N
              NOCling
              last edited by

              Ok wie das im Detail funktioniert habe ich noch nicht nachgelesen bzw. untersucht.

              Bin jetzt von Doppeltem NAT ausgegangen und da ist die WAN IP nur über den Server per Abfrage zu ermitteln.

              Hatte Noplan so verstanden, das er so einen Fall hat und dann der Dienst das nicht schnell automatisch checkt und wie du sagst das Log zumüllt.
              Was ich nicht verstehe, was ist so schwer dran alle 5 min zu schauen ob die IP noch der im Service entspricht, wenn ja weiter pennen, wenn nicht Dyndns Update starten.

              Netgate 6100 & Netgate 2100

              noplanN 1 Reply Last reply Reply Quote 0
              • noplanN
                noplan @NOCling
                last edited by

                @nocling said in Verständnisfrage DYNDNS auf pfS hinter Provider Modem:

                Bin jetzt von Doppeltem NAT ausgegangen und da ist die WAN IP nur über den Server per Abfrage zu ermitteln.

                ja das ist korrekt (Großbauern-Box ---- pfS ----- LAN (whatever)

                was ist so schwer dran

                kann ich dir noch nicht sagen, weil noch nicht ausporbiert.
                ... aber ... zuerst nutz ich mal die Forum Suche 😁 ob irgendwer das schon hier gepostet hat, vielleicht wird man ja fündig if not naja probier ich es halt selbst, wie du sagst ist das script ja keine rocket science udn was es machen muss ist in diesem Post ja sauber genug beschrieben.

                no dennNP

                1 Reply Last reply Reply Quote 0
                • Bob.DigB
                  Bob.Dig LAYER 8
                  last edited by

                  Ich führe auch öfters /etc/rc.dyndns.update aus. Wenn es da was eleganteres gäbe, ich wäre ebenfalls interessiert.

                  W 1 Reply Last reply Reply Quote 0
                  • W
                    wkn @Bob.Dig
                    last edited by

                    Das eigentliche Update-Script besteht ja aus zwei Komponenten, die Ermittlung der eigenen IP und der Vergleich mit der gecacheten DynDNS-IP und wenn die voneinander abweichen die Ausführung des Updates beim DynDNS-Provider.

                    Den ersten Teil könnte man auslagern in ein eigenes Script. Die Ermittlung ist eigentlich nur ein HTTP GET auf die Adresse http://checkip.dyndns.org und dem ausparsen der IP aus der Rückgabe ("Current IP Address: xxx.xxx.xxx.xxx"). Man macht also den Vergleich da einfach nur vorweg und führt das eigentliche Script nur bei Abweichung dann aus. Da der Check wirklich nur aus dem Get besteht kann man den auch in sehr kurzen Perioden ausführen.

                    Bob.DigB 1 Reply Last reply Reply Quote 0
                    • Bob.DigB
                      Bob.Dig LAYER 8 @wkn
                      last edited by Bob.Dig

                      @wkn Kannst Du sagen, warum quasi das verlinkte Script anscheinend das Update dennoch macht, selbst wenn sich die IP nicht geändert hat? Weil wäre das nicht, hätten wir ja auch das Problem nicht. Oder anders gefragt, seltsam, dass nicht ein light weight script dafür schon an Board ist.

                      noplanN W 2 Replies Last reply Reply Quote 0
                      • noplanN
                        noplan @Bob.Dig
                        last edited by

                        weil ich um kurz vor 12:00 noch immer nicht dazu gekommen bin,
                        vielleicht macht hier irgendwer mal den anfang und schreibt die
                        script zeilen hier in den Post,

                        dann hätt ma gleich auch wieder wieder was für die community erledigt ...

                        C 1 Reply Last reply Reply Quote 0
                        • W
                          wkn @Bob.Dig
                          last edited by

                          @bob-dig

                          Laut Log wird nur die Ermittlung und der Vergleich da durchgeführt, nicht das Update, wenn sich nichts geändert hat oder noch keine 25 Tage vergangen sind. Einziges "Problem" sind die 5 oder 6 Zeilen im Log da bei jedem Aufruf des Scripts. Darum sollte man da ein eigenes Script vorschalten, das quasi den ersten Teil macht:

                          • Holen der Current IP (über checkip.dyndns.org)
                          • Holen der Cached IP (muss man schauen wie)
                          • Vergleichen und wenn unterschiedlich das originale Script dann erst aufrufen
                            Und dieses Script könnte man dann im Cron platzieren und ggf. im Minutenbereich aufrufen lassen
                          Bob.DigB 1 Reply Last reply Reply Quote 1
                          • Bob.DigB
                            Bob.Dig LAYER 8 @wkn
                            last edited by

                            @wkn Verstanden! Mich stört das mit den Log-Einträgen nicht, die lösche ich eh täglich, wenn ich mir das Firewall-Log angeschaut habe.

                            1 Reply Last reply Reply Quote 0
                            • C
                              cantor @noplan
                              last edited by

                              Ich mache das DYNDNS-Update auch mit einem kleinen Script per cron - im vorliegenden Fall alle vier Stunden, aber das Script kann prinzipiell auch minütlich aufgerufen werden. Die Logdatei wird - ebenfalls per Script und cron - automatisch auf eine bestimmte Zahl an Einträgen gekürzt.

                              Gruß Jürgen

                              <?php
                              
                              $timestamp  = time();
                              $datum      = date("d.m.Y",$timestamp);
                              $uhrzeit    = date("H:i",$timestamp);
                              
                              $Host       = "xyz.nsupdate.info";
                              $IP_Abfrage = "https://ipv4.nsupdate.info/myip";
                              
                              $IP1        = file_get_contents($IP_Abfrage); 
                              $IP2        = gethostbyname($Host);
                              $check1     = ip2long($IP1);
                              $check2     = ip2long($IP2);
                              
                              if ($check1 == -1 || $check1 === FALSE) {
                                  $resonse = "IP konnte nicht ermittelt werden";
                              	
                              } elseif ($check2 == -1 || $check2 === FALSE) {
                                  $response = "Service nicht erreichbar";
                              	
                              } else {
                              
                                  if ($IP1 == $IP2) {
                                      $response = "IP noch aktuell";
                                  } else {
                                      $response = file_get_contents('https://xyz.nsupdate.info:xxxxxxx@ipv4.nsupdate.info/nic/update');
                              	    if (strpos($response,"good") !== FALSE || strpos($response,"nochg") !== FALSE) {
                              	        $response = "IP aktualisiert  -  " . $response;
                              	    } else {
                                          $response = "Update fehlgeschlagen";
                                      }
                                  }
                              };
                              	
                              $info = $datum . "  " . $uhrzeit . "  -  " . $response;
                              $URL = 'https://user:pass@meinedomain.tld/verzeichnis/nsupdate_log.php?response='.urlencode($info);
                              $handle = fopen($URL, "r");
                              
                              ?>
                              
                              <?php
                              
                              $Log = $_GET['response'];
                              
                              $logfile  = "nsupdate.log";
                              $zeilen  = 60;
                              
                              $handle = fopen($logfile, "a+") or die('Datei kann nicht zum Schreiben geöffnet werden');
                              fwrite($handle, $Log . "\n");
                              fclose($handle);
                              
                              file_put_contents($logfile, implode("\n", array_slice(explode("\n", file_get_contents($logfile)), -($zeilen+1))));
                              
                              ?>
                              
                              1 Reply Last reply Reply Quote 0
                              • First post
                                Last post
                              Copyright 2025 Rubicon Communications LLC (Netgate). All rights reserved.