Zum Inhalt springen

„Bootstrap Protocol“ – Versionsunterschied

aus Wikipedia, der freien Enzyklopädie
[gesichtete Version][gesichtete Version]
Inhalt gelöscht Inhalt hinzugefügt
Zwobot (Diskussion | Beiträge)
K Bot: korrigiere Link auf Falschschreibung: Personal-Computer
Einleitung: Formulierung
 
(37 dazwischenliegende Versionen von 27 Benutzern werden nicht angezeigt)
Zeile 1: Zeile 1:
{{Infobox Netzwerkprotokoll
{| class="prettytable float-right"
|Name=
|-----
|Familie= [[Internetprotokollfamilie]]
! bgcolor="#C0C0FF" colspan="2" font="size:larger" | BOOTP (Bootstrap Protocol)
|Einsatzfeld= Bezug einer Netzwerkkonfiguration und eines Kernelnamens für einfache (etwa plattenlose) Geräte
|-----
|aufbauend auf= [[Port (Netzwerkadresse)|Port]] 67/UDP (Anfrage)<br />Port 68/UDP (Antwort)
| align="left" | '''Familie:'''
|Basis zu=
| align="left" | [[TCP/IP-Referenzmodell|TCP/IP]]
|Einführung=
|-----
|entwickelt aus=
| align="left" | '''Einsatzgebiet:'''
|entwickelt zu=
| align="left" |
|Version=
Bezug einer Netzwerkkonfiguration<br />
|Version Datum=
und eines Kernelnamens für einfache<br />
|Vorabversion=
(etwa plattenlose) Geräte
|Vorabversion Datum=
|-----
|Entwickler=
| align="left" | '''Ports:'''
|Standard= <nowiki>RFC&nbsp;951</nowiki> (1985)<ref>{{RFC-Internet |RFC=951 |Titel=Bootstrap Protocol (BOOTP) |Datum=1985-09}}</ref>
| align="left" |
}}
67/UDP (Anfrage)<br />
{{Netzwerk-UDP-IP-Anwendungsprotokoll|BOOTP}}
68/UDP (Antwort)
Das '''Bootstrap Protocol''' (englisch; kurz '''BOOTP''' oder auch '''Bootstrap-Protokoll''' genannt) dient dazu, einem [[Computer]] in einem [[Transmission Control Protocol/Internet Protocol|TCP/IP]]-[[Rechnernetz|Netzwerk]] eine [[IP-Adresse]] und eine Reihe von weiteren [[Parameter (Informatik)|Parametern]] zuzuweisen.
|-----
| align="center" colspan="2" |
{{Netzwerk-UDP-IP-Anwendungsprotokoll|BOOTP|}}
|-----
| align="left" | '''Standards:'''
| align="left" |
RFC 951 ([[1985]])
|}


Verwendet wird BOOTP zum Beispiel zur Zuweisung der [[Netzwerkadresse]] von [[Terminal (Computer)|Terminals]] und [[Diskless-Workstation|festplattenlosen Workstations]], die ihr Betriebssystem von einem Bootserver beziehen. Die Übertragung des Betriebsprogramms geschieht dann üblicherweise über [[Trivial File Transfer Protocol|TFTP]]. Daneben können einige Peripheriegeräte wie beispielsweise [[Netzwerkdrucker]] BOOTP zur Ermittlung ihrer IP-Adresse und Netzwerkkonfiguration (Subnetz/Gateway) verwenden.
Das '''Bootstrap Protocol''' (englisch; kurz '''BOOTP''' oder auch '''Bootstrap-Protokoll''' genannt) dient dazu, einem [[Computer]] in einem [[TCP/IP]]-[[Rechnernetz|Netzwerk]] eine [[IP-Adresse]] und eine Reihe von weiteren [[Parameter (Informatik)|Parametern]] zuzuweisen.


Früher wurde [[Reverse Address Resolution Protocol|RARP]] zur Ermittlung der IP-Adresse bei festplattenlosen Geräten verwendet. Im Gegensatz zu RARP, das ausschließlich die IP-Adresse liefert, besitzt BOOTP eine Vielzahl von weiteren Parametern, insbesondere können Subnetzmaske, Gateway sowie Bootserver übermittelt werden. Zur Konfiguration von [[Workstation]]s und [[Personal Computer|PCs]] reichen diese jedoch nicht aus, da hier zusätzliche Einstellungen wie [[Drucker (Gerät)|Drucker]], [[Zeitserver]] und andere nötig sind. Das [[Dynamic Host Configuration Protocol]] (DHCP) stellt eine Erweiterung von BOOTP dar und ergänzt es um Funktionen wie zum Beispiel die dynamische Zuweisung („Lease“) von wiederverwendbaren IP-Adressen. Ein abwärtskompatibler DHCP-Server kann mit BOOTP-Clients kommunizieren.
Verwendet wird BOOTP zum Beispiel zur Einstellung der Netzwerkadresse von [[Terminal (Computer)|Terminals]] und [[Diskless-Workstation|festplattenlosen Workstations]], die ihr Betriebssystem von einem Bootserver beziehen. Die Übertragung des Betriebsprogramms geschieht dann üblicherweise über [[Trivial File Transfer Protocol|TFTP]]. Daneben können einige Peripheriegeräte wie beispielsweise [[Netzwerkdrucker]] BOOTP zur Ermittlung ihrer IP-Adresse und Netzwerkkonfiguration (Subnetz/Gateway) verwenden.


== Ablauf einer BOOTP-Anfrage ==
Früher wurde [[Reverse Address Resolution Protocol|RARP]] zur Ermittlung der IP-Adresse bei festplattenlosen Geräten verwendet. Im Gegensatz zu RARP, das ausschließlich die IP-Adresse liefert, besitzt BOOTP eine vielzahl von weiteren Parametern, insbesondere können Subnetzmaske, Gateway sowie Bootserver übermittelt werden. Zur Konfiguration von [[Workstation]]s und [[Personal Computer|PCs]] reichen diese jedoch nicht aus, da hier zusätzliche Einstellungen wie [[Drucker (Peripheriegerät)|Drucker]], [[Zeitserver]] und andere nötig sind. Das [[Dynamic Host Configuration Protocol]] (DHCP) stellt eine Erweiterung von BOOTP dar.
Eine BOOTP-Anfrage besteht aus einer Client-Anforderung und einer Server-Antwort.


Der Ablauf einer BOOTP-Anfrage besteht aus einer Anforderung und einer Antwort:
=== Die BOOTP-Anforderung ===
Beim Einschalten des Gerätes kennt dieses weder seine eigene [[IP-Adresse]] noch die des BOOTP-Servers. Es wird ein ''boot request'' gesendet. Dies ist ein normales [[User Datagram Protocol|UDP]]-Paket. Als Absender wird, da bisher nichts anderes bekannt ist, die Adresse [[0.0.0.0]] eingesetzt. Die Empfängeradresse ist die 255.255.255.255, was als [[Broadcast]] im eigenen Netz interpretiert wird, da der BOOTP-Client auch nicht die lokale Adresse des Netzwerkstrangs kennt.


Ein ''boot request'' von einem [[Client]] wird immer auf den [[Port (Netzwerkadresse)|Zielport]] 67 (''BOOTP Server'') gesendet. Anschließend lauscht der Client auf dem Port 68 (''BOOTP Client''), auf den die Antwort (''boot reply'') gesendet wird.
== Die BOOTP-Anforderung ==
Beim Einschalten des Gerätes kennt dieser weder seine eigene [[IP-Adresse]] noch die des BOOTP-Servers. Es wird ein ''boot request'' gesendet. Dies ist ein normales [[User Datagram Protocol|UDP]]-Paket. Als Absender wird, da bisher nichts anderes bekannt ist, die Adresse 0.0.0.0 eingesetzt. Die Empfängeradresse ist die 255.255.255.255, was als [[Broadcast]] im eigenen Netz interpretiert wird, da der BOOTP-Client auch nicht die lokale Adresse des Netzwerkstrangs kennt.

Ein ''boot request'' von einem [[Client]] wird immer auf den [[Port (Protokoll)|Zielport]] 67 (''BOOTP Server'') gesendet. Anschließend lauscht der Client auf dem Port 68 (''BOOTP Client''), auf den die Antwort (''boot reply'') gesendet wird.


Dass zwei reservierte Ports verwendet werden, ist nicht bei jeder IP-Verbindung so. Die meisten Protokolle verwenden als ''abgehenden'' Port (der Port des Clients) eine zufällige Portnummer. Auf diesem Port wird dann auch die Antwort des Servers erwartet. Bei BOOTP würde dies jedoch nicht funktionieren, da die Antwort des BOOTP-Servers (Bootreply) nicht unbedingt auf eine bestimmte Zieladresse gesendet wird, sondern auch als Broadcast an alle Stationen im eigenen Subnetz gehen kann. Würden keine festen Portnummern verwendet, könnte es vorkommen, dass ein anderer Host gerade auf dem gleichen Port lauscht, jedoch etwas ganz anderes erwartet.
Dass zwei reservierte Ports verwendet werden, ist nicht bei jeder IP-Verbindung so. Die meisten Protokolle verwenden als ''abgehenden'' Port (der Port des Clients) eine zufällige Portnummer. Auf diesem Port wird dann auch die Antwort des Servers erwartet. Bei BOOTP würde dies jedoch nicht funktionieren, da die Antwort des BOOTP-Servers (Bootreply) nicht unbedingt auf eine bestimmte Zieladresse gesendet wird, sondern auch als Broadcast an alle Stationen im eigenen Subnetz gehen kann. Würden keine festen Portnummern verwendet, könnte es vorkommen, dass ein anderer Host gerade auf dem gleichen Port lauscht, jedoch etwas ganz anderes erwartet.
Zeile 42: Zeile 34:
Mit dem ''boot request'' sendet der Client einige Informationen über sich: Das wichtigste ist die eigene Hardware-Adresse der Netzwerkkarte ([[MAC-Adresse]]). Dies ist das einzige Erkennungsmerkmal der Station. Der Client generiert außerdem eine 4 Byte lange [[Zufallszahl]], die im ''boot reply'' wieder auftauchen muss. Weiterhin ist ein [[Timer]] vorgesehen, der zählt, wie lange der Client schon auf sein ''boot reply'' wartet.
Mit dem ''boot request'' sendet der Client einige Informationen über sich: Das wichtigste ist die eigene Hardware-Adresse der Netzwerkkarte ([[MAC-Adresse]]). Dies ist das einzige Erkennungsmerkmal der Station. Der Client generiert außerdem eine 4 Byte lange [[Zufallszahl]], die im ''boot reply'' wieder auftauchen muss. Weiterhin ist ein [[Timer]] vorgesehen, der zählt, wie lange der Client schon auf sein ''boot reply'' wartet.


== Die BOOTP-Antwort ==
=== Die BOOTP-Antwort ===
Bekommt der BOOTP-Server eine gültige Anfrage auf dem entsprechenden [[Port (Protokoll)|Port]], so betrachtet dieser zunächst die [[MAC-Adresse]]. Die MAC-Adresse aus der Anfrage wird mit einer [[Datenbank]] verglichen, in der den MAC-Adressen IP-Adressen zugeordnet sind. Wird für die Anfrage ein Eintrag gefunden, sendet der Server eine Antwort (''boot reply''). Meist wird die Antwort auch einfach als Broadcast gesendet, es ist jedoch auch möglich, die [[Address Resolution Protocol|ARP]]-Tabelle des Clients manuell zu bearbeiten. Die Möglichkeit hierfür muss jedoch der [[Betriebssystemkern|Kernel]] bieten.
Bekommt der BOOTP-Server eine gültige Anfrage auf dem entsprechenden [[Port (Netzwerkadresse)|Port]], so betrachtet dieser zunächst die [[MAC-Adresse]]. Die MAC-Adresse aus der Anfrage wird mit einer [[Datenbank]] verglichen, in der den MAC-Adressen IP-Adressen zugeordnet sind. Wird für die Anfrage ein Eintrag gefunden, sendet der Server eine Antwort (''boot reply''). Meist wird die Antwort auch einfach als Broadcast gesendet, es ist jedoch auch möglich, die [[Address Resolution Protocol|ARP]]-Tabelle des Servers manuell zu bearbeiten. Die Möglichkeit hierfür muss jedoch der [[Kernel (Betriebssystem)|Kernel]] bieten.


Wird die Antwort als Broadcast gesendet, enthält diese folgende Informationen:
Wird die Antwort als Broadcast gesendet, enthält diese folgende Informationen:
Zeile 52: Zeile 44:
Die folgenden Parameter sind optional und werden nur übermittelt, wenn der BOOTP-Server entsprechend konfiguriert ist:
Die folgenden Parameter sind optional und werden nur übermittelt, wenn der BOOTP-Server entsprechend konfiguriert ist:
* Die IP-Adresse und der Hostname des Boot-Servers. Von dort kann im nächsten Schritt über [[Trivial File Transfer Protocol|TFTP]] ein Betriebssystem geladen werden.
* Die IP-Adresse und der Hostname des Boot-Servers. Von dort kann im nächsten Schritt über [[Trivial File Transfer Protocol|TFTP]] ein Betriebssystem geladen werden.
* Der Name und die Pfadangabe der Bootdatei. Die Bootdatei enthält den [[Betriebssystemkern|Kernel]], der anschließend mit TFTP übertragen wird.
* Der Name und die Pfadangabe der Bootdatei. Die Bootdatei enthält den Kernel, der anschließend mit TFTP übertragen wird.
* Name des Verzeichnisses, das vom Kernel über [[Network File System|NFS]] als root (<tt>/</tt>) Partition eingebunden werden soll.
* Name des Verzeichnisses, das vom Kernel über [[Network File System|NFS]] als [[root-Verzeichnis]] <code>/</code> eingebunden werden soll.


Der BOOTP-Client lauscht also auf dem vorgegebenen Port und wartet auf eine Antwort vom Server. Empfängt er ein Paket, wird die MAC-Adresse mit der eigenen, sowie die Zufallszahl mit der gesendeten verglichen. Erkennt der Client, dass die Antwort für ihn gedacht ist, wird die IP-Adresse der Netzwerkschnittstelle zugewiesen.
Der BOOTP-Client lauscht also auf dem vorgegebenen Port und wartet auf eine Antwort vom Server. Empfängt er ein Paket, wird die MAC-Adresse mit der eigenen, sowie die Zufallszahl mit der gesendeten verglichen. Erkennt der Client, dass die Antwort für ihn gedacht ist, wird die IP-Adresse der Netzwerkschnittstelle zugewiesen.
Zeile 61: Zeile 53:
* [[Preboot Execution Environment]]
* [[Preboot Execution Environment]]


== Weblinks ==
== Normen und Standards ==
Das Bootstrap-Protokoll wird fortwährend weiterentwickelt. Aufgrund der vielfältigen Update- und Ergänzungs-RFC's wird hier nur der initiale RFC genannt:
* RFC 951 – BOOTP (englisch)
* {{RFC-Internet |RFC=951 |Titel=Bootstrap Protocol (BOOTP) |Datum=1985-09}}
* RFC 1497 – BOOTP Vendor Information Extensions (englisch)


== Einzelnachweise ==
[[Kategorie:Netzwerkprotokoll auf Anwendungsschicht]]
<references />


[[Kategorie:Internet-Anwendungsprotokoll]]
[[ca:Bootstrap Protocol]]
[[cs:Bootstrap Protocol]]
[[Kategorie:Dynamic Host Configuration Protocol]]
[[en:Bootstrap Protocol]]
[[es:Bootstrap Protocol]]
[[eu:BOOTP]]
[[fi:BOOTP]]
[[fr:BOOTP]]
[[it:Bootstrap Protocol]]
[[ja:Bootstrap Protocol]]
[[nl:BootP]]
[[pl:Bootstrap Protocol]]
[[pt:BOOTP]]
[[ru:Bootstrap Protocol]]
[[sv:Bootstrap protocol]]
[[uk:BOOTP]]
[[zh:BOOTP]]

Aktuelle Version vom 27. Oktober 2024, 12:31 Uhr

Bootstrap Protocol
Familie: Internetprotokollfamilie
Einsatzfeld: Bezug einer Netzwerkkonfiguration und eines Kernelnamens für einfache (etwa plattenlose) Geräte
aufbauend auf Port 67/UDP (Anfrage)
Port 68/UDP (Antwort)
Standard: RFC 951 (1985)[1]
BOOTP im TCP/IP-Protokollstapel:
Anwendung BOOTP
Transport UDP
Internet IP (IPv4, IPv6)
Netzzugang Ethernet Token
Bus
Token
Ring
FDDI

Das Bootstrap Protocol (englisch; kurz BOOTP oder auch Bootstrap-Protokoll genannt) dient dazu, einem Computer in einem TCP/IP-Netzwerk eine IP-Adresse und eine Reihe von weiteren Parametern zuzuweisen.

Verwendet wird BOOTP zum Beispiel zur Zuweisung der Netzwerkadresse von Terminals und festplattenlosen Workstations, die ihr Betriebssystem von einem Bootserver beziehen. Die Übertragung des Betriebsprogramms geschieht dann üblicherweise über TFTP. Daneben können einige Peripheriegeräte wie beispielsweise Netzwerkdrucker BOOTP zur Ermittlung ihrer IP-Adresse und Netzwerkkonfiguration (Subnetz/Gateway) verwenden.

Früher wurde RARP zur Ermittlung der IP-Adresse bei festplattenlosen Geräten verwendet. Im Gegensatz zu RARP, das ausschließlich die IP-Adresse liefert, besitzt BOOTP eine Vielzahl von weiteren Parametern, insbesondere können Subnetzmaske, Gateway sowie Bootserver übermittelt werden. Zur Konfiguration von Workstations und PCs reichen diese jedoch nicht aus, da hier zusätzliche Einstellungen wie Drucker, Zeitserver und andere nötig sind. Das Dynamic Host Configuration Protocol (DHCP) stellt eine Erweiterung von BOOTP dar und ergänzt es um Funktionen wie zum Beispiel die dynamische Zuweisung („Lease“) von wiederverwendbaren IP-Adressen. Ein abwärtskompatibler DHCP-Server kann mit BOOTP-Clients kommunizieren.

Ablauf einer BOOTP-Anfrage

[Bearbeiten | Quelltext bearbeiten]

Eine BOOTP-Anfrage besteht aus einer Client-Anforderung und einer Server-Antwort.

Die BOOTP-Anforderung

[Bearbeiten | Quelltext bearbeiten]

Beim Einschalten des Gerätes kennt dieses weder seine eigene IP-Adresse noch die des BOOTP-Servers. Es wird ein boot request gesendet. Dies ist ein normales UDP-Paket. Als Absender wird, da bisher nichts anderes bekannt ist, die Adresse 0.0.0.0 eingesetzt. Die Empfängeradresse ist die 255.255.255.255, was als Broadcast im eigenen Netz interpretiert wird, da der BOOTP-Client auch nicht die lokale Adresse des Netzwerkstrangs kennt.

Ein boot request von einem Client wird immer auf den Zielport 67 (BOOTP Server) gesendet. Anschließend lauscht der Client auf dem Port 68 (BOOTP Client), auf den die Antwort (boot reply) gesendet wird.

Dass zwei reservierte Ports verwendet werden, ist nicht bei jeder IP-Verbindung so. Die meisten Protokolle verwenden als abgehenden Port (der Port des Clients) eine zufällige Portnummer. Auf diesem Port wird dann auch die Antwort des Servers erwartet. Bei BOOTP würde dies jedoch nicht funktionieren, da die Antwort des BOOTP-Servers (Bootreply) nicht unbedingt auf eine bestimmte Zieladresse gesendet wird, sondern auch als Broadcast an alle Stationen im eigenen Subnetz gehen kann. Würden keine festen Portnummern verwendet, könnte es vorkommen, dass ein anderer Host gerade auf dem gleichen Port lauscht, jedoch etwas ganz anderes erwartet.

Mit dem boot request sendet der Client einige Informationen über sich: Das wichtigste ist die eigene Hardware-Adresse der Netzwerkkarte (MAC-Adresse). Dies ist das einzige Erkennungsmerkmal der Station. Der Client generiert außerdem eine 4 Byte lange Zufallszahl, die im boot reply wieder auftauchen muss. Weiterhin ist ein Timer vorgesehen, der zählt, wie lange der Client schon auf sein boot reply wartet.

Die BOOTP-Antwort

[Bearbeiten | Quelltext bearbeiten]

Bekommt der BOOTP-Server eine gültige Anfrage auf dem entsprechenden Port, so betrachtet dieser zunächst die MAC-Adresse. Die MAC-Adresse aus der Anfrage wird mit einer Datenbank verglichen, in der den MAC-Adressen IP-Adressen zugeordnet sind. Wird für die Anfrage ein Eintrag gefunden, sendet der Server eine Antwort (boot reply). Meist wird die Antwort auch einfach als Broadcast gesendet, es ist jedoch auch möglich, die ARP-Tabelle des Servers manuell zu bearbeiten. Die Möglichkeit hierfür muss jedoch der Kernel bieten.

Wird die Antwort als Broadcast gesendet, enthält diese folgende Informationen:

  • Die Hardware-Adresse des Clients. Der Client erwartet eine Antwort mit seiner Hardware-Adresse, um zu erkennen, dass das Paket für ihn ist.
  • Die Zufallszahl, die in der Anfrage vom Client erzeugt wurde.
  • Die IP-Adresse der Client-Maschine.

Die folgenden Parameter sind optional und werden nur übermittelt, wenn der BOOTP-Server entsprechend konfiguriert ist:

  • Die IP-Adresse und der Hostname des Boot-Servers. Von dort kann im nächsten Schritt über TFTP ein Betriebssystem geladen werden.
  • Der Name und die Pfadangabe der Bootdatei. Die Bootdatei enthält den Kernel, der anschließend mit TFTP übertragen wird.
  • Name des Verzeichnisses, das vom Kernel über NFS als root-Verzeichnis / eingebunden werden soll.

Der BOOTP-Client lauscht also auf dem vorgegebenen Port und wartet auf eine Antwort vom Server. Empfängt er ein Paket, wird die MAC-Adresse mit der eigenen, sowie die Zufallszahl mit der gesendeten verglichen. Erkennt der Client, dass die Antwort für ihn gedacht ist, wird die IP-Adresse der Netzwerkschnittstelle zugewiesen.

Normen und Standards

[Bearbeiten | Quelltext bearbeiten]

Das Bootstrap-Protokoll wird fortwährend weiterentwickelt. Aufgrund der vielfältigen Update- und Ergänzungs-RFC's wird hier nur der initiale RFC genannt:

  • RFC: 951 – Bootstrap Protocol (BOOTP). September 1985 (englisch).

Einzelnachweise

[Bearbeiten | Quelltext bearbeiten]
  1. RFC: 951 – Bootstrap Protocol (BOOTP). September 1985 (englisch).