Linbo-remote: not a pxe host!?

Alois,

was steht hier?
https://docs.linuxmuster.net/de/v7.1/systemadministration/network/networksegmentation/networksegmentation.html
Das was Du mit „falschen Netz“ bezeichnest, wird dort beschrieben!!!

Also was erzählst Du da?

Oder habe ich die ganz dicken Tomaten auf den Augen?

Dass Dein Netz segmentiert ist, ist nirgendwo zu lesen, wenn doch, dann habe ich es übersehen.

Wir pflegen hier im Übrigen einen freundlichen Umgangston.

Gruß Alois

Hallo Anacronataff,

auf der von dir zitierten Seite steht im Abschnitt Konfiguration des L3 Switches ( Netzwerksegmentierung — linuxmuster.net 7.1 Dokumentation ) u.a.

UDP-Relaying einrichten (damit WOL über Subnetzgrenzen hinweg funktioniert)

Hast du das gemacht?

Grüße
Sven

Hallo,

auf der von dir zitierten Seite steht im Abschnitt Konfiguration des L3
Switches ( Netzwerksegmentierung — linuxmuster.net 7.1 Dokumentation
https://docs.linuxmuster.net/de/v7.1/systemadministration/network/networksegmentation/networksegmentation.html#konfiguration-des-l3-switches
) u.a.

UDP-Relaying einrichten (damit WOL über Subnetzgrenzen hinweg
funktioniert)

jetzt, nachdem ich bemerkt habe, dass das Netz segmentiert ist, bahe ich
auch an das UDP Relay gedacht … und natürlich auch an
linuxmuster-import-subnets

Wurde das gemacht?
Wie sieht die /etc/linuxmuster/subnets aus?

LG

Holger

Das geht doch auch etwas freundlicher, oder?

Die Suche hier an Firewalleinstellungen ist nicht zielführend. Wenn das WOL Paket vom Server schon über die Netzgrenzen hinweg beim Client ankommt, dann funktioniert das auch.

Linbo verwendet intern glaube ich wakeonlan, genau wie von dir getestet. Welche Version von Linbo kommt denn zum Einsatz? An der Stelle wurde in letzter Zeit viel geschraubt, es ist nicht ausgeschlossen, dass es hierbei ein Bug gibt.

Ist denn der Client auch mit linuxmuster-import-devies aufgenommen? Seit kurzer Zeit werden hierfür Informationen aus dem AD genommen statt direkt aus der devices.csv.

1 „Gefällt mir“

Hallo Till,
sorry, aber ich habe oben alles beschrieben (VLAN, wakeonlan funktioniert, linbo mit IP garnicht, linbo mit hostname auch nicht, etc). Alois scheint das nicht reichtig gelesen zu haben.

Erst Du scheinst das Problem verstanden zu haben:

Die Suche hier an Firewalleinstellungen ist nicht zielführend. Wenn das WOL Paket vom Server schon über die Netzgrenzen hinweg beim Client ankommt, dann funktioniert das auch.

Warum geht wakeonlan und warum linbo NICHT! Diese Frage habe ich mehrfach gestellt und Sie ist von Alois ignoriert worden.

Deswegen meine forsche Frage an Alois. Sorry dafür. Bin zur Zeit einwenig genervt, weil mit Linuxmuster scheinbar nix richtig läuft. Was aber läuft ist die Zeit bis Ende der Ferien. Bis dahin soll logosrv abgelößt sein. Aber die einfachsten Dinge wie Drucken oder wol scheinen nicht zu funkionieren. Dabei haben wir alles nach Anleitung gemacht und sogar schon eine teuere Schulung hinter uns.

Jetzt zu Deinen Fragen:

-Base…: 7.1.12-0
-Linbo…: 4.0.28-0
-WebUI…: 7.1.25
-Sophomorix…: 3.90.3-1

und mit linuxmuster-import-devies meinst Du vermutlich: „Speichern & importieren“ drücken nach der Geräteaufnahme. Ja, das haben wir gemacht!

Danke für weitere Ideen

cat /etc/linuxmuster/subnets.csv
# modified by linuxmuster-setup at 20220413153740
# /etc/linuxmuster/subnets.csv
#
# thomas@linuxmuster.net
# 20200917
#
# Network/Prefix ; Router-IP (last available IP in network) ; 1. Range-IP ; Last-Range-IP ;Namserver(use lmn server if empty);nextserver (tftp server leave empty for default; SETUP-Flag
#
# server subnet definition
10.0.0.0/16;10.0.0.254;10.0.255.1;10.0.255.254;;;SETUP

# add your subnets below
#

#
# AK1
10.101.0.0/16;10.101.0.254;10.101.200.1;10.101.255.254;;;SETUP
# Freifunk
10.40.0.0/16;10.40.0.254;10.40.200.1;10.40.255.254;;;SETUP

Ich kann den Unmut ja verstehen. Dass du hier in ein paar Probleme läufst, kann vorkommen. Linuxmuster 7.1 ist allerdings auch immer noch offiziell im Beta Status. Das hier die ein oder andere Funktion schiefläuft, kann also passieren. Das sollte so auch bei der Schulung komuniziert worden sein.

Von welcher Schulung sprechen wir denn hier? Die Dienstleisterschulung für LMN7? Wenn die Zeit drängt und du unzufrieden mit dem Support der Community bist (welche hier im Übrigen alle Ehrenamtlich in Ihrer Freizeit versuchen zu helfen), gibt es auch die Möglichkeit kommerziellen Support hinzuzukaufen. Die Händlerliste findet sich auf der Linuxmuster Homepage. Ich selber bin für die Firma Netzint tätig und mache auch die Schulungen. Daher sollten wir uns zumindest mal getroffen haben.Die Supportmöglichkeiten sollten auch bei der Schulung erklärt worden sein, wenn dort was nicht angekommen ist dann gerne melden.

Gruß,
Andreas Till

Hallo anacronataff,

zuallererst: ich kenne leider nicht die Lösung zu Deinem Problem, möchte aber ein paar Dinge anmerken:

Nun ja…: die Information, dass Du Deine Netze getrennt hast, konnte ein aufmerksamer Leser des Threads überhaupt erst aus dem ip a Output im 12. Post herauslesen! Welche VLANs Du da verwendest (auch wenn das nicht wichtig ist), erst in Post 16.
Solche (in diesem Fall wichtigen!) Informationen hätte ich von Dir ganz zu Anfang erwartet.

Nun sind Deine Erwartungshaltungen ja aber auch nicht ganz gering: ich kann zwar gut nachvollziehen, dass Du angesichts der schwindenden Zeit im Stress bist und dringend eine Lösung suchst. Das Feature, alle Clients remote (scriptgesteuert) aufzuwecken, ist aber zwar „nice to have“, darf aber kein Showstopper für den GoLive der lmn7.1 sein!? Das kannst Du doch auch in ein paar Wochen/Monaten noch nachziehen, wenn die kritischen Dinge gelöst sind!?

Und wie Andreas bereits sagte: wir sind hier zu 99% ehrenamtliche Supporter, die das gerne nach bestem Wissen und Gewissen und in ihrer Freizeit machen. Oder hast Du mit Alois einen Dienstleistervertrag und wirfst ihm pro Tag 1000€ in den Rachen? Dann würde ich auch Ansprüche stellen. Andernfalls sollte man sich aus o.g. Gründen da vielleicht etwas diplomatischer ausdrücken.

Und falls Dir der manchmal etwas langsame (wobei ich denke, wir sind da ganz gut) ehrenamtliche Support nicht genügt, hat Dir Andreas ja bereits angeboten, dass u.a. die Firma netzint (gegen Einwurf kleiner Münzen) schnellen und professionellen Support anbietet.

Just my 0,02$ und nichts für ungut, viele Grüße,
Jochen

1 „Gefällt mir“

Ja, ich war 03. - 04. November 2021 in Freiburg.

Wie auch immer. Ich habe mir nun den Sourcecode von linbo-remote mal angeschaut und die zwei Fehler gefunden:

  1. Fehler: linbo-remote mit einer IP nach dem -i wird mit not a pxe host beendet. Also z.B. linbo-remote -i 10.101.199.182 → not a pxe host
    Das liegt daran, dass nslookup den Hostnamen in Kleinbuchstaben auflöst, der PC in der devices.csv ($WIMPORTDATA) aber in Großbuchstaben steht und hinter dem zweiten grep kein -i.
    Lösung:
    A.) entweder Unterbindet man die Registierung von PC’s mit Großbuchstanben in der GUI und in Limbo
    oder
    B:) Man entnimmt den Hostnamen aus der devices.csv statt mit nslookup
    oder
    C:) man schreibt hinter dem zweiten grep ein -i
    Ich habe mich für Lösung C entschieden.
    Meine geänderte Zeile lautet statt diese Zeile
    pxe="$(grep -i ^[a-z0-9] $WIMPORTDATA | grep ";$HOSTNAME;" | awk -F\; '{ print $11 }')"
    nun wie folgt
    pxe="$(grep -i ^[a-z0-9] $WIMPORTDATA | grep -i ";$HOSTNAME;" | awk -F\; '{ print $11 }')"
    Damit ist Fehler 1 gelößt.

  2. Fehler: linbo-remote ruft wakeonlan NICHT mit -i gefolgt mit der IP des hosts auf. Bzw. mit Parameter -u schon, aber dann nur die Brodcastadresse.
    Lösung: Änderung von linbo-remote in so fern, dass statt

    # use broadcast address
    if [ -n "$USEBCADDR" ]; then
      if validip "$i"; then
        hostip="$i"
      else
        hostip="$(get_ip "$i")"
      fi
      bcaddr=$(get_bcaddress "$hostip")
      [ -n "$bcaddr" ] && WOL="$WOL -i $bcaddr"
    fi

nun dort steht:

    if validip "$i"; then
      hostip="$i"
    else
      hostip="$(get_ip "$i")"
    fi
    # use broadcast address
    if [ -n "$USEBCADDR" ]; then
      bcaddr=$(get_bcaddress "$hostip")
      [ -n "$bcaddr" ] && WOL="$WOL -i $bcaddr"
    else
      [ -n "$hostip" ] && WOL="$WOL -i $hostip"
    fi

Damit ist Fehler 2 gelößt

Ich denke, dass sollte im Quellcode von Linuxmuster übernommen werden. Vielleicht hilft es ja.

Hallo anacronataff,

vielen Dank für das Debuggin MIT Lösung: tolle Sache :slight_smile:

Dass der Fehler von den „alten Hasen“ die linbo 4 seit etlichen Monaten
produktiv einsetzten, nicht gefunden wurde, kann ich auch erklären: wir
nutzen alle immer nur Kleinbuchstaben bei den Hosts.
Ich weiß nicht mehr, was das ausgelößt hat, aber das war auch imemr mal
eine Empfehlung.
In die Doku und in die WebUI hat es diese Empfehlung bisher aber nicht
geschafft.
Es sollte unterbunden werden.
Gleichzeitig sollte es aber linbo trotzdem richtig machen.

Vielen Dank :slight_smile:

Holger

Damit haben wir ja die Lösung gefunden, in der Richtung hatte ich auch das Problem vermutet. Wie schon gesagt, früher wurde nicht über nslookup der Name aufgelöst, das kam mit der 7.1 hinzu.

Ich denke, der Fix ist so in Ordnung, du kannst wenn du magst gerne entsprechend ein Issue oder gleich ein PR anlegen unter GitHub - linuxmuster/linuxmuster-linbo7: Next generation linbo

Das sollte auch weder in die Webui noch in die Doku, das sollte einfach keine Rolle spielen. Hostnamen sind immer Case insensitive :slight_smile:

Ich finde es sollte schon einen Hinweis in der Doku geben, habe darum ein Issue angelegt.

Beste Grüße

Thorsten

Keine Ahnung, ob das richtig ist. Ich kenne mich mit git nicht aus:

Ich finde nicht, dass das dauerhaft in der Doku stehen sollte. Wenn es kein Problem gibt sollte es auch nicht dokumentiert werden, das ist nur ein Workaround zu einem Problem, das es gar nicht geben sollte.

1 „Gefällt mir“

Hallo Till,

kein Hinweis auf die Übergangslösung, sondern einen auf das, was du schreibst.

siehe obiges Issue.

Dass die Fehlerquelle auf der Softwareseite abgefangen gehört, ist klar.

Beste Grüße und danke für deine Unterstützung.

Thorsten

Leider zu früh gefreut. O.g. Lösung funktioniert auch nicht zuverlässig.

wakeonlan -i mit ipdresse funktioniert nur, wenn die firewall (hier: Opensense) den entsprechenden PC noch in der ARP Tabelle hat. (Schnittstellen->Diagnose->ARP Tabelle). Wenn der PC aber aus ist, verschwindet der PC nach ein paar Stunden jedoch automatisch aus der ARP Tabelle der firewall. Opensense weiß dann wohl nicht ins welches Netz das wakeonlan-paket gehört und verwirft es. Somit funktioniert dann auch wakeonlan -i mit ipdresse NICHT mehr. Natürlich auch linbo-remote nicht mehr

Wir haben weiter nach Lösungen gesucht:

Nun kann man ja auch bei wakeonlan -i eine Brodcastadresse angeben. Z.B. wakeonlan -i 10.101.255.255. Sollte normalerweise funktionieren, da die Firewall anhand Ihrer Schnittstellen das passende Netz herrausfinden könnte. Macht Opensense aber nicht. Auch das Brodcast-wakeonlan-Paket verwirft sie.

Lösung wäre hier, das man in der ARP-Tabelle von Opensense die Netze mit den entsprechenden Brodcastadressen neustartfest einträgt. Das sieht aber die WebGUI von Opensense nicht vor. Somit muss man das über die Konsole machen: Login mit root → 8 drücken → shell → cd /usr/local/etc/rc.syshook.d/start/ → dann dort für jedes Netz eine Datei (z.B. 99-broadcast-vlan101) erzeugen (Brodcastadresse entsprechend anpassen)

#!/bin/sh

arp -S 10.101.255.255 FF:FF:FF:FF:FF:FF

Damit funktioniert wakeonlan -i 10.101.255.255 zuverlässig.

Die Frage bleibt, wie machen wir das nun bei linbo-remote? Nun linbo-remote hat ja den Parameter -u. Doch fragen wir uns, warum wakeonlan nicht immer mit der Brodcastadresse aufrufen? Wir haben da keine Nachteile gesehen und somit nun in linbo-remote statt

   # use broadcast address
   if [ -n "$USEBCADDR" ]; then
      bcaddr=$(get_bcaddress "$hostip")
      [ -n "$bcaddr" ] && WOL="$WOL -i $bcaddr"
   else
     [ -n "$hostip" ] && WOL="$WOL -i $hostip"
   fi

komplett auf den else-zweig verzichtet:

   # # use broadcast address
   # if [ -n "$USEBCADDR" ]; then
      bcaddr=$(get_bcaddress "$hostip")
      [ -n "$bcaddr" ] && WOL="$WOL -i $bcaddr"
   # else
   #   [ -n "$hostip" ] && WOL="$WOL -i $hostip"
   # fi

Ich glaube das kann man so in git übernehmen plus den Parameter -u komplett rausimplentieren.
Oder sieht da einer Nachteile?

Danke für Antworten.

@thomas

Gruß

Alois

Ja, es gibt unterschiedliche Möglichkeiten die Netze zu trennen und zu Routen. Nicht jeder Linuxmuster Nutzer verwendet eine Opnsense Firewall.

Breaking Changes sind generell stets zu vermeiden.

Beispiel?

Denn selbst wenn einer ne andere firewall und/oder Netztopologie nutzt, schadet wakeonlan -i mit Brodcastadresse m.E. NICHT!