Navigation

    Logo
    • Register
    • Login
    • Search
    • Recent
    • Tags
    • Unread
    • Categories
    • Unreplied
    • Popular
    • GitHub
    • Docu
    • Hilfe
    1. Home
    2. Deutsch
    3. Skripten / Logik
    4. Skript zur Prüfung ob DHCP Server arbeitet

    NEWS

    • ioBroker@Smart Living Forum Solingen, 14.06. - Agenda added

    • ioBroker goes Matter ... Matter Adapter in Stable

    • Monatsrückblick - April 2025

    Skript zur Prüfung ob DHCP Server arbeitet

    This topic has been deleted. Only users with topic management privileges can see it.
    • ruhr70
      ruhr70 last edited by

      Bei mir vergab heute der DHCP Server in der Diskstation keine IP-Adressen, was nach und nach für Fehler gesorgt hatte.

      Hat mich etwas Zeit gekostet.

      Ich habe nun ein kleines Skript erstellt, welches nun regelmässig prüft, ob DHCP verfügbar ist und auch Adressen vergibt.

      Den Status zeige ich nun in VIS an.

      Anbei das Skript, falls noch jemand Verwendung dafür hat:

      ! // benötigt das Tool dhtest: https://github.com/saravana815/dhtest // Anwendungsbeispiel: http://www.admin-magazin.de/News/Tipps/ADMIN-Tipp-DHCP-Server-testen ! var pfad = "Service.dhcp" + "."; var cronStr = "*/10 * * * *"; // wie oft soll der Test wiederholt werden ! // Umgebungsparameter für die DHCP Abfrage: var iface = "eth0"; // Netzwerkschnistelle über die die DHCP-Anfage erfolgen soll var pseudoMac = "ba:de:fe:ba:de:fe"; var timeoutSec = "5"; // wie lange soll auf eine Antwort vom DHCP Server gewartet werden (min. 5 Sekunden) ! var abfrageDHCP = "/home/pi/dhtest-master/dhtest -m "+pseudoMac+" -a -T "+timeoutSec+" -i "+iface; var forceCreation = false; // true: Datenpunkte neu initalisieren (Standardwerte, Texte werden überschrieben ) ! log(abfrageDHCP); ! var datenpunkte = { 'dhcp_ok': { "init":false, "common": { name: 'IP vom DHCP erfolgreich erhalten?', desc: 'IP vom DHCP erfolgreich erhalten?', type: 'boolean', unit: '', role: 'value' } }, 'dhcp_last_ok': { "init":"initalisiert", "common": { name: 'Zeit der letzten Prüfung', desc: 'Zeit der letzten Prüfung', type: 'string', unit: '', role: 'value' } }, 'dhcp_ip': { "init":"", "common": { name: 'DHCP Test wurde folgende IP zugewiesen', desc: 'DHCP Test wurde folgende IP zugewiesen', type: 'string', unit: '', role: 'value' } } }; ! function createDp() { var name; var init; var common; for (var dp in datenpunkte) { name = pfad + dp; init = datenpunkte[dp].init; common = datenpunkte[dp].common; createState(name, init , forceCreation, common); } } ! function now() { return formatDate(new Date(), "hh:mm:ss, YYYY-MM-DD"); } ! // dhcp Anfrage senden function getDHCP() { exec(abfrageDHCP, function(err, stdout, stderr) { if (err) { //log("Fehler: " + err); setState(pfad + 'dhcp_last_ok',now()); setState(pfad + 'dhcp_ok',false); setState(pfad + 'dhcp_ip',"keine ip per dhcp erhalten"); return; } log("stdout: " + stdout); setState(pfad + 'dhcp_ip',stdout.match(/\d+\.\d+\.\d+\.\d+/i).toString()); setState(pfad + 'dhcp_last_ok',now()); setState(pfad + 'dhcp_ok',true); }); } ! function getData() { getDHCP(); } ! // regelmässige Wiederholungen // ----------------------------------------------------------------------------- schedule(cronStr, getData); ! // main // ----------------------------------------------------------------------------- function main() { getData(); } ! // Start Skript: // ----------------------------------------------------------------------------- ! createDp(); setTimeout(main, 500); !

      DHCP arbeitet:
      327_dhcp_ok.jpg

      DHCP gestört:
      327_dhcp_gest_rt.jpg

      1 Reply Last reply Reply Quote 0
      • S
        simpixo last edited by

        @ruhr70:

        Ich habe nun ein kleines Skript erstellt, welches nun regelmässig prüft, ob DHCP verfügbar ist und auch Adressen vergibt.

        Den Status zeige ich nun in VIS an. `

        Hallo ruhr70

        ich habe versucht das Ganze zum laufen zu bringen, leider erfolglos. Irgendwie bekomme ich dhtest nicht installiert

        Ich habe per wget das Zip File herunter geladen/ entpackt und dann wollte ich fortfahren aber erhalte die folgende Fehlermeldung…. hast du zufällig das gleiche Problem gehabt?

        root@HQ-ioBroker-Prod:/home/iobroker/dhtest-master# make
        gcc    -c -o dhtest.o dhtest.c
        dhtest.c:7:18: fatal error: stdio.h: Datei oder Verzeichnis nicht gefunden
        compilation terminated.
        <eingebaut>: die Regel für Ziel „dhtest.o“ scheiterte
        make: *** [dhtest.o] Fehler 1
        root@HQ-ioBroker-Prod:/home/iobroker/dhtest-master#</eingebaut> 
        

        Gruß

        Adrian

        1 Reply Last reply Reply Quote 0
        • ruhr70
          ruhr70 last edited by

          @simpixo:

          ich habe versucht das Ganze zum laufen zu bringen, leider erfolglos. Irgendwie bekomme ich dhtest nicht installiert

          Ich habe per wget das Zip File herunter geladen/ entpackt und dann wollte ich fortfahren aber erhalte die folgende Fehlermeldung…. hast du zufällig das gleiche Problem gehabt? `

          Ich habe das Tool auf zwei Rechnern installiert und in beiden Fällen problemlos.

          Ich habe das genauso gemacht, wie Du. Datei mit wget heruntergelassen und entpackt und dann stur per copy & paste die Kommandos von der Github-Seite abgeschickt. Ging schnell und jeweils ohne Fehler.

          Einzig das unzip passte nicht (unzip dhtest-master.zip), da die Datei master.zip hiess.

          So sieht bei mir der Inhalt vom Ordner dhtest-master aus:

          -bash-4.3$ cd dhtest-master
          -bash-4.3$ ls
          ba:de:fe:ba:de:fe  dhscript.py	dhtest	dhtest.c  dhtest.o  functions.c  functions.o  headers.h  LICENSE  Makefile  README.txt
          -bash-4.3$ 
          

          Ich denke mal, dass bei Dir etwas nicht installiert ist.

          Versuch mal vorher;

          apt-get update
          apt-get install build-essential
          
          1 Reply Last reply Reply Quote 0
          • ruhr70
            ruhr70 last edited by

            @simpixo:

            ich habe versucht das Ganze zum laufen zu bringen, leider erfolglos. Irgendwie bekomme ich dhtest nicht installiert `

            Hast Du das eigentlich noch einmal probiert (build-essential)?

            1 Reply Last reply Reply Quote 0
            • S
              simpixo last edited by

              Ohh sorry….vergessen zu antworten, liege aber seit gestern ein wenig flach :roll:

              nach der Installation konnte ich den "make" Befehl ausführen, das Tool ist jetzt lauffähig!!!

              Aber..... egal was ich mache ich erhalte keine IP vom DHCP. Ich habe es auch auf der Commandline versucht ohne Erfolg

              Vielleicht liegt es ja an der ESXi auf der der iobroker läuft.....

              1 Reply Last reply Reply Quote 0
              • ruhr70
                ruhr70 last edited by

                Ah… OK

                Das hatte ich bei mir am Master unter ESXi auch. Deswegen läuft das Skript auf einem Satelliten (Raspberry Pi 3).

                Ich vermute, dass es auch unter ESXi funktioniert, man aber ein paar Einstellungen vornehmen muss (promiscuous mode?).

                https://kb.vmware.com/selfservice/micro … Id=1004099

                Da ich genug Satelliten habe, habe ich es auf dem Pi belassen.

                1 Reply Last reply Reply Quote 0
                • ruhr70
                  ruhr70 last edited by

                  Gerade auch noch einmal unter ESXi versucht. Da bekomme ich es auch nicht hin.

                  michael@ubuntu1604server:~/dhtest-master$ sudo ./dhtest -m af:fe:af:fe:af:fe -i ens160
                  DHCP discover sent	 - Client MAC : af:fe:af:fe:af:fe
                  DHCP discover sent	 - Client MAC : af:fe:af:fe:af:fe
                  DHCP discover sent	 - Client MAC : af:fe:af:fe:af:fe
                  
                  1 Reply Last reply Reply Quote 0
                  • S
                    simpixo last edited by

                    Da bin ich aber beruhigt [emoji6] dachte es ist nur bei mir so

                    Gruß

                    Adrian

                    Gesendet von iPhone mit Tapatalk Pro

                    1 Reply Last reply Reply Quote 0
                    • S
                      simpixo last edited by

                      @ruhr70:

                      Gerade auch noch einmal unter ESXi versucht. Da bekomme ich es auch nicht hin.

                      michael@ubuntu1604server:~/dhtest-master$ sudo ./dhtest -m af:fe:af:fe:af:fe -i ens160
                      DHCP discover sent	 - Client MAC : af:fe:af:fe:af:fe
                      DHCP discover sent	 - Client MAC : af:fe:af:fe:af:fe
                      DHCP discover sent	 - Client MAC : af:fe:af:fe:af:fe
                      ```` `  
                      

                      Also ich habe es jetzt hinbekommen, aber du musst wie von dir schon erwähnt den "Promiscous-Modus" aktivieren

                      432_screenshot_2017-03-07_09.10.02.png

                      Danach wird eine IP ohne Probleme geholt.

                      432_screenshot_2017-03-07_09.12.50.png

                      Gruß

                      Adrian

                      Update

                      So wird der "Promiscuous-Modus" auf dem ESXi konfiguriert:

                      ` > To configure a portgroup or virtual switch to allow promiscuous mode:

                      Log into the ESXi/ESX host or vCenter Server using the vSphere Client.

                      Select the ESXi/ESX host in the inventory.

                      Click the Configuration tab.

                      In the Hardware section, click Networking.

                      Click Properties of the virtual switch for which you want to enable promiscuous mode.

                      Select the virtual switch or portgroup you wish to modify and click Edit.

                      Click the Security tab.

                      From the Promiscuous Mode dropdown menu, click Accept. `

                      Zu finden auch unter

                      https://kb.vmware.com/selfservice/micro … Id=1004099

                      1 Reply Last reply Reply Quote 0
                      • ruhr70
                        ruhr70 last edited by

                        @simpixo:

                        Also ich habe es jetzt hinbekommen, aber du musst wie von dir schon erwähnt den "Promiscous-Modus" aktivieren `

                        So die Theorie 😉

                        Mein Versuch gestern war nachdem ich auf dem ESXi den "Promiscous-Modus" aktiviert habe. Sowohl für den vSwitch, als auch für die Portgruppe. In dem Link, den ich oben gepostet hatte, stand drin, dass die Portgruppe die Einstellung des vSwitch "überstimmt". Ist jedenfall nun überall eingestellt und funktioniert leider nicht 😞

                        Werde wohl noch irgendwo was einstellen müssen. Wir haben doch beide einen NUC oder?

                        [EDIT]

                        Du hast den gleichen vmware Link gepostet 😉

                        Nur bei Dir war es ein Erfolg…

                        1 Reply Last reply Reply Quote 0
                        • S
                          simpixo last edited by

                          @ruhr70:

                          Werde wohl noch irgendwo was einstellen müssen. Wir haben doch beide einen NUC oder? `

                          Leider nein… ich habe momentan einen ausgedienten SFF PC (HP Compaq 8000 Elite Small Form Factor-PC) als ESXi laufen.

                          Gruß

                          Adrian

                          1 Reply Last reply Reply Quote 0
                          • First post
                            Last post

                          Support us

                          ioBroker
                          Community Adapters
                          Donate

                          987
                          Online

                          31.7k
                          Users

                          79.8k
                          Topics

                          1.3m
                          Posts

                          2
                          11
                          1535
                          Loading More Posts
                          • Oldest to Newest
                          • Newest to Oldest
                          • Most Votes
                          Reply
                          • Reply as topic
                          Log in to reply
                          Community
                          Impressum | Datenschutz-Bestimmungen | Nutzungsbedingungen
                          The ioBroker Community 2014-2023
                          logo