• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

Gelöst PXE-Boot Raspberry Pi 3+4

daddy.k

Member
Hallo alle zusammen!

Seit etwa einem halben Jahr teste ich in meinem Heimnetzwerk für mich recht erfolgreich das Booten der Raspberry Pi's, mit einigen Ausnahmen die ich mir nicht erklären kann
und auch nicht verstehe.

Die PI's "dn1" und "dn2" sind beide 3b+.
"dn1" wechselt zuverlässig den Boot-Server wenn ich für "next-server ip-adresse / Name" des Boot-Servers ändere.
"dn2" booted selbst nach mehreren "reboot" immer noch vom gleichen Server!

Ich kann keinen Grund für dieses Verhalten erkennen.

Zum Einsatz kommen (die Name sind zur späteren Verwendung gewählt) bis auf einen Server-PC (drei) vorerst nur Raspberry Pi's zum Einsatz.

Kompnenten:
Server (drei); (Ausgabe hardinfo -r): 192.168.38.110
-Product-​
Name : B760 GAMING X DDR4​
Family : B760 MB​
Hersteller : Gigabyte Technology Co., Ltd. (Gigabyte Technology, www.gigabyte.com.tw)​
-Computer-​
Prozessor : 12th Gen Intel(R) Core(TM) i5-12500​
Hauptspeicher : 32631MB (6356MB used)​
Maschinen-Typ : Desktop​
Betriebssystem : Debian GNU/Linux 12 (bookworm)​
Benutzername : root (root)​
Date/Time : Do 08 Feb 2024 11:39:31 CET​
RAID bus controller : Broadcom / LSI MegaRAID SAS 2208 [Thunderbolt] (rev 05)​
pxe-server: Pi 4 mit SSD am USB-Port (Bootet auch von hier) mit Images der restlichen Pi's: 192.168.38.201
dn1: Pi 3b+ (Bootet aus Netzwerk): 192.168.38.103
dn2: Pi 3b+ (Bootet aus Netzwerk): 192.168.38.104
gate1: Pi 4 (Bootet aus Netzerk): 192.168.38.106

Konfiguration:

drei und pxe-server:
dnsmasq
Code:
root@drei:~# systemctl status dnsmasq.service
● dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
     Loaded: loaded (/lib/systemd/system/dnsmasq.service; enabled; preset: enabled)
     Active: active (running) since Mon 2024-02-05 23:59:59 CET; 2 days ago
   Main PID: 291111 (dnsmasq)
      Tasks: 1 (limit: 38173)
     Memory: 47.1M
        CPU: 13.072s
     CGroup: /system.slice/dnsmasq.service
             └─291111 /usr/sbin/dnsmasq -x /run/dnsmasq/dnsmasq.pid -u dnsmasq -r /run/dnsmasq/resolv.conf -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new>
Code:
/etc/default# less dnsmasq
#DOMAIN_SUFFIX=`dnsdomainname`
#DNSMASQ_OPTS="--conf-file=/etc/dnsmasq.alt"
ENABLED=0
CONFIG_DIR=/etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new
#IGNORE_RESOLVCONF=yes
#DNSMASQ_EXCEPT="lo"
Code:
/etc# less dnsmasq.conf
port=0
dhcp-range=192.168.38.255,proxy
log-dhcp
enable-tftp
tftp-root=/srv/tftpboot
pxe-service=0,"Raspberry Pi Boot"
tftp-unique-root
tftpd-hpa habe ich wieder removed, started nicht wenn dnsmaq gestartet ist.

Im Verzeichniss "/srv/tftpboot/" befinden sich die Imagesdateien der Pi's mit den dazugehörigen Links auf den "firmware"-Ordner.
Code:
root@drei:/srv/tftpboot# dir
lrwxrwxrwx  1 root root   18  7. Feb 15:37 192.168.38.103 -> dn1/boot/firmware/
lrwxrwxrwx  1 root root   18  6. Feb 20:05 192.168.38.104 -> dn2/boot/firmware/
lrwxrwxrwx  1 root root   23  5. Feb 23:03 192.168.38.106 -> pi-gate1/boot/firmware/
drwxr-xr-x 18 root root 4,0K  8. Dez 14:30 dn1
drwxr-xr-x 18 root root 4,0K  6. Feb 00:44 dn2
drwxr-xr-x 18 root root 4,0K  4. Jan 17:34 pi-gate1
Die Dateien in "dn1", "dn2" und "pi-gate1" wurden für jeden Boot-Server angepasst!
Symbolisch für die drei Pi's, hier aus "dn1":
Code:
root@drei:/srv/tftpboot/dn1/boot/firmware# less cmdline.txt
console=serial0,115200 console=tty1 root=/dev/nfs nfsroot=192.168.38.[B]201[/B]:/srv/tftpboot/dn1,nfsvers=3 rw ip=dhcp rootwait elevator=deadline cfg80211.ieee80211_regdom=DE
und
Code:
root@drei:/srv/tftpboot/dn1/etc# less fstab
proc                                    /proc  proc     defaults                0  0
pxe-server:/srv/tftpboot/dn1            /      nfs      defaults,noatime        0  1

#PARTUUID=45860646-01  /boot/firmware  vfat    defaults          0       2
#PARTUUID=45860646-02  /               ext4    defaults,noatime  0       1
# a swapfile is not a swap partition, no line here
#   use  dphys-swapfile swap[on|off]  for that

Zum Schluss noch die Konfiguration meines DHCP-Server (Liegt aus einem andern Rechner)
Code:
Einträge in der "dhcpd.conf":

allow booting;
allow bootp;

host dn1 {                              # PXE-BOOT Raspi 3
  next-server pxe-server;
  option host-name "dn1";
  hardware ethernet b8:27:eb:0e:06:02;
  fixed-address 192.168.38.103;
}
#
host dn2 {                              # PXE-BOOT Raspi 3
  next-server pxe-server;
  option host-name "dn2";
  hardware ethernet b8:27:eb:6f:e7:fe;
  fixed-address 192.168.38.104;
}
# und
host pi-gate1 {                         # PXE-BOOT Raspi 4 !In Planung
  next-server drei;
  option host-name "pi-gate1";
  hardware ethernet dc:a6:32:86:d9:e5;
  fixed-address 192.168.38.106;
}
 
Zuletzt bearbeitet von einem Moderator:
Ziemlich verwirrend das alles!
tftpd-hpa habe ich wieder removed, started nicht wenn dnsmaq gestartet ist.
Das glaube ich dir

1. Ohne tftpd-hpa funktioniert das sowieso nicht.
dnsmaq sollte komplett raus, aus allen devices

2. DHCP (sieht aus wie der ISC-DHCPd ?)
Wo ist die Direktive filename? Das ist Teil von dhcp -> bootp

3. Ein DNS für alles, Empfehlung unbound
Dann in DHCP option domain-name-servers einfügen.

Fertig
 

Christina

Moderator
Teammitglied
@daddy.k
Für Code-Zeilen bitte CODE-Tags </> verwenden, nicht ICODE >_. Siehe: Allgemeine Formatierungsregeln

Beim Kopieren und Einfügen von Code-Zeilen solltest du einen Texteditor ohne Formatierung verwenden.
Die ganzen [INDENT] … [/INDENT], [B] … [/B] und [I] … [/I] habe ich jetzt für dich von Hand entfernt und ICODE nach CODE umgesetzt.

Lg, Christina
 
OP
D

daddy.k

Member
Hallo Gräfin Klara!

Jetzt hab ich ZWEI Probleme!!!

1. Problem:
Weiterhin schert sich mein Raspi nicht um den Eintrag next-server im DHCP!​
Eintrag im DHCP lautet: next-server 192.168.38.201, booted aber von 192.168.38.110!​

2. Problem:
Nach deiner Aussage verstehe ich, dass das Booten ohne tftp-hpa nicht funktioniert, was es aber tut!​
Code:
root@drei:/srv/tftpboot# lsof -L | grep tftp
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/116/gvfs
      Output information may be incomplete.
bash      313168                        root  cwd       DIR              259,4      4096   22544404 /srv/tftpboot
dnsmasq   320501                     dnsmasq    7u     IPv4            1174109       0t0        UDP *:tftp
dnsmasq   320501                     dnsmasq    8u     IPv6            1174110       0t0        UDP *:tftp
bash      326089                        root  cwd       DIR              259,4      4096   22544404 /srv/tftpboot
lsof      327550                        root  cwd       DIR              259,4      4096   22544404 /srv/tftpboot
grep      327551                        root  cwd       DIR              259,4      4096   22544404 /srv/tftpboot
lsof      327552                        root  cwd       DIR              259,4      4096   22544404 /srv/tftpboot
root@drei:/srv/tftpboot#
Außerdem hab ich mich "als Laie" auf dutzenden Internetseiten und Anleitungen informiert, wobei keine auf Anhieb funktionierte​
oder für mich nicht mehr verständlich war.
Auf der Seite "zlabinger.info | Raspberry Pi 3/4 mittels PXE vom Netzwerk booten" hatte
ich dann den Hinweis gefunden, "Der Folder "36f73078" ist jener Ort, wo der Raspberry Pi 4 sein Boot-Image suchen wird.".
In weiteren Beschreibungen steht dann der Hinweis, das die IP-Adresse des Pi hierbei in der Hexadezimalen Schreibweise wie im Beispiel
oder auch als "xxx.xxx.xxx.xxx" angegebenwerden kann.

Nach dem ich dann den Link wie beschrieben, "pi@nfs-server:/mnt/nas $ ln -s rpi4-36f73078/boot/ 36f73078" abgeändert hatte in
"pi@nfs-server:/mnt/nas $ ln -s rpi4-36f73078/boot/firmware 36f73078", hat der Bootvorgang geklappt.

Als Hausaufgabe sehe ich es jetzt als erstes an, mich daran zu Versuchen den Pi zu überreden, wieder auf meinem Test-Boot-Server (pxe-server: 192.168.38.201) zu Booten.

Danke schon mal für Deine Infos.

Daddy
 
OP
D

daddy.k

Member
Hallo zusammen,

ich habe jetzt den "host" Abschnitt im "isc-dhcp-server" angepasst. Sie sieht jetzt so aus.
Code:
host pi-gate1 {                         # PXE-BOOT Raspi 4 !In Planung
  next-server pxe-server;
  filename "pxelinux.0";
  option host-name "pi-gate1";
  hardware ethernet dc:a6:32:86:d9:e5;
  fixed-address 192.168.38.106;
}
Weiterhin habe ich meinen Test-Pi (pxe-server: 192.168.38.201) wie folgt angepasst.
1. dnsmasq disabled
2. tftp-hpa gestartet, config sieht wie folgt aus (Werte aus: PXE Server installieren (Debian/Ubuntu) - 4noobs):
Code:
# /etc/default/tftpd-hpa

OPTIONS="-l -s /srv/tftpboot"

TFTP_USERNAME="tftp"
TFTP_DIRECTORY="/srv/tftpboot"
TFTP_ADDRESS="0.0.0.0:69"
TFTP_OPTIONS="--secure --create -l -s"
Die Ausgaben der Änderungen sehen jetzt so aus:
Code:
root@pxe-server:/srv/tftpboot # systemctl status tftpd-hpa.service
* tftpd-hpa.service - LSB: HPA's tftp server
     Loaded: loaded (/etc/init.d/tftpd-hpa; generated)
     Active: active (running) since Fri 2024-02-09 23:55:20 CET; 18min ago
       Docs: man:systemd-sysv-generator(8)
    Process: 7407 ExecStart=/etc/init.d/tftpd-hpa start (code=exited, status=0/SUCCESS)
      Tasks: 1 (limit: 1577)
        CPU: 43ms
     CGroup: /system.slice/tftpd-hpa.service
             `-7417 /usr/sbin/in.tftpd --listen --user tftp --address 0.0.0.0:69 --secure --create -l -s /srv/tftpboot

Feb 09 23:55:20 pxe-server systemd[1]: Starting tftpd-hpa.service - LSB: HPA's tftp server...
Feb 09 23:55:20 pxe-server tftpd-hpa[7407]: Starting HPA's tftpd: in.tftpd.
Feb 09 23:55:20 pxe-server systemd[1]: Started tftpd-hpa.service - LSB: HPA's tftp server.
root@pxe-server:/srv/tftpboot #
root@pxe-server:/srv/tftpboot # systemctl status dnsmasq.service
* dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
     Loaded: loaded (/lib/systemd/system/dnsmasq.service; disabled; preset: enabled)
     Active: inactive (dead)

Feb 09 21:27:08 pxe-server dnsmasq-dhcp[4466]: 1487759126 "Vendor class": android-dhcp-10
Feb 09 21:27:08 pxe-server dnsmasq-dhcp[4466]: 1487759126 Klient stellt Name bereit: Galaxy-S9
Feb 09 21:27:08 pxe-server dnsmasq-dhcp[4466]: 1487759126 verfügbares DHCP-Subnetz: 192.168.38.255/255.255.255.0
Feb 09 21:27:08 pxe-server dnsmasq-dhcp[4466]: 1487759126 "Vendor class": android-dhcp-10
Feb 09 21:27:08 pxe-server dnsmasq-dhcp[4466]: 1487759126 Klient stellt Name bereit: Galaxy-S9
Feb 09 21:42:21 pxe-server systemd[1]: Stopping dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server...
Feb 09 21:42:21 pxe-server dnsmasq[4466]: beende nach Empfang von SIGTERM
Feb 09 21:42:21 pxe-server systemd[1]: dnsmasq.service: Deactivated successfully.
Feb 09 21:42:21 pxe-server systemd[1]: Stopped dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server.
Feb 09 21:42:21 pxe-server systemd[1]: dnsmasq.service: Consumed 14.733s CPU time.
root@pxe-server:/srv/tftpboot #
root@pxe-server:/srv/tftpboot # lsof -L | grep tftp
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
      Output information may be incomplete.
lsof: WARNING: can't stat() fuse.portal file system /run/user/1000/doc
      Output information may be incomplete.
bash      2979                            root  cwd       DIR                8,2      4096     291362 /srv/tftpboot
in.tftpd  7417                            root  cwd       DIR                8,2      4096     291362 /srv/tftpboot
in.tftpd  7417                            root  rtd       DIR                8,2      4096          2 /
in.tftpd  7417                            root  txt       REG                8,2     69208     128785 /usr/sbin/in.tftpd
in.tftpd  7417                            root  mem       REG                8,2     68232     139415 /usr/lib/aarch64-linux-gnu/libresolv.so.2
in.tftpd  7417                            root  mem       REG                8,2     67432     134904 /usr/lib/aarch64-linux-gnu/libkeyutils.so.1.10
in.tftpd  7417                            root  mem       REG                8,2     68576     134910 /usr/lib/aarch64-linux-gnu/libkrb5support.so.0.1
in.tftpd  7417                            root  mem       REG                8,2     67432     134616 /usr/lib/aarch64-linux-gnu/libcom_err.so.2.1
in.tftpd  7417                            root  mem       REG                8,2    199352     134901 /usr/lib/aarch64-linux-gnu/libk5crypto.so.3.1
in.tftpd  7417                            root  mem       REG                8,2    928736     134909 /usr/lib/aarch64-linux-gnu/libkrb5.so.3.3
in.tftpd  7417                            root  mem       REG                8,2    334904     134795 /usr/lib/aarch64-linux-gnu/libgssapi_krb5.so.2.2
in.tftpd  7417                            root  mem       REG                8,2    198960     135229 /usr/lib/aarch64-linux-gnu/libtirpc.so.3.0.0
in.tftpd  7417                            root  mem       REG                8,2     89376     135025 /usr/lib/aarch64-linux-gnu/libnsl.so.2.0.1
in.tftpd  7417                            root  mem       REG                8,2   1651472     139081 /usr/lib/aarch64-linux-gnu/libc.so.6
in.tftpd  7417                            root  mem       REG                8,2     68344     135297 /usr/lib/aarch64-linux-gnu/libwrap.so.0.7.6
in.tftpd  7417                            root  mem       REG                8,2    202904     139078 /usr/lib/aarch64-linux-gnu/ld-linux-aarch64.so.1
in.tftpd  7417                            root    0u      CHR                1,3       0t0          5 /dev/null
in.tftpd  7417                            root    1u      CHR                1,3       0t0          5 /dev/null
in.tftpd  7417                            root    2u      CHR                1,3       0t0          5 /dev/null
in.tftpd  7417                            root    3u     unix 0x000000007a0ae96f       0t0      49913 type=DGRAM (CONNECTED)
in.tftpd  7417                            root    4u     IPv4              49916       0t0        UDP *:tftp
lsof      7960                            root  cwd       DIR                8,2      4096     291362 /srv/tftpboot
grep      7961                            root  cwd       DIR                8,2      4096     291362 /srv/tftpboot
lsof      7962                            root  cwd       DIR                8,2      4096     291362 /srv/tftpboot
root@pxe-server:/srv/tftpboot #
!!! Entweder wird diese Konfiguration wird ignoriert oder funktioniert nicht !!!
 
OP
D

daddy.k

Member
Diese Konfiguration sollte nicht funktioneren, tut es aber?
Konfiguration von "drei: 192.168.38.110". Von hier wird auch gebootet!

1. dnsmask active
Code:
port=0
dhcp-range=192.168.38.255,proxy
log-dhcp
enable-tftp
tftp-root=/srv/tftpboot
pxe-service=0,"Raspberry Pi Boot"
tftp-unique-root
2. tftp-hpa disabled
Code:
root@drei:/srv/tftpboot# systemctl status tftpd-hpa.service
○ tftpd-hpa.service - LSB: HPA's tftp server
     Loaded: loaded (/etc/init.d/tftpd-hpa; generated)
     Active: inactive (dead) since Fri 2024-02-09 23:22:28 CET; 47min ago
   Duration: 24min 53.581s
       Docs: man:systemd-sysv-generator(8)
        CPU: 53ms

Feb 09 22:57:35 drei systemd[1]: Starting tftpd-hpa.service - LSB: HPA's tftp server...
Feb 09 22:57:35 drei tftpd-hpa[327745]: Starting HPA's tftpd: in.tftpd.
Feb 09 22:57:35 drei systemd[1]: Started tftpd-hpa.service - LSB: HPA's tftp server.
Feb 09 23:22:28 drei systemd[1]: Stopping tftpd-hpa.service - LSB: HPA's tftp server...
Feb 09 23:22:28 drei tftpd-hpa[327921]: Stopping HPA's tftpd: in.tftpd.
Feb 09 23:22:28 drei systemd[1]: tftpd-hpa.service: Deactivated successfully.
Feb 09 23:22:28 drei systemd[1]: Stopped tftpd-hpa.service - LSB: HPA's tftp server.
root@drei:/srv/tftpboot#
root@drei:/srv/tftpboot# systemctl status dnsmasq.service
● dnsmasq.service - dnsmasq - A lightweight DHCP and caching DNS server
     Loaded: loaded (/lib/systemd/system/dnsmasq.service; enabled; preset: enabled)
     Active: active (running) since Fri 2024-02-09 23:23:13 CET; 46min ago
   Main PID: 327957 (dnsmasq)
      Tasks: 1 (limit: 38173)
     Memory: 720.0K
        CPU: 1.223s
     CGroup: /system.slice/dnsmasq.service
             └─327957 /usr/sbin/dnsmasq -x /run/dnsmasq/dnsmasq.pid -u dnsmasq -r /run/dnsmasq/resolv.conf -7 /etc/dnsmasq.d,.dpkg-dist,.dpkg-old,.dpkg-new>

Feb 10 00:06:50 drei dnsmasq-tftp[327957]: Fehler 0 Early terminate von 192.168.38.106 empfangen
Feb 10 00:06:50 drei dnsmasq-tftp[327957]: konnte /srv/tftpboot/192.168.38.106/kernel8.img nicht an 192.168.38.106 senden
Feb 10 00:06:52 drei dnsmasq-tftp[327957]: /srv/tftpboot/192.168.38.106/kernel8.img an 192.168.38.106 verschickt
Feb 10 00:07:01 drei dnsmasq-dhcp[327957]: 331109312 verfügbares DHCP-Subnetz: 192.168.38.255/255.255.255.0
Feb 10 00:07:01 drei dnsmasq-dhcp[327957]: 331109312 verfügbares DHCP-Subnetz: 192.168.38.255/255.255.255.0
Feb 10 00:07:01 drei dnsmasq-dhcp[327957]: 331109312 Klient stellt Name bereit: pi-gate1
Feb 10 00:07:03 drei dnsmasq-dhcp[327957]: 458103915 verfügbares DHCP-Subnetz: 192.168.38.255/255.255.255.0
Feb 10 00:07:03 drei dnsmasq-dhcp[327957]: 458103915 "Vendor class": Linux ipconfig
Feb 10 00:07:03 drei dnsmasq-dhcp[327957]: 458103915 verfügbares DHCP-Subnetz: 192.168.38.255/255.255.255.0
Feb 10 00:07:03 drei dnsmasq-dhcp[327957]: 458103915 "Vendor class": Linux ipconfig
root@drei:/srv/tftpboot#
root@drei:/srv/tftpboot# lsof -L | grep tftp
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/116/gvfs
      Output information may be incomplete.
bash      313168                        root  cwd       DIR              259,4      4096   22544404 /srv/tftpboot
bash      326089                        root  cwd       DIR              259,4      4096   22544408 /srv/tftpboot/pi-gate1/boot
dnsmasq   327957                     dnsmasq    7u     IPv4            1218535       0t0        UDP *:tftp
dnsmasq   327957                     dnsmasq    8u     IPv6            1218536       0t0        UDP *:tftp
systemctl 327967                        root  cwd       DIR              259,4      4096   22544408 /srv/tftpboot/pi-gate1/boot
pager     327968                        root  cwd       DIR              259,4      4096   22544408 /srv/tftpboot/pi-gate1/boot
lsof      328402                        root  cwd       DIR              259,4      4096   22544404 /srv/tftpboot
grep      328403                        root  cwd       DIR              259,4      4096   22544404 /srv/tftpboot
lsof      328404                        root  cwd       DIR              259,4      4096   22544404 /srv/tftpboot
root@drei:/srv/tftpboot#
 
OP
D

daddy.k

Member
Hallo,
habe eine neue Anleitung von "HOWTO: configuring network booting using isc-dhcp-server options - Raspberry Pi Forums" gefunden.

Gleich umgesetzt:
Code:
group pi {
  if substring (option vendor-class-identifier,0,9) = "PXEClient" {
        option vendor-class-identifier "PXEClient";
        option vendor-encapsulated-options "pxe-service=0,Raspberry Pi Boot";           # vendor-encapsulated-options
        option tftp-server-name "pxe-server";
        option bootfile-name "pxe-linux.0";
        max-lease-time 300;
        ddns-updates off;
  }
  next-server pxe-server;
  filename "pxelinux.0";

  #
  host pi-gate1 {                         # PXE-BOOT Raspi 4 !In Planung
    option host-name "pi-gate1";
    hardware ethernet dc:a6:32:86:d9:e5;
    fixed-address 192.168.38.106;
  }
  #
  host pi-gate2 {                         # PXE-BOOT Raspi 4 !In Planung
    option host-name "pi-gate2";
    hardware ethernet dc:a6:32:fb:2c:9a;
    fixed-address 192.168.38.107;
  }
}
Das Ergebniss steht in der "fstab":
Code:
root@pi-gate1:~ # less /etc/fstab | grep ":/srv/tftpboot"
drei:/srv/tftpboot/pi-gate1             /       nfs     defaults,noatime        0  1
root@pi-gate1:~ #

Ich bin mir nicht sicher, ob in meinem Arbeitszimmer irgendwo eine versteckte Kammera aufgebaut ist!

Wozu gibt es DHCP-Server wenn die Ausgabe von "tcpdump" folgende ist.
Code:
root@pxe-server:/ # tcpdump -i eth0 port bootpc
tcpdump: verbose output suppressed, use -v[v]... for full protocol decode
listening on eth0, link-type EN10MB (Ethernet), snapshot length 262144 bytes


03:24:44.279918 IP wlan-router2.kurek.su.bootpc > drei.kurek.su.bootps: BOOTP/DHCP, Request from 34:31:c4:64:93:71 (oui Unknown), length 548
03:24:44.280707 IP dn1.kurek.su.bootps > 255.255.255.255.bootpc: BOOTP/DHCP, Reply, length 300
03:24:44.280742 IP dn2.kurek.su.bootps > 255.255.255.255.bootpc: BOOTP/DHCP, Reply, length 300


03:26:02.533055 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from dc:a6:32:86:d9:e5 (oui Unknown), length 322
03:26:02.533579 IP drei.kurek.su.bootps > 255.255.255.255.bootpc: BOOTP/DHCP, Reply, length 314
03:26:02.542829 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from dc:a6:32:86:d9:e5 (oui Unknown), length 309
03:26:19.611404 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from dc:a6:32:86:d9:e5 (oui Unknown), length 548
03:26:19.619336 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from dc:a6:32:86:d9:e5 (oui Unknown), length 548
03:26:21.355650 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from dc:a6:32:86:d9:e5 (oui Unknown), length 300
03:26:21.356513 IP dn1.kurek.su.bootps > 255.255.255.255.bootpc: BOOTP/DHCP, Reply, length 321
03:26:21.356568 IP dn2.kurek.su.bootps > 255.255.255.255.bootpc: BOOTP/DHCP, Reply, length 321
03:26:21.356745 IP 0.0.0.0.bootpc > 255.255.255.255.bootps: BOOTP/DHCP, Request from dc:a6:32:86:d9:e5 (oui Unknown), length 300
03:26:21.357342 IP dn1.kurek.su.bootps > 255.255.255.255.bootpc: BOOTP/DHCP, Reply, length 321
03:26:21.357452 IP dn2.kurek.su.bootps > 255.255.255.255.bootpc: BOOTP/DHCP, Reply, length 321
^C
14 packets captured
14 packets received by filter
0 packets dropped by kernel
root@pxe-server:/ #

Ich wünsche allen einen schönen Tag.

Daddy
 

spoensche

Moderator
Teammitglied
Läuft auf dem Router und auf deinem Server ein DHCP- Server? Befindet sich der Router auch im Netz 192.168.38.0/24? Also 2 DHCP Server im gleichen Netz?
 
OP
D

daddy.k

Member
Hallo Spoensche,

ja, es sind 2 DHCP im Netz, dn1 und dn2.
dn1 ist "authoritative;", dn2 ist "non-authoritative;"
dn1 kann keine Anfrage an dn2 stellen und umgekehrt.
Code:
root@dn1:/ # host drei dn2
Using domain server:
Name: dn2
Address: 127.0.0.1#53
Aliases:

Host drei.kurek.su not found: 5(REFUSED)
root@dn1:/ #
Alle andern PC's können beide befragen.
Code:
root@pxe-server:~ # host drei dn1
Using domain server:
Name: dn1
Address: 192.168.38.103#53
Aliases:

drei.kurek.su has address 192.168.38.110
root@pxe-server:~ #
root@pxe-server:~ #
root@pxe-server:~ # host drei dn2
Using domain server:
Name: dn2
Address: 192.168.38.104#53
Aliases:

drei.kurek.su has address 192.168.38.110

Ich denke nicht, das es an den DHCP liegt.
 
OP
D

daddy.k

Member
Hallo Liebe Community und allen die mir bisher Helfen!

Ich bin leider bisher keine Schritt weiter gekommen.
Habe meine dhcpd.conf auch schon mehrfach in der Zwischenzeit umgestellt, zum Teil mir damit auch einige Schierigkeiten bereitet.
Man lernt ja nie aus!
In einem Buch "DNS/DHCP Grundlagen und Praxis" von Konstantinos Agouros habe ich gelesen, dass man verschiedene Rechnersysteme auch mit "class {" abtrennen kann und den jeweiligen classen eigene Konfigurationen mitgeben kann ausprobiert.

Ein Erfolg und ein Misserfolg!

Mein Erfolg lag darin, dass ich zum erstenmal das Vesa-Boot-Menue auf einem PC zu Gesicht bekam.
Der Misserfolg: Die Pis's die gelaufen sind hatten keine Verbindung zum Rootverzeichniss.
Dateien z.B. /etc/dhcp/dhcpd.conf hatte ich auf dem Pi geändert, diese Änderungen wurden aber nie auf den Serveren abgespeichert?!?
Ein Beispiel, ich habe einen nicht verwendeten Pi in der config gelöscht, gespeichert und die config wieder aufgerufen.
In der config war er gelöscht, auf den Server, wo die Rootverzeichnisse abgelegt sind war die Datei nicht verändert worden?!?
Mittlerweile bin ich wieder bei meiner alten Konfiguration.

Ziemlich verwirrend das alles!
Bevor ich jetzt wieder anfange alles zu Posten was mir wichtig erscheint, bitte mir Fragenstellen die ich dann beantworte.
Wenn es wichtig wäre schalte ich auch dn2, den Zweiten DHCP/Name-Server ab. Ist ein Spiegel von dn1.
 

spoensche

Moderator
Teammitglied
dn1 ist "authoritative;", dn2 ist "non-authoritative;"
Du verwechselt da was mit DNS.

ja, es sind 2 DHCP im Netz
Zwei DHCP- Server im 192.168.38.0/24 Netz kann nicht funktionieren, weil sie die Gleiche Broadcast Domain verwenden. Das führt zu merkwürdigem Verhalten, wie du es ja selbst bereits festgestellt hast.

Zwei DHCP Server, die unterschiedliche Netze bedienen funktioniert, z.B. DHCP 1 = 192.168.38.0/24, DHCP 2 = 192.168.39.0/24. Dein Server, mit DHCP, etc. muss also zwei Interfaces und IP Adressen haben. Eine aus dem 192.168.38.0/24er Netz und eine aus einem anderen Netz. Oder ein Netzwerkinterface mit VLAN's, was wiederum voraussetzt, dass dein anderer Router und auch der Switch VLAN fähig sind. Dein Server muss auch als Router fungieren, damit die Raspies ins Internet kommen.
 
OP
D

daddy.k

Member
Du verwechselt da was mit DNS.
Hallo spoensche,
>dn< steht für mich als Abkürzung für das was sie tun.

>d< steht für den isc-dhcp-server, als für den DHCP Server.
>n> steht für den bind9, als den NAME Server.
Beide Dienste laufen auf beiden Pi's! dn1 ist der "authoritative", dn2 ist der "non-authoritative".
dn2 ist ein Spiegel, eine 1 zu 1 Kopie von dn1!

In der dhcpd.conf sind beide eingetragen!
Code:
option domain-name-servers 192.168.38.103, 192.168.38.104;

Das heißt für mich, fällt einer aus hat das Netzwerk immer noch einen der Antwort gibt. Oder verstehe ich hier etwas falsch?
Wenn das für das Austesten auf Fehler von Bedeutung ist, sagt mir bitte welchem ich den Befehl "poweroff" geben soll!
Zwei DHCP Server, die unterschiedliche Netze bedienen funktioniert, z.B. DHCP 1 = 192.168.38.0/24, DHCP 2 = 192.168.39.0/24
Hier habe ich mich vielleicht falsch ausgedrückt, E
ntschuldigung hier für.
Beide DHCP sind für das gleiche Netz, 192.168.38.0/24, zuständig.
muss also zwei Interfaces und IP Adressen haben.
Auch hier wäre warscheinlich der Hinweis von mir hilfreich gewesen das beide, dn1 und dn2, RaspberryPi's sind. Und nur über LAN und nicht über WLan angebunden sind.
Oder ein Netzwerkinterface mit VLAN's, was wiederum voraussetzt, dass dein anderer Router und auch der Switch VLAN fähig sind. Dein Server muss auch als Router fungieren
Ich habe zwar mehrere Switches im Einsatz die VLan beherschen aber nutzen tue ich es nicht, da ich es im "internen" Netz nicht benötige.
Meine einziger Rechner mit 2 Netzwerkkarten ist mein Router, der hier ja nicht zu Debatte steht, sonst könnten wir schon garnicht komunizieren.
Er verbindet "mein internes Netzwerk, 192.168.38.0/24, mit meinem externen Netzwerk, 172.16.0.0/24"!
Hier befinden sich 2 Fritzboxen. Die 2te Fritzbox ist im Mesch mit der 1ten und dient lediglich dazu die dect Telefone in der Wohnung zu bedienen.
Auch das ist hier nicht relevant.
Es geht lediglich um den Pi "pi-gate1", 192.168.38.106, der immer von "drei", 192.168.38.110 bootet obwohl er von "pxe-server", 192.168.38.201 booten sollte!
 
OP
D

daddy.k

Member
Hallo liebe Community!

Ich habe heute wieder alle Pi's im Netzwerk und booten auch von dem tftp-Server wo sie sollen.
Wenn eine Anleitung zum Einrichten einer Bootumgebung für Pi'S gewünscht wird, setzte ich mich gerne mir Euch zusammen.

1. Ohne tftpd-hpa funktioniert das sowieso nicht.
dnsmaq sollte komplett raus, aus allen devices
Hallo Gräfin Klara,
ich hab mich daran gehalten und ganz viel umgestellt!:unsure:

Daddy
 

spoensche

Moderator
Teammitglied
Das heißt für mich, fällt einer aus hat das Netzwerk immer noch einen der Antwort gibt. Oder verstehe ich hier etwas falsch?
DNS ist etwas anderes als DHCP. :)
Vereinfacht gesagt: DNS ist die Zuordnung von FQDN zu IP-Adresse.
DHCP = Dynamic Host Configuration Protocol.

Beide DHCP sind für das gleiche Netz, 192.168.38.0/24, zuständig.
Das führt zu deinem Problem. Wie bereits erwähnt: Ein DHCP-Server für ein Netz.

Sind zwei DHCP- Server für ein Netz, also eine Broadcast Domäne, zuständig, dann prügeln sie sich darum, wer dem DHCP-Client (Sendet eine Broadcast Anfrage innerhalb der Broadcast Domain), die IP-Adresse zuweisen darf.

Ein DHCP-Server Dienst muss gestoppt werden und darf erst gestartet werden, wenn der andere garantiert tot ist.
 
OP
D

daddy.k

Member
DNS ist etwas anderes als DHCP. :)
Vereinfacht gesagt: DNS ist die Zuordnung von FQDN zu IP-Adresse.
DHCP = Dynamic Host Configuration Protocol.
Hallo spoensche,
vielleicht habe ich mich etwas unglücklich ausgedrückt.
>dn< steht für mich als Abkürzung für das was sie tun.

>d< steht für den isc-dhcp-server, als für den DHCP Server.
>n> steht für den bind9, als den NAME Server.
Beide Dienste laufen auf beiden Pi's! dn1 ist der "authoritative", dn2 ist der "non-authoritative".
dn2 ist ein Spiegel, eine 1 zu 1 Kopie von dn1!
Das DNS für Dydnamic Name Server steht ist mir schon bewusst, auch das dieses vom Programm "bind 9" mit seinen Zonen-Dateien umgesetzt wird.

Sind zwei DHCP- Server für ein Netz, also eine Broadcast Domäne, zuständig, dann prügeln sie sich darum, wer dem DHCP-Client (Sendet eine Broadcast Anfrage innerhalb der Broadcast Domain), die IP-Adresse zuweisen darf.

Ein DHCP-Server Dienst muss gestoppt werden und darf erst gestartet werden, wenn der andere garantiert tot ist.
Bei diesem Punkt muss ich zugeben lerne ich gern noch dazu!

Ich hab jetzt seit Jahren diese beiden Pi's im Netz und noch nie etwas von einem Problem festellen können.
Einzig, durch die Umstellungen seit "Bookworm 12" hat Debian meine ganzen, Netzwerk bootenden Pi's vor Probleme gestellt und hier ist mir aufgefallen, dass zuerst der "dn1" mit IP ...103 gefragt wir. Kann er seine Bootdateien nicht finden wird der "dn2" mit IP ...104 abgefragt.
Ich denke aber, dass ich den Dienst des "dn2" (non-authoritativ) stoppen kann und sollte der Dienst auf "dn1" ausfallen per Script starten.
Code:
root@pxe-server:~ # dhclient -s 192.168.38.103
RTNETLINK answers: File exists
root@pxe-server:~ # dhclient -s 192.168.38.104
RTNETLINK answers: File exists
Bravo!
(Lesen+Verstehen+Administrieren)*Nicht_Aufgeben = Erfolg
Wie schon Gräfin Klara schreibt, lesen allein reicht nicht, ich müsste es aber auch Verstehen bevor ich Administriere.
Ich denke du kannst mir hier helfen zu Verstehen, dass das was bei mir funktioniert eigentlich NICHT gehen sollte!

Wie läuft das eigentlich bei den Providern ab?
Hier existieren doch ganz viele DHCP, sprich Dydnamic Host Configuration Server neben einander und es funktionert trotzdem?

Nur für mich zum Verständniss?!?
Ich setzte zwei DHCP-Server ein. Wie in Deinem Bsp.
Zwei DHCP Server, die unterschiedliche Netze bedienen funktioniert, z.B. DHCP 1 = 192.168.38.0/24, DHCP 2 = 192.168.39.0/24.
beide Server sind an einem Switch (bei mir ein "Yanley: YS2014G-P"), der VLAN beherscht angeschlossen. (Hat ganz neben bei auch noch POE für meine Pi's).
Netzwerkinterface mit VLAN's, was wiederum voraussetzt, dass dein anderer Router und auch der Switch VLAN fähig sind

Jetzt kommt ein PC der booten will, und ebenfalls an diesem Switch hängt mit 0.0.0.0:69 an! Welcher der beiden Server wird jetzt angesprochen oder ...
prügeln sie sich darum, wer dem DHCP-Client (Sendet eine Broadcast Anfrage innerhalb der Broadcast Domain), die IP-Adresse zuweisen darf.
Bitte helft mir den Unterschied zu verstehen, den es ausmacht, wenn die beiden DHCP-Server in Unterschiedlichen Netzen sind?
der PC fragt doch in beiden Netzen nach einer IP, oder?
 
OP
D

daddy.k

Member
Bitte verzeiht mir meinen Frust!

Wenn jeder weiß, dass mein laufendes System mit 2 DHCP-Servern nicht funktionieren KANN,
aber KEINER eine Erklärung liefern kann warum es so nicht funktioneren soll.
 

josefine_h

Newbie
Bitte helft mir den Unterschied zu verstehen, den es ausmacht, wenn die beiden DHCP-Server in Unterschiedlichen Netzen sind?
Dazu müsste dein PC aber mit beiden Netzen verbunden sein - sprich zwei Netzwerkkarten.

Netzwerke kannst du sehen wie Strassen.
Wenn zwei Strassen (Netze) nebeneinander hergehen werden sich die Autos (Daten) auch nie treffen.
 
OP
D

daddy.k

Member
Wenn zwei Strassen (Netze) nebeneinander hergehen werden sich die Autos (Daten) auch nie treffen.
Hallo josefine_h!
Den Vergleich verstehe ich schon!
Jetzt habe ich das große ABER noch!!!

Ich sehe einen Switch wie einen Kreisverkehr. Viele Einfahrten und gleichzeitig Ausfahrten.
Ich habe einen Switch mir VDSL, dieser trennt ja bekanntlich die Netzwerke(Straßen). Jetzt kommt ein Ortfremder in den Kreisverkehr(0.0.0.0:bootpc).
Dieser ruft jetzt in alle Abzeigungen, "Hallo, kann mir jemand sagen wer ich bin?".
In zwei Straßen stehn je ein Polizist(DHCP-Server), bei mir heißen sie, dn1 und dn2(erste Straße und zweite Straße), beide kommen aus der selben Polizeiinspektion und haben somit auch die selbe Datenbasis!!!
Welcher Polizist (DHCP-Server) darf, kann oder gibt Antwort? Polizist dn1(192.168.38.103) oder Polizist dn2 (192.168.39.104)?
Was würde passieren wenn beide Polizisten in der gleichen Straße stehen würden (wie in meinem Netzwerk, 192.168.38.103 und .104)?

2024-02-28_pi-gate1.png
 
Oben