Hi!
Bei mit läuft ein TFTP-Server, und ich möchte unterschiedlichen Clients unterschiedliche boot-images zuweisen - am liebsten nach IP-Adressen.
Nach stundenlangem googeln und cookies bestätigen nichts brauchbars gefunden.
Ist das über den TFTP-Server überhaupt möglich?
greets, Alex
TFTP-Server für unterschiedliche Clients einrichten
Re: TFTP-Server für unterschiedliche Clients einrichten
Leider verrätst du nicht, welcher tftpd denn bei dir läuft, sodass keiner für dich kurz ins Manual schauen kannt – du müsstest es also selbst tun, oder ihn halt benennen, damit es jemand für dich tun kann.saxandl hat geschrieben:10.04.2024 12:36:00Bei mit läuft ein TFTP-Server, und ich möchte unterschiedlichen Clients unterschiedliche boot-images zuweisen - am liebsten nach IP-Adressen.
[…]
Ist das über den TFTP-Server überhaupt möglich?
Bei den am weitesten verbreiteten tftpd finde ich eine derartige Option jedenfalls auf die Schnelle nicht. Was aber immer funktioniert: mehrere Daemons parallel an verschiedenen Ports laufen lassen, und via Paketfilter den Client mit der jeweils richtigen Instanz verbinden.
„I fought in the Vim-Emacs-War.“ Quelle
Re: TFTP-Server für unterschiedliche Clients einrichten
Der erste Buchstabe T in der Protokollart steht für Trivial, und das aus gutem Grund. Das ist alles schon seeehr alt.
An dem Punkt wo man TFTP einsetzen will oder muss steht an sich noch nichts an Authentifikation und Autorisation etc. zur Verfügung. Man brauchte damals einfache zu konfigurierende und sparsame Ressourcen die rudimentäre Dinge im Netzwerk zur Verfügung stellen konnten. Hier einfach Dateien.
Einzige Möglichkeit den Zugriff zu steuern ist die jeweiligen Daten in einer Ordnerstruktur abzulegen und dem Client entsprechend mitzugeben welche Datei in welchem Verzeichnis er anfragen muss, eine Kontrolle welche IP auf was zugreifen darf ist nicht vorgesehen. Entscheider ist der Administrator der die Daten auf dem TFTP-Server ablegt.
An dem Punkt wo man TFTP einsetzen will oder muss steht an sich noch nichts an Authentifikation und Autorisation etc. zur Verfügung. Man brauchte damals einfache zu konfigurierende und sparsame Ressourcen die rudimentäre Dinge im Netzwerk zur Verfügung stellen konnten. Hier einfach Dateien.
Einzige Möglichkeit den Zugriff zu steuern ist die jeweiligen Daten in einer Ordnerstruktur abzulegen und dem Client entsprechend mitzugeben welche Datei in welchem Verzeichnis er anfragen muss, eine Kontrolle welche IP auf was zugreifen darf ist nicht vorgesehen. Entscheider ist der Administrator der die Daten auf dem TFTP-Server ablegt.
- heisenberg
- Beiträge: 3602
- Registriert: 04.06.2015 01:17:27
- Lizenz eigener Beiträge: MIT Lizenz
Re: TFTP-Server für unterschiedliche Clients einrichten
Das Zuweisen des Bootfiles macht nicht der TFTP-Server sondern der BOOTP/DHCP-Server. Das Zuweisen geschieht auf der Basis der MAC-Adresse. Der TFTP-Server versucht nur auszuliefern, was der DHCP-Server spezifiziert und der BOOT-Client demzufolge anfragt.
Hier mal eine minimale Beispielconfig für den ISC-DHCP-Server:
Ansonsten ist ISC-DHCP-Server veraltet und wird nicht mehr gepflegt. Der aktuelle DHCP-Server heisst kea bzw. kea-dhcp4-server / kea-dhcp6-server. Damit habe ich das aber selbst noch nicht umgesetzt.
Auf meinem TFTP-Server liegt dann ungefähr so etwas:
Die pxelinux.cfg/default ist dann die Hauptkonfiguration für PXELinux den PXEBoot-Loader:
Dass da Debian 11 steht, bedeutet, das ich da schon länger nicht mehr mit rumgebastelt habe.
Hier mal eine minimale Beispielconfig für den ISC-DHCP-Server:
Code: Alles auswählen
subnet 192.168.100.0 netmask 255.255.255.0 {
option domain-name-servers 192.168.100.1;
option routers 192.168.100.1;
allow unknown-clients; # nur für DHCP nicht für BOOTP
deny duplicates;
}
host meinhost.meinedomain.de {
hardware ethernet 00:25:90:36:99:86;
fixed-address 192.168.100.36;
option host-name "meinhost.meinedomain.de";
filename "debian11/pxelinux.0";
}
}
Auf meinem TFTP-Server liegt dann ungefähr so etwas:
Code: Alles auswählen
# tree -L 3 /srv/tftp/debian11
/srv/tftp/debian11
│
├── debian-installer
│ └── amd64
│ ├── bootnetx64.efi
│ ├── boot-screens
│ ├── grub
│ ├── grubx64.efi
│ ├── initrd.gz
│ ├── linux
│ ├── pxelinux.0
│ └── pxelinux.cfg
├── ldlinux.c32 -> debian-installer/amd64/boot-screens/ldlinux.c32
├── netboot.tar.gz
├── pxelinux.0 -> debian-installer/amd64/pxelinux.0
├── pxelinux.cfg -> debian-installer/amd64/pxelinux.cfg
├── Release
├── Release.gpg
├── SHA256SUMS
└── version.info
6 directories, 12 files
Code: Alles auswählen
# D-I config version 2.0
# search path for the c32 support libraries (libcom32, libutil etc.)
path debian-installer/amd64/boot-screens/
include debian-installer/amd64/boot-screens/menu.cfg
default debian-installer/amd64/boot-screens/vesamenu.c32
prompt 0
timeout 0
Zuletzt geändert von heisenberg am 10.04.2024 22:37:25, insgesamt 3-mal geändert.
Re: TFTP-Server für unterschiedliche Clients einrichten
Aus der Wikipedia: Motivation für die Entwicklung von TFTP war das Laden von Betriebssystemen oder Konfigurationen über das Netzwerk.
Ich habe TFTP vor vielen Jahren mal testweise benutzt, um mehrere Rechner über das Netzwerk zu booten. Die mWn einzige Möglichkeit, Rechner noch vor deren Booten über das Netzwerk identifizieren zu können, ist die MAC-Adresse der im Client verbauten Netzwerkkarte. Wie ich das sehe, kommst Du diesbezüglich nicht um MAC-Adresse(n) herum.
Worum konkret geht es Dir beim Spielen mit TFTP? Und welchen Server willst Du dafür verwenden?
Gruß
Gregor
Ich habe TFTP vor vielen Jahren mal testweise benutzt, um mehrere Rechner über das Netzwerk zu booten. Die mWn einzige Möglichkeit, Rechner noch vor deren Booten über das Netzwerk identifizieren zu können, ist die MAC-Adresse der im Client verbauten Netzwerkkarte. Wie ich das sehe, kommst Du diesbezüglich nicht um MAC-Adresse(n) herum.
Worum konkret geht es Dir beim Spielen mit TFTP? Und welchen Server willst Du dafür verwenden?
Gruß
Gregor
Wenn man keine Probleme hat, kann man sich welche machen. ("Großes Lötauge", Medizinmann der M3-Hopi [und sog. Maker])
- Livingston
- Beiträge: 1482
- Registriert: 04.02.2007 22:52:25
- Lizenz eigener Beiträge: MIT Lizenz
- Wohnort: 127.0.0.1
Re: TFTP-Server für unterschiedliche Clients einrichten
Zur eigentlichen Frage:
Zumindest von tftpd-hpa weiß ich, dass er /etc/hosts.allow und /etc/hosts.deny beachtet.
Zumindest von tftpd-hpa weiß ich, dass er /etc/hosts.allow und /etc/hosts.deny beachtet.
Der Hauptunterschied zwischen etwas, was möglicherweise kaputtgehen könnte und etwas, was unmöglich kaputtgehen kann, besteht darin, dass sich bei allem, was unmöglich kaputtgehen kann, falls es doch kaputtgeht, normalerweise herausstellt, dass es unmöglich zerlegt oder repariert werden kann.
Douglas Adams
Douglas Adams