So richten Sie Cobbler mit PXE ein, wenn Sie den DHCP-Server nicht ändern können

16

In der Vergangenheit habe ich einen PXE-Server mehrmals so eingerichtet, dass der normale DHCP-Server alles zurückgibt, was zum Booten des Netzwerks erforderlich ist: sowohl die reguläre IP-Konfiguration als auch die Bootinfo in einem einzigen DHCP-Setup. Auf diese Weise ist es einfach zu tun .

Laut der Dokumentation, die ich gelesen habe ( Wikipedia hat eine schöne Zusammenfassung ), sollte es möglich sein, einen unveränderten DHCP-Server (zum Beispiel, wenn der Administrator an Ihrem Standort den Zugriff verweigert) und einen separaten Server zu haben, der NUR die Boot-Informationen zurückgibt. Dies wird normalerweise als "PXE-Server" oder "Proxy-DHCP" -Server bezeichnet. In der Vergangenheit habe ich diesen pxe-Server gesehen (nicht verwendet) (die letzte Veröffentlichung war vor 5 Jahren).

Gestern habe ich Cobbler installiert, um zu sehen, was es wirklich tut. Jetzt möchte ich es verwenden (ich mag die Benutzerfreundlichkeit), aber das Ändern des "Haupt" -DHCPD-Servers, um PXE zu erhalten, ist keine Option.

Ich konnte keine Dokumentation finden, wie Cobbler mit einem echten PXE-Server (== Proxy-DHCP) ausgeführt werden kann.

Kann das mit Cobbler gemacht werden?

Kann ich den isc dhcp-Server so konfigurieren, dass er sich als PXE-Server verhält (dh KEINE IP-Informationen, nur Startinformationen)?

Oder sollte ich mich für einen völlig anderen Ansatz entscheiden (wenn ja, was ist Ihr Vorschlag)?

Vielen Dank


Neue Entdeckung, die ich gerade gemacht habe: Das Changelog für dnsmasq Version 2.4.8 sagt:

"Proxy-DHCP, bei dem dnsmasq nur die PXE-Informationen liefert und ein anderer DHCP-Server die Adresszuweisung vornimmt, ist ebenfalls zulässig."

SEHR INTERESSANT. Vor allem, weil Cobbler bereits dnsmasq steuern kann.


Aktualisieren:

dnsmasq 2.51 unterstützt diese Konfiguration, die den von mir gewünschten Trick voll und ganz ausführt.

Meine /etc/cobbler/dnsmasq.template sieht jetzt so aus:

# Cobbler generated configuration file for dnsmasq
# $date
#

# resolve.conf .. ?
#no-poll
#enable-dbus
read-ethers
addn-hosts = /var/lib/cobbler/cobbler_hosts

# Be a proxyDHCP server
dhcp-range=10.10.0.0,proxy

# Only respond to clients that are known (i.e present in /etc/ethers)
dhcp-ignore=#known

# Set this (and domain: see below) if you want to have a domain
# automatically added to simple names in a hosts-file.
expand-hosts
domain=test.basjes.nl,10.10.15.0

# Loads <tftp-root>/pxelinux.0 from dnsmasq TFTP server.
pxe-service=x86PC, "Boot PXELinux (=Cobbler controlled)", pxelinux ,$next_server

$insert_cobbler_system_definitions

Update: 2012-04-30

Vor ein paar Monaten erhielt ich eine E-Mail von jemandem, der sagte, er könne das oben Genannte nicht zum Laufen bringen. Es stellte sich heraus, dass ich einige Reparaturen und Änderungen an meinem Schuster vorgenommen hatte, die ich vergessen hatte. Also habe ich die entscheidende Lösung für den Hauptschuster geliefert, der gerade Teil des Kofferraums geworden ist. Ich habe auch einige zusätzliche unterstützende Dokumente erstellt .

Niels Basjes
quelle
1
Nach ihrer Website zu urteilen - ich vermute, Cobbler hat eine DHCP-Implementierung enthalten. Ich würde wahrscheinlich eine USB-Installation durchführen, wenn ich in einem eingeschränkten Netzwerk arbeite. :)
Lester Cheung
nein, aber es kann Ihnen helfen, einen zu verwalten.
Monomythos

Antworten:

3

Wir mounten eine von uns erstellte ISO-Datei, booteten einen Kernel und initrd daraus und ließen ihn von einem zentralen Ort aus einen Kickstart laden. Diese Kickstart-Datei verweist dann auf ein Repository mit RPM-Dateien, bei denen es sich möglicherweise um Ihren Cobbler-Server handelt.

Ich habe (leider) nicht viel Erfahrung mit Cobbler, aber vielleicht ist dies eine Option für Sie?

wzzrd
quelle
Ich habe die Installation mit einer CD-ROM (ISO-Image von Cobbler!) Durchgeführt, wie Sie vorgeschlagen haben, und das hat ganz gut funktioniert. Ich habe jetzt das Setup in einem fast isolierten Bereich, wo ich es vom LAN trennen, DHCP aktivieren, über PXE bereitstellen, DHCP deaktivieren und erneut einstecken kann. Angesichts der Tatsache, dass dies eine Test- / Experimentierumgebung ist, muss sie vorerst ausgeführt werden. Ich habe mir auch andere "proxydhcp" -Optionen angesehen, aber keine schien Code über 2004 hinaus zu haben ... dh toter, nicht gepflegter Code. Danke für die Rückmeldung.
Niels Basjes
5

Das PXE-ROM benötigt eine "next-server" -Anweisung vom DHCP-Server, um den Bootloader zu finden und zu laden (sei es grub, pxelinux oder ein anderer Bootloader). Wenn kein "nächster Server" bereitgestellt wird, muss das PXE-ROM entscheiden, was zu tun ist. Sie müssen sich die BIOS-Konfiguration Ihrer Netzwerkkarte ansehen und prüfen, ob es eine Option gibt, den Server möglicherweise manuell anzugeben.

Wie in der obigen Antwort erwähnt, ist es wahrscheinlich der beste Weg, die Maschine mit einem benutzerdefinierten ISO- oder USB-Stick zu booten, wobei alle Informationen bereits in der Kernel-Befehlszeile angegeben sind. Wenn Sie keinen Zugriff auf die Konfiguration des DHCP-Servers haben.

katriel
quelle
1

Wenn Sie nur einige Tests durchführen möchten, können Sie mehrere DHCP-Server im selben Netzwerk haben. Sie können dafür sorgen, dass Cobbler eine DHCP-Konfiguration erstellt, die einen Server anweist, nur zu antworten, wenn ein bestimmter MAC eine ARP-Anfrage stellt. und wenn Sie einfach Bereiche auf diesem Server auskommentieren / deaktivieren (und ich spreche hier von isc-dhcpd), wird es nicht aufdringlich sein. Es kann vorkommen, dass sich einige Windows-Boxen (in Broadcasts) darüber beschweren, dass dieser DHCP-Server nicht autorisierend ist, wenn Sie AD und dergleichen verwenden, aber ansonsten besteht meines Erachtens keine große Gefahr.

Am besten verwenden Sie jedoch Cobbler / DHCP und Server, die Sie in einem vom Rest Ihres Netzwerks getrennten VLAN bereitstellen möchten. Auf diese Weise begrenzen Sie Ihre Broadcast-Domain und keine anderen Boxen können Ihre DHCP-Ankündigungen sehen.

Monomythos
quelle