<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.foxtom.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=JoergNolte</id>
	<title>Foxwiki - Benutzerbeiträge [de]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.foxtom.de/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=JoergNolte"/>
	<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php/Spezial:Beitr%C3%A4ge/JoergNolte"/>
	<updated>2026-07-28T05:16:14Z</updated>
	<subtitle>Benutzerbeiträge</subtitle>
	<generator>MediaWiki 1.46.0</generator>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25561</id>
		<title>IPv4/DHCP</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25561"/>
		<updated>2021-03-25T23:24:33Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: /* Ablauf der Kommunikation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DHCP ist ein Protokoll zur dynamischen Konfiguration von Geräten in Neztwerken.&lt;br /&gt;
&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* DHCP kann als Nachfolger vom BOOT-Protokoll verstanden werden, das entwickelt wurde, um Rechner ohne Festplatte in IP-Netzen zu starten und automatisch zu konfigurieren.&lt;br /&gt;
* Veröffentlichung der ersten DHCP-Version Ende 1993 im RFC 1541&lt;br /&gt;
* Ablösung durch neue Version in RFC 2131 im März 1997&lt;br /&gt;
* Erweiterungen von RFC 2131 durch die RFCs 2132, 3396 &amp;amp; 4361&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
* DHCP regelt die dynamische Vergabe von IP-Adressen und kann die Konfiguration von Rechnern unterstützen&lt;br /&gt;
* DHCP funktioniert nach dem Client-Server-Prinzip&lt;br /&gt;
* Benutzer eines Rechners benötigt keine IP-Adresse von einem Administrator - werden vom DHCP-Server zur Verfügung gestellt&lt;br /&gt;
* IP-Konfigurationsparameter für die Clients sind auf dem DHCP-Server gespeichert&lt;br /&gt;
* Vergabe der IP-Adressen erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Implementierung von DHCP-Relays, um DHCP-Nachrichten in andere Subnetze weiterzuleiten, die über keinen DHCP-Server verfügen&lt;br /&gt;
&lt;br /&gt;
Beim Start einer DHCP-Client-Applikation werden vom Server folgende Informationen angefordert:&lt;br /&gt;
&lt;br /&gt;
* Client-IP-Adresse&lt;br /&gt;
* Lease-Dauer&lt;br /&gt;
* Identifikation des DHCP-Servers&lt;br /&gt;
* Subnetzmaske&lt;br /&gt;
* Default-Gateways&lt;br /&gt;
* statische Routen&lt;br /&gt;
* Hostname &amp;amp; Domainname&lt;br /&gt;
* Lokation externer Server (z. Bsp. Time-Server)&lt;br /&gt;
&lt;br /&gt;
== Anforderungen an den DHCP-Server ==&lt;br /&gt;
&lt;br /&gt;
* Ein DHCP-Server muß über einen Bereich gültiger IP-Adressen verfügen.&lt;br /&gt;
* Der Server benötigt eine manuell zugewiesene statische IP-Adresse (Der Server selbst kann kein Client sein).&lt;br /&gt;
* Soll ein Server IP-Adressen für Clients in verschiedenen Subnetzen verteilen, so müssen sämtliche Router zwischen den Subnetzen als DHCP-Relay-Agenten konfiguriert werden. Wird dies von den Routern nicht unterstützt, benötigt jedes Subnetz einen eigenen DHCP-Server.&lt;br /&gt;
* Im Pool der IP-Adressen dürfen keine statischen IP-Adressen enthalten sein, da diese anderenfalls doppelt vergeben würden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zuweisungsmethoden des DHCP-Verfahrens =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Automatische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* IP-Adressen werden automatisch an die MAC-Adressen von neuen DHCP-Clients vergeben &amp;amp; diese Zuordnung in einer Tabelle festgehalten&lt;br /&gt;
* Vergabe der IP-Adresse an den Client erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Zuordnungen sind permanent und werden nicht entfernt - jeder Client erhält somit stets die gleiche IP-Adresse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dynamische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Vergabe erfolgt analog der &#039;&#039;Automatischen Zuweisung&#039;&#039;&lt;br /&gt;
* Zuweisung der IP-Konfiguration jedoch für einen bestimmten Zeitraum (&#039;&#039;Lease&#039;&#039;-Dauer)&lt;br /&gt;
* Verfall der IP-Adresse nach Ablauf der Lease-Dauer - Neuvergabe an anderen Client durch den DHCP-Server möglich&lt;br /&gt;
* Client kann/muß vor Ablauf der &#039;&#039;Lease&#039;&#039;-Dauer eine Verlängerung beantragen&lt;br /&gt;
* erlaubt, als einzige Zuweisungsmethode die Wiederverwendung von IP-Adressen, wenn der Client diese nicht mehr benötigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manuelle Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* DHCP-Server führt eine Zuweisungstabelle: feste Zuordnung von MAC-Adresse zu IP-Adresse (statisches DHCP)&lt;br /&gt;
* Client erhält immer die gleiche IP-Adresse&lt;br /&gt;
* nur Rechner mit bekannten &amp;amp; registrierten MAC-Adressen erhalten eine IP-Adresse&lt;br /&gt;
* sinnvoll bei Servern, die stets unter der gleichen IP-Adresse erreichbar sein sollen&lt;br /&gt;
&lt;br /&gt;
= DHCP-Nachrichten =&lt;br /&gt;
&lt;br /&gt;
* Austausch von festgelegten DHCP-Nachrichten zwischen Server &amp;amp; Client&lt;br /&gt;
* Übermittlung durch das verbindungslose Transportprotokoll UDP (Server-Port: 67 &amp;amp; Client-Port: 68)&lt;br /&gt;
* Der DHCP-Client stellt einen Anwendungsprozess auf einem Rechner dar &amp;amp; ist auf dem Well-Known-Port 68 erreichbar&lt;br /&gt;
* Der DHCP-Server läuft als Anwendungsprozess auf einem dedizierten Rechner &amp;amp; ist auf dem Well-Known-Port 67 zu erreichen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufbau von DHCP-Nachrichten ==&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Paket.png|400px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Feld !! Länge [Byte] !! Bedeutung !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| op || 1 || Operation || gibt an, ob es sich um eine Anfrage oder Antwort handelt&lt;br /&gt;
|-&lt;br /&gt;
| htype || 1 || Netztyp || Angabe des Netztyps gemäß RFC 1340&lt;br /&gt;
|-&lt;br /&gt;
| hlen || 1 || Länge der Hardware-Adresse || physikalische Netzadresse (z. Bsp. 6 = MAC-Adresse)&lt;br /&gt;
|-&lt;br /&gt;
| hops || 1 || Anzahl der Hops || Anzahl von Routern mit DHCP-Relay-Funktion auf dem Weg zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| xid || 4 || Transaktions-ID || Identifikationsnummer für die Transaktion zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| secs || 2 || Sekunden || von Seiten des Clients, die Zeit seit Beginn des Vorgangs&lt;br /&gt;
|-&lt;br /&gt;
| flags || 2 || Flags || nur das höchstwertige Bit wird verwendet, um anzuzeigen, ob der Client noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| ciaddr || 4 || Client-IP-Adresse || wird vom Client angegeben, falls dieser noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| yiaddr || 4 || Your-IP-Adresse || IP-Adresse, die der Server dem Client zugewiesen hat&lt;br /&gt;
|-&lt;br /&gt;
| siaddr || 4 || Server-IP-Adresse || IP-Adresse des DHCP-Servers&lt;br /&gt;
|-&lt;br /&gt;
| giaddr || 4 || || IP-Adresse des Routers mit DHCP-Relay-Funktion&lt;br /&gt;
|-&lt;br /&gt;
| chaddr || 16 || Client-Hardware-Adresse || Client-Mac-Adresse&lt;br /&gt;
|-&lt;br /&gt;
| sname || 64 || Server-Name || &lt;br /&gt;
|-&lt;br /&gt;
| file || 128 || File / Datei || &lt;br /&gt;
|-&lt;br /&gt;
| options || bis 312 || Optionen || zusätzliche Konfigurationsparameter - DHCP-Optionen nach RFC 2132&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Ablauf der Kommunikation ==&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
[[File:DHCP-Ablauf2.png|500px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WireDHCP2.png|1000px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anforderungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Client sendet die Nachricht &#039;&#039;DHCP-DISCOVER&#039;&#039; mit einem Broadcast (Ziel-IP: 255.255.255.255) in sein lokales Netz&lt;br /&gt;
* &#039;&#039;DHCP-DISCOVER&#039;&#039;-Nachricht kann Optionen enthalten, wie zum Beispiel Vorschläge für IP-Adresse &amp;amp; Lease-Dauer&lt;br /&gt;
* Anforderung der benötigten Konfigurationsparameter - IP-Adresse, Subnetzmaske etc.&lt;br /&gt;
* Angabe der MAC-Adresse des Clients (&#039;&#039;chaddr&#039;&#039;) zwingend erforderlich&lt;br /&gt;
* Nachricht ist normalerweise auf das eigene Subnetz beschränkt - kann aber durch DHCP-Relay-Agenten in andere Subnetze weitergeleitet werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Angebotsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Mit der Nachricht &#039;&#039;DHCP-OFFER&#039;&#039; läßt der DHCP-Server dem Client ein Angebot zukommen.&lt;br /&gt;
* Der Server versucht dabei, den Client direkt zu erreichen - was nicht immer möglich ist:&lt;br /&gt;
&lt;br /&gt;
Fall A:&lt;br /&gt;
* Client wird gerade initialisiert &amp;amp; verfügt noch nicht über eine IP-Adresse&lt;br /&gt;
* Angebot wird als Broadcast versandt - erhält aber bereits die MAC-Adresse des Clients, so daß nur dieser die Nachricht lesen darf&lt;br /&gt;
&lt;br /&gt;
Fall B:&lt;br /&gt;
* Client verfügt bereits über eine IP-Adresse - deren Lease-Dauer jedoch zu Ende geht&lt;br /&gt;
* Angebot wird in diesem Fall direkt an die IP-Adresse des Clients gesendet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Zu diesem Zeitpunkt muß der Server die IP-Adresse noch nicht reservieren, kann dies aber tun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auswahlphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Der Client wählt die Konfigurationsparameter des zuerst erhaltenen Angebots aus.&lt;br /&gt;
* Senden einer Nachricht &#039;&#039;DHCP-REQUEST&#039;&#039; - Optionsfeld muß den Eintrag &#039;&#039;DHCP Server Identifier&#039;&#039; enthalten&lt;br /&gt;
* Nachricht wird als Broadcast versendet, um andere DHCP-Server darüber in Kenntnis zu setzen, daß der Client sich entschieden hat und die entsprechenden Server die reservierten Parameter wieder freigeben können &lt;br /&gt;
* angebotene IP-Adresse wird mit der Option &#039;&#039;Requested IP Address&#039;&#039; bestätigt&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bestätigungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Antwort des DHCP-Servers mit der Nachricht &#039;&#039;DHCP-ACK&#039;&#039; mit allen Konfigurationsparametern für den Client&lt;br /&gt;
* Sollten in dieser Phase weitere Angebote eintreffen, werden diese vom Client verworfen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Phasen.png|1600px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weitere DHCP-Nachrichtentypen&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-NAK&#039;&#039;:&lt;br /&gt;
* wird während der Bestätigungsphase vom Server an den Client gesendet, um diesen darauf hinzuweisen, daß die im &#039;&#039;DHCP-REQUEST&#039;&#039; angeforderten Konfigurationsparameter abgeleht wurden:&lt;br /&gt;
** wenn ein Client versucht seine bisherige IP-Adresse zu verlängern, diese jedoch nicht mehr verfügbar ist&lt;br /&gt;
** wenn ein Client in ein anderes Subnetz umgezogen &amp;amp; somit die IP-Adresse ungültig ist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-RELEASE&#039;&#039;:&lt;br /&gt;
* Hiermit teilt ein Client dem Server mit, daß er seine IP-Adresse nicht mehr benötigt und der Server die Adresse freigeben und anderweitig vergeben kann&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-DECLINE&#039;&#039;:&lt;br /&gt;
* Der Client kann hierüber den Server in Kenntnis setzen, daß einige Parameter ungültig sind (zum Beispiel seine MAC-Adresse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-INFORM&#039;&#039;:&lt;br /&gt;
* Kann von Clients verwendet werden, denen eine statische IP-Adresse zugewiesen wurde, um weitere dynamische Konfigurationsparameter vom Server anzufordern.&lt;br /&gt;
&lt;br /&gt;
= Die Lease-Dauer =&lt;br /&gt;
&lt;br /&gt;
Wurde der Client über die &#039;&#039;Dynamische Zuweisung&#039;&#039; konfiguriert, wird dessen IP-Adresse nach Ablauf der &#039;&#039;Lease Time&#039;&#039; ihre Gültigkeit verlieren &amp;amp; kann vom Server neu vergeben werden. Dementsprechend muß der Client vor Ablauf der Lease-Dauer eine Verlängerung der Gültigkeit seiner Konfigurationsparameter anfordern:&lt;br /&gt;
&lt;br /&gt;
* Client sendet ein &#039;&#039;DHCP-REQUEST&#039;&#039; an den Server, von dem er konfiguriert wurde - gewünschte IP-Adresse wird mit der Option &#039;&#039;Requested IP Address&#039;&#039; mitgeteilt&lt;br /&gt;
* Standardmäßig erfolgt diese Anfrage nach Ablauf von 50 Prozent der Lease-Dauer.&lt;br /&gt;
* Wird vom Server nicht auf diese Anfrage reagiert, sendet der Client nach Ablauf von 7/8 der Lease-Dauer eine erneute Anfrage.&lt;br /&gt;
* Kann der Anfrage entsprochen werden, sendet der DHCP-Server ein &#039;&#039;DHCP-ACK&#039;&#039; an den Client&lt;br /&gt;
* Erhält der Client kein rechtzeitiges &#039;&#039;DHCP-ACK&#039;&#039;, muß dieser den Konfigurationsprozeß mit einem &#039;&#039;DHCP-DISCOVER&#039;&#039; erneut beginnen - die bisherige IP-Adresse darf bis zum Ablauf der Lease-Dauer behalten werden.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[File:LeaseTime.png|600px|none]]&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Datei:WireDHCP2.png&amp;diff=25560</id>
		<title>Datei:WireDHCP2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Datei:WireDHCP2.png&amp;diff=25560"/>
		<updated>2021-03-25T23:22:38Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: Datei hochgeladen mit MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Datei hochgeladen mit MsUpload&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25559</id>
		<title>IPv4/DHCP</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25559"/>
		<updated>2021-03-25T23:10:35Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;DHCP ist ein Protokoll zur dynamischen Konfiguration von Geräten in Neztwerken.&lt;br /&gt;
&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* DHCP kann als Nachfolger vom BOOT-Protokoll verstanden werden, das entwickelt wurde, um Rechner ohne Festplatte in IP-Netzen zu starten und automatisch zu konfigurieren.&lt;br /&gt;
* Veröffentlichung der ersten DHCP-Version Ende 1993 im RFC 1541&lt;br /&gt;
* Ablösung durch neue Version in RFC 2131 im März 1997&lt;br /&gt;
* Erweiterungen von RFC 2131 durch die RFCs 2132, 3396 &amp;amp; 4361&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
* DHCP regelt die dynamische Vergabe von IP-Adressen und kann die Konfiguration von Rechnern unterstützen&lt;br /&gt;
* DHCP funktioniert nach dem Client-Server-Prinzip&lt;br /&gt;
* Benutzer eines Rechners benötigt keine IP-Adresse von einem Administrator - werden vom DHCP-Server zur Verfügung gestellt&lt;br /&gt;
* IP-Konfigurationsparameter für die Clients sind auf dem DHCP-Server gespeichert&lt;br /&gt;
* Vergabe der IP-Adressen erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Implementierung von DHCP-Relays, um DHCP-Nachrichten in andere Subnetze weiterzuleiten, die über keinen DHCP-Server verfügen&lt;br /&gt;
&lt;br /&gt;
Beim Start einer DHCP-Client-Applikation werden vom Server folgende Informationen angefordert:&lt;br /&gt;
&lt;br /&gt;
* Client-IP-Adresse&lt;br /&gt;
* Lease-Dauer&lt;br /&gt;
* Identifikation des DHCP-Servers&lt;br /&gt;
* Subnetzmaske&lt;br /&gt;
* Default-Gateways&lt;br /&gt;
* statische Routen&lt;br /&gt;
* Hostname &amp;amp; Domainname&lt;br /&gt;
* Lokation externer Server (z. Bsp. Time-Server)&lt;br /&gt;
&lt;br /&gt;
== Anforderungen an den DHCP-Server ==&lt;br /&gt;
&lt;br /&gt;
* Ein DHCP-Server muß über einen Bereich gültiger IP-Adressen verfügen.&lt;br /&gt;
* Der Server benötigt eine manuell zugewiesene statische IP-Adresse (Der Server selbst kann kein Client sein).&lt;br /&gt;
* Soll ein Server IP-Adressen für Clients in verschiedenen Subnetzen verteilen, so müssen sämtliche Router zwischen den Subnetzen als DHCP-Relay-Agenten konfiguriert werden. Wird dies von den Routern nicht unterstützt, benötigt jedes Subnetz einen eigenen DHCP-Server.&lt;br /&gt;
* Im Pool der IP-Adressen dürfen keine statischen IP-Adressen enthalten sein, da diese anderenfalls doppelt vergeben würden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zuweisungsmethoden des DHCP-Verfahrens =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Automatische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* IP-Adressen werden automatisch an die MAC-Adressen von neuen DHCP-Clients vergeben &amp;amp; diese Zuordnung in einer Tabelle festgehalten&lt;br /&gt;
* Vergabe der IP-Adresse an den Client erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Zuordnungen sind permanent und werden nicht entfernt - jeder Client erhält somit stets die gleiche IP-Adresse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dynamische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Vergabe erfolgt analog der &#039;&#039;Automatischen Zuweisung&#039;&#039;&lt;br /&gt;
* Zuweisung der IP-Konfiguration jedoch für einen bestimmten Zeitraum (&#039;&#039;Lease&#039;&#039;-Dauer)&lt;br /&gt;
* Verfall der IP-Adresse nach Ablauf der Lease-Dauer - Neuvergabe an anderen Client durch den DHCP-Server möglich&lt;br /&gt;
* Client kann/muß vor Ablauf der &#039;&#039;Lease&#039;&#039;-Dauer eine Verlängerung beantragen&lt;br /&gt;
* erlaubt, als einzige Zuweisungsmethode die Wiederverwendung von IP-Adressen, wenn der Client diese nicht mehr benötigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manuelle Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* DHCP-Server führt eine Zuweisungstabelle: feste Zuordnung von MAC-Adresse zu IP-Adresse (statisches DHCP)&lt;br /&gt;
* Client erhält immer die gleiche IP-Adresse&lt;br /&gt;
* nur Rechner mit bekannten &amp;amp; registrierten MAC-Adressen erhalten eine IP-Adresse&lt;br /&gt;
* sinnvoll bei Servern, die stets unter der gleichen IP-Adresse erreichbar sein sollen&lt;br /&gt;
&lt;br /&gt;
= DHCP-Nachrichten =&lt;br /&gt;
&lt;br /&gt;
* Austausch von festgelegten DHCP-Nachrichten zwischen Server &amp;amp; Client&lt;br /&gt;
* Übermittlung durch das verbindungslose Transportprotokoll UDP (Server-Port: 67 &amp;amp; Client-Port: 68)&lt;br /&gt;
* Der DHCP-Client stellt einen Anwendungsprozess auf einem Rechner dar &amp;amp; ist auf dem Well-Known-Port 68 erreichbar&lt;br /&gt;
* Der DHCP-Server läuft als Anwendungsprozess auf einem dedizierten Rechner &amp;amp; ist auf dem Well-Known-Port 67 zu erreichen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufbau von DHCP-Nachrichten ==&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Paket.png|400px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Feld !! Länge [Byte] !! Bedeutung !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| op || 1 || Operation || gibt an, ob es sich um eine Anfrage oder Antwort handelt&lt;br /&gt;
|-&lt;br /&gt;
| htype || 1 || Netztyp || Angabe des Netztyps gemäß RFC 1340&lt;br /&gt;
|-&lt;br /&gt;
| hlen || 1 || Länge der Hardware-Adresse || physikalische Netzadresse (z. Bsp. 6 = MAC-Adresse)&lt;br /&gt;
|-&lt;br /&gt;
| hops || 1 || Anzahl der Hops || Anzahl von Routern mit DHCP-Relay-Funktion auf dem Weg zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| xid || 4 || Transaktions-ID || Identifikationsnummer für die Transaktion zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| secs || 2 || Sekunden || von Seiten des Clients, die Zeit seit Beginn des Vorgangs&lt;br /&gt;
|-&lt;br /&gt;
| flags || 2 || Flags || nur das höchstwertige Bit wird verwendet, um anzuzeigen, ob der Client noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| ciaddr || 4 || Client-IP-Adresse || wird vom Client angegeben, falls dieser noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| yiaddr || 4 || Your-IP-Adresse || IP-Adresse, die der Server dem Client zugewiesen hat&lt;br /&gt;
|-&lt;br /&gt;
| siaddr || 4 || Server-IP-Adresse || IP-Adresse des DHCP-Servers&lt;br /&gt;
|-&lt;br /&gt;
| giaddr || 4 || || IP-Adresse des Routers mit DHCP-Relay-Funktion&lt;br /&gt;
|-&lt;br /&gt;
| chaddr || 16 || Client-Hardware-Adresse || Client-Mac-Adresse&lt;br /&gt;
|-&lt;br /&gt;
| sname || 64 || Server-Name || &lt;br /&gt;
|-&lt;br /&gt;
| file || 128 || File / Datei || &lt;br /&gt;
|-&lt;br /&gt;
| options || bis 312 || Optionen || zusätzliche Konfigurationsparameter - DHCP-Optionen nach RFC 2132&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Ablauf der Kommunikation ==&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
[[File:DHCP-Ablauf2.png|500px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WireShark-DHCP-Phasen.png|1000px|none]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anforderungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Client sendet die Nachricht &#039;&#039;DHCP-DISCOVER&#039;&#039; mit einem Broadcast (Ziel-IP: 255.255.255.255) in sein lokales Netz&lt;br /&gt;
* &#039;&#039;DHCP-DISCOVER&#039;&#039;-Nachricht kann Optionen enthalten, wie zum Beispiel Vorschläge für IP-Adresse &amp;amp; Lease-Dauer&lt;br /&gt;
* Anforderung der benötigten Konfigurationsparameter - IP-Adresse, Subnetzmaske etc.&lt;br /&gt;
* Angabe der MAC-Adresse des Clients (&#039;&#039;chaddr&#039;&#039;) zwingend erforderlich&lt;br /&gt;
* Nachricht ist normalerweise auf das eigene Subnetz beschränkt - kann aber durch DHCP-Relay-Agenten in andere Subnetze weitergeleitet werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Angebotsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Mit der Nachricht &#039;&#039;DHCP-OFFER&#039;&#039; läßt der DHCP-Server dem Client ein Angebot zukommen.&lt;br /&gt;
* Der Server versucht dabei, den Client direkt zu erreichen - was nicht immer möglich ist:&lt;br /&gt;
&lt;br /&gt;
Fall A:&lt;br /&gt;
* Client wird gerade initialisiert &amp;amp; verfügt noch nicht über eine IP-Adresse&lt;br /&gt;
* Angebot wird als Broadcast versandt - erhält aber bereits die MAC-Adresse des Clients, so daß nur dieser die Nachricht lesen darf&lt;br /&gt;
&lt;br /&gt;
Fall B:&lt;br /&gt;
* Client verfügt bereits über eine IP-Adresse - deren Lease-Dauer jedoch zu Ende geht&lt;br /&gt;
* Angebot wird in diesem Fall direkt an die IP-Adresse des Clients gesendet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Zu diesem Zeitpunkt muß der Server die IP-Adresse noch nicht reservieren, kann dies aber tun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auswahlphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Der Client wählt die Konfigurationsparameter des zuerst erhaltenen Angebots aus.&lt;br /&gt;
* Senden einer Nachricht &#039;&#039;DHCP-REQUEST&#039;&#039; - Optionsfeld muß den Eintrag &#039;&#039;DHCP Server Identifier&#039;&#039; enthalten&lt;br /&gt;
* Nachricht wird als Broadcast versendet, um andere DHCP-Server darüber in Kenntnis zu setzen, daß der Client sich entschieden hat und die entsprechenden Server die reservierten Parameter wieder freigeben können &lt;br /&gt;
* angebotene IP-Adresse wird mit der Option &#039;&#039;Requested IP Address&#039;&#039; bestätigt&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bestätigungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Antwort des DHCP-Servers mit der Nachricht &#039;&#039;DHCP-ACK&#039;&#039; mit allen Konfigurationsparametern für den Client&lt;br /&gt;
* Sollten in dieser Phase weitere Angebote eintreffen, werden diese vom Client verworfen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Phasen.png|1600px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weitere DHCP-Nachrichtentypen&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-NAK&#039;&#039;:&lt;br /&gt;
* wird während der Bestätigungsphase vom Server an den Client gesendet, um diesen darauf hinzuweisen, daß die im &#039;&#039;DHCP-REQUEST&#039;&#039; angeforderten Konfigurationsparameter abgeleht wurden:&lt;br /&gt;
** wenn ein Client versucht seine bisherige IP-Adresse zu verlängern, diese jedoch nicht mehr verfügbar ist&lt;br /&gt;
** wenn ein Client in ein anderes Subnetz umgezogen &amp;amp; somit die IP-Adresse ungültig ist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-RELEASE&#039;&#039;:&lt;br /&gt;
* Hiermit teilt ein Client dem Server mit, daß er seine IP-Adresse nicht mehr benötigt und der Server die Adresse freigeben und anderweitig vergeben kann&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-DECLINE&#039;&#039;:&lt;br /&gt;
* Der Client kann hierüber den Server in Kenntnis setzen, daß einige Parameter ungültig sind (zum Beispiel seine MAC-Adresse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-INFORM&#039;&#039;:&lt;br /&gt;
* Kann von Clients verwendet werden, denen eine statische IP-Adresse zugewiesen wurde, um weitere dynamische Konfigurationsparameter vom Server anzufordern.&lt;br /&gt;
&lt;br /&gt;
= Die Lease-Dauer =&lt;br /&gt;
&lt;br /&gt;
Wurde der Client über die &#039;&#039;Dynamische Zuweisung&#039;&#039; konfiguriert, wird dessen IP-Adresse nach Ablauf der &#039;&#039;Lease Time&#039;&#039; ihre Gültigkeit verlieren &amp;amp; kann vom Server neu vergeben werden. Dementsprechend muß der Client vor Ablauf der Lease-Dauer eine Verlängerung der Gültigkeit seiner Konfigurationsparameter anfordern:&lt;br /&gt;
&lt;br /&gt;
* Client sendet ein &#039;&#039;DHCP-REQUEST&#039;&#039; an den Server, von dem er konfiguriert wurde - gewünschte IP-Adresse wird mit der Option &#039;&#039;Requested IP Address&#039;&#039; mitgeteilt&lt;br /&gt;
* Standardmäßig erfolgt diese Anfrage nach Ablauf von 50 Prozent der Lease-Dauer.&lt;br /&gt;
* Wird vom Server nicht auf diese Anfrage reagiert, sendet der Client nach Ablauf von 7/8 der Lease-Dauer eine erneute Anfrage.&lt;br /&gt;
* Kann der Anfrage entsprochen werden, sendet der DHCP-Server ein &#039;&#039;DHCP-ACK&#039;&#039; an den Client&lt;br /&gt;
* Erhält der Client kein rechtzeitiges &#039;&#039;DHCP-ACK&#039;&#039;, muß dieser den Konfigurationsprozeß mit einem &#039;&#039;DHCP-DISCOVER&#039;&#039; erneut beginnen - die bisherige IP-Adresse darf bis zum Ablauf der Lease-Dauer behalten werden.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[File:LeaseTime.png|600px|none]]&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25558</id>
		<title>IPv4/DHCP</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25558"/>
		<updated>2021-03-25T23:05:28Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* DHCP kann als Nachfolger vom BOOT-Protokoll verstanden werden, das entwickelt wurde, um Rechner ohne Festplatte in IP-Netzen zu starten und automatisch zu konfigurieren.&lt;br /&gt;
* Veröffentlichung der ersten DHCP-Version Ende 1993 im RFC 1541&lt;br /&gt;
* Ablösung durch neue Version in RFC 2131 im März 1997&lt;br /&gt;
* Erweiterungen von RFC 2131 durch die RFCs 2132, 3396 &amp;amp; 4361&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
* DHCP regelt die dynamische Vergabe von IP-Adressen und kann die Konfiguration von Rechnern unterstützen&lt;br /&gt;
* DHCP funktioniert nach dem Client-Server-Prinzip&lt;br /&gt;
* Benutzer eines Rechners benötigt keine IP-Adresse von einem Administrator - werden vom DHCP-Server zur Verfügung gestellt&lt;br /&gt;
* IP-Konfigurationsparameter für die Clients sind auf dem DHCP-Server gespeichert&lt;br /&gt;
* Vergabe der IP-Adressen erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Implementierung von DHCP-Relays, um DHCP-Nachrichten in andere Subnetze weiterzuleiten, die über keinen DHCP-Server verfügen&lt;br /&gt;
&lt;br /&gt;
Beim Start einer DHCP-Client-Applikation werden vom Server folgende Informationen angefordert:&lt;br /&gt;
&lt;br /&gt;
* Client-IP-Adresse&lt;br /&gt;
* Lease-Dauer&lt;br /&gt;
* Identifikation des DHCP-Servers&lt;br /&gt;
* Subnetzmaske&lt;br /&gt;
* Default-Gateways&lt;br /&gt;
* statische Routen&lt;br /&gt;
* Hostname &amp;amp; Domainname&lt;br /&gt;
* Lokation externer Server (z. Bsp. Time-Server)&lt;br /&gt;
&lt;br /&gt;
== Anforderungen an den DHCP-Server ==&lt;br /&gt;
&lt;br /&gt;
* Ein DHCP-Server muß über einen Bereich gültiger IP-Adressen verfügen.&lt;br /&gt;
* Der Server benötigt eine manuell zugewiesene statische IP-Adresse (Der Server selbst kann kein Client sein).&lt;br /&gt;
* Soll ein Server IP-Adressen für Clients in verschiedenen Subnetzen verteilen, so müssen sämtliche Router zwischen den Subnetzen als DHCP-Relay-Agenten konfiguriert werden. Wird dies von den Routern nicht unterstützt, benötigt jedes Subnetz einen eigenen DHCP-Server.&lt;br /&gt;
* Im Pool der IP-Adressen dürfen keine statischen IP-Adressen enthalten sein, da diese anderenfalls doppelt vergeben würden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zuweisungsmethoden des DHCP-Verfahrens =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Automatische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* IP-Adressen werden automatisch an die MAC-Adressen von neuen DHCP-Clients vergeben &amp;amp; diese Zuordnung in einer Tabelle festgehalten&lt;br /&gt;
* Vergabe der IP-Adresse an den Client erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Zuordnungen sind permanent und werden nicht entfernt - jeder Client erhält somit stets die gleiche IP-Adresse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dynamische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Vergabe erfolgt analog der &#039;&#039;Automatischen Zuweisung&#039;&#039;&lt;br /&gt;
* Zuweisung der IP-Konfiguration jedoch für einen bestimmten Zeitraum (&#039;&#039;Lease&#039;&#039;-Dauer)&lt;br /&gt;
* Verfall der IP-Adresse nach Ablauf der Lease-Dauer - Neuvergabe an anderen Client durch den DHCP-Server möglich&lt;br /&gt;
* Client kann/muß vor Ablauf der &#039;&#039;Lease&#039;&#039;-Dauer eine Verlängerung beantragen&lt;br /&gt;
* erlaubt, als einzige Zuweisungsmethode die Wiederverwendung von IP-Adressen, wenn der Client diese nicht mehr benötigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manuelle Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* DHCP-Server führt eine Zuweisungstabelle: feste Zuordnung von MAC-Adresse zu IP-Adresse (statisches DHCP)&lt;br /&gt;
* Client erhält immer die gleiche IP-Adresse&lt;br /&gt;
* nur Rechner mit bekannten &amp;amp; registrierten MAC-Adressen erhalten eine IP-Adresse&lt;br /&gt;
* sinnvoll bei Servern, die stets unter der gleichen IP-Adresse erreichbar sein sollen&lt;br /&gt;
&lt;br /&gt;
= DHCP-Nachrichten =&lt;br /&gt;
&lt;br /&gt;
* Austausch von festgelegten DHCP-Nachrichten zwischen Server &amp;amp; Client&lt;br /&gt;
* Übermittlung durch das verbindungslose Transportprotokoll UDP (Server-Port: 67 &amp;amp; Client-Port: 68)&lt;br /&gt;
* Der DHCP-Client stellt einen Anwendungsprozess auf einem Rechner dar &amp;amp; ist auf dem Well-Known-Port 68 erreichbar&lt;br /&gt;
* Der DHCP-Server läuft als Anwendungsprozess auf einem dedizierten Rechner &amp;amp; ist auf dem Well-Known-Port 67 zu erreichen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufbau von DHCP-Nachrichten ==&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Paket.png|400px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Feld !! Länge [Byte] !! Bedeutung !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| op || 1 || Operation || gibt an, ob es sich um eine Anfrage oder Antwort handelt&lt;br /&gt;
|-&lt;br /&gt;
| htype || 1 || Netztyp || Angabe des Netztyps gemäß RFC 1340&lt;br /&gt;
|-&lt;br /&gt;
| hlen || 1 || Länge der Hardware-Adresse || physikalische Netzadresse (z. Bsp. 6 = MAC-Adresse)&lt;br /&gt;
|-&lt;br /&gt;
| hops || 1 || Anzahl der Hops || Anzahl von Routern mit DHCP-Relay-Funktion auf dem Weg zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| xid || 4 || Transaktions-ID || Identifikationsnummer für die Transaktion zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| secs || 2 || Sekunden || von Seiten des Clients, die Zeit seit Beginn des Vorgangs&lt;br /&gt;
|-&lt;br /&gt;
| flags || 2 || Flags || nur das höchstwertige Bit wird verwendet, um anzuzeigen, ob der Client noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| ciaddr || 4 || Client-IP-Adresse || wird vom Client angegeben, falls dieser noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| yiaddr || 4 || Your-IP-Adresse || IP-Adresse, die der Server dem Client zugewiesen hat&lt;br /&gt;
|-&lt;br /&gt;
| siaddr || 4 || Server-IP-Adresse || IP-Adresse des DHCP-Servers&lt;br /&gt;
|-&lt;br /&gt;
| giaddr || 4 || || IP-Adresse des Routers mit DHCP-Relay-Funktion&lt;br /&gt;
|-&lt;br /&gt;
| chaddr || 16 || Client-Hardware-Adresse || Client-Mac-Adresse&lt;br /&gt;
|-&lt;br /&gt;
| sname || 64 || Server-Name || &lt;br /&gt;
|-&lt;br /&gt;
| file || 128 || File / Datei || &lt;br /&gt;
|-&lt;br /&gt;
| options || bis 312 || Optionen || zusätzliche Konfigurationsparameter - DHCP-Optionen nach RFC 2132&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Ablauf der Kommunikation ==&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
[[File:DHCP-Ablauf2.png|500px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WireShark-DHCP-Phasen.png|1000px|none]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anforderungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Client sendet die Nachricht &#039;&#039;DHCP-DISCOVER&#039;&#039; mit einem Broadcast (Ziel-IP: 255.255.255.255) in sein lokales Netz&lt;br /&gt;
* &#039;&#039;DHCP-DISCOVER&#039;&#039;-Nachricht kann Optionen enthalten, wie zum Beispiel Vorschläge für IP-Adresse &amp;amp; Lease-Dauer&lt;br /&gt;
* Anforderung der benötigten Konfigurationsparameter - IP-Adresse, Subnetzmaske etc.&lt;br /&gt;
* Angabe der MAC-Adresse des Clients (&#039;&#039;chaddr&#039;&#039;) zwingend erforderlich&lt;br /&gt;
* Nachricht ist normalerweise auf das eigene Subnetz beschränkt - kann aber durch DHCP-Relay-Agenten in andere Subnetze weitergeleitet werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Angebotsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Mit der Nachricht &#039;&#039;DHCP-OFFER&#039;&#039; läßt der DHCP-Server dem Client ein Angebot zukommen.&lt;br /&gt;
* Der Server versucht dabei, den Client direkt zu erreichen - was nicht immer möglich ist:&lt;br /&gt;
&lt;br /&gt;
Fall A:&lt;br /&gt;
* Client wird gerade initialisiert &amp;amp; verfügt noch nicht über eine IP-Adresse&lt;br /&gt;
* Angebot wird als Broadcast versandt - erhält aber bereits die MAC-Adresse des Clients, so daß nur dieser die Nachricht lesen darf&lt;br /&gt;
&lt;br /&gt;
Fall B:&lt;br /&gt;
* Client verfügt bereits über eine IP-Adresse - deren Lease-Dauer jedoch zu Ende geht&lt;br /&gt;
* Angebot wird in diesem Fall direkt an die IP-Adresse des Clients gesendet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Zu diesem Zeitpunkt muß der Server die IP-Adresse noch nicht reservieren, kann dies aber tun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auswahlphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Der Client wählt die Konfigurationsparameter des zuerst erhaltenen Angebots aus.&lt;br /&gt;
* Senden einer Nachricht &#039;&#039;DHCP-REQUEST&#039;&#039; - Optionsfeld muß den Eintrag &#039;&#039;DHCP Server Identifier&#039;&#039; enthalten&lt;br /&gt;
* Nachricht wird als Broadcast versendet, um andere DHCP-Server darüber in Kenntnis zu setzen, daß der Client sich entschieden hat und die entsprechenden Server die reservierten Parameter wieder freigeben können &lt;br /&gt;
* angebotene IP-Adresse wird mit der Option &#039;&#039;Requested IP Address&#039;&#039; bestätigt&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bestätigungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Antwort des DHCP-Servers mit der Nachricht &#039;&#039;DHCP-ACK&#039;&#039; mit allen Konfigurationsparametern für den Client&lt;br /&gt;
* Sollten in dieser Phase weitere Angebote eintreffen, werden diese vom Client verworfen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Phasen.png|1600px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weitere DHCP-Nachrichtentypen&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-NAK&#039;&#039;:&lt;br /&gt;
* wird während der Bestätigungsphase vom Server an den Client gesendet, um diesen darauf hinzuweisen, daß die im &#039;&#039;DHCP-REQUEST&#039;&#039; angeforderten Konfigurationsparameter abgeleht wurden:&lt;br /&gt;
** wenn ein Client versucht seine bisherige IP-Adresse zu verlängern, diese jedoch nicht mehr verfügbar ist&lt;br /&gt;
** wenn ein Client in ein anderes Subnetz umgezogen &amp;amp; somit die IP-Adresse ungültig ist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-RELEASE&#039;&#039;:&lt;br /&gt;
* Hiermit teilt ein Client dem Server mit, daß er seine IP-Adresse nicht mehr benötigt und der Server die Adresse freigeben und anderweitig vergeben kann&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-DECLINE&#039;&#039;:&lt;br /&gt;
* Der Client kann hierüber den Server in Kenntnis setzen, daß einige Parameter ungültig sind (zum Beispiel seine MAC-Adresse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-INFORM&#039;&#039;:&lt;br /&gt;
* Kann von Clients verwendet werden, denen eine statische IP-Adresse zugewiesen wurde, um weitere dynamische Konfigurationsparameter vom Server anzufordern.&lt;br /&gt;
&lt;br /&gt;
= Die Lease-Dauer =&lt;br /&gt;
&lt;br /&gt;
Wurde der Client über die &#039;&#039;Dynamische Zuweisung&#039;&#039; konfiguriert, wird dessen IP-Adresse nach Ablauf der &#039;&#039;Lease Time&#039;&#039; ihre Gültigkeit verlieren &amp;amp; kann vom Server neu vergeben werden. Dementsprechend muß der Client vor Ablauf der Lease-Dauer eine Verlängerung der Gültigkeit seiner Konfigurationsparameter anfordern:&lt;br /&gt;
&lt;br /&gt;
* Client sendet ein &#039;&#039;DHCP-REQUEST&#039;&#039; an den Server, von dem er konfiguriert wurde - gewünschte IP-Adresse wird mit der Option &#039;&#039;Requested IP Address&#039;&#039; mitgeteilt&lt;br /&gt;
* Standardmäßig erfolgt diese Anfrage nach Ablauf von 50 Prozent der Lease-Dauer.&lt;br /&gt;
* Wird vom Server nicht auf diese Anfrage reagiert, sendet der Client nach Ablauf von 7/8 der Lease-Dauer eine erneute Anfrage.&lt;br /&gt;
* Kann der Anfrage entsprochen werden, sendet der DHCP-Server ein &#039;&#039;DHCP-ACK&#039;&#039; an den Client&lt;br /&gt;
* Erhält der Client kein rechtzeitiges &#039;&#039;DHCP-ACK&#039;&#039;, muß dieser den Konfigurationsprozeß mit einem &#039;&#039;DHCP-DISCOVER&#039;&#039; erneut beginnen - die bisherige IP-Adresse darf bis zum Ablauf der Lease-Dauer behalten werden.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[File:LeaseTime.png|600px|none]]&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Datei:DHCP-Ablauf2.png&amp;diff=25557</id>
		<title>Datei:DHCP-Ablauf2.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Datei:DHCP-Ablauf2.png&amp;diff=25557"/>
		<updated>2021-03-25T23:03:26Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: Datei hochgeladen mit MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Datei hochgeladen mit MsUpload&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25526</id>
		<title>IPv4/DHCP</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25526"/>
		<updated>2021-03-24T21:24:06Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: /* Die Lease-Dauer */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* DHCP kann als Nachfolger vom BOOT-Protokoll verstanden werden, das entwickelt wurde, um Rechner ohne Festplatte in IP-Netzen zu starten und automatisch zu konfigurieren.&lt;br /&gt;
* Veröffentlichung der ersten DHCP-Version Ende 1993 im RFC 1541&lt;br /&gt;
* Ablösung durch neue Version in RFC 2131 im März 1997&lt;br /&gt;
* Erweiterungen von RFC 2131 durch die RFCs 2132, 3396 &amp;amp; 4361&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
* DHCP regelt die dynamische Vergabe von IP-Adressen und kann die Konfiguration von Rechnern unterstützen&lt;br /&gt;
* DHCP funktioniert nach dem Client-Server-Prinzip&lt;br /&gt;
* Benutzer eines Rechners benötigt keine IP-Adresse von einem Administrator - werden vom DHCP-Server zur Verfügung gestellt&lt;br /&gt;
* IP-Konfigurationsparameter für die Clients sind auf dem DHCP-Server gespeichert&lt;br /&gt;
* Vergabe der IP-Adressen erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Implementierung von DHCP-Relays, um DHCP-Nachrichten in andere Subnetze weiterzuleiten, die über keinen DHCP-Server verfügen&lt;br /&gt;
&lt;br /&gt;
Beim Start einer DHCP-Client-Applikation werden vom Server folgende Informationen angefordert:&lt;br /&gt;
&lt;br /&gt;
* Client-IP-Adresse&lt;br /&gt;
* Lease-Dauer&lt;br /&gt;
* Identifikation des DHCP-Servers&lt;br /&gt;
* Subnetzmaske&lt;br /&gt;
* Default-Gateways&lt;br /&gt;
* statische Routen&lt;br /&gt;
* Hostname &amp;amp; Domainname&lt;br /&gt;
* Lokation externer Server (z. Bsp. Time-Server)&lt;br /&gt;
&lt;br /&gt;
== Anforderungen an den DHCP-Server ==&lt;br /&gt;
&lt;br /&gt;
* Ein DHCP-Server muß über einen Bereich gültiger IP-Adressen verfügen.&lt;br /&gt;
* Der Server benötigt eine manuell zugewiesene statische IP-Adresse (Der Server selbst kann kein Client sein).&lt;br /&gt;
* Soll ein Server IP-Adressen für Clients in verschiedenen Subnetzen verteilen, so müssen sämtliche Router zwischen den Subnetzen als DHCP-Relay-Agenten konfiguriert werden. Wird dies von den Routern nicht unterstützt, benötigt jedes Subnetz einen eigenen DHCP-Server.&lt;br /&gt;
* Im Pool der IP-Adressen dürfen keine statischen IP-Adressen enthalten sein, da diese anderenfalls doppelt vergeben würden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zuweisungsmethoden des DHCP-Verfahrens =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Automatische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* IP-Adressen werden automatisch an die MAC-Adressen von neuen DHCP-Clients vergeben &amp;amp; diese Zuordnung in einer Tabelle festgehalten&lt;br /&gt;
* Vergabe der IP-Adresse an den Client erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Zuordnungen sind permanent und werden nicht entfernt - jeder Client erhält somit stets die gleiche IP-Adresse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dynamische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Vergabe erfolgt analog der &#039;&#039;Automatischen Zuweisung&#039;&#039;&lt;br /&gt;
* Zuweisung der IP-Konfiguration jedoch für einen bestimmten Zeitraum (&#039;&#039;Lease&#039;&#039;-Dauer)&lt;br /&gt;
* Verfall der IP-Adresse nach Ablauf der Lease-Dauer - Neuvergabe an anderen Client durch den DHCP-Server möglich&lt;br /&gt;
* Client kann/muß vor Ablauf der &#039;&#039;Lease&#039;&#039;-Dauer eine Verlängerung beantragen&lt;br /&gt;
* erlaubt, als einzige Zuweisungsmethode die Wiederverwendung von IP-Adressen, wenn der Client diese nicht mehr benötigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manuelle Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* DHCP-Server führt eine Zuweisungstabelle: feste Zuordnung von MAC-Adresse zu IP-Adresse (statisches DHCP)&lt;br /&gt;
* Client erhält immer die gleiche IP-Adresse&lt;br /&gt;
* nur Rechner mit bekannten &amp;amp; registrierten MAC-Adressen erhalten eine IP-Adresse&lt;br /&gt;
* sinnvoll bei Servern, die stets unter der gleichen IP-Adresse erreichbar sein sollen&lt;br /&gt;
&lt;br /&gt;
= DHCP-Nachrichten =&lt;br /&gt;
&lt;br /&gt;
* Austausch von festgelegten DHCP-Nachrichten zwischen Server &amp;amp; Client&lt;br /&gt;
* Übermittlung durch das verbindungslose Transportprotokoll UDP (Server-Port: 67 &amp;amp; Client-Port: 68)&lt;br /&gt;
* Der DHCP-Client stellt einen Anwendungsprozess auf einem Rechner dar &amp;amp; ist auf dem Well-Known-Port 68 erreichbar&lt;br /&gt;
* Der DHCP-Server läuft als Anwendungsprozess auf einem dedizierten Rechner &amp;amp; ist auf dem Well-Known-Port 67 zu erreichen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufbau von DHCP-Nachrichten ==&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Paket.png|400px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Feld !! Länge [Byte] !! Bedeutung !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| op || 1 || Operation || gibt an, ob es sich um eine Anfrage oder Antwort handelt&lt;br /&gt;
|-&lt;br /&gt;
| htype || 1 || Netztyp || Angabe des Netztyps gemäß RFC 1340&lt;br /&gt;
|-&lt;br /&gt;
| hlen || 1 || Länge der Hardware-Adresse || physikalische Netzadresse (z. Bsp. 6 = MAC-Adresse)&lt;br /&gt;
|-&lt;br /&gt;
| hops || 1 || Anzahl der Hops || Anzahl von Routern mit DHCP-Relay-Funktion auf dem Weg zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| xid || 4 || Transaktions-ID || Identifikationsnummer für die Transaktion zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| secs || 2 || Sekunden || von Seiten des Clients, die Zeit seit Beginn des Vorgangs&lt;br /&gt;
|-&lt;br /&gt;
| flags || 2 || Flags || nur das höchstwertige Bit wird verwendet, um anzuzeigen, ob der Client noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| ciaddr || 4 || Client-IP-Adresse || wird vom Client angegeben, falls dieser noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| yiaddr || 4 || Your-IP-Adresse || IP-Adresse, die der Server dem Client zugewiesen hat&lt;br /&gt;
|-&lt;br /&gt;
| siaddr || 4 || Server-IP-Adresse || IP-Adresse des DHCP-Servers&lt;br /&gt;
|-&lt;br /&gt;
| giaddr || 4 || || IP-Adresse des Routers mit DHCP-Relay-Funktion&lt;br /&gt;
|-&lt;br /&gt;
| chaddr || 16 || Client-Hardware-Adresse || Client-Mac-Adresse&lt;br /&gt;
|-&lt;br /&gt;
| sname || 64 || Server-Name || &lt;br /&gt;
|-&lt;br /&gt;
| file || 128 || File / Datei || &lt;br /&gt;
|-&lt;br /&gt;
| options || bis 312 || Optionen || zusätzliche Konfigurationsparameter - DHCP-Optionen nach RFC 2132&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Ablauf der Kommunikation ==&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Ablauf1.png|500px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WireShark-DHCP-Phasen.png|1000px|none]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anforderungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Client sendet die Nachricht &#039;&#039;DHCP-DISCOVER&#039;&#039; mit einem Broadcast (Ziel-IP: 255.255.255.255) in sein lokales Netz&lt;br /&gt;
* &#039;&#039;DHCP-DISCOVER&#039;&#039;-Nachricht kann Optionen enthalten, wie zum Beispiel Vorschläge für IP-Adresse &amp;amp; Lease-Dauer&lt;br /&gt;
* Anforderung der benötigten Konfigurationsparameter - IP-Adresse, Subnetzmaske etc.&lt;br /&gt;
* Angabe der MAC-Adresse des Clients (&#039;&#039;chaddr&#039;&#039;) zwingend erforderlich&lt;br /&gt;
* Nachricht ist normalerweise auf das eigene Subnetz beschränkt - kann aber durch DHCP-Relay-Agenten in andere Subnetze weitergeleitet werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Angebotsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Mit der Nachricht &#039;&#039;DHCP-OFFER&#039;&#039; läßt der DHCP-Server dem Client ein Angebot zukommen.&lt;br /&gt;
* Der Server versucht dabei, den Client direkt zu erreichen - was nicht immer möglich ist:&lt;br /&gt;
&lt;br /&gt;
Fall A:&lt;br /&gt;
* Client wird gerade initialisiert &amp;amp; verfügt noch nicht über eine IP-Adresse&lt;br /&gt;
* Angebot wird als Broadcast versandt - erhält aber bereits die MAC-Adresse des Clients, so daß nur dieser die Nachricht lesen darf&lt;br /&gt;
&lt;br /&gt;
Fall B:&lt;br /&gt;
* Client verfügt bereits über eine IP-Adresse - deren Lease-Dauer jedoch zu Ende geht&lt;br /&gt;
* Angebot wird in diesem Fall direkt an die IP-Adresse des Clients gesendet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Zu diesem Zeitpunkt muß der Server die IP-Adresse noch nicht reservieren, kann dies aber tun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auswahlphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Der Client wählt die Konfigurationsparameter des zuerst erhaltenen Angebots aus.&lt;br /&gt;
* Senden einer Nachricht &#039;&#039;DHCP-REQUEST&#039;&#039; - Optionsfeld muß den Eintrag &#039;&#039;DHCP Server Identifier&#039;&#039; enthalten&lt;br /&gt;
* Nachricht wird als Broadcast versendet, um andere DHCP-Server darüber in Kenntnis zu setzen, daß der Client sich entschieden hat und die entsprechenden Server die reservierten Parameter wieder freigeben können &lt;br /&gt;
* angebotene IP-Adresse wird mit der Option &#039;&#039;Requested IP Address&#039;&#039; bestätigt&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bestätigungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Antwort des DHCP-Servers mit der Nachricht &#039;&#039;DHCP-ACK&#039;&#039; mit allen Konfigurationsparametern für den Client&lt;br /&gt;
* Sollten in dieser Phase weitere Angebote eintreffen, werden diese vom Client verworfen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Phasen.png|1600px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weitere DHCP-Nachrichtentypen&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-NAK&#039;&#039;:&lt;br /&gt;
* wird während der Bestätigungsphase vom Server an den Client gesendet, um diesen darauf hinzuweisen, daß die im &#039;&#039;DHCP-REQUEST&#039;&#039; angeforderten Konfigurationsparameter abgeleht wurden:&lt;br /&gt;
** wenn ein Client versucht seine bisherige IP-Adresse zu verlängern, diese jedoch nicht mehr verfügbar ist&lt;br /&gt;
** wenn ein Client in ein anderes Subnetz umgezogen &amp;amp; somit die IP-Adresse ungültig ist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-RELEASE&#039;&#039;:&lt;br /&gt;
* Hiermit teilt ein Client dem Server mit, daß er seine IP-Adresse nicht mehr benötigt und der Server die Adresse freigeben und anderweitig vergeben kann&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-DECLINE&#039;&#039;:&lt;br /&gt;
* Der Client kann hierüber den Server in Kenntnis setzen, daß einige Parameter ungültig sind (zum Beispiel seine MAC-Adresse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-INFORM&#039;&#039;:&lt;br /&gt;
* Kann von Clients verwendet werden, denen eine statische IP-Adresse zugewiesen wurde, um weitere dynamische Konfigurationsparameter vom Server anzufordern.&lt;br /&gt;
&lt;br /&gt;
= Die Lease-Dauer =&lt;br /&gt;
&lt;br /&gt;
Wurde der Client über die &#039;&#039;Dynamische Zuweisung&#039;&#039; konfiguriert, wird dessen IP-Adresse nach Ablauf der &#039;&#039;Lease Time&#039;&#039; ihre Gültigkeit verlieren &amp;amp; kann vom Server neu vergeben werden. Dementsprechend muß der Client vor Ablauf der Lease-Dauer eine Verlängerung der Gültigkeit seiner Konfigurationsparameter anfordern:&lt;br /&gt;
&lt;br /&gt;
* Client sendet ein &#039;&#039;DHCP-REQUEST&#039;&#039; an den Server, von dem er konfiguriert wurde - gewünschte IP-Adresse wird mit der Option &#039;&#039;Requested IP Address&#039;&#039; mitgeteilt&lt;br /&gt;
* Standardmäßig erfolgt diese Anfrage nach Ablauf von 50 Prozent der Lease-Dauer.&lt;br /&gt;
* Wird vom Server nicht auf diese Anfrage reagiert, sendet der Client nach Ablauf von 7/8 der Lease-Dauer eine erneute Anfrage.&lt;br /&gt;
* Kann der Anfrage entsprochen werden, sendet der DHCP-Server ein &#039;&#039;DHCP-ACK&#039;&#039; an den Client&lt;br /&gt;
* Erhält der Client kein rechtzeitiges &#039;&#039;DHCP-ACK&#039;&#039;, muß dieser den Konfigurationsprozeß mit einem &#039;&#039;DHCP-DISCOVER&#039;&#039; erneut beginnen - die bisherige IP-Adresse darf bis zum Ablauf der Lease-Dauer behalten werden.&lt;br /&gt;
 &lt;br /&gt;
&lt;br /&gt;
[[File:LeaseTime.png|600px|none]]&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25525</id>
		<title>IPv4/DHCP</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25525"/>
		<updated>2021-03-24T21:01:35Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* DHCP kann als Nachfolger vom BOOT-Protokoll verstanden werden, das entwickelt wurde, um Rechner ohne Festplatte in IP-Netzen zu starten und automatisch zu konfigurieren.&lt;br /&gt;
* Veröffentlichung der ersten DHCP-Version Ende 1993 im RFC 1541&lt;br /&gt;
* Ablösung durch neue Version in RFC 2131 im März 1997&lt;br /&gt;
* Erweiterungen von RFC 2131 durch die RFCs 2132, 3396 &amp;amp; 4361&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
* DHCP regelt die dynamische Vergabe von IP-Adressen und kann die Konfiguration von Rechnern unterstützen&lt;br /&gt;
* DHCP funktioniert nach dem Client-Server-Prinzip&lt;br /&gt;
* Benutzer eines Rechners benötigt keine IP-Adresse von einem Administrator - werden vom DHCP-Server zur Verfügung gestellt&lt;br /&gt;
* IP-Konfigurationsparameter für die Clients sind auf dem DHCP-Server gespeichert&lt;br /&gt;
* Vergabe der IP-Adressen erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Implementierung von DHCP-Relays, um DHCP-Nachrichten in andere Subnetze weiterzuleiten, die über keinen DHCP-Server verfügen&lt;br /&gt;
&lt;br /&gt;
Beim Start einer DHCP-Client-Applikation werden vom Server folgende Informationen angefordert:&lt;br /&gt;
&lt;br /&gt;
* Client-IP-Adresse&lt;br /&gt;
* Lease-Dauer&lt;br /&gt;
* Identifikation des DHCP-Servers&lt;br /&gt;
* Subnetzmaske&lt;br /&gt;
* Default-Gateways&lt;br /&gt;
* statische Routen&lt;br /&gt;
* Hostname &amp;amp; Domainname&lt;br /&gt;
* Lokation externer Server (z. Bsp. Time-Server)&lt;br /&gt;
&lt;br /&gt;
== Anforderungen an den DHCP-Server ==&lt;br /&gt;
&lt;br /&gt;
* Ein DHCP-Server muß über einen Bereich gültiger IP-Adressen verfügen.&lt;br /&gt;
* Der Server benötigt eine manuell zugewiesene statische IP-Adresse (Der Server selbst kann kein Client sein).&lt;br /&gt;
* Soll ein Server IP-Adressen für Clients in verschiedenen Subnetzen verteilen, so müssen sämtliche Router zwischen den Subnetzen als DHCP-Relay-Agenten konfiguriert werden. Wird dies von den Routern nicht unterstützt, benötigt jedes Subnetz einen eigenen DHCP-Server.&lt;br /&gt;
* Im Pool der IP-Adressen dürfen keine statischen IP-Adressen enthalten sein, da diese anderenfalls doppelt vergeben würden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zuweisungsmethoden des DHCP-Verfahrens =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Automatische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* IP-Adressen werden automatisch an die MAC-Adressen von neuen DHCP-Clients vergeben &amp;amp; diese Zuordnung in einer Tabelle festgehalten&lt;br /&gt;
* Vergabe der IP-Adresse an den Client erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Zuordnungen sind permanent und werden nicht entfernt - jeder Client erhält somit stets die gleiche IP-Adresse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dynamische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Vergabe erfolgt analog der &#039;&#039;Automatischen Zuweisung&#039;&#039;&lt;br /&gt;
* Zuweisung der IP-Konfiguration jedoch für einen bestimmten Zeitraum (&#039;&#039;Lease&#039;&#039;-Dauer)&lt;br /&gt;
* Verfall der IP-Adresse nach Ablauf der Lease-Dauer - Neuvergabe an anderen Client durch den DHCP-Server möglich&lt;br /&gt;
* Client kann/muß vor Ablauf der &#039;&#039;Lease&#039;&#039;-Dauer eine Verlängerung beantragen&lt;br /&gt;
* erlaubt, als einzige Zuweisungsmethode die Wiederverwendung von IP-Adressen, wenn der Client diese nicht mehr benötigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manuelle Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* DHCP-Server führt eine Zuweisungstabelle: feste Zuordnung von MAC-Adresse zu IP-Adresse (statisches DHCP)&lt;br /&gt;
* Client erhält immer die gleiche IP-Adresse&lt;br /&gt;
* nur Rechner mit bekannten &amp;amp; registrierten MAC-Adressen erhalten eine IP-Adresse&lt;br /&gt;
* sinnvoll bei Servern, die stets unter der gleichen IP-Adresse erreichbar sein sollen&lt;br /&gt;
&lt;br /&gt;
= DHCP-Nachrichten =&lt;br /&gt;
&lt;br /&gt;
* Austausch von festgelegten DHCP-Nachrichten zwischen Server &amp;amp; Client&lt;br /&gt;
* Übermittlung durch das verbindungslose Transportprotokoll UDP (Server-Port: 67 &amp;amp; Client-Port: 68)&lt;br /&gt;
* Der DHCP-Client stellt einen Anwendungsprozess auf einem Rechner dar &amp;amp; ist auf dem Well-Known-Port 68 erreichbar&lt;br /&gt;
* Der DHCP-Server läuft als Anwendungsprozess auf einem dedizierten Rechner &amp;amp; ist auf dem Well-Known-Port 67 zu erreichen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufbau von DHCP-Nachrichten ==&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Paket.png|400px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Feld !! Länge [Byte] !! Bedeutung !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| op || 1 || Operation || gibt an, ob es sich um eine Anfrage oder Antwort handelt&lt;br /&gt;
|-&lt;br /&gt;
| htype || 1 || Netztyp || Angabe des Netztyps gemäß RFC 1340&lt;br /&gt;
|-&lt;br /&gt;
| hlen || 1 || Länge der Hardware-Adresse || physikalische Netzadresse (z. Bsp. 6 = MAC-Adresse)&lt;br /&gt;
|-&lt;br /&gt;
| hops || 1 || Anzahl der Hops || Anzahl von Routern mit DHCP-Relay-Funktion auf dem Weg zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| xid || 4 || Transaktions-ID || Identifikationsnummer für die Transaktion zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| secs || 2 || Sekunden || von Seiten des Clients, die Zeit seit Beginn des Vorgangs&lt;br /&gt;
|-&lt;br /&gt;
| flags || 2 || Flags || nur das höchstwertige Bit wird verwendet, um anzuzeigen, ob der Client noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| ciaddr || 4 || Client-IP-Adresse || wird vom Client angegeben, falls dieser noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| yiaddr || 4 || Your-IP-Adresse || IP-Adresse, die der Server dem Client zugewiesen hat&lt;br /&gt;
|-&lt;br /&gt;
| siaddr || 4 || Server-IP-Adresse || IP-Adresse des DHCP-Servers&lt;br /&gt;
|-&lt;br /&gt;
| giaddr || 4 || || IP-Adresse des Routers mit DHCP-Relay-Funktion&lt;br /&gt;
|-&lt;br /&gt;
| chaddr || 16 || Client-Hardware-Adresse || Client-Mac-Adresse&lt;br /&gt;
|-&lt;br /&gt;
| sname || 64 || Server-Name || &lt;br /&gt;
|-&lt;br /&gt;
| file || 128 || File / Datei || &lt;br /&gt;
|-&lt;br /&gt;
| options || bis 312 || Optionen || zusätzliche Konfigurationsparameter - DHCP-Optionen nach RFC 2132&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Ablauf der Kommunikation ==&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Ablauf1.png|500px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WireShark-DHCP-Phasen.png|1000px|none]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anforderungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Client sendet die Nachricht &#039;&#039;DHCP-DISCOVER&#039;&#039; mit einem Broadcast (Ziel-IP: 255.255.255.255) in sein lokales Netz&lt;br /&gt;
* &#039;&#039;DHCP-DISCOVER&#039;&#039;-Nachricht kann Optionen enthalten, wie zum Beispiel Vorschläge für IP-Adresse &amp;amp; Lease-Dauer&lt;br /&gt;
* Anforderung der benötigten Konfigurationsparameter - IP-Adresse, Subnetzmaske etc.&lt;br /&gt;
* Angabe der MAC-Adresse des Clients (&#039;&#039;chaddr&#039;&#039;) zwingend erforderlich&lt;br /&gt;
* Nachricht ist normalerweise auf das eigene Subnetz beschränkt - kann aber durch DHCP-Relay-Agenten in andere Subnetze weitergeleitet werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Angebotsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Mit der Nachricht &#039;&#039;DHCP-OFFER&#039;&#039; läßt der DHCP-Server dem Client ein Angebot zukommen.&lt;br /&gt;
* Der Server versucht dabei, den Client direkt zu erreichen - was nicht immer möglich ist:&lt;br /&gt;
&lt;br /&gt;
Fall A:&lt;br /&gt;
* Client wird gerade initialisiert &amp;amp; verfügt noch nicht über eine IP-Adresse&lt;br /&gt;
* Angebot wird als Broadcast versandt - erhält aber bereits die MAC-Adresse des Clients, so daß nur dieser die Nachricht lesen darf&lt;br /&gt;
&lt;br /&gt;
Fall B:&lt;br /&gt;
* Client verfügt bereits über eine IP-Adresse - deren Lease-Dauer jedoch zu Ende geht&lt;br /&gt;
* Angebot wird in diesem Fall direkt an die IP-Adresse des Clients gesendet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Zu diesem Zeitpunkt muß der Server die IP-Adresse noch nicht reservieren, kann dies aber tun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auswahlphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Der Client wählt die Konfigurationsparameter des zuerst erhaltenen Angebots aus.&lt;br /&gt;
* Senden einer Nachricht &#039;&#039;DHCP-REQUEST&#039;&#039; - Optionsfeld muß den Eintrag &#039;&#039;DHCP Server Identifier&#039;&#039; enthalten&lt;br /&gt;
* Nachricht wird als Broadcast versendet, um andere DHCP-Server darüber in Kenntnis zu setzen, daß der Client sich entschieden hat und die entsprechenden Server die reservierten Parameter wieder freigeben können &lt;br /&gt;
* angebotene IP-Adresse wird mit der Option &#039;&#039;Requested IP Address&#039;&#039; bestätigt&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bestätigungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Antwort des DHCP-Servers mit der Nachricht &#039;&#039;DHCP-ACK&#039;&#039; mit allen Konfigurationsparametern für den Client&lt;br /&gt;
* Sollten in dieser Phase weitere Angebote eintreffen, werden diese vom Client verworfen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Phasen.png|1600px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weitere DHCP-Nachrichtentypen&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-NAK&#039;&#039;:&lt;br /&gt;
* wird während der Bestätigungsphase vom Server an den Client gesendet, um diesen darauf hinzuweisen, daß die im &#039;&#039;DHCP-REQUEST&#039;&#039; angeforderten Konfigurationsparameter abgeleht wurden:&lt;br /&gt;
** wenn ein Client versucht seine bisherige IP-Adresse zu verlängern, diese jedoch nicht mehr verfügbar ist&lt;br /&gt;
** wenn ein Client in ein anderes Subnetz umgezogen &amp;amp; somit die IP-Adresse ungültig ist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-RELEASE&#039;&#039;:&lt;br /&gt;
* Hiermit teilt ein Client dem Server mit, daß er seine IP-Adresse nicht mehr benötigt und der Server die Adresse freigeben und anderweitig vergeben kann&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-DECLINE&#039;&#039;:&lt;br /&gt;
* Der Client kann hierüber den Server in Kenntnis setzen, daß einige Parameter ungültig sind (zum Beispiel seine MAC-Adresse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-INFORM&#039;&#039;:&lt;br /&gt;
* Kann von Clients verwendet werden, denen eine statische IP-Adresse zugewiesen wurde, um weitere dynamische Konfigurationsparameter vom Server anzufordern.&lt;br /&gt;
&lt;br /&gt;
= Die Lease-Dauer =&lt;br /&gt;
&lt;br /&gt;
[[File:LeaseTime.png|600px|none]]&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Datei:LeaseTime.png&amp;diff=25524</id>
		<title>Datei:LeaseTime.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Datei:LeaseTime.png&amp;diff=25524"/>
		<updated>2021-03-24T21:01:00Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: Datei hochgeladen mit MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Datei hochgeladen mit MsUpload&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25523</id>
		<title>IPv4/DHCP</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25523"/>
		<updated>2021-03-24T20:29:11Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: /* Ablauf der Kommunikation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* DHCP kann als Nachfolger vom BOOT-Protokoll verstanden werden, das entwickelt wurde, um Rechner ohne Festplatte in IP-Netzen zu starten und automatisch zu konfigurieren.&lt;br /&gt;
* Veröffentlichung der ersten DHCP-Version Ende 1993 im RFC 1541&lt;br /&gt;
* Ablösung durch neue Version in RFC 2131 im März 1997&lt;br /&gt;
* Erweiterungen von RFC 2131 durch die RFCs 2132, 3396 &amp;amp; 4361&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
* DHCP regelt die dynamische Vergabe von IP-Adressen und kann die Konfiguration von Rechnern unterstützen&lt;br /&gt;
* DHCP funktioniert nach dem Client-Server-Prinzip&lt;br /&gt;
* Benutzer eines Rechners benötigt keine IP-Adresse von einem Administrator - werden vom DHCP-Server zur Verfügung gestellt&lt;br /&gt;
* IP-Konfigurationsparameter für die Clients sind auf dem DHCP-Server gespeichert&lt;br /&gt;
* Vergabe der IP-Adressen erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Implementierung von DHCP-Relays, um DHCP-Nachrichten in andere Subnetze weiterzuleiten, die über keinen DHCP-Server verfügen&lt;br /&gt;
&lt;br /&gt;
Beim Start einer DHCP-Client-Applikation werden vom Server folgende Informationen angefordert:&lt;br /&gt;
&lt;br /&gt;
* Client-IP-Adresse&lt;br /&gt;
* Lease-Dauer&lt;br /&gt;
* Identifikation des DHCP-Servers&lt;br /&gt;
* Subnetzmaske&lt;br /&gt;
* Default-Gateways&lt;br /&gt;
* statische Routen&lt;br /&gt;
* Hostname &amp;amp; Domainname&lt;br /&gt;
* Lokation externer Server (z. Bsp. Time-Server)&lt;br /&gt;
&lt;br /&gt;
== Anforderungen an den DHCP-Server ==&lt;br /&gt;
&lt;br /&gt;
* Ein DHCP-Server muß über einen Bereich gültiger IP-Adressen verfügen.&lt;br /&gt;
* Der Server benötigt eine manuell zugewiesene statische IP-Adresse (Der Server selbst kann kein Client sein).&lt;br /&gt;
* Soll ein Server IP-Adressen für Clients in verschiedenen Subnetzen verteilen, so müssen sämtliche Router zwischen den Subnetzen als DHCP-Relay-Agenten konfiguriert werden. Wird dies von den Routern nicht unterstützt, benötigt jedes Subnetz einen eigenen DHCP-Server.&lt;br /&gt;
* Im Pool der IP-Adressen dürfen keine statischen IP-Adressen enthalten sein, da diese anderenfalls doppelt vergeben würden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zuweisungsmethoden des DHCP-Verfahrens =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Automatische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* IP-Adressen werden automatisch an die MAC-Adressen von neuen DHCP-Clients vergeben &amp;amp; diese Zuordnung in einer Tabelle festgehalten&lt;br /&gt;
* Vergabe der IP-Adresse an den Client erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Zuordnungen sind permanent und werden nicht entfernt - jeder Client erhält somit stets die gleiche IP-Adresse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dynamische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Vergabe erfolgt analog der &#039;&#039;Automatischen Zuweisung&#039;&#039;&lt;br /&gt;
* Zuweisung der IP-Konfiguration jedoch für einen bestimmten Zeitraum (&#039;&#039;Lease&#039;&#039;-Dauer)&lt;br /&gt;
* Verfall der IP-Adresse nach Ablauf der Lease-Dauer - Neuvergabe an anderen Client durch den DHCP-Server möglich&lt;br /&gt;
* Client kann/muß vor Ablauf der &#039;&#039;Lease&#039;&#039;-Dauer eine Verlängerung beantragen&lt;br /&gt;
* erlaubt, als einzige Zuweisungsmethode die Wiederverwendung von IP-Adressen, wenn der Client diese nicht mehr benötigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manuelle Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* DHCP-Server führt eine Zuweisungstabelle: feste Zuordnung von MAC-Adresse zu IP-Adresse (statisches DHCP)&lt;br /&gt;
* Client erhält immer die gleiche IP-Adresse&lt;br /&gt;
* nur Rechner mit bekannten &amp;amp; registrierten MAC-Adressen erhalten eine IP-Adresse&lt;br /&gt;
* sinnvoll bei Servern, die stets unter der gleichen IP-Adresse erreichbar sein sollen&lt;br /&gt;
&lt;br /&gt;
= DHCP-Nachrichten =&lt;br /&gt;
&lt;br /&gt;
* Austausch von festgelegten DHCP-Nachrichten zwischen Server &amp;amp; Client&lt;br /&gt;
* Übermittlung durch das verbindungslose Transportprotokoll UDP (Server-Port: 67 &amp;amp; Client-Port: 68)&lt;br /&gt;
* Der DHCP-Client stellt einen Anwendungsprozess auf einem Rechner dar &amp;amp; ist auf dem Well-Known-Port 68 erreichbar&lt;br /&gt;
* Der DHCP-Server läuft als Anwendungsprozess auf einem dedizierten Rechner &amp;amp; ist auf dem Well-Known-Port 67 zu erreichen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufbau von DHCP-Nachrichten ==&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Paket.png|400px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Feld !! Länge [Byte] !! Bedeutung !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| op || 1 || Operation || gibt an, ob es sich um eine Anfrage oder Antwort handelt&lt;br /&gt;
|-&lt;br /&gt;
| htype || 1 || Netztyp || Angabe des Netztyps gemäß RFC 1340&lt;br /&gt;
|-&lt;br /&gt;
| hlen || 1 || Länge der Hardware-Adresse || physikalische Netzadresse (z. Bsp. 6 = MAC-Adresse)&lt;br /&gt;
|-&lt;br /&gt;
| hops || 1 || Anzahl der Hops || Anzahl von Routern mit DHCP-Relay-Funktion auf dem Weg zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| xid || 4 || Transaktions-ID || Identifikationsnummer für die Transaktion zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| secs || 2 || Sekunden || von Seiten des Clients, die Zeit seit Beginn des Vorgangs&lt;br /&gt;
|-&lt;br /&gt;
| flags || 2 || Flags || nur das höchstwertige Bit wird verwendet, um anzuzeigen, ob der Client noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| ciaddr || 4 || Client-IP-Adresse || wird vom Client angegeben, falls dieser noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| yiaddr || 4 || Your-IP-Adresse || IP-Adresse, die der Server dem Client zugewiesen hat&lt;br /&gt;
|-&lt;br /&gt;
| siaddr || 4 || Server-IP-Adresse || IP-Adresse des DHCP-Servers&lt;br /&gt;
|-&lt;br /&gt;
| giaddr || 4 || || IP-Adresse des Routers mit DHCP-Relay-Funktion&lt;br /&gt;
|-&lt;br /&gt;
| chaddr || 16 || Client-Hardware-Adresse || Client-Mac-Adresse&lt;br /&gt;
|-&lt;br /&gt;
| sname || 64 || Server-Name || &lt;br /&gt;
|-&lt;br /&gt;
| file || 128 || File / Datei || &lt;br /&gt;
|-&lt;br /&gt;
| options || bis 312 || Optionen || zusätzliche Konfigurationsparameter - DHCP-Optionen nach RFC 2132&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Ablauf der Kommunikation ==&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Ablauf1.png|500px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WireShark-DHCP-Phasen.png|1000px|none]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anforderungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Client sendet die Nachricht &#039;&#039;DHCP-DISCOVER&#039;&#039; mit einem Broadcast (Ziel-IP: 255.255.255.255) in sein lokales Netz&lt;br /&gt;
* &#039;&#039;DHCP-DISCOVER&#039;&#039;-Nachricht kann Optionen enthalten, wie zum Beispiel Vorschläge für IP-Adresse &amp;amp; Lease-Dauer&lt;br /&gt;
* Anforderung der benötigten Konfigurationsparameter - IP-Adresse, Subnetzmaske etc.&lt;br /&gt;
* Angabe der MAC-Adresse des Clients (&#039;&#039;chaddr&#039;&#039;) zwingend erforderlich&lt;br /&gt;
* Nachricht ist normalerweise auf das eigene Subnetz beschränkt - kann aber durch DHCP-Relay-Agenten in andere Subnetze weitergeleitet werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Angebotsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Mit der Nachricht &#039;&#039;DHCP-OFFER&#039;&#039; läßt der DHCP-Server dem Client ein Angebot zukommen.&lt;br /&gt;
* Der Server versucht dabei, den Client direkt zu erreichen - was nicht immer möglich ist:&lt;br /&gt;
&lt;br /&gt;
Fall A:&lt;br /&gt;
* Client wird gerade initialisiert &amp;amp; verfügt noch nicht über eine IP-Adresse&lt;br /&gt;
* Angebot wird als Broadcast versandt - erhält aber bereits die MAC-Adresse des Clients, so daß nur dieser die Nachricht lesen darf&lt;br /&gt;
&lt;br /&gt;
Fall B:&lt;br /&gt;
* Client verfügt bereits über eine IP-Adresse - deren Lease-Dauer jedoch zu Ende geht&lt;br /&gt;
* Angebot wird in diesem Fall direkt an die IP-Adresse des Clients gesendet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
* Zu diesem Zeitpunkt muß der Server die IP-Adresse noch nicht reservieren, kann dies aber tun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auswahlphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Der Client wählt die Konfigurationsparameter des zuerst erhaltenen Angebots aus.&lt;br /&gt;
* Senden einer Nachricht &#039;&#039;DHCP-REQUEST&#039;&#039; - Optionsfeld muß den Eintrag &#039;&#039;DHCP Server Identifier&#039;&#039; enthalten&lt;br /&gt;
* Nachricht wird als Broadcast versendet, um andere DHCP-Server darüber in Kenntnis zu setzen, daß der Client sich entschieden hat und die entsprechenden Server die reservierten Parameter wieder freigeben können &lt;br /&gt;
* angebotene IP-Adresse wird mit der Option &#039;&#039;Requested IP Address&#039;&#039; bestätigt&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bestätigungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Antwort des DHCP-Servers mit der Nachricht &#039;&#039;DHCP-ACK&#039;&#039; mit allen Konfigurationsparametern für den Client&lt;br /&gt;
* Sollten in dieser Phase weitere Angebote eintreffen, werden diese vom Client verworfen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Phasen.png|1600px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weitere DHCP-Nachrichtentypen&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-NAK&#039;&#039;:&lt;br /&gt;
* wird während der Bestätigungsphase vom Server an den Client gesendet, um diesen darauf hinzuweisen, daß die im &#039;&#039;DHCP-REQUEST&#039;&#039; angeforderten Konfigurationsparameter abgeleht wurden:&lt;br /&gt;
** wenn ein Client versucht seine bisherige IP-Adresse zu verlängern, diese jedoch nicht mehr verfügbar ist&lt;br /&gt;
** wenn ein Client in ein anderes Subnetz umgezogen &amp;amp; somit die IP-Adresse ungültig ist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-RELEASE&#039;&#039;:&lt;br /&gt;
* Hiermit teilt ein Client dem Server mit, daß er seine IP-Adresse nicht mehr benötigt und der Server die Adresse freigeben und anderweitig vergeben kann&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-DECLINE&#039;&#039;:&lt;br /&gt;
* Der Client kann hierüber den Server in Kenntnis setzen, daß einige Parameter ungültig sind (zum Beispiel seine MAC-Adresse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-INFORM&#039;&#039;:&lt;br /&gt;
* Kann von Clients verwendet werden, denen eine statische IP-Adresse zugewiesen wurde, um weitere dynamische Konfigurationsparameter vom Server anzufordern.&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25522</id>
		<title>IPv4/DHCP</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25522"/>
		<updated>2021-03-24T20:23:24Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: /* Aufbau von DHCP-Nachrichten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* DHCP kann als Nachfolger vom BOOT-Protokoll verstanden werden, das entwickelt wurde, um Rechner ohne Festplatte in IP-Netzen zu starten und automatisch zu konfigurieren.&lt;br /&gt;
* Veröffentlichung der ersten DHCP-Version Ende 1993 im RFC 1541&lt;br /&gt;
* Ablösung durch neue Version in RFC 2131 im März 1997&lt;br /&gt;
* Erweiterungen von RFC 2131 durch die RFCs 2132, 3396 &amp;amp; 4361&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
* DHCP regelt die dynamische Vergabe von IP-Adressen und kann die Konfiguration von Rechnern unterstützen&lt;br /&gt;
* DHCP funktioniert nach dem Client-Server-Prinzip&lt;br /&gt;
* Benutzer eines Rechners benötigt keine IP-Adresse von einem Administrator - werden vom DHCP-Server zur Verfügung gestellt&lt;br /&gt;
* IP-Konfigurationsparameter für die Clients sind auf dem DHCP-Server gespeichert&lt;br /&gt;
* Vergabe der IP-Adressen erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Implementierung von DHCP-Relays, um DHCP-Nachrichten in andere Subnetze weiterzuleiten, die über keinen DHCP-Server verfügen&lt;br /&gt;
&lt;br /&gt;
Beim Start einer DHCP-Client-Applikation werden vom Server folgende Informationen angefordert:&lt;br /&gt;
&lt;br /&gt;
* Client-IP-Adresse&lt;br /&gt;
* Lease-Dauer&lt;br /&gt;
* Identifikation des DHCP-Servers&lt;br /&gt;
* Subnetzmaske&lt;br /&gt;
* Default-Gateways&lt;br /&gt;
* statische Routen&lt;br /&gt;
* Hostname &amp;amp; Domainname&lt;br /&gt;
* Lokation externer Server (z. Bsp. Time-Server)&lt;br /&gt;
&lt;br /&gt;
== Anforderungen an den DHCP-Server ==&lt;br /&gt;
&lt;br /&gt;
* Ein DHCP-Server muß über einen Bereich gültiger IP-Adressen verfügen.&lt;br /&gt;
* Der Server benötigt eine manuell zugewiesene statische IP-Adresse (Der Server selbst kann kein Client sein).&lt;br /&gt;
* Soll ein Server IP-Adressen für Clients in verschiedenen Subnetzen verteilen, so müssen sämtliche Router zwischen den Subnetzen als DHCP-Relay-Agenten konfiguriert werden. Wird dies von den Routern nicht unterstützt, benötigt jedes Subnetz einen eigenen DHCP-Server.&lt;br /&gt;
* Im Pool der IP-Adressen dürfen keine statischen IP-Adressen enthalten sein, da diese anderenfalls doppelt vergeben würden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zuweisungsmethoden des DHCP-Verfahrens =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Automatische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* IP-Adressen werden automatisch an die MAC-Adressen von neuen DHCP-Clients vergeben &amp;amp; diese Zuordnung in einer Tabelle festgehalten&lt;br /&gt;
* Vergabe der IP-Adresse an den Client erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Zuordnungen sind permanent und werden nicht entfernt - jeder Client erhält somit stets die gleiche IP-Adresse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dynamische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Vergabe erfolgt analog der &#039;&#039;Automatischen Zuweisung&#039;&#039;&lt;br /&gt;
* Zuweisung der IP-Konfiguration jedoch für einen bestimmten Zeitraum (&#039;&#039;Lease&#039;&#039;-Dauer)&lt;br /&gt;
* Verfall der IP-Adresse nach Ablauf der Lease-Dauer - Neuvergabe an anderen Client durch den DHCP-Server möglich&lt;br /&gt;
* Client kann/muß vor Ablauf der &#039;&#039;Lease&#039;&#039;-Dauer eine Verlängerung beantragen&lt;br /&gt;
* erlaubt, als einzige Zuweisungsmethode die Wiederverwendung von IP-Adressen, wenn der Client diese nicht mehr benötigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manuelle Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* DHCP-Server führt eine Zuweisungstabelle: feste Zuordnung von MAC-Adresse zu IP-Adresse (statisches DHCP)&lt;br /&gt;
* Client erhält immer die gleiche IP-Adresse&lt;br /&gt;
* nur Rechner mit bekannten &amp;amp; registrierten MAC-Adressen erhalten eine IP-Adresse&lt;br /&gt;
* sinnvoll bei Servern, die stets unter der gleichen IP-Adresse erreichbar sein sollen&lt;br /&gt;
&lt;br /&gt;
= DHCP-Nachrichten =&lt;br /&gt;
&lt;br /&gt;
* Austausch von festgelegten DHCP-Nachrichten zwischen Server &amp;amp; Client&lt;br /&gt;
* Übermittlung durch das verbindungslose Transportprotokoll UDP (Server-Port: 67 &amp;amp; Client-Port: 68)&lt;br /&gt;
* Der DHCP-Client stellt einen Anwendungsprozess auf einem Rechner dar &amp;amp; ist auf dem Well-Known-Port 68 erreichbar&lt;br /&gt;
* Der DHCP-Server läuft als Anwendungsprozess auf einem dedizierten Rechner &amp;amp; ist auf dem Well-Known-Port 67 zu erreichen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufbau von DHCP-Nachrichten ==&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Paket.png|400px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Feld !! Länge [Byte] !! Bedeutung !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| op || 1 || Operation || gibt an, ob es sich um eine Anfrage oder Antwort handelt&lt;br /&gt;
|-&lt;br /&gt;
| htype || 1 || Netztyp || Angabe des Netztyps gemäß RFC 1340&lt;br /&gt;
|-&lt;br /&gt;
| hlen || 1 || Länge der Hardware-Adresse || physikalische Netzadresse (z. Bsp. 6 = MAC-Adresse)&lt;br /&gt;
|-&lt;br /&gt;
| hops || 1 || Anzahl der Hops || Anzahl von Routern mit DHCP-Relay-Funktion auf dem Weg zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| xid || 4 || Transaktions-ID || Identifikationsnummer für die Transaktion zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| secs || 2 || Sekunden || von Seiten des Clients, die Zeit seit Beginn des Vorgangs&lt;br /&gt;
|-&lt;br /&gt;
| flags || 2 || Flags || nur das höchstwertige Bit wird verwendet, um anzuzeigen, ob der Client noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| ciaddr || 4 || Client-IP-Adresse || wird vom Client angegeben, falls dieser noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| yiaddr || 4 || Your-IP-Adresse || IP-Adresse, die der Server dem Client zugewiesen hat&lt;br /&gt;
|-&lt;br /&gt;
| siaddr || 4 || Server-IP-Adresse || IP-Adresse des DHCP-Servers&lt;br /&gt;
|-&lt;br /&gt;
| giaddr || 4 || || IP-Adresse des Routers mit DHCP-Relay-Funktion&lt;br /&gt;
|-&lt;br /&gt;
| chaddr || 16 || Client-Hardware-Adresse || Client-Mac-Adresse&lt;br /&gt;
|-&lt;br /&gt;
| sname || 64 || Server-Name || &lt;br /&gt;
|-&lt;br /&gt;
| file || 128 || File / Datei || &lt;br /&gt;
|-&lt;br /&gt;
| options || bis 312 || Optionen || zusätzliche Konfigurationsparameter - DHCP-Optionen nach RFC 2132&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== Ablauf der Kommunikation ==&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Ablauf1.png|500px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WireShark-DHCP-Phasen.png|1000px|none]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anforderungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Client sendet die Nachricht &#039;&#039;DHCP-DISCOVER&#039;&#039; mit einem Broadcast (Ziel-IP: 255.255.255.255) in sein lokales Netz&lt;br /&gt;
* &#039;&#039;DHCP-DISCOVER&#039;&#039;-Nachricht kann Optionen enthalten, wie zum Beispiel Vorschläge für IP-Adresse &amp;amp; Lease-Dauer&lt;br /&gt;
* Anforderung der benötigten Konfigurationsparameter - IP-Adresse, Subnetzmaske etc.&lt;br /&gt;
* Angabe der MAC-Adresse des Clients (&#039;&#039;chaddr&#039;&#039;) zwingend erforderlich&lt;br /&gt;
* Nachricht ist normalerweise auf das eigene Subnetz beschränkt - kann aber durch DHCP-Relay-Agenten in andere Subnetze weitergeleitet werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Angebotsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Mit der Nachricht &#039;&#039;DHCP-OFFER&#039;&#039; läßt der DHCP-Server dem Client ein Angebot zukommen.&lt;br /&gt;
* Der Server versucht dabei, den Client direkt zu erreichen - was nicht immer möglich ist:&lt;br /&gt;
&lt;br /&gt;
Fall A:&lt;br /&gt;
* Client wird gerade initialisiert &amp;amp; verfügt noch nicht über eine IP-Adresse&lt;br /&gt;
* Angebot wird als Broadcast versandt - erhält aber bereits die MAC-Adresse des Clients, so daß nur dieser die Nachricht lesen darf&lt;br /&gt;
&lt;br /&gt;
Fall B:&lt;br /&gt;
* Client verfügt bereits über eine IP-Adresse - deren Lease-Dauer jedoch zu Ende geht&lt;br /&gt;
* Angebot wird in diesem Fall direkt an die IP-Adresse des Clients gesendet&lt;br /&gt;
&lt;br /&gt;
* Zu diesem Zeitpunkt muß der Server die IP-Adresse noch nicht reservieren, kann dies aber tun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auswahlphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Der Client wählt die Konfigurationsparameter des zuerst erhaltenen Angebots aus.&lt;br /&gt;
* Senden einer Nachricht &#039;&#039;DHCP-REQUEST&#039;&#039; - Optionsfeld muß den Eintrag &#039;&#039;DHCP Server Identifier&#039;&#039; enthalten - Server, die nicht im &#039;&#039;DHCP-REQUEST&#039;&#039; erwähnt werden, erhalten somit den Hinweis, daß ihr Angebot nicht angenommen wurde&lt;br /&gt;
* angebotene IP-Adresse wird mit der Option &#039;&#039;Requested IP Address&#039;&#039; bestätigt&lt;br /&gt;
* Nachricht wird als Broadcast versendet, um andere DHCP-Server darüber in Kenntnis zu setzen, daß der Client sich entschieden hat und die entsprechenden Server die reservierten Parameter wieder freigeben können &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bestätigungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Antwort des DHCP-Servers mit der Nachricht &#039;&#039;DHCP-ACK&#039;&#039; mit allen Konfigurationsparametern für den Client&lt;br /&gt;
* Sollten in dieser Phase weitere Angebote eintreffen, werden diese vom Client verworfen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Phasen.png|1600px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weitere DHCP-Nachrichtentypen&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-NAK&#039;&#039;:&lt;br /&gt;
* wird während der Bestätigungsphase vom Server an den Client gesendet, um diesen darauf hinzuweisen, daß die im &#039;&#039;DHCP-REQUEST&#039;&#039; angeforderten Konfigurationsparameter abgeleht wurden:&lt;br /&gt;
** wenn ein Client versucht seine bisherige IP-Adresse zu verlängern, diese jedoch nicht mehr verfügbar ist&lt;br /&gt;
** wenn ein Client in ein anderes Subnetz umgezogen &amp;amp; somit die IP-Adresse ungültig ist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-RELEASE&#039;&#039;:&lt;br /&gt;
* Hiermit teilt ein Client dem Server mit, daß er seine IP-Adresse nicht mehr benötigt und der Server die Adresse freigeben und anderweitig vergeben kann&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-DECLINE&#039;&#039;:&lt;br /&gt;
* Der Client kann hierüber den Server in Kenntnis setzen, daß einige Parameter ungültig sind (zum Beispiel seine MAC-Adresse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-INFORM&#039;&#039;:&lt;br /&gt;
* Kann von Clients verwendet werden, denen eine statische IP-Adresse zugewiesen wurde, um weitere dynamische Konfigurationsparameter vom Server anzufordern.&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25521</id>
		<title>IPv4/DHCP</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25521"/>
		<updated>2021-03-24T20:12:34Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: /* Ablauf der Kommunikation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* DHCP kann als Nachfolger vom BOOT-Protokoll verstanden werden, das entwickelt wurde, um Rechner ohne Festplatte in IP-Netzen zu starten und automatisch zu konfigurieren.&lt;br /&gt;
* Veröffentlichung der ersten DHCP-Version Ende 1993 im RFC 1541&lt;br /&gt;
* Ablösung durch neue Version in RFC 2131 im März 1997&lt;br /&gt;
* Erweiterungen von RFC 2131 durch die RFCs 2132, 3396 &amp;amp; 4361&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
* DHCP regelt die dynamische Vergabe von IP-Adressen und kann die Konfiguration von Rechnern unterstützen&lt;br /&gt;
* DHCP funktioniert nach dem Client-Server-Prinzip&lt;br /&gt;
* Benutzer eines Rechners benötigt keine IP-Adresse von einem Administrator - werden vom DHCP-Server zur Verfügung gestellt&lt;br /&gt;
* IP-Konfigurationsparameter für die Clients sind auf dem DHCP-Server gespeichert&lt;br /&gt;
* Vergabe der IP-Adressen erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Implementierung von DHCP-Relays, um DHCP-Nachrichten in andere Subnetze weiterzuleiten, die über keinen DHCP-Server verfügen&lt;br /&gt;
&lt;br /&gt;
Beim Start einer DHCP-Client-Applikation werden vom Server folgende Informationen angefordert:&lt;br /&gt;
&lt;br /&gt;
* Client-IP-Adresse&lt;br /&gt;
* Lease-Dauer&lt;br /&gt;
* Identifikation des DHCP-Servers&lt;br /&gt;
* Subnetzmaske&lt;br /&gt;
* Default-Gateways&lt;br /&gt;
* statische Routen&lt;br /&gt;
* Hostname &amp;amp; Domainname&lt;br /&gt;
* Lokation externer Server (z. Bsp. Time-Server)&lt;br /&gt;
&lt;br /&gt;
== Anforderungen an den DHCP-Server ==&lt;br /&gt;
&lt;br /&gt;
* Ein DHCP-Server muß über einen Bereich gültiger IP-Adressen verfügen.&lt;br /&gt;
* Der Server benötigt eine manuell zugewiesene statische IP-Adresse (Der Server selbst kann kein Client sein).&lt;br /&gt;
* Soll ein Server IP-Adressen für Clients in verschiedenen Subnetzen verteilen, so müssen sämtliche Router zwischen den Subnetzen als DHCP-Relay-Agenten konfiguriert werden. Wird dies von den Routern nicht unterstützt, benötigt jedes Subnetz einen eigenen DHCP-Server.&lt;br /&gt;
* Im Pool der IP-Adressen dürfen keine statischen IP-Adressen enthalten sein, da diese anderenfalls doppelt vergeben würden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zuweisungsmethoden des DHCP-Verfahrens =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Automatische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* IP-Adressen werden automatisch an die MAC-Adressen von neuen DHCP-Clients vergeben &amp;amp; diese Zuordnung in einer Tabelle festgehalten&lt;br /&gt;
* Vergabe der IP-Adresse an den Client erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Zuordnungen sind permanent und werden nicht entfernt - jeder Client erhält somit stets die gleiche IP-Adresse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dynamische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Vergabe erfolgt analog der &#039;&#039;Automatischen Zuweisung&#039;&#039;&lt;br /&gt;
* Zuweisung der IP-Konfiguration jedoch für einen bestimmten Zeitraum (&#039;&#039;Lease&#039;&#039;-Dauer)&lt;br /&gt;
* Verfall der IP-Adresse nach Ablauf der Lease-Dauer - Neuvergabe an anderen Client durch den DHCP-Server möglich&lt;br /&gt;
* Client kann/muß vor Ablauf der &#039;&#039;Lease&#039;&#039;-Dauer eine Verlängerung beantragen&lt;br /&gt;
* erlaubt, als einzige Zuweisungsmethode die Wiederverwendung von IP-Adressen, wenn der Client diese nicht mehr benötigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manuelle Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* DHCP-Server führt eine Zuweisungstabelle: feste Zuordnung von MAC-Adresse zu IP-Adresse (statisches DHCP)&lt;br /&gt;
* Client erhält immer die gleiche IP-Adresse&lt;br /&gt;
* nur Rechner mit bekannten &amp;amp; registrierten MAC-Adressen erhalten eine IP-Adresse&lt;br /&gt;
* sinnvoll bei Servern, die stets unter der gleichen IP-Adresse erreichbar sein sollen&lt;br /&gt;
&lt;br /&gt;
= DHCP-Nachrichten =&lt;br /&gt;
&lt;br /&gt;
* Austausch von festgelegten DHCP-Nachrichten zwischen Server &amp;amp; Client&lt;br /&gt;
* Übermittlung durch das verbindungslose Transportprotokoll UDP (Server-Port: 67 &amp;amp; Client-Port: 68)&lt;br /&gt;
* Der DHCP-Client stellt einen Anwendungsprozess auf einem Rechner dar &amp;amp; ist auf dem Well-Known-Port 68 erreichbar&lt;br /&gt;
* Der DHCP-Server läuft als Anwendungsprozess auf einem dedizierten Rechner &amp;amp; ist auf dem Well-Known-Port 67 zu erreichen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufbau von DHCP-Nachrichten ==&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Paket.png|400px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Feld !! Länge [Byte] !! Bedeutung !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| op || 1 || Operation || gibt an, ob es sich um eine Anfrage oder Antwort handelt&lt;br /&gt;
|-&lt;br /&gt;
| htype || 1 || Netztyp || Angabe des Netztyps gemäß RFC 1340 (z. Bsp. 6 = 802.x-LAN)&lt;br /&gt;
|-&lt;br /&gt;
| hlen || 1 || Länge der Hardware-Adresse || physikalische Netzadresse (z. Bsp. 6 = MAC-Adresse)&lt;br /&gt;
|-&lt;br /&gt;
| hops || 1 || Anzahl der Hops || Anzahl von Routern mit DHCP-Relay-Funktion auf dem Weg zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| xid || 4 || Transaktions-ID || Identifikationsnummer für die Transaktion zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| secs || 2 || Sekunden || von Seiten des Clients, die Zeit seit Beginn des Vorgangs&lt;br /&gt;
|-&lt;br /&gt;
| flags || 2 || Flags || nur das höchstwertige Bit wird verwendet, um anzuzeigen, ob der Client noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| ciaddr || 4 || Client-IP-Adresse || wird vom Client angegeben, falls dieser noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| yiaddr || 4 || Your-IP-Adresse || IP-Adresse, die der Server dem Client zugewiesen hat&lt;br /&gt;
|-&lt;br /&gt;
| siaddr || 4 || Server-IP-Adresse || IP-Adresse des DHCP-Servers&lt;br /&gt;
|-&lt;br /&gt;
| giaddr || 4 || || IP-Adresse des Routers mit DHCP-Relay-Funktion&lt;br /&gt;
|-&lt;br /&gt;
| chaddr || 16 || Client-Hardware-Adresse || Client-Mac-Adresse&lt;br /&gt;
|-&lt;br /&gt;
| sname || 64 || Server-Name || &lt;br /&gt;
|-&lt;br /&gt;
| file || 128 || File / Datei || &lt;br /&gt;
|-&lt;br /&gt;
| options || bis 312 || Optionen || zusätzliche Konfigurationsparameter - DHCP-Optionen nach RFC 2132&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ablauf der Kommunikation ==&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Ablauf1.png|500px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WireShark-DHCP-Phasen.png|1000px|none]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anforderungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Client sendet die Nachricht &#039;&#039;DHCP-DISCOVER&#039;&#039; mit einem Broadcast (Ziel-IP: 255.255.255.255) in sein lokales Netz&lt;br /&gt;
* &#039;&#039;DHCP-DISCOVER&#039;&#039;-Nachricht kann Optionen enthalten, wie zum Beispiel Vorschläge für IP-Adresse &amp;amp; Lease-Dauer&lt;br /&gt;
* Anforderung der benötigten Konfigurationsparameter - IP-Adresse, Subnetzmaske etc.&lt;br /&gt;
* Angabe der MAC-Adresse des Clients (&#039;&#039;chaddr&#039;&#039;) zwingend erforderlich&lt;br /&gt;
* Nachricht ist normalerweise auf das eigene Subnetz beschränkt - kann aber durch DHCP-Relay-Agenten in andere Subnetze weitergeleitet werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Angebotsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Mit der Nachricht &#039;&#039;DHCP-OFFER&#039;&#039; läßt der DHCP-Server dem Client ein Angebot zukommen.&lt;br /&gt;
* Der Server versucht dabei, den Client direkt zu erreichen - was nicht immer möglich ist:&lt;br /&gt;
&lt;br /&gt;
Fall A:&lt;br /&gt;
* Client wird gerade initialisiert &amp;amp; verfügt noch nicht über eine IP-Adresse&lt;br /&gt;
* Angebot wird als Broadcast versandt - erhält aber bereits die MAC-Adresse des Clients, so daß nur dieser die Nachricht lesen darf&lt;br /&gt;
&lt;br /&gt;
Fall B:&lt;br /&gt;
* Client verfügt bereits über eine IP-Adresse - deren Lease-Dauer jedoch zu Ende geht&lt;br /&gt;
* Angebot wird in diesem Fall direkt an die IP-Adresse des Clients gesendet&lt;br /&gt;
&lt;br /&gt;
* Zu diesem Zeitpunkt muß der Server die IP-Adresse noch nicht reservieren, kann dies aber tun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auswahlphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Der Client wählt die Konfigurationsparameter des zuerst erhaltenen Angebots aus.&lt;br /&gt;
* Senden einer Nachricht &#039;&#039;DHCP-REQUEST&#039;&#039; - Optionsfeld muß den Eintrag &#039;&#039;DHCP Server Identifier&#039;&#039; enthalten - Server, die nicht im &#039;&#039;DHCP-REQUEST&#039;&#039; erwähnt werden, erhalten somit den Hinweis, daß ihr Angebot nicht angenommen wurde&lt;br /&gt;
* angebotene IP-Adresse wird mit der Option &#039;&#039;Requested IP Address&#039;&#039; bestätigt&lt;br /&gt;
* Nachricht wird als Broadcast versendet, um andere DHCP-Server darüber in Kenntnis zu setzen, daß der Client sich entschieden hat und die entsprechenden Server die reservierten Parameter wieder freigeben können &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bestätigungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Antwort des DHCP-Servers mit der Nachricht &#039;&#039;DHCP-ACK&#039;&#039; mit allen Konfigurationsparametern für den Client&lt;br /&gt;
* Sollten in dieser Phase weitere Angebote eintreffen, werden diese vom Client verworfen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Phasen.png|1600px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weitere DHCP-Nachrichtentypen&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-NAK&#039;&#039;:&lt;br /&gt;
* wird während der Bestätigungsphase vom Server an den Client gesendet, um diesen darauf hinzuweisen, daß die im &#039;&#039;DHCP-REQUEST&#039;&#039; angeforderten Konfigurationsparameter abgeleht wurden:&lt;br /&gt;
** wenn ein Client versucht seine bisherige IP-Adresse zu verlängern, diese jedoch nicht mehr verfügbar ist&lt;br /&gt;
** wenn ein Client in ein anderes Subnetz umgezogen &amp;amp; somit die IP-Adresse ungültig ist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-RELEASE&#039;&#039;:&lt;br /&gt;
* Hiermit teilt ein Client dem Server mit, daß er seine IP-Adresse nicht mehr benötigt und der Server die Adresse freigeben und anderweitig vergeben kann&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-DECLINE&#039;&#039;:&lt;br /&gt;
* Der Client kann hierüber den Server in Kenntnis setzen, daß einige Parameter ungültig sind (zum Beispiel seine MAC-Adresse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-INFORM&#039;&#039;:&lt;br /&gt;
* Kann von Clients verwendet werden, denen eine statische IP-Adresse zugewiesen wurde, um weitere dynamische Konfigurationsparameter vom Server anzufordern.&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25520</id>
		<title>IPv4/DHCP</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25520"/>
		<updated>2021-03-24T20:11:54Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: /* Ablauf des DHCP-Verfahrens */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* DHCP kann als Nachfolger vom BOOT-Protokoll verstanden werden, das entwickelt wurde, um Rechner ohne Festplatte in IP-Netzen zu starten und automatisch zu konfigurieren.&lt;br /&gt;
* Veröffentlichung der ersten DHCP-Version Ende 1993 im RFC 1541&lt;br /&gt;
* Ablösung durch neue Version in RFC 2131 im März 1997&lt;br /&gt;
* Erweiterungen von RFC 2131 durch die RFCs 2132, 3396 &amp;amp; 4361&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
* DHCP regelt die dynamische Vergabe von IP-Adressen und kann die Konfiguration von Rechnern unterstützen&lt;br /&gt;
* DHCP funktioniert nach dem Client-Server-Prinzip&lt;br /&gt;
* Benutzer eines Rechners benötigt keine IP-Adresse von einem Administrator - werden vom DHCP-Server zur Verfügung gestellt&lt;br /&gt;
* IP-Konfigurationsparameter für die Clients sind auf dem DHCP-Server gespeichert&lt;br /&gt;
* Vergabe der IP-Adressen erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Implementierung von DHCP-Relays, um DHCP-Nachrichten in andere Subnetze weiterzuleiten, die über keinen DHCP-Server verfügen&lt;br /&gt;
&lt;br /&gt;
Beim Start einer DHCP-Client-Applikation werden vom Server folgende Informationen angefordert:&lt;br /&gt;
&lt;br /&gt;
* Client-IP-Adresse&lt;br /&gt;
* Lease-Dauer&lt;br /&gt;
* Identifikation des DHCP-Servers&lt;br /&gt;
* Subnetzmaske&lt;br /&gt;
* Default-Gateways&lt;br /&gt;
* statische Routen&lt;br /&gt;
* Hostname &amp;amp; Domainname&lt;br /&gt;
* Lokation externer Server (z. Bsp. Time-Server)&lt;br /&gt;
&lt;br /&gt;
== Anforderungen an den DHCP-Server ==&lt;br /&gt;
&lt;br /&gt;
* Ein DHCP-Server muß über einen Bereich gültiger IP-Adressen verfügen.&lt;br /&gt;
* Der Server benötigt eine manuell zugewiesene statische IP-Adresse (Der Server selbst kann kein Client sein).&lt;br /&gt;
* Soll ein Server IP-Adressen für Clients in verschiedenen Subnetzen verteilen, so müssen sämtliche Router zwischen den Subnetzen als DHCP-Relay-Agenten konfiguriert werden. Wird dies von den Routern nicht unterstützt, benötigt jedes Subnetz einen eigenen DHCP-Server.&lt;br /&gt;
* Im Pool der IP-Adressen dürfen keine statischen IP-Adressen enthalten sein, da diese anderenfalls doppelt vergeben würden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Zuweisungsmethoden des DHCP-Verfahrens =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Automatische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* IP-Adressen werden automatisch an die MAC-Adressen von neuen DHCP-Clients vergeben &amp;amp; diese Zuordnung in einer Tabelle festgehalten&lt;br /&gt;
* Vergabe der IP-Adresse an den Client erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Zuordnungen sind permanent und werden nicht entfernt - jeder Client erhält somit stets die gleiche IP-Adresse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dynamische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Vergabe erfolgt analog der &#039;&#039;Automatischen Zuweisung&#039;&#039;&lt;br /&gt;
* Zuweisung der IP-Konfiguration jedoch für einen bestimmten Zeitraum (&#039;&#039;Lease&#039;&#039;-Dauer)&lt;br /&gt;
* Verfall der IP-Adresse nach Ablauf der Lease-Dauer - Neuvergabe an anderen Client durch den DHCP-Server möglich&lt;br /&gt;
* Client kann/muß vor Ablauf der &#039;&#039;Lease&#039;&#039;-Dauer eine Verlängerung beantragen&lt;br /&gt;
* erlaubt, als einzige Zuweisungsmethode die Wiederverwendung von IP-Adressen, wenn der Client diese nicht mehr benötigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manuelle Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* DHCP-Server führt eine Zuweisungstabelle: feste Zuordnung von MAC-Adresse zu IP-Adresse (statisches DHCP)&lt;br /&gt;
* Client erhält immer die gleiche IP-Adresse&lt;br /&gt;
* nur Rechner mit bekannten &amp;amp; registrierten MAC-Adressen erhalten eine IP-Adresse&lt;br /&gt;
* sinnvoll bei Servern, die stets unter der gleichen IP-Adresse erreichbar sein sollen&lt;br /&gt;
&lt;br /&gt;
= DHCP-Nachrichten =&lt;br /&gt;
&lt;br /&gt;
* Austausch von festgelegten DHCP-Nachrichten zwischen Server &amp;amp; Client&lt;br /&gt;
* Übermittlung durch das verbindungslose Transportprotokoll UDP (Server-Port: 67 &amp;amp; Client-Port: 68)&lt;br /&gt;
* Der DHCP-Client stellt einen Anwendungsprozess auf einem Rechner dar &amp;amp; ist auf dem Well-Known-Port 68 erreichbar&lt;br /&gt;
* Der DHCP-Server läuft als Anwendungsprozess auf einem dedizierten Rechner &amp;amp; ist auf dem Well-Known-Port 67 zu erreichen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufbau von DHCP-Nachrichten ==&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Paket.png|400px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Feld !! Länge [Byte] !! Bedeutung !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| op || 1 || Operation || gibt an, ob es sich um eine Anfrage oder Antwort handelt&lt;br /&gt;
|-&lt;br /&gt;
| htype || 1 || Netztyp || Angabe des Netztyps gemäß RFC 1340 (z. Bsp. 6 = 802.x-LAN)&lt;br /&gt;
|-&lt;br /&gt;
| hlen || 1 || Länge der Hardware-Adresse || physikalische Netzadresse (z. Bsp. 6 = MAC-Adresse)&lt;br /&gt;
|-&lt;br /&gt;
| hops || 1 || Anzahl der Hops || Anzahl von Routern mit DHCP-Relay-Funktion auf dem Weg zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| xid || 4 || Transaktions-ID || Identifikationsnummer für die Transaktion zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| secs || 2 || Sekunden || von Seiten des Clients, die Zeit seit Beginn des Vorgangs&lt;br /&gt;
|-&lt;br /&gt;
| flags || 2 || Flags || nur das höchstwertige Bit wird verwendet, um anzuzeigen, ob der Client noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| ciaddr || 4 || Client-IP-Adresse || wird vom Client angegeben, falls dieser noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| yiaddr || 4 || Your-IP-Adresse || IP-Adresse, die der Server dem Client zugewiesen hat&lt;br /&gt;
|-&lt;br /&gt;
| siaddr || 4 || Server-IP-Adresse || IP-Adresse des DHCP-Servers&lt;br /&gt;
|-&lt;br /&gt;
| giaddr || 4 || || IP-Adresse des Routers mit DHCP-Relay-Funktion&lt;br /&gt;
|-&lt;br /&gt;
| chaddr || 16 || Client-Hardware-Adresse || Client-Mac-Adresse&lt;br /&gt;
|-&lt;br /&gt;
| sname || 64 || Server-Name || &lt;br /&gt;
|-&lt;br /&gt;
| file || 128 || File / Datei || &lt;br /&gt;
|-&lt;br /&gt;
| options || bis 312 || Optionen || zusätzliche Konfigurationsparameter - DHCP-Optionen nach RFC 2132&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ablauf der Kommunikation ==&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Ablauf1.png|500px|none]]&lt;br /&gt;
&lt;br /&gt;
[[File:WireShark-DHCP-Phasen.png|1000px|none]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anforderungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Client sendet die Nachricht &#039;&#039;DHCP-DISCOVER&#039;&#039; mit einem Broadcast (Ziel-IP: 255.255.255.255) in sein lokales Netz&lt;br /&gt;
* &#039;&#039;DHCP-DISCOVER&#039;&#039;-Nachricht kann Optionen enthalten, wie zum Beispiel Vorschläge für IP-Adresse &amp;amp; Lease-Dauer&lt;br /&gt;
* Anforderung der benötigten Konfigurationsparameter - IP-Adresse, Subnetzmaske etc.&lt;br /&gt;
* Angabe der MAC-Adresse des Clients (&#039;&#039;chaddr&#039;&#039;) zwingend erforderlich&lt;br /&gt;
* Nachricht ist normalerweise auf das eigene Subnetz beschränkt - kann aber durch DHCP-Relay-Agenten in andere Subnetze weitergeleitet werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Angebotsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Mit der Nachricht &#039;&#039;DHCP-OFFER&#039;&#039; läßt der DHCP-Server dem Client ein Angebot zukommen.&lt;br /&gt;
* Der Server versucht dabei, den Client direkt zu erreichen - was nicht immer möglich ist:&lt;br /&gt;
&lt;br /&gt;
Fall A:&lt;br /&gt;
* Client wird gerade initialisiert &amp;amp; verfügt noch nicht über eine IP-Adresse&lt;br /&gt;
* Angebot wird als Broadcast versandt - erhält aber bereits die MAC-Adresse des Clients, so daß nur dieser die Nachricht lesen darf&lt;br /&gt;
&lt;br /&gt;
Fall B:&lt;br /&gt;
* Client verfügt bereits über eine IP-Adresse - deren Lease-Dauer jedoch zu Ende geht&lt;br /&gt;
* Angebot wird in diesem Fall direkt an die IP-Adresse des Clients gesendet&lt;br /&gt;
&lt;br /&gt;
* Zu diesem Zeitpunkt muß der Server die IP-Adresse noch nicht reservieren, kann dies aber tun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auswahlphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Der Client wählt die Konfigurationsparameter des zuerst erhaltenen Angebots aus.&lt;br /&gt;
* Senden einer Nachricht &#039;&#039;DHCP-REQUEST&#039;&#039; - Optionsfeld muß den Eintrag &#039;&#039;DHCP Server Identifier&#039;&#039; enthalten - Server, die nicht im &#039;&#039;DHCP-REQUEST&#039;&#039; erwähnt werden, erhalten somit den Hinweis, daß ihr Angebot nicht angenommen wurde&lt;br /&gt;
* angebotene IP-Adresse wird mit der Option &#039;&#039;Requested IP Address&#039;&#039; bestätigt&lt;br /&gt;
* Nachricht wird als Broadcast versendet, um andere DHCP-Server darüber in Kenntnis zu setzen, daß der Client sich entschieden hat und die entsprechenden Server die reservierten Parameter wieder freigeben können &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bestätigungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Antwort des DHCP-Servers mit der Nachricht &#039;&#039;DHCP-ACK&#039;&#039; mit allen Konfigurationsparametern für den Client&lt;br /&gt;
* Sollten in dieser Phase weitere Angebote eintreffen, werden diese vom Client verworfen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Phasen.png|1600px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weitere DHCP-Nachrichtentypen&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-NAK&#039;&#039;:&lt;br /&gt;
* wird während der Bestätigungsphase vom Server an den Client gesendet, um diesen darauf hinzuweisen, daß die im &#039;&#039;DHCP-REQUEST&#039;&#039; angeforderten Konfigurationsparameter abgeleht wurden:&lt;br /&gt;
** wenn ein Client versucht seine bisherige IP-Adresse zu verlängern, diese jedoch nicht mehr verfügbar ist&lt;br /&gt;
** wenn ein Client in ein anderes Subnetz umgezogen &amp;amp; somit die IP-Adresse ungültig ist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-RELEASE&#039;&#039;:&lt;br /&gt;
* Hiermit teilt ein Client dem Server mit, daß er seine IP-Adresse nicht mehr benötigt und der Server die Adresse freigeben und anderweitig vergeben kann&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-DECLINE&#039;&#039;:&lt;br /&gt;
* Der Client kann hierüber den Server in Kenntnis setzen, daß einige Parameter ungültig sind (zum Beispiel seine MAC-Adresse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-INFORM&#039;&#039;:&lt;br /&gt;
* Kann von Clients verwendet werden, denen eine statische IP-Adresse zugewiesen wurde, um weitere dynamische Konfigurationsparameter vom Server anzufordern.&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25519</id>
		<title>IPv4/DHCP</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25519"/>
		<updated>2021-03-24T19:40:37Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: /* DHCP_Nachrichten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* DHCP kann als Nachfolger vom BOOT-Protokoll verstanden werden, das entwickelt wurde, um Rechner ohne Festplatte in IP-Netzen zu starten und automatisch zu konfigurieren.&lt;br /&gt;
* Veröffentlichung der ersten DHCP-Version Ende 1993 im RFC 1541&lt;br /&gt;
* Ablösung durch neue Version in RFC 2131 im März 1997&lt;br /&gt;
* Erweiterungen von RFC 2131 durch die RFCs 2132, 3396 &amp;amp; 4361&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
* DHCP regelt die dynamische Vergabe von IP-Adressen und kann die Konfiguration von Rechnern unterstützen&lt;br /&gt;
* DHCP funktioniert nach dem Client-Server-Prinzip&lt;br /&gt;
* Benutzer eines Rechners benötigt keine IP-Adresse von einem Administrator - werden vom DHCP-Server zur Verfügung gestellt&lt;br /&gt;
* IP-Konfigurationsparameter für die Clients sind auf dem DHCP-Server gespeichert&lt;br /&gt;
* Vergabe der IP-Adressen erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Implementierung von DHCP-Relays, um DHCP-Nachrichten in andere Subnetze weiterzuleiten, die über keinen DHCP-Server verfügen&lt;br /&gt;
&lt;br /&gt;
Beim Start einer DHCP-Client-Applikation werden vom Server folgende Informationen angefordert:&lt;br /&gt;
&lt;br /&gt;
* Client-IP-Adresse&lt;br /&gt;
* Lease-Dauer&lt;br /&gt;
* Identifikation des DHCP-Servers&lt;br /&gt;
* Subnetzmaske&lt;br /&gt;
* Default-Gateways&lt;br /&gt;
* statische Routen&lt;br /&gt;
* Hostname &amp;amp; Domainname&lt;br /&gt;
* Lokation externer Server (z. Bsp. Time-Server)&lt;br /&gt;
&lt;br /&gt;
== Anforderungen an den DHCP-Server ==&lt;br /&gt;
&lt;br /&gt;
* Ein DHCP-Server muß über einen Bereich gültiger IP-Adressen verfügen.&lt;br /&gt;
* Der Server benötigt eine manuell zugewiesene statische IP-Adresse (Der Server selbst kann kein Client sein).&lt;br /&gt;
* Soll ein Server IP-Adressen für Clients in verschiedenen Subnetzen verteilen, so müssen sämtliche Router zwischen den Subnetzen als DHCP-Relay-Agenten konfiguriert werden. Wird dies von den Routern nicht unterstützt, benötigt jedes Subnetz einen eigenen DHCP-Server.&lt;br /&gt;
* Im Pool der IP-Adressen dürfen keine statischen IP-Adressen enthalten sein, da diese anderenfalls doppelt vergeben würden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Ablauf des DHCP-Verfahrens =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Automatische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* IP-Adressen werden automatisch an die MAC-Adressen von neuen DHCP-Clients vergeben &amp;amp; diese Zuordnung in einer Tabelle festgehalten&lt;br /&gt;
* Vergabe der IP-Adresse an den Client erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Zuordnungen sind permanent und werden nicht entfernt - jeder Client erhält somit stets die gleiche IP-Adresse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dynamische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Vergabe erfolgt analog der &#039;&#039;Automatischen Zuweisung&#039;&#039;&lt;br /&gt;
* Zuweisung der IP-Konfiguration jedoch für einen bestimmten Zeitraum (&#039;&#039;Lease&#039;&#039;-Dauer)&lt;br /&gt;
* Verfall der IP-Adresse nach Ablauf der Lease-Dauer - Neuvergabe an anderen Client durch den DHCP-Server möglich&lt;br /&gt;
* Client kann/muß vor Ablauf der &#039;&#039;Lease&#039;&#039;-Dauer eine Verlängerung beantragen&lt;br /&gt;
* erlaubt, als einzige Zuweisungsmethode die Wiederverwendung von IP-Adressen, wenn der Client diese nicht mehr benötigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manuelle Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* DHCP-Server führt eine Zuweisungstabelle: feste Zuordnung von MAC-Adresse zu IP-Adresse (statisches DHCP)&lt;br /&gt;
* Client erhält immer die gleiche IP-Adresse&lt;br /&gt;
* nur Rechner mit bekannten &amp;amp; registrierten MAC-Adressen erhalten eine IP-Adresse&lt;br /&gt;
* sinnvoll bei Servern, die stets unter der gleichen IP-Adresse erreichbar sein sollen&lt;br /&gt;
&lt;br /&gt;
= DHCP-Nachrichten =&lt;br /&gt;
&lt;br /&gt;
* Austausch von festgelegten DHCP-Nachrichten zwischen Server &amp;amp; Client&lt;br /&gt;
* Übermittlung durch das verbindungslose Transportprotokoll UDP (Server-Port: 67 &amp;amp; Client-Port: 68)&lt;br /&gt;
* Der DHCP-Client stellt einen Anwendungsprozess auf einem Rechner dar &amp;amp; ist auf dem Well-Known-Port 68 erreichbar&lt;br /&gt;
* Der DHCP-Server läuft als Anwendungsprozess auf einem dedizierten Rechner &amp;amp; ist auf dem Well-Known-Port 67 zu erreichen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufbau von DHCP-Nachrichten ==&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Paket.png|400px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Feld !! Länge [Byte] !! Bedeutung !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| op || 1 || Operation || gibt an, ob es sich um eine Anfrage oder Antwort handelt&lt;br /&gt;
|-&lt;br /&gt;
| htype || 1 || Netztyp || Angabe des Netztyps gemäß RFC 1340 (z. Bsp. 6 = 802.x-LAN)&lt;br /&gt;
|-&lt;br /&gt;
| hlen || 1 || Länge der Hardware-Adresse || physikalische Netzadresse (z. Bsp. 6 = MAC-Adresse)&lt;br /&gt;
|-&lt;br /&gt;
| hops || 1 || Anzahl der Hops || Anzahl von Routern mit DHCP-Relay-Funktion auf dem Weg zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| xid || 4 || Transaktions-ID || Identifikationsnummer für die Transaktion zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| secs || 2 || Sekunden || von Seiten des Clients, die Zeit seit Beginn des Vorgangs&lt;br /&gt;
|-&lt;br /&gt;
| flags || 2 || Flags || nur das höchstwertige Bit wird verwendet, um anzuzeigen, ob der Client noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| ciaddr || 4 || Client-IP-Adresse || wird vom Client angegeben, falls dieser noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| yiaddr || 4 || Your-IP-Adresse || IP-Adresse, die der Server dem Client zugewiesen hat&lt;br /&gt;
|-&lt;br /&gt;
| siaddr || 4 || Server-IP-Adresse || IP-Adresse des DHCP-Servers&lt;br /&gt;
|-&lt;br /&gt;
| giaddr || 4 || || IP-Adresse des Routers mit DHCP-Relay-Funktion&lt;br /&gt;
|-&lt;br /&gt;
| chaddr || 16 || Client-Hardware-Adresse || Client-Mac-Adresse&lt;br /&gt;
|-&lt;br /&gt;
| sname || 64 || Server-Name || &lt;br /&gt;
|-&lt;br /&gt;
| file || 128 || File / Datei || &lt;br /&gt;
|-&lt;br /&gt;
| options || bis 312 || Optionen || zusätzliche Konfigurationsparameter - DHCP-Optionen nach RFC 2132&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ablauf der Kommunikation ==&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Ablauf1.png|500px|none]]&lt;br /&gt;
&lt;br /&gt;
[[File:WireShark-DHCP-Phasen.png|1000px|none]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anforderungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Client sendet die Nachricht &#039;&#039;DHCP-DISCOVER&#039;&#039; mit einem Broadcast (Ziel-IP: 255.255.255.255) in sein lokales Netz&lt;br /&gt;
* &#039;&#039;DHCP-DISCOVER&#039;&#039;-Nachricht kann Optionen enthalten, wie zum Beispiel Vorschläge für IP-Adresse &amp;amp; Lease-Dauer&lt;br /&gt;
* Anforderung der benötigten Konfigurationsparameter - IP-Adresse, Subnetzmaske etc.&lt;br /&gt;
* Angabe der MAC-Adresse des Clients (&#039;&#039;chaddr&#039;&#039;) zwingend erforderlich&lt;br /&gt;
* Nachricht ist normalerweise auf das eigene Subnetz beschränkt - kann aber durch DHCP-Relay-Agenten in andere Subnetze weitergeleitet werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Angebotsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Mit der Nachricht &#039;&#039;DHCP-OFFER&#039;&#039; läßt der DHCP-Server dem Client ein Angebot zukommen.&lt;br /&gt;
* Der Server versucht dabei, den Client direkt zu erreichen - was nicht immer möglich ist:&lt;br /&gt;
&lt;br /&gt;
Fall A:&lt;br /&gt;
* Client wird gerade initialisiert &amp;amp; verfügt noch nicht über eine IP-Adresse&lt;br /&gt;
* Angebot wird als Broadcast versandt - erhält aber bereits die MAC-Adresse des Clients, so daß nur dieser die Nachricht lesen darf&lt;br /&gt;
&lt;br /&gt;
Fall B:&lt;br /&gt;
* Client verfügt bereits über eine IP-Adresse - deren Lease-Dauer jedoch zu Ende geht&lt;br /&gt;
* Angebot wird in diesem Fall direkt an die IP-Adresse des Clients gesendet&lt;br /&gt;
&lt;br /&gt;
* Zu diesem Zeitpunkt muß der Server die IP-Adresse noch nicht reservieren, kann dies aber tun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auswahlphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Der Client wählt die Konfigurationsparameter des zuerst erhaltenen Angebots aus.&lt;br /&gt;
* Senden einer Nachricht &#039;&#039;DHCP-REQUEST&#039;&#039; - Optionsfeld muß den Eintrag &#039;&#039;DHCP Server Identifier&#039;&#039; enthalten - Server, die nicht im &#039;&#039;DHCP-REQUEST&#039;&#039; erwähnt werden, erhalten somit den Hinweis, daß ihr Angebot nicht angenommen wurde&lt;br /&gt;
* angebotene IP-Adresse wird mit der Option &#039;&#039;Requested IP Address&#039;&#039; bestätigt&lt;br /&gt;
* Nachricht wird als Broadcast versendet, um andere DHCP-Server darüber in Kenntnis zu setzen, daß der Client sich entschieden hat und die entsprechenden Server die reservierten Parameter wieder freigeben können &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bestätigungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Antwort des DHCP-Servers mit der Nachricht &#039;&#039;DHCP-ACK&#039;&#039; mit allen Konfigurationsparametern für den Client&lt;br /&gt;
* Sollten in dieser Phase weitere Angebote eintreffen, werden diese vom Client verworfen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Phasen.png|1600px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weitere DHCP-Nachrichtentypen&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-NAK&#039;&#039;:&lt;br /&gt;
* wird während der Bestätigungsphase vom Server an den Client gesendet, um diesen darauf hinzuweisen, daß die im &#039;&#039;DHCP-REQUEST&#039;&#039; angeforderten Konfigurationsparameter abgeleht wurden:&lt;br /&gt;
** wenn ein Client versucht seine bisherige IP-Adresse zu verlängern, diese jedoch nicht mehr verfügbar ist&lt;br /&gt;
** wenn ein Client in ein anderes Subnetz umgezogen &amp;amp; somit die IP-Adresse ungültig ist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-RELEASE&#039;&#039;:&lt;br /&gt;
* Hiermit teilt ein Client dem Server mit, daß er seine IP-Adresse nicht mehr benötigt und der Server die Adresse freigeben und anderweitig vergeben kann&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-DECLINE&#039;&#039;:&lt;br /&gt;
* Der Client kann hierüber den Server in Kenntnis setzen, daß einige Parameter ungültig sind (zum Beispiel seine MAC-Adresse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-INFORM&#039;&#039;:&lt;br /&gt;
* Kann von Clients verwendet werden, denen eine statische IP-Adresse zugewiesen wurde, um weitere dynamische Konfigurationsparameter vom Server anzufordern.&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25518</id>
		<title>IPv4/DHCP</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25518"/>
		<updated>2021-03-24T19:40:23Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: /* Ablauf des DHCP-Verfahrens */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* DHCP kann als Nachfolger vom BOOT-Protokoll verstanden werden, das entwickelt wurde, um Rechner ohne Festplatte in IP-Netzen zu starten und automatisch zu konfigurieren.&lt;br /&gt;
* Veröffentlichung der ersten DHCP-Version Ende 1993 im RFC 1541&lt;br /&gt;
* Ablösung durch neue Version in RFC 2131 im März 1997&lt;br /&gt;
* Erweiterungen von RFC 2131 durch die RFCs 2132, 3396 &amp;amp; 4361&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
* DHCP regelt die dynamische Vergabe von IP-Adressen und kann die Konfiguration von Rechnern unterstützen&lt;br /&gt;
* DHCP funktioniert nach dem Client-Server-Prinzip&lt;br /&gt;
* Benutzer eines Rechners benötigt keine IP-Adresse von einem Administrator - werden vom DHCP-Server zur Verfügung gestellt&lt;br /&gt;
* IP-Konfigurationsparameter für die Clients sind auf dem DHCP-Server gespeichert&lt;br /&gt;
* Vergabe der IP-Adressen erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Implementierung von DHCP-Relays, um DHCP-Nachrichten in andere Subnetze weiterzuleiten, die über keinen DHCP-Server verfügen&lt;br /&gt;
&lt;br /&gt;
Beim Start einer DHCP-Client-Applikation werden vom Server folgende Informationen angefordert:&lt;br /&gt;
&lt;br /&gt;
* Client-IP-Adresse&lt;br /&gt;
* Lease-Dauer&lt;br /&gt;
* Identifikation des DHCP-Servers&lt;br /&gt;
* Subnetzmaske&lt;br /&gt;
* Default-Gateways&lt;br /&gt;
* statische Routen&lt;br /&gt;
* Hostname &amp;amp; Domainname&lt;br /&gt;
* Lokation externer Server (z. Bsp. Time-Server)&lt;br /&gt;
&lt;br /&gt;
== Anforderungen an den DHCP-Server ==&lt;br /&gt;
&lt;br /&gt;
* Ein DHCP-Server muß über einen Bereich gültiger IP-Adressen verfügen.&lt;br /&gt;
* Der Server benötigt eine manuell zugewiesene statische IP-Adresse (Der Server selbst kann kein Client sein).&lt;br /&gt;
* Soll ein Server IP-Adressen für Clients in verschiedenen Subnetzen verteilen, so müssen sämtliche Router zwischen den Subnetzen als DHCP-Relay-Agenten konfiguriert werden. Wird dies von den Routern nicht unterstützt, benötigt jedes Subnetz einen eigenen DHCP-Server.&lt;br /&gt;
* Im Pool der IP-Adressen dürfen keine statischen IP-Adressen enthalten sein, da diese anderenfalls doppelt vergeben würden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Ablauf des DHCP-Verfahrens =&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Automatische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* IP-Adressen werden automatisch an die MAC-Adressen von neuen DHCP-Clients vergeben &amp;amp; diese Zuordnung in einer Tabelle festgehalten&lt;br /&gt;
* Vergabe der IP-Adresse an den Client erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Zuordnungen sind permanent und werden nicht entfernt - jeder Client erhält somit stets die gleiche IP-Adresse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dynamische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Vergabe erfolgt analog der &#039;&#039;Automatischen Zuweisung&#039;&#039;&lt;br /&gt;
* Zuweisung der IP-Konfiguration jedoch für einen bestimmten Zeitraum (&#039;&#039;Lease&#039;&#039;-Dauer)&lt;br /&gt;
* Verfall der IP-Adresse nach Ablauf der Lease-Dauer - Neuvergabe an anderen Client durch den DHCP-Server möglich&lt;br /&gt;
* Client kann/muß vor Ablauf der &#039;&#039;Lease&#039;&#039;-Dauer eine Verlängerung beantragen&lt;br /&gt;
* erlaubt, als einzige Zuweisungsmethode die Wiederverwendung von IP-Adressen, wenn der Client diese nicht mehr benötigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manuelle Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* DHCP-Server führt eine Zuweisungstabelle: feste Zuordnung von MAC-Adresse zu IP-Adresse (statisches DHCP)&lt;br /&gt;
* Client erhält immer die gleiche IP-Adresse&lt;br /&gt;
* nur Rechner mit bekannten &amp;amp; registrierten MAC-Adressen erhalten eine IP-Adresse&lt;br /&gt;
* sinnvoll bei Servern, die stets unter der gleichen IP-Adresse erreichbar sein sollen&lt;br /&gt;
&lt;br /&gt;
= DHCP_Nachrichten =&lt;br /&gt;
&lt;br /&gt;
* Austausch von festgelegten DHCP-Nachrichten zwischen Server &amp;amp; Client&lt;br /&gt;
* Übermittlung durch das verbindungslose Transportprotokoll UDP (Server-Port: 67 &amp;amp; Client-Port: 68)&lt;br /&gt;
* Der DHCP-Client stellt einen Anwendungsprozess auf einem Rechner dar &amp;amp; ist auf dem Well-Known-Port 68 erreichbar&lt;br /&gt;
* Der DHCP-Server läuft als Anwendungsprozess auf einem dedizierten Rechner &amp;amp; ist auf dem Well-Known-Port 67 zu erreichen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufbau von DHCP-Nachrichten ==&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Paket.png|400px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Feld !! Länge [Byte] !! Bedeutung !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| op || 1 || Operation || gibt an, ob es sich um eine Anfrage oder Antwort handelt&lt;br /&gt;
|-&lt;br /&gt;
| htype || 1 || Netztyp || Angabe des Netztyps gemäß RFC 1340 (z. Bsp. 6 = 802.x-LAN)&lt;br /&gt;
|-&lt;br /&gt;
| hlen || 1 || Länge der Hardware-Adresse || physikalische Netzadresse (z. Bsp. 6 = MAC-Adresse)&lt;br /&gt;
|-&lt;br /&gt;
| hops || 1 || Anzahl der Hops || Anzahl von Routern mit DHCP-Relay-Funktion auf dem Weg zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| xid || 4 || Transaktions-ID || Identifikationsnummer für die Transaktion zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| secs || 2 || Sekunden || von Seiten des Clients, die Zeit seit Beginn des Vorgangs&lt;br /&gt;
|-&lt;br /&gt;
| flags || 2 || Flags || nur das höchstwertige Bit wird verwendet, um anzuzeigen, ob der Client noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| ciaddr || 4 || Client-IP-Adresse || wird vom Client angegeben, falls dieser noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| yiaddr || 4 || Your-IP-Adresse || IP-Adresse, die der Server dem Client zugewiesen hat&lt;br /&gt;
|-&lt;br /&gt;
| siaddr || 4 || Server-IP-Adresse || IP-Adresse des DHCP-Servers&lt;br /&gt;
|-&lt;br /&gt;
| giaddr || 4 || || IP-Adresse des Routers mit DHCP-Relay-Funktion&lt;br /&gt;
|-&lt;br /&gt;
| chaddr || 16 || Client-Hardware-Adresse || Client-Mac-Adresse&lt;br /&gt;
|-&lt;br /&gt;
| sname || 64 || Server-Name || &lt;br /&gt;
|-&lt;br /&gt;
| file || 128 || File / Datei || &lt;br /&gt;
|-&lt;br /&gt;
| options || bis 312 || Optionen || zusätzliche Konfigurationsparameter - DHCP-Optionen nach RFC 2132&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ablauf der Kommunikation ==&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Ablauf1.png|500px|none]]&lt;br /&gt;
&lt;br /&gt;
[[File:WireShark-DHCP-Phasen.png|1000px|none]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anforderungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Client sendet die Nachricht &#039;&#039;DHCP-DISCOVER&#039;&#039; mit einem Broadcast (Ziel-IP: 255.255.255.255) in sein lokales Netz&lt;br /&gt;
* &#039;&#039;DHCP-DISCOVER&#039;&#039;-Nachricht kann Optionen enthalten, wie zum Beispiel Vorschläge für IP-Adresse &amp;amp; Lease-Dauer&lt;br /&gt;
* Anforderung der benötigten Konfigurationsparameter - IP-Adresse, Subnetzmaske etc.&lt;br /&gt;
* Angabe der MAC-Adresse des Clients (&#039;&#039;chaddr&#039;&#039;) zwingend erforderlich&lt;br /&gt;
* Nachricht ist normalerweise auf das eigene Subnetz beschränkt - kann aber durch DHCP-Relay-Agenten in andere Subnetze weitergeleitet werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Angebotsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Mit der Nachricht &#039;&#039;DHCP-OFFER&#039;&#039; läßt der DHCP-Server dem Client ein Angebot zukommen.&lt;br /&gt;
* Der Server versucht dabei, den Client direkt zu erreichen - was nicht immer möglich ist:&lt;br /&gt;
&lt;br /&gt;
Fall A:&lt;br /&gt;
* Client wird gerade initialisiert &amp;amp; verfügt noch nicht über eine IP-Adresse&lt;br /&gt;
* Angebot wird als Broadcast versandt - erhält aber bereits die MAC-Adresse des Clients, so daß nur dieser die Nachricht lesen darf&lt;br /&gt;
&lt;br /&gt;
Fall B:&lt;br /&gt;
* Client verfügt bereits über eine IP-Adresse - deren Lease-Dauer jedoch zu Ende geht&lt;br /&gt;
* Angebot wird in diesem Fall direkt an die IP-Adresse des Clients gesendet&lt;br /&gt;
&lt;br /&gt;
* Zu diesem Zeitpunkt muß der Server die IP-Adresse noch nicht reservieren, kann dies aber tun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auswahlphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Der Client wählt die Konfigurationsparameter des zuerst erhaltenen Angebots aus.&lt;br /&gt;
* Senden einer Nachricht &#039;&#039;DHCP-REQUEST&#039;&#039; - Optionsfeld muß den Eintrag &#039;&#039;DHCP Server Identifier&#039;&#039; enthalten - Server, die nicht im &#039;&#039;DHCP-REQUEST&#039;&#039; erwähnt werden, erhalten somit den Hinweis, daß ihr Angebot nicht angenommen wurde&lt;br /&gt;
* angebotene IP-Adresse wird mit der Option &#039;&#039;Requested IP Address&#039;&#039; bestätigt&lt;br /&gt;
* Nachricht wird als Broadcast versendet, um andere DHCP-Server darüber in Kenntnis zu setzen, daß der Client sich entschieden hat und die entsprechenden Server die reservierten Parameter wieder freigeben können &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bestätigungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Antwort des DHCP-Servers mit der Nachricht &#039;&#039;DHCP-ACK&#039;&#039; mit allen Konfigurationsparametern für den Client&lt;br /&gt;
* Sollten in dieser Phase weitere Angebote eintreffen, werden diese vom Client verworfen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Phasen.png|1600px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weitere DHCP-Nachrichtentypen&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-NAK&#039;&#039;:&lt;br /&gt;
* wird während der Bestätigungsphase vom Server an den Client gesendet, um diesen darauf hinzuweisen, daß die im &#039;&#039;DHCP-REQUEST&#039;&#039; angeforderten Konfigurationsparameter abgeleht wurden:&lt;br /&gt;
** wenn ein Client versucht seine bisherige IP-Adresse zu verlängern, diese jedoch nicht mehr verfügbar ist&lt;br /&gt;
** wenn ein Client in ein anderes Subnetz umgezogen &amp;amp; somit die IP-Adresse ungültig ist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-RELEASE&#039;&#039;:&lt;br /&gt;
* Hiermit teilt ein Client dem Server mit, daß er seine IP-Adresse nicht mehr benötigt und der Server die Adresse freigeben und anderweitig vergeben kann&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-DECLINE&#039;&#039;:&lt;br /&gt;
* Der Client kann hierüber den Server in Kenntnis setzen, daß einige Parameter ungültig sind (zum Beispiel seine MAC-Adresse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-INFORM&#039;&#039;:&lt;br /&gt;
* Kann von Clients verwendet werden, denen eine statische IP-Adresse zugewiesen wurde, um weitere dynamische Konfigurationsparameter vom Server anzufordern.&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25517</id>
		<title>IPv4/DHCP</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25517"/>
		<updated>2021-03-24T19:30:21Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: /* Ablauf der Kommunikation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* DHCP kann als Nachfolger vom BOOT-Protokoll verstanden werden, das entwickelt wurde, um Rechner ohne Festplatte in IP-Netzen zu starten und automatisch zu konfigurieren.&lt;br /&gt;
* Veröffentlichung der ersten DHCP-Version Ende 1993 im RFC 1541&lt;br /&gt;
* Ablösung durch neue Version in RFC 2131 im März 1997&lt;br /&gt;
* Erweiterungen von RFC 2131 durch die RFCs 2132, 3396 &amp;amp; 4361&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
* DHCP regelt die dynamische Vergabe von IP-Adressen und kann die Konfiguration von Rechnern unterstützen&lt;br /&gt;
* DHCP funktioniert nach dem Client-Server-Prinzip&lt;br /&gt;
* Benutzer eines Rechners benötigt keine IP-Adresse von einem Administrator - werden vom DHCP-Server zur Verfügung gestellt&lt;br /&gt;
* IP-Konfigurationsparameter für die Clients sind auf dem DHCP-Server gespeichert&lt;br /&gt;
* Vergabe der IP-Adressen erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Implementierung von DHCP-Relays, um DHCP-Nachrichten in andere Subnetze weiterzuleiten, die über keinen DHCP-Server verfügen&lt;br /&gt;
&lt;br /&gt;
Beim Start einer DHCP-Client-Applikation werden vom Server folgende Informationen angefordert:&lt;br /&gt;
&lt;br /&gt;
* Client-IP-Adresse&lt;br /&gt;
* Lease-Dauer&lt;br /&gt;
* Identifikation des DHCP-Servers&lt;br /&gt;
* Subnetzmaske&lt;br /&gt;
* Default-Gateways&lt;br /&gt;
* statische Routen&lt;br /&gt;
* Hostname &amp;amp; Domainname&lt;br /&gt;
* Lokation externer Server (z. Bsp. Time-Server)&lt;br /&gt;
&lt;br /&gt;
== Anforderungen an den DHCP-Server ==&lt;br /&gt;
&lt;br /&gt;
* Ein DHCP-Server muß über einen Bereich gültiger IP-Adressen verfügen.&lt;br /&gt;
* Der Server benötigt eine manuell zugewiesene statische IP-Adresse (Der Server selbst kann kein Client sein).&lt;br /&gt;
* Soll ein Server IP-Adressen für Clients in verschiedenen Subnetzen verteilen, so müssen sämtliche Router zwischen den Subnetzen als DHCP-Relay-Agenten konfiguriert werden. Wird dies von den Routern nicht unterstützt, benötigt jedes Subnetz einen eigenen DHCP-Server.&lt;br /&gt;
* Im Pool der IP-Adressen dürfen keine statischen IP-Adressen enthalten sein, da diese anderenfalls doppelt vergeben würden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ablauf des DHCP-Verfahrens ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Automatische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* IP-Adressen werden automatisch an die MAC-Adressen von neuen DHCP-Clients vergeben &amp;amp; diese Zuordnung in einer Tabelle festgehalten&lt;br /&gt;
* Vergabe der IP-Adresse an den Client erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Zuordnungen sind permanent und werden nicht entfernt - jeder Client erhält somit stets die gleiche IP-Adresse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dynamische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Vergabe erfolgt analog der &#039;&#039;Automatischen Zuweisung&#039;&#039;&lt;br /&gt;
* Zuweisung der IP-Konfiguration jedoch für einen bestimmten Zeitraum (&#039;&#039;Lease&#039;&#039;-Dauer)&lt;br /&gt;
* Verfall der IP-Adresse nach Ablauf der Lease-Dauer - Neuvergabe an anderen Client durch den DHCP-Server möglich&lt;br /&gt;
* Client kann/muß vor Ablauf der &#039;&#039;Lease&#039;&#039;-Dauer eine Verlängerung beantragen&lt;br /&gt;
* erlaubt, als einzige Zuweisungsmethode die Wiederverwendung von IP-Adressen, wenn der Client diese nicht mehr benötigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manuelle Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* DHCP-Server führt eine Zuweisungstabelle: feste Zuordnung von MAC-Adresse zu IP-Adresse (statisches DHCP)&lt;br /&gt;
* Client erhält immer die gleiche IP-Adresse&lt;br /&gt;
* nur Rechner mit bekannten &amp;amp; registrierten MAC-Adressen erhalten eine IP-Adresse&lt;br /&gt;
* sinnvoll bei Servern, die stets unter der gleichen IP-Adresse erreichbar sein sollen&lt;br /&gt;
&lt;br /&gt;
= DHCP_Nachrichten =&lt;br /&gt;
&lt;br /&gt;
* Austausch von festgelegten DHCP-Nachrichten zwischen Server &amp;amp; Client&lt;br /&gt;
* Übermittlung durch das verbindungslose Transportprotokoll UDP (Server-Port: 67 &amp;amp; Client-Port: 68)&lt;br /&gt;
* Der DHCP-Client stellt einen Anwendungsprozess auf einem Rechner dar &amp;amp; ist auf dem Well-Known-Port 68 erreichbar&lt;br /&gt;
* Der DHCP-Server läuft als Anwendungsprozess auf einem dedizierten Rechner &amp;amp; ist auf dem Well-Known-Port 67 zu erreichen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufbau von DHCP-Nachrichten ==&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Paket.png|400px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Feld !! Länge [Byte] !! Bedeutung !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| op || 1 || Operation || gibt an, ob es sich um eine Anfrage oder Antwort handelt&lt;br /&gt;
|-&lt;br /&gt;
| htype || 1 || Netztyp || Angabe des Netztyps gemäß RFC 1340 (z. Bsp. 6 = 802.x-LAN)&lt;br /&gt;
|-&lt;br /&gt;
| hlen || 1 || Länge der Hardware-Adresse || physikalische Netzadresse (z. Bsp. 6 = MAC-Adresse)&lt;br /&gt;
|-&lt;br /&gt;
| hops || 1 || Anzahl der Hops || Anzahl von Routern mit DHCP-Relay-Funktion auf dem Weg zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| xid || 4 || Transaktions-ID || Identifikationsnummer für die Transaktion zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| secs || 2 || Sekunden || von Seiten des Clients, die Zeit seit Beginn des Vorgangs&lt;br /&gt;
|-&lt;br /&gt;
| flags || 2 || Flags || nur das höchstwertige Bit wird verwendet, um anzuzeigen, ob der Client noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| ciaddr || 4 || Client-IP-Adresse || wird vom Client angegeben, falls dieser noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| yiaddr || 4 || Your-IP-Adresse || IP-Adresse, die der Server dem Client zugewiesen hat&lt;br /&gt;
|-&lt;br /&gt;
| siaddr || 4 || Server-IP-Adresse || IP-Adresse des DHCP-Servers&lt;br /&gt;
|-&lt;br /&gt;
| giaddr || 4 || || IP-Adresse des Routers mit DHCP-Relay-Funktion&lt;br /&gt;
|-&lt;br /&gt;
| chaddr || 16 || Client-Hardware-Adresse || Client-Mac-Adresse&lt;br /&gt;
|-&lt;br /&gt;
| sname || 64 || Server-Name || &lt;br /&gt;
|-&lt;br /&gt;
| file || 128 || File / Datei || &lt;br /&gt;
|-&lt;br /&gt;
| options || bis 312 || Optionen || zusätzliche Konfigurationsparameter - DHCP-Optionen nach RFC 2132&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ablauf der Kommunikation ==&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Ablauf1.png|500px|none]]&lt;br /&gt;
&lt;br /&gt;
[[File:WireShark-DHCP-Phasen.png|1000px|none]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anforderungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Client sendet die Nachricht &#039;&#039;DHCP-DISCOVER&#039;&#039; mit einem Broadcast (Ziel-IP: 255.255.255.255) in sein lokales Netz&lt;br /&gt;
* &#039;&#039;DHCP-DISCOVER&#039;&#039;-Nachricht kann Optionen enthalten, wie zum Beispiel Vorschläge für IP-Adresse &amp;amp; Lease-Dauer&lt;br /&gt;
* Anforderung der benötigten Konfigurationsparameter - IP-Adresse, Subnetzmaske etc.&lt;br /&gt;
* Angabe der MAC-Adresse des Clients (&#039;&#039;chaddr&#039;&#039;) zwingend erforderlich&lt;br /&gt;
* Nachricht ist normalerweise auf das eigene Subnetz beschränkt - kann aber durch DHCP-Relay-Agenten in andere Subnetze weitergeleitet werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Angebotsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Mit der Nachricht &#039;&#039;DHCP-OFFER&#039;&#039; läßt der DHCP-Server dem Client ein Angebot zukommen.&lt;br /&gt;
* Der Server versucht dabei, den Client direkt zu erreichen - was nicht immer möglich ist:&lt;br /&gt;
&lt;br /&gt;
Fall A:&lt;br /&gt;
* Client wird gerade initialisiert &amp;amp; verfügt noch nicht über eine IP-Adresse&lt;br /&gt;
* Angebot wird als Broadcast versandt - erhält aber bereits die MAC-Adresse des Clients, so daß nur dieser die Nachricht lesen darf&lt;br /&gt;
&lt;br /&gt;
Fall B:&lt;br /&gt;
* Client verfügt bereits über eine IP-Adresse - deren Lease-Dauer jedoch zu Ende geht&lt;br /&gt;
* Angebot wird in diesem Fall direkt an die IP-Adresse des Clients gesendet&lt;br /&gt;
&lt;br /&gt;
* Zu diesem Zeitpunkt muß der Server die IP-Adresse noch nicht reservieren, kann dies aber tun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auswahlphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Der Client wählt die Konfigurationsparameter des zuerst erhaltenen Angebots aus.&lt;br /&gt;
* Senden einer Nachricht &#039;&#039;DHCP-REQUEST&#039;&#039; - Optionsfeld muß den Eintrag &#039;&#039;DHCP Server Identifier&#039;&#039; enthalten - Server, die nicht im &#039;&#039;DHCP-REQUEST&#039;&#039; erwähnt werden, erhalten somit den Hinweis, daß ihr Angebot nicht angenommen wurde&lt;br /&gt;
* angebotene IP-Adresse wird mit der Option &#039;&#039;Requested IP Address&#039;&#039; bestätigt&lt;br /&gt;
* Nachricht wird als Broadcast versendet, um andere DHCP-Server darüber in Kenntnis zu setzen, daß der Client sich entschieden hat und die entsprechenden Server die reservierten Parameter wieder freigeben können &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bestätigungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Antwort des DHCP-Servers mit der Nachricht &#039;&#039;DHCP-ACK&#039;&#039; mit allen Konfigurationsparametern für den Client&lt;br /&gt;
* Sollten in dieser Phase weitere Angebote eintreffen, werden diese vom Client verworfen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Phasen.png|1600px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weitere DHCP-Nachrichtentypen&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-NAK&#039;&#039;:&lt;br /&gt;
* wird während der Bestätigungsphase vom Server an den Client gesendet, um diesen darauf hinzuweisen, daß die im &#039;&#039;DHCP-REQUEST&#039;&#039; angeforderten Konfigurationsparameter abgeleht wurden:&lt;br /&gt;
** wenn ein Client versucht seine bisherige IP-Adresse zu verlängern, diese jedoch nicht mehr verfügbar ist&lt;br /&gt;
** wenn ein Client in ein anderes Subnetz umgezogen &amp;amp; somit die IP-Adresse ungültig ist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-RELEASE&#039;&#039;:&lt;br /&gt;
* Hiermit teilt ein Client dem Server mit, daß er seine IP-Adresse nicht mehr benötigt und der Server die Adresse freigeben und anderweitig vergeben kann&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-DECLINE&#039;&#039;:&lt;br /&gt;
* Der Client kann hierüber den Server in Kenntnis setzen, daß einige Parameter ungültig sind (zum Beispiel seine MAC-Adresse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-INFORM&#039;&#039;:&lt;br /&gt;
* Kann von Clients verwendet werden, denen eine statische IP-Adresse zugewiesen wurde, um weitere dynamische Konfigurationsparameter vom Server anzufordern.&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Datei:DHCP-Ablauf1.png&amp;diff=25516</id>
		<title>Datei:DHCP-Ablauf1.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Datei:DHCP-Ablauf1.png&amp;diff=25516"/>
		<updated>2021-03-24T19:29:05Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: Datei hochgeladen mit MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Datei hochgeladen mit MsUpload&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25492</id>
		<title>IPv4/DHCP</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25492"/>
		<updated>2021-03-24T09:21:03Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: /* Ablauf der Kommunikation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* DHCP kann als Nachfolger vom BOOT-Protokoll verstanden werden, das entwickelt wurde, um Rechner ohne Festplatte in IP-Netzen zu starten und automatisch zu konfigurieren.&lt;br /&gt;
* Veröffentlichung der ersten DHCP-Version Ende 1993 im RFC 1541&lt;br /&gt;
* Ablösung durch neue Version in RFC 2131 im März 1997&lt;br /&gt;
* Erweiterungen von RFC 2131 durch die RFCs 2132, 3396 &amp;amp; 4361&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
* DHCP regelt die dynamische Vergabe von IP-Adressen und kann die Konfiguration von Rechnern unterstützen&lt;br /&gt;
* DHCP funktioniert nach dem Client-Server-Prinzip&lt;br /&gt;
* Benutzer eines Rechners benötigt keine IP-Adresse von einem Administrator - werden vom DHCP-Server zur Verfügung gestellt&lt;br /&gt;
* IP-Konfigurationsparameter für die Clients sind auf dem DHCP-Server gespeichert&lt;br /&gt;
* Vergabe der IP-Adressen erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Implementierung von DHCP-Relays, um DHCP-Nachrichten in andere Subnetze weiterzuleiten, die über keinen DHCP-Server verfügen&lt;br /&gt;
&lt;br /&gt;
Beim Start einer DHCP-Client-Applikation werden vom Server folgende Informationen angefordert:&lt;br /&gt;
&lt;br /&gt;
* Client-IP-Adresse&lt;br /&gt;
* Lease-Dauer&lt;br /&gt;
* Identifikation des DHCP-Servers&lt;br /&gt;
* Subnetzmaske&lt;br /&gt;
* Default-Gateways&lt;br /&gt;
* statische Routen&lt;br /&gt;
* Hostname &amp;amp; Domainname&lt;br /&gt;
* Lokation externer Server (z. Bsp. Time-Server)&lt;br /&gt;
&lt;br /&gt;
== Anforderungen an den DHCP-Server ==&lt;br /&gt;
&lt;br /&gt;
* Ein DHCP-Server muß über einen Bereich gültiger IP-Adressen verfügen.&lt;br /&gt;
* Der Server benötigt eine manuell zugewiesene statische IP-Adresse (Der Server selbst kann kein Client sein).&lt;br /&gt;
* Soll ein Server IP-Adressen für Clients in verschiedenen Subnetzen verteilen, so müssen sämtliche Router zwischen den Subnetzen als DHCP-Relay-Agenten konfiguriert werden. Wird dies von den Routern nicht unterstützt, benötigt jedes Subnetz einen eigenen DHCP-Server.&lt;br /&gt;
* Im Pool der IP-Adressen dürfen keine statischen IP-Adressen enthalten sein, da diese anderenfalls doppelt vergeben würden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ablauf des DHCP-Verfahrens ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Automatische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* IP-Adressen werden automatisch an die MAC-Adressen von neuen DHCP-Clients vergeben &amp;amp; diese Zuordnung in einer Tabelle festgehalten&lt;br /&gt;
* Vergabe der IP-Adresse an den Client erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Zuordnungen sind permanent und werden nicht entfernt - jeder Client erhält somit stets die gleiche IP-Adresse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dynamische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Vergabe erfolgt analog der &#039;&#039;Automatischen Zuweisung&#039;&#039;&lt;br /&gt;
* Zuweisung der IP-Konfiguration jedoch für einen bestimmten Zeitraum (&#039;&#039;Lease&#039;&#039;-Dauer)&lt;br /&gt;
* Verfall der IP-Adresse nach Ablauf der Lease-Dauer - Neuvergabe an anderen Client durch den DHCP-Server möglich&lt;br /&gt;
* Client kann/muß vor Ablauf der &#039;&#039;Lease&#039;&#039;-Dauer eine Verlängerung beantragen&lt;br /&gt;
* erlaubt, als einzige Zuweisungsmethode die Wiederverwendung von IP-Adressen, wenn der Client diese nicht mehr benötigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manuelle Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* DHCP-Server führt eine Zuweisungstabelle: feste Zuordnung von MAC-Adresse zu IP-Adresse (statisches DHCP)&lt;br /&gt;
* Client erhält immer die gleiche IP-Adresse&lt;br /&gt;
* nur Rechner mit bekannten &amp;amp; registrierten MAC-Adressen erhalten eine IP-Adresse&lt;br /&gt;
* sinnvoll bei Servern, die stets unter der gleichen IP-Adresse erreichbar sein sollen&lt;br /&gt;
&lt;br /&gt;
= DHCP_Nachrichten =&lt;br /&gt;
&lt;br /&gt;
* Austausch von festgelegten DHCP-Nachrichten zwischen Server &amp;amp; Client&lt;br /&gt;
* Übermittlung durch das verbindungslose Transportprotokoll UDP (Server-Port: 67 &amp;amp; Client-Port: 68)&lt;br /&gt;
* Der DHCP-Client stellt einen Anwendungsprozess auf einem Rechner dar &amp;amp; ist auf dem Well-Known-Port 68 erreichbar&lt;br /&gt;
* Der DHCP-Server läuft als Anwendungsprozess auf einem dedizierten Rechner &amp;amp; ist auf dem Well-Known-Port 67 zu erreichen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufbau von DHCP-Nachrichten ==&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Paket.png|400px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Feld !! Länge [Byte] !! Bedeutung !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| op || 1 || Operation || gibt an, ob es sich um eine Anfrage oder Antwort handelt&lt;br /&gt;
|-&lt;br /&gt;
| htype || 1 || Netztyp || Angabe des Netztyps gemäß RFC 1340 (z. Bsp. 6 = 802.x-LAN)&lt;br /&gt;
|-&lt;br /&gt;
| hlen || 1 || Länge der Hardware-Adresse || physikalische Netzadresse (z. Bsp. 6 = MAC-Adresse)&lt;br /&gt;
|-&lt;br /&gt;
| hops || 1 || Anzahl der Hops || Anzahl von Routern mit DHCP-Relay-Funktion auf dem Weg zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| xid || 4 || Transaktions-ID || Identifikationsnummer für die Transaktion zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| secs || 2 || Sekunden || von Seiten des Clients, die Zeit seit Beginn des Vorgangs&lt;br /&gt;
|-&lt;br /&gt;
| flags || 2 || Flags || nur das höchstwertige Bit wird verwendet, um anzuzeigen, ob der Client noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| ciaddr || 4 || Client-IP-Adresse || wird vom Client angegeben, falls dieser noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| yiaddr || 4 || Your-IP-Adresse || IP-Adresse, die der Server dem Client zugewiesen hat&lt;br /&gt;
|-&lt;br /&gt;
| siaddr || 4 || Server-IP-Adresse || IP-Adresse des DHCP-Servers&lt;br /&gt;
|-&lt;br /&gt;
| giaddr || 4 || || IP-Adresse des Routers mit DHCP-Relay-Funktion&lt;br /&gt;
|-&lt;br /&gt;
| chaddr || 16 || Client-Hardware-Adresse || Client-Mac-Adresse&lt;br /&gt;
|-&lt;br /&gt;
| sname || 64 || Server-Name || &lt;br /&gt;
|-&lt;br /&gt;
| file || 128 || File / Datei || &lt;br /&gt;
|-&lt;br /&gt;
| options || bis 312 || Optionen || zusätzliche Konfigurationsparameter - DHCP-Optionen nach RFC 2132&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ablauf der Kommunikation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WireShark-DHCP-Phasen.png|1000px|none]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anforderungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Client sendet die Nachricht &#039;&#039;DHCP-DISCOVER&#039;&#039; mit einem Broadcast (Ziel-IP: 255.255.255.255) in sein lokales Netz&lt;br /&gt;
* &#039;&#039;DHCP-DISCOVER&#039;&#039;-Nachricht kann Optionen enthalten, wie zum Beispiel Vorschläge für IP-Adresse &amp;amp; Lease-Dauer&lt;br /&gt;
* Anforderung der benötigten Konfigurationsparameter - IP-Adresse, Subnetzmaske etc.&lt;br /&gt;
* Angabe der MAC-Adresse des Clients (&#039;&#039;chaddr&#039;&#039;) zwingend erforderlich&lt;br /&gt;
* Nachricht ist normalerweise auf das eigene Subnetz beschränkt - kann aber durch DHCP-Relay-Agenten in andere Subnetze weitergeleitet werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Angebotsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Mit der Nachricht &#039;&#039;DHCP-OFFER&#039;&#039; läßt der DHCP-Server dem Client ein Angebot zukommen.&lt;br /&gt;
* Der Server versucht dabei, den Client direkt zu erreichen - was nicht immer möglich ist:&lt;br /&gt;
&lt;br /&gt;
Fall A:&lt;br /&gt;
* Client wird gerade initialisiert &amp;amp; verfügt noch nicht über eine IP-Adresse&lt;br /&gt;
* Angebot wird als Broadcast versandt - erhält aber bereits die MAC-Adresse des Clients, so daß nur dieser die Nachricht lesen darf&lt;br /&gt;
&lt;br /&gt;
Fall B:&lt;br /&gt;
* Client verfügt bereits über eine IP-Adresse - deren Lease-Dauer jedoch zu Ende geht&lt;br /&gt;
* Angebot wird in diesem Fall direkt an die IP-Adresse des Clients gesendet&lt;br /&gt;
&lt;br /&gt;
* Zu diesem Zeitpunkt muß der Server die IP-Adresse noch nicht reservieren, kann dies aber tun.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auswahlphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Der Client wählt die Konfigurationsparameter des zuerst erhaltenen Angebots aus.&lt;br /&gt;
* Senden einer Nachricht &#039;&#039;DHCP-REQUEST&#039;&#039; - Optionsfeld muß den Eintrag &#039;&#039;DHCP Server Identifier&#039;&#039; enthalten - Server, die nicht im &#039;&#039;DHCP-REQUEST&#039;&#039; erwähnt werden, erhalten somit den Hinweis, daß ihr Angebot nicht angenommen wurde&lt;br /&gt;
* angebotene IP-Adresse wird mit der Option &#039;&#039;Requested IP Address&#039;&#039; bestätigt&lt;br /&gt;
* Nachricht wird als Broadcast versendet, um andere DHCP-Server darüber in Kenntnis zu setzen, daß der Client sich entschieden hat und die entsprechenden Server die reservierten Parameter wieder freigeben können &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bestätigungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Antwort des DHCP-Servers mit der Nachricht &#039;&#039;DHCP-ACK&#039;&#039; mit allen Konfigurationsparametern für den Client&lt;br /&gt;
* Sollten in dieser Phase weitere Angebote eintreffen, werden diese vom Client verworfen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Phasen.png|1600px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weitere DHCP-Nachrichtentypen&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-NAK&#039;&#039;:&lt;br /&gt;
* wird während der Bestätigungsphase vom Server an den Client gesendet, um diesen darauf hinzuweisen, daß die im &#039;&#039;DHCP-REQUEST&#039;&#039; angeforderten Konfigurationsparameter abgeleht wurden:&lt;br /&gt;
** wenn ein Client versucht seine bisherige IP-Adresse zu verlängern, diese jedoch nicht mehr verfügbar ist&lt;br /&gt;
** wenn ein Client in ein anderes Subnetz umgezogen &amp;amp; somit die IP-Adresse ungültig ist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-RELEASE&#039;&#039;:&lt;br /&gt;
* Hiermit teilt ein Client dem Server mit, daß er seine IP-Adresse nicht mehr benötigt und der Server die Adresse freigeben und anderweitig vergeben kann&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-DECLINE&#039;&#039;:&lt;br /&gt;
* Der Client kann hierüber den Server in Kenntnis setzen, daß einige Parameter ungültig sind (zum Beispiel seine MAC-Adresse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-INFORM&#039;&#039;:&lt;br /&gt;
* Kann von Clients verwendet werden, denen eine statische IP-Adresse zugewiesen wurde, um weitere dynamische Konfigurationsparameter vom Server anzufordern.&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25490</id>
		<title>IPv4/DHCP</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25490"/>
		<updated>2021-03-24T07:47:13Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: /* Ablauf des DHCP-Verfahrens */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* DHCP kann als Nachfolger vom BOOT-Protokoll verstanden werden, das entwickelt wurde, um Rechner ohne Festplatte in IP-Netzen zu starten und automatisch zu konfigurieren.&lt;br /&gt;
* Veröffentlichung der ersten DHCP-Version Ende 1993 im RFC 1541&lt;br /&gt;
* Ablösung durch neue Version in RFC 2131 im März 1997&lt;br /&gt;
* Erweiterungen von RFC 2131 durch die RFCs 2132, 3396 &amp;amp; 4361&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
* DHCP regelt die dynamische Vergabe von IP-Adressen und kann die Konfiguration von Rechnern unterstützen&lt;br /&gt;
* DHCP funktioniert nach dem Client-Server-Prinzip&lt;br /&gt;
* Benutzer eines Rechners benötigt keine IP-Adresse von einem Administrator - werden vom DHCP-Server zur Verfügung gestellt&lt;br /&gt;
* IP-Konfigurationsparameter für die Clients sind auf dem DHCP-Server gespeichert&lt;br /&gt;
* Vergabe der IP-Adressen erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Implementierung von DHCP-Relays, um DHCP-Nachrichten in andere Subnetze weiterzuleiten, die über keinen DHCP-Server verfügen&lt;br /&gt;
&lt;br /&gt;
Beim Start einer DHCP-Client-Applikation werden vom Server folgende Informationen angefordert:&lt;br /&gt;
&lt;br /&gt;
* Client-IP-Adresse&lt;br /&gt;
* Lease-Dauer&lt;br /&gt;
* Identifikation des DHCP-Servers&lt;br /&gt;
* Subnetzmaske&lt;br /&gt;
* Default-Gateways&lt;br /&gt;
* statische Routen&lt;br /&gt;
* Hostname &amp;amp; Domainname&lt;br /&gt;
* Lokation externer Server (z. Bsp. Time-Server)&lt;br /&gt;
&lt;br /&gt;
== Anforderungen an den DHCP-Server ==&lt;br /&gt;
&lt;br /&gt;
* Ein DHCP-Server muß über einen Bereich gültiger IP-Adressen verfügen.&lt;br /&gt;
* Der Server benötigt eine manuell zugewiesene statische IP-Adresse (Der Server selbst kann kein Client sein).&lt;br /&gt;
* Soll ein Server IP-Adressen für Clients in verschiedenen Subnetzen verteilen, so müssen sämtliche Router zwischen den Subnetzen als DHCP-Relay-Agenten konfiguriert werden. Wird dies von den Routern nicht unterstützt, benötigt jedes Subnetz einen eigenen DHCP-Server.&lt;br /&gt;
* Im Pool der IP-Adressen dürfen keine statischen IP-Adressen enthalten sein, da diese anderenfalls doppelt vergeben würden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ablauf des DHCP-Verfahrens ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Automatische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* IP-Adressen werden automatisch an die MAC-Adressen von neuen DHCP-Clients vergeben &amp;amp; diese Zuordnung in einer Tabelle festgehalten&lt;br /&gt;
* Vergabe der IP-Adresse an den Client erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Zuordnungen sind permanent und werden nicht entfernt - jeder Client erhält somit stets die gleiche IP-Adresse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dynamische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Vergabe erfolgt analog der &#039;&#039;Automatischen Zuweisung&#039;&#039;&lt;br /&gt;
* Zuweisung der IP-Konfiguration jedoch für einen bestimmten Zeitraum (&#039;&#039;Lease&#039;&#039;-Dauer)&lt;br /&gt;
* Verfall der IP-Adresse nach Ablauf der Lease-Dauer - Neuvergabe an anderen Client durch den DHCP-Server möglich&lt;br /&gt;
* Client kann/muß vor Ablauf der &#039;&#039;Lease&#039;&#039;-Dauer eine Verlängerung beantragen&lt;br /&gt;
* erlaubt, als einzige Zuweisungsmethode die Wiederverwendung von IP-Adressen, wenn der Client diese nicht mehr benötigt&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manuelle Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* DHCP-Server führt eine Zuweisungstabelle: feste Zuordnung von MAC-Adresse zu IP-Adresse (statisches DHCP)&lt;br /&gt;
* Client erhält immer die gleiche IP-Adresse&lt;br /&gt;
* nur Rechner mit bekannten &amp;amp; registrierten MAC-Adressen erhalten eine IP-Adresse&lt;br /&gt;
* sinnvoll bei Servern, die stets unter der gleichen IP-Adresse erreichbar sein sollen&lt;br /&gt;
&lt;br /&gt;
= DHCP_Nachrichten =&lt;br /&gt;
&lt;br /&gt;
* Austausch von festgelegten DHCP-Nachrichten zwischen Server &amp;amp; Client&lt;br /&gt;
* Übermittlung durch das verbindungslose Transportprotokoll UDP (Server-Port: 67 &amp;amp; Client-Port: 68)&lt;br /&gt;
* Der DHCP-Client stellt einen Anwendungsprozess auf einem Rechner dar &amp;amp; ist auf dem Well-Known-Port 68 erreichbar&lt;br /&gt;
* Der DHCP-Server läuft als Anwendungsprozess auf einem dedizierten Rechner &amp;amp; ist auf dem Well-Known-Port 67 zu erreichen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufbau von DHCP-Nachrichten ==&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Paket.png|400px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Feld !! Länge [Byte] !! Bedeutung !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| op || 1 || Operation || gibt an, ob es sich um eine Anfrage oder Antwort handelt&lt;br /&gt;
|-&lt;br /&gt;
| htype || 1 || Netztyp || Angabe des Netztyps gemäß RFC 1340 (z. Bsp. 6 = 802.x-LAN)&lt;br /&gt;
|-&lt;br /&gt;
| hlen || 1 || Länge der Hardware-Adresse || physikalische Netzadresse (z. Bsp. 6 = MAC-Adresse)&lt;br /&gt;
|-&lt;br /&gt;
| hops || 1 || Anzahl der Hops || Anzahl von Routern mit DHCP-Relay-Funktion auf dem Weg zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| xid || 4 || Transaktions-ID || Identifikationsnummer für die Transaktion zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| secs || 2 || Sekunden || von Seiten des Clients, die Zeit seit Beginn des Vorgangs&lt;br /&gt;
|-&lt;br /&gt;
| flags || 2 || Flags || nur das höchstwertige Bit wird verwendet, um anzuzeigen, ob der Client noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| ciaddr || 4 || Client-IP-Adresse || wird vom Client angegeben, falls dieser noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| yiaddr || 4 || Your-IP-Adresse || IP-Adresse, die der Server dem Client zugewiesen hat&lt;br /&gt;
|-&lt;br /&gt;
| siaddr || 4 || Server-IP-Adresse || IP-Adresse des DHCP-Servers&lt;br /&gt;
|-&lt;br /&gt;
| giaddr || 4 || || IP-Adresse des Routers mit DHCP-Relay-Funktion&lt;br /&gt;
|-&lt;br /&gt;
| chaddr || 16 || Client-Hardware-Adresse || Client-Mac-Adresse&lt;br /&gt;
|-&lt;br /&gt;
| sname || 64 || Server-Name || &lt;br /&gt;
|-&lt;br /&gt;
| file || 128 || File / Datei || &lt;br /&gt;
|-&lt;br /&gt;
| options || bis 312 || Optionen || zusätzliche Konfigurationsparameter - DHCP-Optionen nach RFC 2132&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ablauf der Kommunikation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WireShark-DHCP-Phasen.png|1000px|none]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anforderungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Client sendet die Nachricht &#039;&#039;DHCP-DISCOVER&#039;&#039; mit einem Broadcast (Ziel-IP: 255.255.255.255)&lt;br /&gt;
* Anforderung der benötigten Konfigurationsparameter - IP-Adresse, Subnetzmaske etc.&lt;br /&gt;
* Angabe der MAC-Adresse des Clients (&#039;&#039;chaddr&#039;&#039;) zwingend erforderlich&lt;br /&gt;
* Nachricht ist normalerweise auf das eigene Subnetz beschränkt - kann aber durch DHCP-Relay-Agenten in andere Subnetze weitergeleitet werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Angebotsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Mit der Nachricht &#039;&#039;DHCP-OFFER&#039;&#039; läßt der DHCP-Server dem Client ein Angebot zukommen.&lt;br /&gt;
* Der Server versucht dabei, den Client direkt zu erreichen - was nicht immer möglich ist:&lt;br /&gt;
&lt;br /&gt;
Fall A:&lt;br /&gt;
* Client wird gerade initialisiert &amp;amp; verfügt noch nicht über eine IP-Adresse&lt;br /&gt;
* Angebot wird als Broadcast versandt - erhält aber bereits die MAC-Adresse des Clients, so daß nur dieser die Nachricht lesen darf&lt;br /&gt;
&lt;br /&gt;
Fall B:&lt;br /&gt;
* Client verfügt bereits über eine IP-Adresse - deren Lease-Dauer jedoch zu Ende geht&lt;br /&gt;
* Angebot wird in diesem Fall direkt an die IP-Adresse des Clients gesendet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auswahlphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Der Client wählt die Konfigurationsparameter des zuerst erhaltenen Angebots aus.&lt;br /&gt;
* Senden einer Nachricht &#039;&#039;DHCP-REQUEST&#039;&#039; an den ausgewählten DHCP-Server (&#039;&#039;sname&#039;&#039;)&lt;br /&gt;
* angebotene IP-Adresse kann mit der Option &#039;&#039;Requested IP Address&#039;&#039; bestätigt werden&lt;br /&gt;
* Nachricht wird als Broadcast versendet, um andere DHCP-Server darüber in Kenntnis zu setzen, daß der Client sich entschieden hat und die entsprechenden Server die reservierten Parameter wieder freigeben können &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bestätigungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Antwort des DHCP-Servers mit der Nachricht &#039;&#039;DHCP-ACK&#039;&#039; mit allen Konfigurationsparametern für den Client&lt;br /&gt;
* Sollten in dieser Phase weitere Angebote eintreffen, werden diese vom Client verworfen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Phasen.png|1600px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weitere DHCP-Nachrichtentypen&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-NAK&#039;&#039;:&lt;br /&gt;
* wird während der Bestätigungsphase vom Server an den Client gesendet, um diesen darauf hinzuweisen, daß die im &#039;&#039;DHCP-REQUEST&#039;&#039; angeforderten Konfigurationsparameter abgeleht wurden:&lt;br /&gt;
** wenn ein Client versucht seine bisherige IP-Adresse zu verlängern, diese jedoch nicht mehr verfügbar ist&lt;br /&gt;
** wenn ein Client in ein anderes Subnetz umgezogen &amp;amp; somit die IP-Adresse ungültig ist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-RELEASE&#039;&#039;:&lt;br /&gt;
* Hiermit teilt ein Client dem Server mit, daß er seine IP-Adresse nicht mehr benötigt und der Server die Adresse freigeben und anderweitig vergeben kann&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-DECLINE&#039;&#039;:&lt;br /&gt;
* Der Client kann hierüber den Server in Kenntnis setzen, daß einige Parameter ungültig sind (zum Beispiel seine MAC-Adresse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-INFORM&#039;&#039;:&lt;br /&gt;
* Kann von Clients verwendet werden, denen eine statische IP-Adresse zugewiesen wurde, um weitere dynamische Konfigurationsparameter vom Server anzufordern.&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25487</id>
		<title>IPv4/DHCP</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25487"/>
		<updated>2021-03-23T22:43:19Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* DHCP kann als Nachfolger vom BOOT-Protokoll verstanden werden, das entwickelt wurde, um Rechner ohne Festplatte in IP-Netzen zu starten und automatisch zu konfigurieren.&lt;br /&gt;
* Veröffentlichung der ersten DHCP-Version Ende 1993 im RFC 1541&lt;br /&gt;
* Ablösung durch neue Version in RFC 2131 im März 1997&lt;br /&gt;
* Erweiterungen von RFC 2131 durch die RFCs 2132, 3396 &amp;amp; 4361&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
* DHCP regelt die dynamische Vergabe von IP-Adressen und kann die Konfiguration von Rechnern unterstützen&lt;br /&gt;
* DHCP funktioniert nach dem Client-Server-Prinzip&lt;br /&gt;
* Benutzer eines Rechners benötigt keine IP-Adresse von einem Administrator - werden vom DHCP-Server zur Verfügung gestellt&lt;br /&gt;
* IP-Konfigurationsparameter für die Clients sind auf dem DHCP-Server gespeichert&lt;br /&gt;
* Vergabe der IP-Adressen erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Implementierung von DHCP-Relays, um DHCP-Nachrichten in andere Subnetze weiterzuleiten, die über keinen DHCP-Server verfügen&lt;br /&gt;
&lt;br /&gt;
Beim Start einer DHCP-Client-Applikation werden vom Server folgende Informationen angefordert:&lt;br /&gt;
&lt;br /&gt;
* Client-IP-Adresse&lt;br /&gt;
* Lease-Dauer&lt;br /&gt;
* Identifikation des DHCP-Servers&lt;br /&gt;
* Subnetzmaske&lt;br /&gt;
* Default-Gateways&lt;br /&gt;
* statische Routen&lt;br /&gt;
* Hostname &amp;amp; Domainname&lt;br /&gt;
* Lokation externer Server (z. Bsp. Time-Server)&lt;br /&gt;
&lt;br /&gt;
== Anforderungen an den DHCP-Server ==&lt;br /&gt;
&lt;br /&gt;
* Ein DHCP-Server muß über einen Bereich gültiger IP-Adressen verfügen.&lt;br /&gt;
* Der Server benötigt eine manuell zugewiesene statische IP-Adresse (Der Server selbst kann kein Client sein).&lt;br /&gt;
* Soll ein Server IP-Adressen für Clients in verschiedenen Subnetzen verteilen, so müssen sämtliche Router zwischen den Subnetzen als DHCP-Relay-Agenten konfiguriert werden. Wird dies von den Routern nicht unterstützt, benötigt jedes Subnetz einen eigenen DHCP-Server.&lt;br /&gt;
* Im Pool der IP-Adressen dürfen keine statischen IP-Adressen enthalten sein, da diese anderenfalls doppelt vergeben würden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ablauf des DHCP-Verfahrens ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Automatische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* IP-Adressen werden automatisch an die MAC-Adressen von neuen DHCP-Clients vergeben &amp;amp; diese Zuordnung in einer Tabelle festgehalten&lt;br /&gt;
* Vergabe der IP-Adresse an den Client erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Zuordnungen sind permanent und werden nicht entfernt - jeder Client erhält somit stets die gleiche IP-Adresse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dynamische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Vergabe erfolgt analog der &#039;&#039;Automatischen Zuweisung&#039;&#039;&lt;br /&gt;
* Zuweisung der IP-Konfiguration jedoch für einen bestimmten Zeitraum (&#039;&#039;Lease&#039;&#039;-Dauer)&lt;br /&gt;
* Verfall der IP-Adresse nach Ablauf der Lease-Dauer - Neuvergabe an anderen Client durch den DHCP-Server möglich&lt;br /&gt;
* Client kann/muß vor Ablauf der &#039;&#039;Lease&#039;&#039;-Dauer eine Verlängerung beantragen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manuelle Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* DHCP-Server führt eine Zuweisungstabelle: feste Zuordnung von MAC-Adresse zu IP-Adresse (statisches DHCP)&lt;br /&gt;
* Client erhält immer die gleiche IP-Adresse&lt;br /&gt;
* nur Rechner mit bekannten &amp;amp; registrierten MAC-Adressen erhalten eine IP-Adresse&lt;br /&gt;
* sinnvoll bei Servern, die stets unter der gleichen IP-Adresse erreichbar sein sollen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= DHCP_Nachrichten =&lt;br /&gt;
&lt;br /&gt;
* Austausch von festgelegten DHCP-Nachrichten zwischen Server &amp;amp; Client&lt;br /&gt;
* Übermittlung durch das verbindungslose Transportprotokoll UDP (Server-Port: 67 &amp;amp; Client-Port: 68)&lt;br /&gt;
* Der DHCP-Client stellt einen Anwendungsprozess auf einem Rechner dar &amp;amp; ist auf dem Well-Known-Port 68 erreichbar&lt;br /&gt;
* Der DHCP-Server läuft als Anwendungsprozess auf einem dedizierten Rechner &amp;amp; ist auf dem Well-Known-Port 67 zu erreichen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufbau von DHCP-Nachrichten ==&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Paket.png|400px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Feld !! Länge [Byte] !! Bedeutung !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| op || 1 || Operation || gibt an, ob es sich um eine Anfrage oder Antwort handelt&lt;br /&gt;
|-&lt;br /&gt;
| htype || 1 || Netztyp || Angabe des Netztyps gemäß RFC 1340 (z. Bsp. 6 = 802.x-LAN)&lt;br /&gt;
|-&lt;br /&gt;
| hlen || 1 || Länge der Hardware-Adresse || physikalische Netzadresse (z. Bsp. 6 = MAC-Adresse)&lt;br /&gt;
|-&lt;br /&gt;
| hops || 1 || Anzahl der Hops || Anzahl von Routern mit DHCP-Relay-Funktion auf dem Weg zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| xid || 4 || Transaktions-ID || Identifikationsnummer für die Transaktion zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| secs || 2 || Sekunden || von Seiten des Clients, die Zeit seit Beginn des Vorgangs&lt;br /&gt;
|-&lt;br /&gt;
| flags || 2 || Flags || nur das höchstwertige Bit wird verwendet, um anzuzeigen, ob der Client noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| ciaddr || 4 || Client-IP-Adresse || wird vom Client angegeben, falls dieser noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| yiaddr || 4 || Your-IP-Adresse || IP-Adresse, die der Server dem Client zugewiesen hat&lt;br /&gt;
|-&lt;br /&gt;
| siaddr || 4 || Server-IP-Adresse || IP-Adresse des DHCP-Servers&lt;br /&gt;
|-&lt;br /&gt;
| giaddr || 4 || || IP-Adresse des Routers mit DHCP-Relay-Funktion&lt;br /&gt;
|-&lt;br /&gt;
| chaddr || 16 || Client-Hardware-Adresse || Client-Mac-Adresse&lt;br /&gt;
|-&lt;br /&gt;
| sname || 64 || Server-Name || &lt;br /&gt;
|-&lt;br /&gt;
| file || 128 || File / Datei || &lt;br /&gt;
|-&lt;br /&gt;
| options || bis 312 || Optionen || zusätzliche Konfigurationsparameter - DHCP-Optionen nach RFC 2132&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ablauf der Kommunikation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WireShark-DHCP-Phasen.png|1000px|none]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anforderungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Client sendet die Nachricht &#039;&#039;DHCP-DISCOVER&#039;&#039; mit einem Broadcast (Ziel-IP: 255.255.255.255)&lt;br /&gt;
* Anforderung der benötigten Konfigurationsparameter - IP-Adresse, Subnetzmaske etc.&lt;br /&gt;
* Angabe der MAC-Adresse des Clients (&#039;&#039;chaddr&#039;&#039;) zwingend erforderlich&lt;br /&gt;
* Nachricht ist normalerweise auf das eigene Subnetz beschränkt - kann aber durch DHCP-Relay-Agenten in andere Subnetze weitergeleitet werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Angebotsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Mit der Nachricht &#039;&#039;DHCP-OFFER&#039;&#039; läßt der DHCP-Server dem Client ein Angebot zukommen.&lt;br /&gt;
* Der Server versucht dabei, den Client direkt zu erreichen - was nicht immer möglich ist:&lt;br /&gt;
&lt;br /&gt;
Fall A:&lt;br /&gt;
* Client wird gerade initialisiert &amp;amp; verfügt noch nicht über eine IP-Adresse&lt;br /&gt;
* Angebot wird als Broadcast versandt - erhält aber bereits die MAC-Adresse des Clients, so daß nur dieser die Nachricht lesen darf&lt;br /&gt;
&lt;br /&gt;
Fall B:&lt;br /&gt;
* Client verfügt bereits über eine IP-Adresse - deren Lease-Dauer jedoch zu Ende geht&lt;br /&gt;
* Angebot wird in diesem Fall direkt an die IP-Adresse des Clients gesendet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auswahlphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Der Client wählt die Konfigurationsparameter des zuerst erhaltenen Angebots aus.&lt;br /&gt;
* Senden einer Nachricht &#039;&#039;DHCP-REQUEST&#039;&#039; an den ausgewählten DHCP-Server (&#039;&#039;sname&#039;&#039;)&lt;br /&gt;
* angebotene IP-Adresse kann mit der Option &#039;&#039;Requested IP Address&#039;&#039; bestätigt werden&lt;br /&gt;
* Nachricht wird als Broadcast versendet, um andere DHCP-Server darüber in Kenntnis zu setzen, daß der Client sich entschieden hat und die entsprechenden Server die reservierten Parameter wieder freigeben können &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bestätigungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Antwort des DHCP-Servers mit der Nachricht &#039;&#039;DHCP-ACK&#039;&#039; mit allen Konfigurationsparametern für den Client&lt;br /&gt;
* Sollten in dieser Phase weitere Angebote eintreffen, werden diese vom Client verworfen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Phasen.png|1600px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weitere DHCP-Nachrichtentypen&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-NAK&#039;&#039;:&lt;br /&gt;
* wird während der Bestätigungsphase vom Server an den Client gesendet, um diesen darauf hinzuweisen, daß die im &#039;&#039;DHCP-REQUEST&#039;&#039; angeforderten Konfigurationsparameter abgeleht wurden:&lt;br /&gt;
** wenn ein Client versucht seine bisherige IP-Adresse zu verlängern, diese jedoch nicht mehr verfügbar ist&lt;br /&gt;
** wenn ein Client in ein anderes Subnetz umgezogen &amp;amp; somit die IP-Adresse ungültig ist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-RELEASE&#039;&#039;:&lt;br /&gt;
* Hiermit teilt ein Client dem Server mit, daß er seine IP-Adresse nicht mehr benötigt und der Server die Adresse freigeben und anderweitig vergeben kann&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-DECLINE&#039;&#039;:&lt;br /&gt;
* Der Client kann hierüber den Server in Kenntnis setzen, daß einige Parameter ungültig sind (zum Beispiel seine MAC-Adresse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-INFORM&#039;&#039;:&lt;br /&gt;
* Kann von Clients verwendet werden, denen eine statische IP-Adresse zugewiesen wurde, um weitere dynamische Konfigurationsparameter vom Server anzufordern.&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Datei:DHCP-Paket.png&amp;diff=25486</id>
		<title>Datei:DHCP-Paket.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Datei:DHCP-Paket.png&amp;diff=25486"/>
		<updated>2021-03-23T22:42:18Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: Datei hochgeladen mit MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Datei hochgeladen mit MsUpload&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25485</id>
		<title>IPv4/DHCP</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25485"/>
		<updated>2021-03-23T22:41:08Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: /* Ablauf der Kommunikation */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* DHCP kann als Nachfolger vom BOOT-Protokoll verstanden werden, das entwickelt wurde, um Rechner ohne Festplatte in IP-Netzen zu starten und automatisch zu konfigurieren.&lt;br /&gt;
* Veröffentlichung der ersten DHCP-Version Ende 1993 im RFC 1541&lt;br /&gt;
* Ablösung durch neue Version in RFC 2131 im März 1997&lt;br /&gt;
* Erweiterungen von RFC 2131 durch die RFCs 2132, 3396 &amp;amp; 4361&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
* DHCP regelt die dynamische Vergabe von IP-Adressen und kann die Konfiguration von Rechnern unterstützen&lt;br /&gt;
* DHCP funktioniert nach dem Client-Server-Prinzip&lt;br /&gt;
* Benutzer eines Rechners benötigt keine IP-Adresse von einem Administrator - werden vom DHCP-Server zur Verfügung gestellt&lt;br /&gt;
* IP-Konfigurationsparameter für die Clients sind auf dem DHCP-Server gespeichert&lt;br /&gt;
* Vergabe der IP-Adressen erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Implementierung von DHCP-Relays, um DHCP-Nachrichten in andere Subnetze weiterzuleiten, die über keinen DHCP-Server verfügen&lt;br /&gt;
&lt;br /&gt;
Beim Start einer DHCP-Client-Applikation werden vom Server folgende Informationen angefordert:&lt;br /&gt;
&lt;br /&gt;
* Client-IP-Adresse&lt;br /&gt;
* Lease-Dauer&lt;br /&gt;
* Identifikation des DHCP-Servers&lt;br /&gt;
* Subnetzmaske&lt;br /&gt;
* Default-Gateways&lt;br /&gt;
* statische Routen&lt;br /&gt;
* Hostname &amp;amp; Domainname&lt;br /&gt;
* Lokation externer Server (z. Bsp. Time-Server)&lt;br /&gt;
&lt;br /&gt;
== Anforderungen an den DHCP-Server ==&lt;br /&gt;
&lt;br /&gt;
* Ein DHCP-Server muß über einen Bereich gültiger IP-Adressen verfügen.&lt;br /&gt;
* Der Server benötigt eine manuell zugewiesene statische IP-Adresse (Der Server selbst kann kein Client sein).&lt;br /&gt;
* Soll ein Server IP-Adressen für Clients in verschiedenen Subnetzen verteilen, so müssen sämtliche Router zwischen den Subnetzen als DHCP-Relay-Agenten konfiguriert werden. Wird dies von den Routern nicht unterstützt, benötigt jedes Subnetz einen eigenen DHCP-Server.&lt;br /&gt;
* Im Pool der IP-Adressen dürfen keine statischen IP-Adressen enthalten sein, da diese anderenfalls doppelt vergeben würden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ablauf des DHCP-Verfahrens ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Automatische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* IP-Adressen werden automatisch an die MAC-Adressen von neuen DHCP-Clients vergeben &amp;amp; diese Zuordnung in einer Tabelle festgehalten&lt;br /&gt;
* Vergabe der IP-Adresse an den Client erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Zuordnungen sind permanent und werden nicht entfernt - jeder Client erhält somit stets die gleiche IP-Adresse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dynamische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Vergabe erfolgt analog der &#039;&#039;Automatischen Zuweisung&#039;&#039;&lt;br /&gt;
* Zuweisung der IP-Konfiguration jedoch für einen bestimmten Zeitraum (&#039;&#039;Lease&#039;&#039;-Dauer)&lt;br /&gt;
* Verfall der IP-Adresse nach Ablauf der Lease-Dauer - Neuvergabe an anderen Client durch den DHCP-Server möglich&lt;br /&gt;
* Client kann/muß vor Ablauf der &#039;&#039;Lease&#039;&#039;-Dauer eine Verlängerung beantragen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manuelle Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* DHCP-Server führt eine Zuweisungstabelle: feste Zuordnung von MAC-Adresse zu IP-Adresse (statisches DHCP)&lt;br /&gt;
* Client erhält immer die gleiche IP-Adresse&lt;br /&gt;
* nur Rechner mit bekannten &amp;amp; registrierten MAC-Adressen erhalten eine IP-Adresse&lt;br /&gt;
* sinnvoll bei Servern, die stets unter der gleichen IP-Adresse erreichbar sein sollen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= DHCP_Nachrichten =&lt;br /&gt;
&lt;br /&gt;
* Austausch von festgelegten DHCP-Nachrichten zwischen Server &amp;amp; Client&lt;br /&gt;
* Übermittlung durch das verbindungslose Transportprotokoll UDP (Server-Port: 67 &amp;amp; Client-Port: 68)&lt;br /&gt;
* Der DHCP-Client stellt einen Anwendungsprozess auf einem Rechner dar &amp;amp; ist auf dem Well-Known-Port 68 erreichbar&lt;br /&gt;
* Der DHCP-Server läuft als Anwendungsprozess auf einem dedizierten Rechner &amp;amp; ist auf dem Well-Known-Port 67 zu erreichen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufbau von DHCP-Nachrichten ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Feld !! Länge [Byte] !! Bedeutung !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| op || 1 || Operation || gibt an, ob es sich um eine Anfrage oder Antwort handelt&lt;br /&gt;
|-&lt;br /&gt;
| htype || 1 || Netztyp || Angabe des Netztyps gemäß RFC 1340 (z. Bsp. 6 = 802.x-LAN)&lt;br /&gt;
|-&lt;br /&gt;
| hlen || 1 || Länge der Hardware-Adresse || physikalische Netzadresse (z. Bsp. 6 = MAC-Adresse)&lt;br /&gt;
|-&lt;br /&gt;
| hops || 1 || Anzahl der Hops || Anzahl von Routern mit DHCP-Relay-Funktion auf dem Weg zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| xid || 4 || Transaktions-ID || Identifikationsnummer für die Transaktion zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| secs || 2 || Sekunden || von Seiten des Clients, die Zeit seit Beginn des Vorgangs&lt;br /&gt;
|-&lt;br /&gt;
| flags || 2 || Flags || nur das höchstwertige Bit wird verwendet, um anzuzeigen, ob der Client noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| ciaddr || 4 || Client-IP-Adresse || wird vom Client angegeben, falls dieser noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| yiaddr || 4 || Your-IP-Adresse || IP-Adresse, die der Server dem Client zugewiesen hat&lt;br /&gt;
|-&lt;br /&gt;
| siaddr || 4 || Server-IP-Adresse || IP-Adresse des DHCP-Servers&lt;br /&gt;
|-&lt;br /&gt;
| giaddr || 4 || || IP-Adresse des Routers mit DHCP-Relay-Funktion&lt;br /&gt;
|-&lt;br /&gt;
| chaddr || 16 || Client-Hardware-Adresse || Client-Mac-Adresse&lt;br /&gt;
|-&lt;br /&gt;
| sname || 64 || Server-Name || &lt;br /&gt;
|-&lt;br /&gt;
| file || 128 || File / Datei || &lt;br /&gt;
|-&lt;br /&gt;
| options || bis 312 || Optionen || zusätzliche Konfigurationsparameter - DHCP-Optionen nach RFC 2132&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ablauf der Kommunikation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WireShark-DHCP-Phasen.png|1000px|none]]&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anforderungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Client sendet die Nachricht &#039;&#039;DHCP-DISCOVER&#039;&#039; mit einem Broadcast (Ziel-IP: 255.255.255.255)&lt;br /&gt;
* Anforderung der benötigten Konfigurationsparameter - IP-Adresse, Subnetzmaske etc.&lt;br /&gt;
* Angabe der MAC-Adresse des Clients (&#039;&#039;chaddr&#039;&#039;) zwingend erforderlich&lt;br /&gt;
* Nachricht ist normalerweise auf das eigene Subnetz beschränkt - kann aber durch DHCP-Relay-Agenten in andere Subnetze weitergeleitet werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Angebotsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Mit der Nachricht &#039;&#039;DHCP-OFFER&#039;&#039; läßt der DHCP-Server dem Client ein Angebot zukommen.&lt;br /&gt;
* Der Server versucht dabei, den Client direkt zu erreichen - was nicht immer möglich ist:&lt;br /&gt;
&lt;br /&gt;
Fall A:&lt;br /&gt;
* Client wird gerade initialisiert &amp;amp; verfügt noch nicht über eine IP-Adresse&lt;br /&gt;
* Angebot wird als Broadcast versandt - erhält aber bereits die MAC-Adresse des Clients, so daß nur dieser die Nachricht lesen darf&lt;br /&gt;
&lt;br /&gt;
Fall B:&lt;br /&gt;
* Client verfügt bereits über eine IP-Adresse - deren Lease-Dauer jedoch zu Ende geht&lt;br /&gt;
* Angebot wird in diesem Fall direkt an die IP-Adresse des Clients gesendet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auswahlphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Der Client wählt die Konfigurationsparameter des zuerst erhaltenen Angebots aus.&lt;br /&gt;
* Senden einer Nachricht &#039;&#039;DHCP-REQUEST&#039;&#039; an den ausgewählten DHCP-Server (&#039;&#039;sname&#039;&#039;)&lt;br /&gt;
* angebotene IP-Adresse kann mit der Option &#039;&#039;Requested IP Address&#039;&#039; bestätigt werden&lt;br /&gt;
* Nachricht wird als Broadcast versendet, um andere DHCP-Server darüber in Kenntnis zu setzen, daß der Client sich entschieden hat und die entsprechenden Server die reservierten Parameter wieder freigeben können &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bestätigungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Antwort des DHCP-Servers mit der Nachricht &#039;&#039;DHCP-ACK&#039;&#039; mit allen Konfigurationsparametern für den Client&lt;br /&gt;
* Sollten in dieser Phase weitere Angebote eintreffen, werden diese vom Client verworfen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:DHCP-Phasen.png|1600px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weitere DHCP-Nachrichtentypen&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-NAK&#039;&#039;:&lt;br /&gt;
* wird während der Bestätigungsphase vom Server an den Client gesendet, um diesen darauf hinzuweisen, daß die im &#039;&#039;DHCP-REQUEST&#039;&#039; angeforderten Konfigurationsparameter abgeleht wurden:&lt;br /&gt;
** wenn ein Client versucht seine bisherige IP-Adresse zu verlängern, diese jedoch nicht mehr verfügbar ist&lt;br /&gt;
** wenn ein Client in ein anderes Subnetz umgezogen &amp;amp; somit die IP-Adresse ungültig ist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-RELEASE&#039;&#039;:&lt;br /&gt;
* Hiermit teilt ein Client dem Server mit, daß er seine IP-Adresse nicht mehr benötigt und der Server die Adresse freigeben und anderweitig vergeben kann&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-DECLINE&#039;&#039;:&lt;br /&gt;
* Der Client kann hierüber den Server in Kenntnis setzen, daß einige Parameter ungültig sind (zum Beispiel seine MAC-Adresse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-INFORM&#039;&#039;:&lt;br /&gt;
* Kann von Clients verwendet werden, denen eine statische IP-Adresse zugewiesen wurde, um weitere dynamische Konfigurationsparameter vom Server anzufordern.&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Datei:DHCP-Phasen.png&amp;diff=25484</id>
		<title>Datei:DHCP-Phasen.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Datei:DHCP-Phasen.png&amp;diff=25484"/>
		<updated>2021-03-23T22:37:56Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: Datei hochgeladen mit MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Datei hochgeladen mit MsUpload&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25483</id>
		<title>IPv4/DHCP</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25483"/>
		<updated>2021-03-23T18:41:16Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* DHCP kann als Nachfolger vom BOOT-Protokoll verstanden werden, das entwickelt wurde, um Rechner ohne Festplatte in IP-Netzen zu starten und automatisch zu konfigurieren.&lt;br /&gt;
* Veröffentlichung der ersten DHCP-Version Ende 1993 im RFC 1541&lt;br /&gt;
* Ablösung durch neue Version in RFC 2131 im März 1997&lt;br /&gt;
* Erweiterungen von RFC 2131 durch die RFCs 2132, 3396 &amp;amp; 4361&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
* DHCP regelt die dynamische Vergabe von IP-Adressen und kann die Konfiguration von Rechnern unterstützen&lt;br /&gt;
* DHCP funktioniert nach dem Client-Server-Prinzip&lt;br /&gt;
* Benutzer eines Rechners benötigt keine IP-Adresse von einem Administrator - werden vom DHCP-Server zur Verfügung gestellt&lt;br /&gt;
* IP-Konfigurationsparameter für die Clients sind auf dem DHCP-Server gespeichert&lt;br /&gt;
* Vergabe der IP-Adressen erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Implementierung von DHCP-Relays, um DHCP-Nachrichten in andere Subnetze weiterzuleiten, die über keinen DHCP-Server verfügen&lt;br /&gt;
&lt;br /&gt;
Beim Start einer DHCP-Client-Applikation werden vom Server folgende Informationen angefordert:&lt;br /&gt;
&lt;br /&gt;
* Client-IP-Adresse&lt;br /&gt;
* Lease-Dauer&lt;br /&gt;
* Identifikation des DHCP-Servers&lt;br /&gt;
* Subnetzmaske&lt;br /&gt;
* Default-Gateways&lt;br /&gt;
* statische Routen&lt;br /&gt;
* Hostname &amp;amp; Domainname&lt;br /&gt;
* Lokation externer Server (z. Bsp. Time-Server)&lt;br /&gt;
&lt;br /&gt;
== Anforderungen an den DHCP-Server ==&lt;br /&gt;
&lt;br /&gt;
* Ein DHCP-Server muß über einen Bereich gültiger IP-Adressen verfügen.&lt;br /&gt;
* Der Server benötigt eine manuell zugewiesene statische IP-Adresse (Der Server selbst kann kein Client sein).&lt;br /&gt;
* Soll ein Server IP-Adressen für Clients in verschiedenen Subnetzen verteilen, so müssen sämtliche Router zwischen den Subnetzen als DHCP-Relay-Agenten konfiguriert werden. Wird dies von den Routern nicht unterstützt, benötigt jedes Subnetz einen eigenen DHCP-Server.&lt;br /&gt;
* Im Pool der IP-Adressen dürfen keine statischen IP-Adressen enthalten sein, da diese anderenfalls doppelt vergeben würden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ablauf des DHCP-Verfahrens ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Automatische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* IP-Adressen werden automatisch an die MAC-Adressen von neuen DHCP-Clients vergeben &amp;amp; diese Zuordnung in einer Tabelle festgehalten&lt;br /&gt;
* Vergabe der IP-Adresse an den Client erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Zuordnungen sind permanent und werden nicht entfernt - jeder Client erhält somit stets die gleiche IP-Adresse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dynamische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Vergabe erfolgt analog der &#039;&#039;Automatischen Zuweisung&#039;&#039;&lt;br /&gt;
* Zuweisung der IP-Konfiguration jedoch für einen bestimmten Zeitraum (&#039;&#039;Lease&#039;&#039;-Dauer)&lt;br /&gt;
* Verfall der IP-Adresse nach Ablauf der Lease-Dauer - Neuvergabe an anderen Client durch den DHCP-Server möglich&lt;br /&gt;
* Client kann/muß vor Ablauf der &#039;&#039;Lease&#039;&#039;-Dauer eine Verlängerung beantragen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manuelle Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* DHCP-Server führt eine Zuweisungstabelle: feste Zuordnung von MAC-Adresse zu IP-Adresse (statisches DHCP)&lt;br /&gt;
* Client erhält immer die gleiche IP-Adresse&lt;br /&gt;
* nur Rechner mit bekannten &amp;amp; registrierten MAC-Adressen erhalten eine IP-Adresse&lt;br /&gt;
* sinnvoll bei Servern, die stets unter der gleichen IP-Adresse erreichbar sein sollen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= DHCP_Nachrichten =&lt;br /&gt;
&lt;br /&gt;
* Austausch von festgelegten DHCP-Nachrichten zwischen Server &amp;amp; Client&lt;br /&gt;
* Übermittlung durch das verbindungslose Transportprotokoll UDP (Server-Port: 67 &amp;amp; Client-Port: 68)&lt;br /&gt;
* Der DHCP-Client stellt einen Anwendungsprozess auf einem Rechner dar &amp;amp; ist auf dem Well-Known-Port 68 erreichbar&lt;br /&gt;
* Der DHCP-Server läuft als Anwendungsprozess auf einem dedizierten Rechner &amp;amp; ist auf dem Well-Known-Port 67 zu erreichen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufbau von DHCP-Nachrichten ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Feld !! Länge [Byte] !! Bedeutung !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| op || 1 || Operation || gibt an, ob es sich um eine Anfrage oder Antwort handelt&lt;br /&gt;
|-&lt;br /&gt;
| htype || 1 || Netztyp || Angabe des Netztyps gemäß RFC 1340 (z. Bsp. 6 = 802.x-LAN)&lt;br /&gt;
|-&lt;br /&gt;
| hlen || 1 || Länge der Hardware-Adresse || physikalische Netzadresse (z. Bsp. 6 = MAC-Adresse)&lt;br /&gt;
|-&lt;br /&gt;
| hops || 1 || Anzahl der Hops || Anzahl von Routern mit DHCP-Relay-Funktion auf dem Weg zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| xid || 4 || Transaktions-ID || Identifikationsnummer für die Transaktion zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| secs || 2 || Sekunden || von Seiten des Clients, die Zeit seit Beginn des Vorgangs&lt;br /&gt;
|-&lt;br /&gt;
| flags || 2 || Flags || nur das höchstwertige Bit wird verwendet, um anzuzeigen, ob der Client noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| ciaddr || 4 || Client-IP-Adresse || wird vom Client angegeben, falls dieser noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| yiaddr || 4 || Your-IP-Adresse || IP-Adresse, die der Server dem Client zugewiesen hat&lt;br /&gt;
|-&lt;br /&gt;
| siaddr || 4 || Server-IP-Adresse || IP-Adresse des DHCP-Servers&lt;br /&gt;
|-&lt;br /&gt;
| giaddr || 4 || || IP-Adresse des Routers mit DHCP-Relay-Funktion&lt;br /&gt;
|-&lt;br /&gt;
| chaddr || 16 || Client-Hardware-Adresse || Client-Mac-Adresse&lt;br /&gt;
|-&lt;br /&gt;
| sname || 64 || Server-Name || &lt;br /&gt;
|-&lt;br /&gt;
| file || 128 || File / Datei || &lt;br /&gt;
|-&lt;br /&gt;
| options || bis 312 || Optionen || zusätzliche Konfigurationsparameter - DHCP-Optionen nach RFC 2132&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ablauf der Kommunikation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anforderungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Client sendet die Nachricht &#039;&#039;DHCP-DISCOVER&#039;&#039; mit einem Broadcast (Ziel-IP: 255.255.255.255)&lt;br /&gt;
* Anforderung der benötigten Konfigurationsparameter - IP-Adresse, Subnetzmaske etc.&lt;br /&gt;
* Angabe der MAC-Adresse des Clients (&#039;&#039;chaddr&#039;&#039;) zwingend erforderlich&lt;br /&gt;
* Nachricht ist normalerweise auf das eigene Subnetz beschränkt - kann aber durch DHCP-Relay-Agenten in andere Subnetze weitergeleitet werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Angebotsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Mit der Nachricht &#039;&#039;DHCP-OFFER&#039;&#039; läßt der DHCP-Server dem Client ein Angebot zukommen.&lt;br /&gt;
* Der Server versucht dabei, den Client direkt zu erreichen - was nicht immer möglich ist:&lt;br /&gt;
&lt;br /&gt;
Fall A:&lt;br /&gt;
* Client wird gerade initialisiert &amp;amp; verfügt noch nicht über eine IP-Adresse&lt;br /&gt;
* Angebot wird als Broadcast versandt - erhält aber bereits die MAC-Adresse des Clients, so daß nur dieser die Nachricht lesen darf&lt;br /&gt;
&lt;br /&gt;
Fall B:&lt;br /&gt;
* Client verfügt bereits über eine IP-Adresse - deren Lease-Dauer jedoch zu Ende geht&lt;br /&gt;
* Angebot wird in diesem Fall direkt an die IP-Adresse des Clients gesendet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auswahlphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Der Client wählt die Konfigurationsparameter des zuerst erhaltenen Angebots aus.&lt;br /&gt;
* Senden einer Nachricht &#039;&#039;DHCP-REQUEST&#039;&#039; an den ausgewählten DHCP-Server (&#039;&#039;sname&#039;&#039;)&lt;br /&gt;
* angebotene IP-Adresse kann mit der Option &#039;&#039;Requested IP Address&#039;&#039; bestätigt werden&lt;br /&gt;
* Nachricht wird als Broadcast versendet, um andere DHCP-Server darüber in Kenntnis zu setzen, daß der Client sich entschieden hat und die entsprechenden Server die reservierten Parameter wieder freigeben können &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bestätigungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Antwort des DHCP-Servers mit der Nachricht &#039;&#039;DHCP-ACK&#039;&#039; mit allen Konfigurationsparametern für den Client&lt;br /&gt;
* Sollten in dieser Phase weitere Angebote eintreffen, werden diese vom Client verworfen.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:WireShark-DHCP-Phasen.png|1000px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weitere DHCP-Nachrichtentypen&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-NAK&#039;&#039;:&lt;br /&gt;
* wird während der Bestätigungsphase vom Server an den Client gesendet, um diesen darauf hinzuweisen, daß die im &#039;&#039;DHCP-REQUEST&#039;&#039; angeforderten Konfigurationsparameter abgeleht wurden:&lt;br /&gt;
** wenn ein Client versucht seine bisherige IP-Adresse zu verlängern, diese jedoch nicht mehr verfügbar ist&lt;br /&gt;
** wenn ein Client in ein anderes Subnetz umgezogen &amp;amp; somit die IP-Adresse ungültig ist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-RELEASE&#039;&#039;:&lt;br /&gt;
* Hiermit teilt ein Client dem Server mit, daß er seine IP-Adresse nicht mehr benötigt und der Server die Adresse freigeben und anderweitig vergeben kann&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-DECLINE&#039;&#039;:&lt;br /&gt;
* Der Client kann hierüber den Server in Kenntnis setzen, daß einige Parameter ungültig sind (zum Beispiel seine MAC-Adresse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-INFORM&#039;&#039;:&lt;br /&gt;
* Kann von Clients verwendet werden, denen eine statische IP-Adresse zugewiesen wurde, um weitere dynamische Konfigurationsparameter vom Server anzufordern.&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Datei:WireShark-DHCP-Phasen.png&amp;diff=25482</id>
		<title>Datei:WireShark-DHCP-Phasen.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Datei:WireShark-DHCP-Phasen.png&amp;diff=25482"/>
		<updated>2021-03-23T18:33:31Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: Datei hochgeladen mit MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Datei hochgeladen mit MsUpload&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25449</id>
		<title>IPv4/DHCP</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25449"/>
		<updated>2021-03-23T11:44:11Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* DHCP kann als Nachfolger vom BOOT-Protokoll verstanden werden, das entwickelt wurde, um Rechner ohne Festplatte in IP-Netzen zu starten und automatisch zu konfigurieren&lt;br /&gt;
* Veröffentlichung der ersten DHCP-Version Ende 1993 im RFC 1541&lt;br /&gt;
* Ablösung durch neue Version in RFC 2131 im März 1997&lt;br /&gt;
* Erweiterungen von RFC 2131 durch die RFCs 2132, 3396 &amp;amp; 4361&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
* DHCP regelt die dynamische Vergabe von IP-Adressen und kann die Konfiguration von Rechnern unterstützen&lt;br /&gt;
* DHCP funktioniert nach dem Client-Server-Prinzip&lt;br /&gt;
* Benutzer eines Rechners benötigt keine IP-Adresse von einem Administrator - werden vom DHCP-Server zur Verfügung gestellt&lt;br /&gt;
* IP-Konfigurationsparameter für die Clients sind auf dem DHCP-Server gespeichert&lt;br /&gt;
* Vergabe der IP-Adressen erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Implementierung von DHCP-Relays, um DHCP-Nachrichten in andere Subnetze weiterzuleiten, die über keinen DHCP-Server verfügen&lt;br /&gt;
&lt;br /&gt;
Beim Start einer DHCP-Client-Applikation werden vom Server folgende Informationen angefordert:&lt;br /&gt;
&lt;br /&gt;
* Client-IP-Adresse&lt;br /&gt;
* Lease-Dauer&lt;br /&gt;
* Identifikation des DHCP-Servers&lt;br /&gt;
* Subnetzmaske&lt;br /&gt;
* Default-Gateways&lt;br /&gt;
* statische Routen&lt;br /&gt;
* Hostname &amp;amp; Domainname&lt;br /&gt;
* Lokation externer Server (z. Bsp. Time-Server)&lt;br /&gt;
&lt;br /&gt;
== Anforderungen an den DHCP-Server ==&lt;br /&gt;
&lt;br /&gt;
* Ein DHCP-Server muß über einen Bereich gültiger IP-Adressen verfügen.&lt;br /&gt;
* Der Server benötigt eine manuell zugewiesene statische IP-Adresse (Der Server selbst kann kein Client sein).&lt;br /&gt;
* Soll ein Server IP-Adressen für Clients in verschiedenen Subnetzen verteilen, so müssen sämtliche Router zwischen den Subnetzen als DHCP-Relay-Agenten konfiguriert werden. Wird dies von den Routern nicht unterstützt, benötigt jedes Subnetz einen eigenen DHCP-Server.&lt;br /&gt;
* Im Pool der IP-Adressen dürfen keine statischen IP-Adressen enthalten sein, da diese anderenfalls doppelt vergeben würden.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ablauf des DHCP-Verfahrens ==&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Automatische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* IP-Adressen werden automatisch an die MAC-Adressen von neuen DHCP-Clients vergeben &amp;amp; diese Zuordnung in einer Tabelle festgehalten&lt;br /&gt;
* Vergabe der IP-Adresse an den Client erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Zuordnungen sind permanent und werden nicht entfernt - jeder Client erhält somit stets die gleiche IP-Adresse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dynamische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Vergabe erfolgt analog der &#039;&#039;Automatischen Zuweisung&#039;&#039;&lt;br /&gt;
* Zuweisung der IP-Konfiguration jedoch für einen bestimmten Zeitraum (&#039;&#039;Lease&#039;&#039;-Dauer)&lt;br /&gt;
* Verfall der IP-Adresse nach Ablauf der Lease-Dauer - Neuvergabe an anderen Client durch den DHCP-Server möglich&lt;br /&gt;
* Client kann/muß vor Ablauf der &#039;&#039;Lease&#039;&#039;-Dauer eine Verlängerung beantragen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manuelle Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* DHCP-Server führt eine Zuweisungstabelle: feste Zuordnung von MAC-Adresse zu IP-Adresse (statisches DHCP)&lt;br /&gt;
* Client erhält immer die gleiche IP-Adresse&lt;br /&gt;
* nur Rechner mit bekannten &amp;amp; registrierten MAC-Adressen erhalten eine IP-Adresse&lt;br /&gt;
* sinnvoll bei Servern, die stets unter der gleichen IP-Adresse erreichbar sein sollen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= DHCP_Nachrichten =&lt;br /&gt;
&lt;br /&gt;
* Austausch von festgelegten DHCP-Nachrichten zwischen Server &amp;amp; Client&lt;br /&gt;
* Übermittlung durch das verbindungslose Transportprotokoll UDP (Server-Port: 67 &amp;amp; Client-Port: 68)&lt;br /&gt;
* Der DHCP-Client stellt einen Anwendungsprozess auf einem Rechner dar &amp;amp; ist auf dem Well-Known-Port 68 erreichbar&lt;br /&gt;
* Der DHCP-Server läuft als Anwendungsprozess auf einem dedizierten Rechner &amp;amp; ist auf dem Well-Known-Port 67 zu erreichen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufbau von DHCP-Nachrichten ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Feld !! Länge [Byte] !! Bedeutung !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| op || 1 || Operation || gibt an, ob es sich um eine Anfrage oder Antwort handelt&lt;br /&gt;
|-&lt;br /&gt;
| htype || 1 || Netztyp || Angabe des Netztyps gemäß RFC 1340 (z. Bsp. 6 = 802.x-LAN)&lt;br /&gt;
|-&lt;br /&gt;
| hlen || 1 || Länge der Hardware-Adresse || physikalische Netzadresse (z. Bsp. 6 = MAC-Adresse)&lt;br /&gt;
|-&lt;br /&gt;
| hops || 1 || Anzahl der Hops || Anzahl von Routern mit DHCP-Relay-Funktion auf dem Weg zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| xid || 4 || Transaktions-ID || Identifikationsnummer für die Transaktion zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| secs || 2 || Sekunden || von Seiten des Clients, die Zeit seit Beginn des Vorgangs&lt;br /&gt;
|-&lt;br /&gt;
| flags || 2 || Flags || nur das höchstwertige Bit wird verwendet, um anzuzeigen, ob der Client noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| ciaddr || 4 || Client-IP-Adresse || wird vom Client angegeben, falls dieser noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| yiaddr || 4 || Your-IP-Adresse || IP-Adresse, die der Server dem Client zugewiesen hat&lt;br /&gt;
|-&lt;br /&gt;
| siaddr || 4 || Server-IP-Adresse || IP-Adresse des DHCP-Servers&lt;br /&gt;
|-&lt;br /&gt;
| giaddr || 4 || || IP-Adresse des Routers mit DHCP-Relay-Funktion&lt;br /&gt;
|-&lt;br /&gt;
| chaddr || 16 || Client-Hardware-Adresse || Client-Mac-Adresse&lt;br /&gt;
|-&lt;br /&gt;
| sname || 64 || Server-Name || &lt;br /&gt;
|-&lt;br /&gt;
| file || 128 || File / Datei || &lt;br /&gt;
|-&lt;br /&gt;
| options || bis 312 || Optionen || zusätzliche Konfigurationsparameter - DHCP-Optionen nach RFC 2132&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ablauf der Kommunikation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anforderungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Client sendet die Nachricht &#039;&#039;DHCP-DISCOVER&#039;&#039; mit einem Broadcast (Ziel-IP: 255.255.255.255)&lt;br /&gt;
* Anforderung der benötigten Konfigurationsparameter - IP-Adresse, Subnetzmaske etc.&lt;br /&gt;
* Angabe der MAC-Adresse des Clients (&#039;&#039;chaddr&#039;&#039;) zwingend erforderlich&lt;br /&gt;
* Nachricht ist normalerweise auf das eigene Subnetz beschränkt - kann aber durch DHCP-Relay-Agenten in andere Subnetze weitergeleitet werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Angebotsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Mit der Nachricht &#039;&#039;DHCP-OFFER&#039;&#039; läßt der DHCP-Server dem Client ein Angebot zukommen.&lt;br /&gt;
* Der Server versucht dabei, den Client direkt zu erreichen - was nicht immer möglich ist:&lt;br /&gt;
&lt;br /&gt;
Fall A:&lt;br /&gt;
* Client wird gerade initialisiert &amp;amp; verfügt noch nicht über eine IP-Adresse&lt;br /&gt;
* Angebot wird als Broadcast versandt - erhält aber bereits die MAC-Adresse des Clients, so daß nur dieser die Nachricht lesen darf&lt;br /&gt;
&lt;br /&gt;
Fall B:&lt;br /&gt;
* Client verfügt bereits über eine IP-Adresse - deren Lease-Dauer jedoch zu Ende geht&lt;br /&gt;
* Angebot wird in diesem Fall direkt an die IP-Adresse des Clients gesendet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auswahlphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Der Client wählt die Konfigurationsparameter des zuerst erhaltenen Angebots aus.&lt;br /&gt;
* Senden einer Nachricht &#039;&#039;DHCP-REQUEST&#039;&#039; an den ausgewählten DHCP-Server (&#039;&#039;sname&#039;&#039;)&lt;br /&gt;
* angebotene IP-Adresse kann mit der Option &#039;&#039;Requested IP Address&#039;&#039; bestätigt werden&lt;br /&gt;
* Nachricht wird als Broadcast versendet, um andere DHCP-Server darüber in Kenntnis zu setzen, daß der Client sich entschieden hat und die entsprechenden Server die reservierten Parameter wieder freigeben können &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bestätigungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Antwort des DHCP-Servers mit der Nachricht &#039;&#039;DHCP-ACK&#039;&#039; mit allen Konfigurationsparametern für den Client&lt;br /&gt;
* Sollten in dieser Phase weitere Angebote eintreffen, werden diese vom Client verworfen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weitere DHCP-Nachrichtentypen&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-NAK&#039;&#039;:&lt;br /&gt;
* wird während der Bestätigungsphase vom Server an den Client gesendet, um diesen darauf hinzuweisen, daß die im &#039;&#039;DHCP-REQUEST&#039;&#039; angeforderten Konfigurationsparameter abgeleht wurden:&lt;br /&gt;
** wenn ein Client versucht seine bisherige IP-Adresse zu verlängern, diese jedoch nicht mehr verfügbar ist&lt;br /&gt;
** wenn ein Client in ein anderes Subnetz umgezogen &amp;amp; somit die IP-Adresse ungültig ist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-RELEASE&#039;&#039;:&lt;br /&gt;
* Hiermit teilt ein Client dem Server mit, daß er seine IP-Adresse nicht mehr benötigt und der Server die Adresse freigeben und anderweitig vergeben kann&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-DECLINE&#039;&#039;:&lt;br /&gt;
* Der Client kann hierüber den Server in Kenntnis setzen, daß einige Parameter ungültig sind (zum Beispiel seine MAC-Adresse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-INFORM&#039;&#039;:&lt;br /&gt;
* Kann von Clients verwendet werden, denen eine statische IP-Adresse zugewiesen wurde, um weitere dynamische Konfigurationsparameter vom Server anzufordern.&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25444</id>
		<title>IPv4/DHCP</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=IPv4/DHCP&amp;diff=25444"/>
		<updated>2021-03-23T11:28:23Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: Die Seite wurde neu angelegt: „ = Historie =  * DHCP kann als Nachfolger vom BOOT-Protokoll verstanden werden, das entwickelt wurde, um Rechner ohne Festplatte in IP-Netzen zu starten und au…“&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* DHCP kann als Nachfolger vom BOOT-Protokoll verstanden werden, das entwickelt wurde, um Rechner ohne Festplatte in IP-Netzen zu starten und automatisch zu konfigurieren&lt;br /&gt;
* Veröffentlichung der ersten DHCP-Version Ende 1993 im RFC 1541&lt;br /&gt;
* Ablösung durch neue Version in RFC 2131 im März 1997&lt;br /&gt;
* Erweiterungen von RFC 2131 durch die RFCs 2132, 3396 &amp;amp; 4361&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
* DHCP regelt die dynamische Vergabe von IP-Adressen und kann die Konfiguration von Rechnern unterstützen&lt;br /&gt;
* DHCP funktioniert nach dem Client-Server-Prinzip&lt;br /&gt;
* Benutzer eines Rechners benötigt keine IP-Adresse von einem Administrator - werden vom DHCP-Server zur Verfügung gestellt&lt;br /&gt;
* IP-Konfigurationsparameter für die Clients sind auf dem DHCP-Server gespeichert&lt;br /&gt;
* Vergabe der IP-Adressen erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Implementierung von DHCP-Relays, um DHCP-Nachrichten in andere Subnetze weiterzuleiten, die über keinen DHCP-Server verfügen&lt;br /&gt;
&lt;br /&gt;
Beim Start einer DHCP-Client-Applikation werden vom Server folgende Informationen angefordert:&lt;br /&gt;
&lt;br /&gt;
* Client-IP-Adresse&lt;br /&gt;
* Lease-Dauer&lt;br /&gt;
* Identifikation des DHCP-Servers&lt;br /&gt;
* Subnetzmaske&lt;br /&gt;
* Default-Gateways&lt;br /&gt;
* statische Routen&lt;br /&gt;
* Hostname &amp;amp; Domainname&lt;br /&gt;
* Lokation externer Server (z. Bsp. Time-Server)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Automatische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* IP-Adressen werden automatisch an die MAC-Adressen von neuen DHCP-Clients vergeben &amp;amp; diese Zuordnung in einer Tabelle festgehalten&lt;br /&gt;
* Vergabe der IP-Adresse an den Client erfolgt aus einem Pool von IP-Adressen, der vom Server verwaltet wird&lt;br /&gt;
* Zuordnungen sind permanent und werden nicht entfernt - jeder Client erhält somit stets die gleiche IP-Adresse&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Dynamische Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Vergabe erfolgt analog der &#039;&#039;Automatischen Zuweisung&#039;&#039;&lt;br /&gt;
* Zuweisung der IP-Konfiguration jedoch für einen bestimmten Zeitraum (&#039;&#039;Lease&#039;&#039;-Dauer)&lt;br /&gt;
* Verfall der IP-Adresse nach Ablauf der Lease-Dauer - Neuvergabe an anderen Client durch den DHCP-Server möglich&lt;br /&gt;
* Client kann/muß vor Ablauf der &#039;&#039;Lease&#039;&#039;-Dauer eine Verlängerung beantragen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Manuelle Zuweisung&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* DHCP-Server führt eine Zuweisungstabelle: feste Zuordnung von MAC-Adresse zu IP-Adresse (statisches DHCP)&lt;br /&gt;
* Client erhält immer die gleiche IP-Adresse&lt;br /&gt;
* nur Rechner mit bekannten &amp;amp; registrierten MAC-Adressen erhalten eine IP-Adresse&lt;br /&gt;
* sinnvoll bei Servern, die stets unter der gleichen IP-Adresse erreichbar sein sollen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= DHCP_Nachrichten =&lt;br /&gt;
&lt;br /&gt;
* Austausch von festgelegten DHCP-Nachrichten zwischen Server &amp;amp; Client&lt;br /&gt;
* Übermittlung durch das verbindungslose Transportprotokoll UDP (Server-Port: 67 &amp;amp; Client-Port: 68)&lt;br /&gt;
* Der DHCP-Client stellt einen Anwendungsprozess auf einem Rechner dar &amp;amp; ist auf dem Well-Known-Port 68 erreichbar&lt;br /&gt;
* Der DHCP-Server läuft als Anwendungsprozess auf einem dedizierten Rechner &amp;amp; ist auf dem Well-Known-Port 67 zu erreichen&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Aufbau von DHCP-Nachrichten ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable&amp;quot; &lt;br /&gt;
|-&lt;br /&gt;
! Feld !! Länge [Byte] !! Bedeutung !! Beschreibung&lt;br /&gt;
|-&lt;br /&gt;
| op || 1 || Operation || gibt an, ob es sich um eine Anfrage oder Antwort handelt&lt;br /&gt;
|-&lt;br /&gt;
| htype || 1 || Netztyp || Angabe des Netztyps gemäß RFC 1340 (z. Bsp. 6 = 802.x-LAN)&lt;br /&gt;
|-&lt;br /&gt;
| hlen || 1 || Länge der Hardware-Adresse || physikalische Netzadresse (z. Bsp. 6 = MAC-Adresse)&lt;br /&gt;
|-&lt;br /&gt;
| hops || 1 || Anzahl der Hops || Anzahl von Routern mit DHCP-Relay-Funktion auf dem Weg zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| xid || 4 || Transaktions-ID || Identifikationsnummer für die Transaktion zwischen Client &amp;amp; Server&lt;br /&gt;
|-&lt;br /&gt;
| secs || 2 || Sekunden || von Seiten des Clients, die Zeit seit Beginn des Vorgangs&lt;br /&gt;
|-&lt;br /&gt;
| flags || 2 || Flags || nur das höchstwertige Bit wird verwendet, um anzuzeigen, ob der Client noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| ciaddr || 4 || Client-IP-Adresse || wird vom Client angegeben, falls dieser noch über eine IP-Adresse verfügt&lt;br /&gt;
|-&lt;br /&gt;
| yiaddr || 4 || Your-IP-Adresse || IP-Adresse, die der Server dem Client zugewiesen hat&lt;br /&gt;
|-&lt;br /&gt;
| siaddr || 4 || Server-IP-Adresse || IP-Adresse des DHCP-Servers&lt;br /&gt;
|-&lt;br /&gt;
| giaddr || 4 || || IP-Adresse des Routers mit DHCP-Relay-Funktion&lt;br /&gt;
|-&lt;br /&gt;
| chaddr || 16 || Client-Hardware-Adresse || Client-Mac-Adresse&lt;br /&gt;
|-&lt;br /&gt;
| sname || 64 || Server-Name || &lt;br /&gt;
|-&lt;br /&gt;
| file || 128 || File / Datei || &lt;br /&gt;
|-&lt;br /&gt;
| options || bis 312 || Optionen || zusätzliche Konfigurationsparameter - DHCP-Optionen nach RFC 2132&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
== Ablauf der Kommunikation ==&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Anforderungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Client sendet die Nachricht &#039;&#039;DHCP-DISCOVER&#039;&#039; mit einem Broadcast (Ziel-IP: 255.255.255.255)&lt;br /&gt;
* Anforderung der benötigten Konfigurationsparameter - IP-Adresse, Subnetzmaske etc.&lt;br /&gt;
* Angabe der MAC-Adresse des Clients (&#039;&#039;chaddr&#039;&#039;) zwingend erforderlich&lt;br /&gt;
* Nachricht ist normalerweise auf das eigene Subnetz beschränkt - kann aber durch DHCP-Relay-Agenten in andere Subnetze weitergeleitet werden&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Angebotsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Mit der Nachricht &#039;&#039;DHCP-OFFER&#039;&#039; läßt der DHCP-Server dem Client ein Angebot zukommen.&lt;br /&gt;
* Der Server versucht dabei, den Client direkt zu erreichen - was nicht immer möglich ist:&lt;br /&gt;
&lt;br /&gt;
Fall A:&lt;br /&gt;
* Client wird gerade initialisiert &amp;amp; verfügt noch nicht über eine IP-Adresse&lt;br /&gt;
* Angebot wird als Broadcast versandt - erhält aber bereits die MAC-Adresse des Clients, so daß nur dieser die Nachricht lesen darf&lt;br /&gt;
&lt;br /&gt;
Fall B:&lt;br /&gt;
* Client verfügt bereits über eine IP-Adresse - deren Lease-Dauer jedoch zu Ende geht&lt;br /&gt;
* Angebot wird in diesem Fall direkt an die IP-Adresse des Clients gesendet&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Auswahlphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Der Client wählt die Konfigurationsparameter des zuerst erhaltenen Angebots aus.&lt;br /&gt;
* Senden einer Nachricht &#039;&#039;DHCP-REQUEST&#039;&#039; an den ausgewählten DHCP-Server (&#039;&#039;sname&#039;&#039;)&lt;br /&gt;
* angebotene IP-Adresse kann mit der Option &#039;&#039;Requested IP Address&#039;&#039; bestätigt werden&lt;br /&gt;
* Nachricht wird als Broadcast versendet, um andere DHCP-Server darüber in Kenntnis zu setzen, daß der Client sich entschieden hat und die entsprechenden Server die reservierten Parameter wieder freigeben können &lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Bestätigungsphase&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Antwort des DHCP-Servers mit der Nachricht &#039;&#039;DHCP-ACK&#039;&#039; mit allen Konfigurationsparametern für den Client&lt;br /&gt;
* Sollten in dieser Phase weitere Angebote eintreffen, werden diese vom Client verworfen.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Weitere DHCP-Nachrichtentypen&#039;&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-NAK&#039;&#039;:&lt;br /&gt;
* wird während der Bestätigungsphase vom Server an den Client gesendet, um diesen darauf hinzuweisen, daß die im &#039;&#039;DHCP-REQUEST&#039;&#039; angeforderten Konfigurationsparameter abgeleht wurden:&lt;br /&gt;
** wenn ein Client versucht seine bisherige IP-Adresse zu verlängern, diese jedoch nicht mehr verfügbar ist&lt;br /&gt;
** wenn ein Client in ein anderes Subnetz umgezogen &amp;amp; somit die IP-Adresse ungültig ist&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-RELEASE&#039;&#039;:&lt;br /&gt;
* Hiermit teilt ein Client dem Server mit, daß er seine IP-Adresse nicht mehr benötigt und der Server die Adresse freigeben und anderweitig vergeben kann&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-DECLINE&#039;&#039;:&lt;br /&gt;
* Der Client kann hierüber den Server in Kenntnis setzen, daß einige Parameter ungültig sind (zum Beispiel seine MAC-Adresse)&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;DHCP-INFORM&#039;&#039;:&lt;br /&gt;
* Kann von Clients verwendet werden, denen eine statische IP-Adresse zugewiesen wurde, um weitere dynamische Konfigurationsparameter vom Server anzufordern.&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24642</id>
		<title>Internet Control Message Protocol</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24642"/>
		<updated>2021-03-08T18:37:43Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: /* Umleitung im Netzwerk */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das &#039;&#039;&#039;I&#039;&#039;&#039;nternet &#039;&#039;&#039;C&#039;&#039;&#039;ontrol &#039;&#039;&#039;M&#039;&#039;&#039;essage &#039;&#039;&#039;P&#039;&#039;&#039;rotocol (ICMP) kommt in TCP/IP-Netzwerken zum Einsatz, um Informationen über Probleme und den Status des Netzwerks auszutauschen oder Funktionen zu prüfen.&lt;br /&gt;
&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* ursprünglich definiert von Jon Postel, einem Wegbereiter des Internets&lt;br /&gt;
* Verabschiedung des ersten Standards im April 1981 als [https://tools.ietf.org/html/rfc777 RFC 777]&lt;br /&gt;
* mehrmalige Aktualisierungen führten zur aktuellen Definition [https://tools.ietf.org/html/rfc792 RFC 792]&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
Das Internet-Protokoll ermöglicht die Kommunikation von Geräten über beliebig lange Pfade. Da es sich nicht vermeiden läßt, daß bei dieser Datenübertragung Fehler auftreten, wurde mit ICMP eine Möglichkeit geschaffen, den Absender der Datagramme über etwaige Probleme zu informieren. Mögliche Probleme sind:&lt;br /&gt;
&lt;br /&gt;
* ein Gerät oder Dienst ist nicht ereichbar&lt;br /&gt;
* einzelne Bits der Datagramme wurden auf dem Weg verfälscht&lt;br /&gt;
* die Lebenszeit (TTL) eines Datagramms ist abgelaufen&lt;br /&gt;
* die Pufferkapazität des Empfängers ist erschöpft&lt;br /&gt;
&lt;br /&gt;
Das ICMP-Protokoll wird als Teil der OSI-Schicht 3 betrachtet. Die Daten werden jedoch in IP-Paketen transportiert, wie dies bei TCP &amp;amp; UDP geschieht, obwohl ICMP kein Transportprotokoll ist. ICMP nutzt somit das IP-Protokoll, als wäre es ein Protokoll einer höheren Schicht (im OSI-Modell), obwohl es eigentlich integraler Bestandteil des IP-Protokolls ist.&lt;br /&gt;
&lt;br /&gt;
= Die Paketstruktur =&lt;br /&gt;
&lt;br /&gt;
== ICMP-Header ==&lt;br /&gt;
&lt;br /&gt;
Der Header einer ICMP-Nachricht:&lt;br /&gt;
*folgt direkt auf den IPv4-Header und wird dort an einer Protokollnummer erkannt&lt;br /&gt;
*erweitert den IP-Header und ist als integraler Bestandteil des IP-Protokolls zu sehen&lt;br /&gt;
*besitzt eine Länge von 8 Byte, gefolgt von einem Datenabschnitt variabler Größe&lt;br /&gt;
Die ersten vier Bytes des Headers haben ein festgelegtes Format:&lt;br /&gt;
*Mit dem ersten Byte wird der Typ der Nachricht kodiert.&lt;br /&gt;
*Das zweite Byte enthält einen, vom jeweiligen Typ abhängigen Code&lt;br /&gt;
*Das dritte und vierte Byte bilden eine Prüfsumme des Headers&lt;br /&gt;
Die folgenden (und letzten) vier Bytes des Headers sind vom Typ der ICMP-Nachricht abhängig.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ICMP4.png|750px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable toptextcells&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Typ !! Typname !! Code !! Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Echo Reply || 0 || Echo-Antwort&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;7&amp;quot;| 3 || rowspan=&amp;quot;7&amp;quot;| Destination Unreachable || 0 || Netzwerk nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Host (Zielstation) nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Protokoll nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Port nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Fragmentierung nötig, &#039;&#039;&#039;D&#039;&#039;&#039;on’t &#039;&#039;&#039;F&#039;&#039;&#039;ragment aber gesetzt&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Route nicht möglich&lt;br /&gt;
|-&lt;br /&gt;
| 13 || Paket wird von der Firewall des Empfängers geblockt&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Source Quench || 0 || Datagramm verworfen, da Warteschlange voll&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;| 5 || rowspan=&amp;quot;4&amp;quot;| Redirect Message || 0 || Benachrichtigung über eine Umleitung für das angegebene Netzwerk&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Benachrichtigung über eine Umleitung für den ausgewählten Host&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Umleitung für den angegebenen Dienst &amp;amp; das Netz&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Umleitung für den angegebenen Dienst &amp;amp; den Host&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Echo Request || 0 || Echo-Anfrage (Ping)&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Router Solicitation || 0 || Suche nach einem Router&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Router Advertisement || 0 || Bekanntmachung eines Routers&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| 11 || rowspan=&amp;quot;2&amp;quot;| Time Exceeded || 0 || TTL (Time To Live, Lebensdauer) abgelaufen&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Zeitlimit während der Defragmentierung überschritten&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ICMP-Daten ==&lt;br /&gt;
&lt;br /&gt;
Je nach Typ der ICMP-Nachricht haben die, sich dem ICMP-Header anschließenden Daten, eine unterschiedlichen Inhalt und sind verschieden strukturiert. Oft wird der IP-Header wiederholt und im Anschluß daran die ersten 64 Bit des ursprünglichen Datagramms. Damit wird dem Zielrechner die Zuordnung der Nachricht ermöglicht.&lt;br /&gt;
&lt;br /&gt;
= Anwendungen =&lt;br /&gt;
&lt;br /&gt;
Am häufigsten wird ICMP zur Fehlerermittlung genutzt. Situationen, die eine ICMP-Fehlermeldung auslösen sind:&lt;br /&gt;
&lt;br /&gt;
* Ziel nicht erreichbar (&#039;&#039;Destination Unreachable&#039;&#039;): Dieser Fehler tritt auf, wenn der Zielrechner nicht mehr existiert, oder auf diesem kein passendes Protokoll gefunden werden kann. Tritt dieser Fall ein, wird der Absender entsprechend benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
* Zeit überschritten (&#039;&#039;Time Exceeded&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Ungültige Parameter (&#039;&#039;Parameter Problem&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Senderate reduzieren (&#039;&#039;Source Quench&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Umleitung im Netzwerk (&#039;&#039;Redirect&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Prüfung auf die Erreichbarkeit eines Gerätes&lt;br /&gt;
* Ermittlung des Pfades, den ein Datagramm durch das Netz beschreitet&lt;br /&gt;
* Ermittlung der maximalen Größe des Datagramms auf diesem Pfad&lt;br /&gt;
&lt;br /&gt;
== Ping ==&lt;br /&gt;
&lt;br /&gt;
Mit diesem Programm kann die Erreichbarkeit eines Netzwerkteilnehmers geprüft werden. Das Programm sendet die ICMP-Nachricht &#039;&#039;Echo Request&#039;&#039; an eine IP-Adresse &amp;amp; wartet daraufhin auf eine Antwort, dem &#039;&#039;Echo Reply&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 $ ping  google.de&lt;br /&gt;
 PING google.de(ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003)) 56 data bytes&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=1 ttl=119 time=25.7 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=2 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=3 ttl=119 time=22.6 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=4 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=5 ttl=119 time=23.1 ms&lt;br /&gt;
 ^C&lt;br /&gt;
 --- google.de ping statistics ---&lt;br /&gt;
 5 packets transmitted, 5 received, 0% packet loss, time 4006ms&lt;br /&gt;
 rtt min/avg/max/mdev = 22.572/23.416/25.650/1.130 ms&lt;br /&gt;
&lt;br /&gt;
[[File:Ping.png|750px|none]]&lt;br /&gt;
&lt;br /&gt;
== Trace Route ==&lt;br /&gt;
&lt;br /&gt;
Mit dem Kommandozeilenbefehl &#039;&#039;&#039;traceroute&#039;&#039;&#039; kann der Pfad ermittelt werden, der von einem IP-Paket vom Sender zum Empfänger beschritten wird: &lt;br /&gt;
&lt;br /&gt;
 $ traceroute google.de&lt;br /&gt;
 traceroute to google.de (172.217.19.67), 30 hops max, 60 byte packets&lt;br /&gt;
  1  fritz.box (192.168.100.1)  0.450 ms  0.593 ms  0.743 ms&lt;br /&gt;
  2  ber1005dihr001.versatel.de (62.214.63.92)  12.670 ms  12.750 ms  12.693 ms&lt;br /&gt;
  3  62.214.37.245 (62.214.37.245)  13.746 ms  13.787 ms  13.825 ms&lt;br /&gt;
  4  62.214.37.130 (62.214.37.130)  23.674 ms  23.716 ms 62.214.37.158 (62.214.37.158)  41.595 ms&lt;br /&gt;
  5  72.14.222.28 (72.14.222.28)  22.010 ms  22.063 ms 89.246.109.250 (89.246.109.250)  29.791 ms&lt;br /&gt;
  6  108.170.251.145 (108.170.251.145)  26.073 ms 108.170.252.18 (108.170.252.18)  37.669 ms 108.170.252.19 (108.170.252.19)  24.852 ms&lt;br /&gt;
  7  209.85.245.203 (209.85.245.203)  18.491 ms 209.85.242.79 (209.85.242.79)  44.834 ms 209.85.244.219 (209.85.244.219)  23.396 ms&lt;br /&gt;
  8  ham02s17-in-f3.1e100.net (172.217.19.67)  18.911 ms  17.654 ms  19.136 ms&lt;br /&gt;
&lt;br /&gt;
* Das Programm kann zur Analyse von Netzwerkproblemen genutzt werden: Nimmt ein Paket den erwarteten Weg, oder kommt es über Umwege dorthin? Welche alternativen Wege beschreitet ein Paket beim Ausfall eines Netzknotens?&lt;br /&gt;
* Es werden die Laufzeiten zwischen den einzelnen Stationen (Hops) ermittelt, so daß überprüft werden kann, ob es auf dem Weg zum Ziel zu Engpässen oder Überlastungen kommt.&lt;br /&gt;
&lt;br /&gt;
Funktionsweise von traceroute:&lt;br /&gt;
&lt;br /&gt;
* Der Absender sendet eine ICMP-Nachricht vom Typ &#039;&#039;Echo Request&#039;&#039; an den Zielrechner. Von besonderer Bedeutung ist hierbei die Lebenszeit der Nachricht von eins (&#039;&#039;TTL=1&#039;&#039;).&lt;br /&gt;
* Die nächste Station auf dem Weg zum Zielrechner vermindert den Wert von &#039;&#039;TTL&#039;&#039; um eins, so daß dieser Wert jetzt Null beträgt und die Nachricht daraufhin verworfen wird. Der Absender wird jedoch über diesen Vorgang informiert und erhält eine ICMP-Nachricht vom Typ &#039;&#039;time to live exceeded in transit&#039;&#039;, die auch die IP-Adresse der Zwischenstation enthält.&lt;br /&gt;
* Der Absender verschickt daraufhin erneut ein &#039;&#039;Echo Request&#039;&#039; an den Zielrechner - dieses Mal jedoch mit einer &#039;&#039;TTL&#039;&#039; von zwei. Somit erreicht die Nachricht die zweite Zwischenstation auf dem Weg zum Ziel, bevor auch diese verworfen und der Absender benachrichtigt wird.&lt;br /&gt;
* Der Absender versendet nun weitere Nachrichten vom Typ &#039;&#039;Echo Request&#039;&#039; - und erhöht jeweils den Wert der Lebenszeit - bis der Zielrechner erreicht wird und eine ICMP-Nachricht vom Typ &#039;&#039;Echo Reply&#039;&#039; erhalten wird.&lt;br /&gt;
* Am Ende des Programmablaufs wird von &#039;&#039;traceroute&#039;&#039; eine nummerierte Liste erhalten, die die IP-Adressen der durchlaufenen Zwischenstationen und der dazugehörigen Laufzeiten enthält.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ICMP-traceroute.png| 600px |none]]&lt;br /&gt;
&lt;br /&gt;
== Pfad-MTU Ermittlung ==&lt;br /&gt;
&lt;br /&gt;
Eine weitere wichtige Funktion von ICMP ist ein Verfahren zur Ermittlung der &#039;&#039;&#039;&#039;&#039;M&#039;&#039;&#039;aximum &#039;&#039;&#039;T&#039;&#039;&#039;ransfer &#039;&#039;&#039;U&#039;&#039;&#039;nit&#039;&#039; für ein entferntes IP-Netz. Dieses wird als &#039;&#039;Path MTU Discovery&#039;&#039; bezeichnet und ist von jedem Router zu unterstützen.&lt;br /&gt;
&lt;br /&gt;
Ablauf zur Ermittlung der MTU:&lt;br /&gt;
&lt;br /&gt;
* Der Sender generiert ein IP-Paket mit der MTU des lokalen Netzes und gesetztem &#039;&#039;Don&#039;t Fragment&#039;&#039;-Bit&lt;br /&gt;
* Wird auf dem Weg ein Transfernetz erreicht, dessen MTU überschritten wird, so daß dessen Router das Paket fragmentieren müsste, wird das Paket verworfen und der Absender durch eine ICMP-Nachricht vom Typ 3 Code 4 (&#039;&#039;Destination Unreachable&#039;&#039;,&#039;&#039;Fragmentation required, and DF flag set&#039;&#039;) benachrichtigt.&lt;br /&gt;
* Da der Absender nun die MTU der Gegenseite kennt, kann er die seine entsprechend anpassen und die Daten erneut versenden.&lt;br /&gt;
&lt;br /&gt;
== Umleitung im Netzwerk ==&lt;br /&gt;
&lt;br /&gt;
Wird von einem Router bemerkt, daß es für ein IP-Paket einen schnelleren Weg zum Ziel gibt, kann er den Absender darüber informieren. Dies geschieht mit einer ICMP-Nachricht vom Typ &#039;&#039;Redirect&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Rechner &#039;&#039;&#039;B&#039;&#039;&#039; möchte Daten an Rechner &#039;&#039;&#039;A&#039;&#039;&#039; versenden und sendet diese an seinen Standard-Router &#039;&#039;&#039;R2&#039;&#039;&#039; (1)&lt;br /&gt;
* Router &#039;&#039;&#039;R2&#039;&#039;&#039; übergibt die Daten an Router &#039;&#039;&#039;R1&#039;&#039;&#039;, der diese an den Zielrechner &#039;&#039;&#039;A&#039;&#039;&#039; weiterleitet (2)&lt;br /&gt;
* Router &#039;&#039;&#039;R2&#039;&#039;&#039; erkennt jedoch, daß es für Rechner &#039;&#039;&#039;A&#039;&#039;&#039; günstiger wäre, sich gleich an Router &#039;&#039;&#039;R1&#039;&#039;&#039; zu wenden und teilt ihm dieses durch eine ICMP-Nachricht vom Typ &#039;&#039;Redirect&#039;&#039; mit (3)&lt;br /&gt;
* Rechner &#039;&#039;&#039;B&#039;&#039;&#039; sendet fortan die Daten direkt zu Router &#039;&#039;&#039;R1&#039;&#039;&#039; (4)&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ICMP-Redirect.png|600px|none]]&lt;br /&gt;
&lt;br /&gt;
= Missbrauch =&lt;br /&gt;
&lt;br /&gt;
== Ping flood ==&lt;br /&gt;
&lt;br /&gt;
Bei der einfachsten Variante dieser Angriffsmethode sendet ein angreifender Rechner in schneller Folge &#039;&#039;Echo Request&#039;&#039;-Nachrichten an das Opfer. Dabei wird die eigene Adresse (also die des Absenders) gefälscht, so daß ein zufälliger Rechner mit den resultierenden &#039;&#039;Echo Reply&#039;&#039;-Antworten des Opfers bombardiert wird. Ziel solcher Angriffe ist es, die Nichtverfügbarkeit eines Dienstes (&#039;&#039;&#039;D&#039;&#039;&#039;enial &#039;&#039;&#039;o&#039;&#039;&#039;f &#039;&#039;&#039;S&#039;&#039;&#039;ervice) herbeizuführen, da das Opfer mit der Beantwortung der ICMP-Anfragen beschäftigt wird.&lt;br /&gt;
&lt;br /&gt;
== Ping of Death ==&lt;br /&gt;
&lt;br /&gt;
Diese Variante eines Denial-of-Service-Angriffs sollte heute nicht mehr zum Ziel führen, da die dafür anfälligen Betriebssysteme inzwischen entsprechende Updates erhielten. Beim &#039;&#039;Ping of Death&#039;&#039; wurden ICMP-Nachrichten versendet, bei denen die zulässige Größe überschritten wurde, so daß diese für den Transport fragmentiert werden mussten. Das letzte Fragment einer solchen Nachricht enthielt dann eine Kombination der Werte für Offset und Fragmentgröße, die das Gesamtpaket größer werden ließen, als die erlaubten 65&#039;535 Byte. Dies konnte zu einem Stapelüberlauf und somit zum Absturz des Zielrechners führen.&lt;br /&gt;
&lt;br /&gt;
= Kontrollfragen =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24641</id>
		<title>Internet Control Message Protocol</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24641"/>
		<updated>2021-03-08T18:37:09Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: /* Trace Route */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das &#039;&#039;&#039;I&#039;&#039;&#039;nternet &#039;&#039;&#039;C&#039;&#039;&#039;ontrol &#039;&#039;&#039;M&#039;&#039;&#039;essage &#039;&#039;&#039;P&#039;&#039;&#039;rotocol (ICMP) kommt in TCP/IP-Netzwerken zum Einsatz, um Informationen über Probleme und den Status des Netzwerks auszutauschen oder Funktionen zu prüfen.&lt;br /&gt;
&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* ursprünglich definiert von Jon Postel, einem Wegbereiter des Internets&lt;br /&gt;
* Verabschiedung des ersten Standards im April 1981 als [https://tools.ietf.org/html/rfc777 RFC 777]&lt;br /&gt;
* mehrmalige Aktualisierungen führten zur aktuellen Definition [https://tools.ietf.org/html/rfc792 RFC 792]&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
Das Internet-Protokoll ermöglicht die Kommunikation von Geräten über beliebig lange Pfade. Da es sich nicht vermeiden läßt, daß bei dieser Datenübertragung Fehler auftreten, wurde mit ICMP eine Möglichkeit geschaffen, den Absender der Datagramme über etwaige Probleme zu informieren. Mögliche Probleme sind:&lt;br /&gt;
&lt;br /&gt;
* ein Gerät oder Dienst ist nicht ereichbar&lt;br /&gt;
* einzelne Bits der Datagramme wurden auf dem Weg verfälscht&lt;br /&gt;
* die Lebenszeit (TTL) eines Datagramms ist abgelaufen&lt;br /&gt;
* die Pufferkapazität des Empfängers ist erschöpft&lt;br /&gt;
&lt;br /&gt;
Das ICMP-Protokoll wird als Teil der OSI-Schicht 3 betrachtet. Die Daten werden jedoch in IP-Paketen transportiert, wie dies bei TCP &amp;amp; UDP geschieht, obwohl ICMP kein Transportprotokoll ist. ICMP nutzt somit das IP-Protokoll, als wäre es ein Protokoll einer höheren Schicht (im OSI-Modell), obwohl es eigentlich integraler Bestandteil des IP-Protokolls ist.&lt;br /&gt;
&lt;br /&gt;
= Die Paketstruktur =&lt;br /&gt;
&lt;br /&gt;
== ICMP-Header ==&lt;br /&gt;
&lt;br /&gt;
Der Header einer ICMP-Nachricht:&lt;br /&gt;
*folgt direkt auf den IPv4-Header und wird dort an einer Protokollnummer erkannt&lt;br /&gt;
*erweitert den IP-Header und ist als integraler Bestandteil des IP-Protokolls zu sehen&lt;br /&gt;
*besitzt eine Länge von 8 Byte, gefolgt von einem Datenabschnitt variabler Größe&lt;br /&gt;
Die ersten vier Bytes des Headers haben ein festgelegtes Format:&lt;br /&gt;
*Mit dem ersten Byte wird der Typ der Nachricht kodiert.&lt;br /&gt;
*Das zweite Byte enthält einen, vom jeweiligen Typ abhängigen Code&lt;br /&gt;
*Das dritte und vierte Byte bilden eine Prüfsumme des Headers&lt;br /&gt;
Die folgenden (und letzten) vier Bytes des Headers sind vom Typ der ICMP-Nachricht abhängig.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ICMP4.png|750px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable toptextcells&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Typ !! Typname !! Code !! Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Echo Reply || 0 || Echo-Antwort&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;7&amp;quot;| 3 || rowspan=&amp;quot;7&amp;quot;| Destination Unreachable || 0 || Netzwerk nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Host (Zielstation) nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Protokoll nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Port nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Fragmentierung nötig, &#039;&#039;&#039;D&#039;&#039;&#039;on’t &#039;&#039;&#039;F&#039;&#039;&#039;ragment aber gesetzt&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Route nicht möglich&lt;br /&gt;
|-&lt;br /&gt;
| 13 || Paket wird von der Firewall des Empfängers geblockt&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Source Quench || 0 || Datagramm verworfen, da Warteschlange voll&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;| 5 || rowspan=&amp;quot;4&amp;quot;| Redirect Message || 0 || Benachrichtigung über eine Umleitung für das angegebene Netzwerk&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Benachrichtigung über eine Umleitung für den ausgewählten Host&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Umleitung für den angegebenen Dienst &amp;amp; das Netz&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Umleitung für den angegebenen Dienst &amp;amp; den Host&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Echo Request || 0 || Echo-Anfrage (Ping)&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Router Solicitation || 0 || Suche nach einem Router&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Router Advertisement || 0 || Bekanntmachung eines Routers&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| 11 || rowspan=&amp;quot;2&amp;quot;| Time Exceeded || 0 || TTL (Time To Live, Lebensdauer) abgelaufen&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Zeitlimit während der Defragmentierung überschritten&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ICMP-Daten ==&lt;br /&gt;
&lt;br /&gt;
Je nach Typ der ICMP-Nachricht haben die, sich dem ICMP-Header anschließenden Daten, eine unterschiedlichen Inhalt und sind verschieden strukturiert. Oft wird der IP-Header wiederholt und im Anschluß daran die ersten 64 Bit des ursprünglichen Datagramms. Damit wird dem Zielrechner die Zuordnung der Nachricht ermöglicht.&lt;br /&gt;
&lt;br /&gt;
= Anwendungen =&lt;br /&gt;
&lt;br /&gt;
Am häufigsten wird ICMP zur Fehlerermittlung genutzt. Situationen, die eine ICMP-Fehlermeldung auslösen sind:&lt;br /&gt;
&lt;br /&gt;
* Ziel nicht erreichbar (&#039;&#039;Destination Unreachable&#039;&#039;): Dieser Fehler tritt auf, wenn der Zielrechner nicht mehr existiert, oder auf diesem kein passendes Protokoll gefunden werden kann. Tritt dieser Fall ein, wird der Absender entsprechend benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
* Zeit überschritten (&#039;&#039;Time Exceeded&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Ungültige Parameter (&#039;&#039;Parameter Problem&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Senderate reduzieren (&#039;&#039;Source Quench&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Umleitung im Netzwerk (&#039;&#039;Redirect&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Prüfung auf die Erreichbarkeit eines Gerätes&lt;br /&gt;
* Ermittlung des Pfades, den ein Datagramm durch das Netz beschreitet&lt;br /&gt;
* Ermittlung der maximalen Größe des Datagramms auf diesem Pfad&lt;br /&gt;
&lt;br /&gt;
== Ping ==&lt;br /&gt;
&lt;br /&gt;
Mit diesem Programm kann die Erreichbarkeit eines Netzwerkteilnehmers geprüft werden. Das Programm sendet die ICMP-Nachricht &#039;&#039;Echo Request&#039;&#039; an eine IP-Adresse &amp;amp; wartet daraufhin auf eine Antwort, dem &#039;&#039;Echo Reply&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 $ ping  google.de&lt;br /&gt;
 PING google.de(ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003)) 56 data bytes&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=1 ttl=119 time=25.7 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=2 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=3 ttl=119 time=22.6 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=4 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=5 ttl=119 time=23.1 ms&lt;br /&gt;
 ^C&lt;br /&gt;
 --- google.de ping statistics ---&lt;br /&gt;
 5 packets transmitted, 5 received, 0% packet loss, time 4006ms&lt;br /&gt;
 rtt min/avg/max/mdev = 22.572/23.416/25.650/1.130 ms&lt;br /&gt;
&lt;br /&gt;
[[File:Ping.png|750px|none]]&lt;br /&gt;
&lt;br /&gt;
== Trace Route ==&lt;br /&gt;
&lt;br /&gt;
Mit dem Kommandozeilenbefehl &#039;&#039;&#039;traceroute&#039;&#039;&#039; kann der Pfad ermittelt werden, der von einem IP-Paket vom Sender zum Empfänger beschritten wird: &lt;br /&gt;
&lt;br /&gt;
 $ traceroute google.de&lt;br /&gt;
 traceroute to google.de (172.217.19.67), 30 hops max, 60 byte packets&lt;br /&gt;
  1  fritz.box (192.168.100.1)  0.450 ms  0.593 ms  0.743 ms&lt;br /&gt;
  2  ber1005dihr001.versatel.de (62.214.63.92)  12.670 ms  12.750 ms  12.693 ms&lt;br /&gt;
  3  62.214.37.245 (62.214.37.245)  13.746 ms  13.787 ms  13.825 ms&lt;br /&gt;
  4  62.214.37.130 (62.214.37.130)  23.674 ms  23.716 ms 62.214.37.158 (62.214.37.158)  41.595 ms&lt;br /&gt;
  5  72.14.222.28 (72.14.222.28)  22.010 ms  22.063 ms 89.246.109.250 (89.246.109.250)  29.791 ms&lt;br /&gt;
  6  108.170.251.145 (108.170.251.145)  26.073 ms 108.170.252.18 (108.170.252.18)  37.669 ms 108.170.252.19 (108.170.252.19)  24.852 ms&lt;br /&gt;
  7  209.85.245.203 (209.85.245.203)  18.491 ms 209.85.242.79 (209.85.242.79)  44.834 ms 209.85.244.219 (209.85.244.219)  23.396 ms&lt;br /&gt;
  8  ham02s17-in-f3.1e100.net (172.217.19.67)  18.911 ms  17.654 ms  19.136 ms&lt;br /&gt;
&lt;br /&gt;
* Das Programm kann zur Analyse von Netzwerkproblemen genutzt werden: Nimmt ein Paket den erwarteten Weg, oder kommt es über Umwege dorthin? Welche alternativen Wege beschreitet ein Paket beim Ausfall eines Netzknotens?&lt;br /&gt;
* Es werden die Laufzeiten zwischen den einzelnen Stationen (Hops) ermittelt, so daß überprüft werden kann, ob es auf dem Weg zum Ziel zu Engpässen oder Überlastungen kommt.&lt;br /&gt;
&lt;br /&gt;
Funktionsweise von traceroute:&lt;br /&gt;
&lt;br /&gt;
* Der Absender sendet eine ICMP-Nachricht vom Typ &#039;&#039;Echo Request&#039;&#039; an den Zielrechner. Von besonderer Bedeutung ist hierbei die Lebenszeit der Nachricht von eins (&#039;&#039;TTL=1&#039;&#039;).&lt;br /&gt;
* Die nächste Station auf dem Weg zum Zielrechner vermindert den Wert von &#039;&#039;TTL&#039;&#039; um eins, so daß dieser Wert jetzt Null beträgt und die Nachricht daraufhin verworfen wird. Der Absender wird jedoch über diesen Vorgang informiert und erhält eine ICMP-Nachricht vom Typ &#039;&#039;time to live exceeded in transit&#039;&#039;, die auch die IP-Adresse der Zwischenstation enthält.&lt;br /&gt;
* Der Absender verschickt daraufhin erneut ein &#039;&#039;Echo Request&#039;&#039; an den Zielrechner - dieses Mal jedoch mit einer &#039;&#039;TTL&#039;&#039; von zwei. Somit erreicht die Nachricht die zweite Zwischenstation auf dem Weg zum Ziel, bevor auch diese verworfen und der Absender benachrichtigt wird.&lt;br /&gt;
* Der Absender versendet nun weitere Nachrichten vom Typ &#039;&#039;Echo Request&#039;&#039; - und erhöht jeweils den Wert der Lebenszeit - bis der Zielrechner erreicht wird und eine ICMP-Nachricht vom Typ &#039;&#039;Echo Reply&#039;&#039; erhalten wird.&lt;br /&gt;
* Am Ende des Programmablaufs wird von &#039;&#039;traceroute&#039;&#039; eine nummerierte Liste erhalten, die die IP-Adressen der durchlaufenen Zwischenstationen und der dazugehörigen Laufzeiten enthält.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ICMP-traceroute.png| 600px |none]]&lt;br /&gt;
&lt;br /&gt;
== Pfad-MTU Ermittlung ==&lt;br /&gt;
&lt;br /&gt;
Eine weitere wichtige Funktion von ICMP ist ein Verfahren zur Ermittlung der &#039;&#039;&#039;&#039;&#039;M&#039;&#039;&#039;aximum &#039;&#039;&#039;T&#039;&#039;&#039;ransfer &#039;&#039;&#039;U&#039;&#039;&#039;nit&#039;&#039; für ein entferntes IP-Netz. Dieses wird als &#039;&#039;Path MTU Discovery&#039;&#039; bezeichnet und ist von jedem Router zu unterstützen.&lt;br /&gt;
&lt;br /&gt;
Ablauf zur Ermittlung der MTU:&lt;br /&gt;
&lt;br /&gt;
* Der Sender generiert ein IP-Paket mit der MTU des lokalen Netzes und gesetztem &#039;&#039;Don&#039;t Fragment&#039;&#039;-Bit&lt;br /&gt;
* Wird auf dem Weg ein Transfernetz erreicht, dessen MTU überschritten wird, so daß dessen Router das Paket fragmentieren müsste, wird das Paket verworfen und der Absender durch eine ICMP-Nachricht vom Typ 3 Code 4 (&#039;&#039;Destination Unreachable&#039;&#039;,&#039;&#039;Fragmentation required, and DF flag set&#039;&#039;) benachrichtigt.&lt;br /&gt;
* Da der Absender nun die MTU der Gegenseite kennt, kann er die seine entsprechend anpassen und die Daten erneut versenden.&lt;br /&gt;
&lt;br /&gt;
== Umleitung im Netzwerk ==&lt;br /&gt;
&lt;br /&gt;
Wird von einem Router bemerkt, daß es für ein IP-Paket einen schnelleren Weg zum Ziel gibt, kann er den Absender darüber informieren. Dies geschieht mit einer ICMP-Nachricht vom Typ &#039;&#039;Redirect&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Rechner &#039;&#039;&#039;B&#039;&#039;&#039; möchte Daten an Rechner &#039;&#039;&#039;A&#039;&#039;&#039; versenden und sendet diese an seinen Standard-Router &#039;&#039;&#039;R2&#039;&#039;&#039; (1)&lt;br /&gt;
* Router &#039;&#039;&#039;R2&#039;&#039;&#039; übergibt die Daten an Router &#039;&#039;&#039;R1&#039;&#039;&#039;, der diese an den Zielrechner &#039;&#039;&#039;A&#039;&#039;&#039; weiterleitet (2)&lt;br /&gt;
* Router &#039;&#039;&#039;R2&#039;&#039;&#039; erkennt jedoch, daß es für Rechner &#039;&#039;&#039;A&#039;&#039;&#039; günstiger wäre, sich gleich an Router &#039;&#039;&#039;R1&#039;&#039;&#039; zu wenden und teilt ihm dieses durch eine ICMP-Nachricht vom Typ &#039;&#039;Redirect&#039;&#039; mit (3)&lt;br /&gt;
* Rechner &#039;&#039;&#039;B&#039;&#039;&#039; sendet fortan die Daten direkt zu Router &#039;&#039;&#039;R1&#039;&#039;&#039; (4)&lt;br /&gt;
&lt;br /&gt;
[[File:ICMP-Redirect.png|600px|none]]&lt;br /&gt;
&lt;br /&gt;
= Missbrauch =&lt;br /&gt;
&lt;br /&gt;
== Ping flood ==&lt;br /&gt;
&lt;br /&gt;
Bei der einfachsten Variante dieser Angriffsmethode sendet ein angreifender Rechner in schneller Folge &#039;&#039;Echo Request&#039;&#039;-Nachrichten an das Opfer. Dabei wird die eigene Adresse (also die des Absenders) gefälscht, so daß ein zufälliger Rechner mit den resultierenden &#039;&#039;Echo Reply&#039;&#039;-Antworten des Opfers bombardiert wird. Ziel solcher Angriffe ist es, die Nichtverfügbarkeit eines Dienstes (&#039;&#039;&#039;D&#039;&#039;&#039;enial &#039;&#039;&#039;o&#039;&#039;&#039;f &#039;&#039;&#039;S&#039;&#039;&#039;ervice) herbeizuführen, da das Opfer mit der Beantwortung der ICMP-Anfragen beschäftigt wird.&lt;br /&gt;
&lt;br /&gt;
== Ping of Death ==&lt;br /&gt;
&lt;br /&gt;
Diese Variante eines Denial-of-Service-Angriffs sollte heute nicht mehr zum Ziel führen, da die dafür anfälligen Betriebssysteme inzwischen entsprechende Updates erhielten. Beim &#039;&#039;Ping of Death&#039;&#039; wurden ICMP-Nachrichten versendet, bei denen die zulässige Größe überschritten wurde, so daß diese für den Transport fragmentiert werden mussten. Das letzte Fragment einer solchen Nachricht enthielt dann eine Kombination der Werte für Offset und Fragmentgröße, die das Gesamtpaket größer werden ließen, als die erlaubten 65&#039;535 Byte. Dies konnte zu einem Stapelüberlauf und somit zum Absturz des Zielrechners führen.&lt;br /&gt;
&lt;br /&gt;
= Kontrollfragen =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Datei:ICMP-traceroute.png&amp;diff=24640</id>
		<title>Datei:ICMP-traceroute.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Datei:ICMP-traceroute.png&amp;diff=24640"/>
		<updated>2021-03-08T18:35:55Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: Datei hochgeladen mit MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Datei hochgeladen mit MsUpload&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24639</id>
		<title>Internet Control Message Protocol</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24639"/>
		<updated>2021-03-08T13:47:21Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: /* Anwendungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das &#039;&#039;&#039;I&#039;&#039;&#039;nternet &#039;&#039;&#039;C&#039;&#039;&#039;ontrol &#039;&#039;&#039;M&#039;&#039;&#039;essage &#039;&#039;&#039;P&#039;&#039;&#039;rotocol (ICMP) kommt in TCP/IP-Netzwerken zum Einsatz, um Informationen über Probleme und den Status des Netzwerks auszutauschen oder Funktionen zu prüfen.&lt;br /&gt;
&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* ursprünglich definiert von Jon Postel, einem Wegbereiter des Internets&lt;br /&gt;
* Verabschiedung des ersten Standards im April 1981 als [https://tools.ietf.org/html/rfc777 RFC 777]&lt;br /&gt;
* mehrmalige Aktualisierungen führten zur aktuellen Definition [https://tools.ietf.org/html/rfc792 RFC 792]&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
Das Internet-Protokoll ermöglicht die Kommunikation von Geräten über beliebig lange Pfade. Da es sich nicht vermeiden läßt, daß bei dieser Datenübertragung Fehler auftreten, wurde mit ICMP eine Möglichkeit geschaffen, den Absender der Datagramme über etwaige Probleme zu informieren. Mögliche Probleme sind:&lt;br /&gt;
&lt;br /&gt;
* ein Gerät oder Dienst ist nicht ereichbar&lt;br /&gt;
* einzelne Bits der Datagramme wurden auf dem Weg verfälscht&lt;br /&gt;
* die Lebenszeit (TTL) eines Datagramms ist abgelaufen&lt;br /&gt;
* die Pufferkapazität des Empfängers ist erschöpft&lt;br /&gt;
&lt;br /&gt;
Das ICMP-Protokoll wird als Teil der OSI-Schicht 3 betrachtet. Die Daten werden jedoch in IP-Paketen transportiert, wie dies bei TCP &amp;amp; UDP geschieht, obwohl ICMP kein Transportprotokoll ist. ICMP nutzt somit das IP-Protokoll, als wäre es ein Protokoll einer höheren Schicht (im OSI-Modell), obwohl es eigentlich integraler Bestandteil des IP-Protokolls ist.&lt;br /&gt;
&lt;br /&gt;
= Die Paketstruktur =&lt;br /&gt;
&lt;br /&gt;
== ICMP-Header ==&lt;br /&gt;
&lt;br /&gt;
Der Header einer ICMP-Nachricht:&lt;br /&gt;
*folgt direkt auf den IPv4-Header und wird dort an einer Protokollnummer erkannt&lt;br /&gt;
*erweitert den IP-Header und ist als integraler Bestandteil des IP-Protokolls zu sehen&lt;br /&gt;
*besitzt eine Länge von 8 Byte, gefolgt von einem Datenabschnitt variabler Größe&lt;br /&gt;
Die ersten vier Bytes des Headers haben ein festgelegtes Format:&lt;br /&gt;
*Mit dem ersten Byte wird der Typ der Nachricht kodiert.&lt;br /&gt;
*Das zweite Byte enthält einen, vom jeweiligen Typ abhängigen Code&lt;br /&gt;
*Das dritte und vierte Byte bilden eine Prüfsumme des Headers&lt;br /&gt;
Die folgenden (und letzten) vier Bytes des Headers sind vom Typ der ICMP-Nachricht abhängig.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ICMP4.png|750px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable toptextcells&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Typ !! Typname !! Code !! Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Echo Reply || 0 || Echo-Antwort&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;7&amp;quot;| 3 || rowspan=&amp;quot;7&amp;quot;| Destination Unreachable || 0 || Netzwerk nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Host (Zielstation) nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Protokoll nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Port nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Fragmentierung nötig, &#039;&#039;&#039;D&#039;&#039;&#039;on’t &#039;&#039;&#039;F&#039;&#039;&#039;ragment aber gesetzt&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Route nicht möglich&lt;br /&gt;
|-&lt;br /&gt;
| 13 || Paket wird von der Firewall des Empfängers geblockt&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Source Quench || 0 || Datagramm verworfen, da Warteschlange voll&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;| 5 || rowspan=&amp;quot;4&amp;quot;| Redirect Message || 0 || Benachrichtigung über eine Umleitung für das angegebene Netzwerk&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Benachrichtigung über eine Umleitung für den ausgewählten Host&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Umleitung für den angegebenen Dienst &amp;amp; das Netz&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Umleitung für den angegebenen Dienst &amp;amp; den Host&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Echo Request || 0 || Echo-Anfrage (Ping)&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Router Solicitation || 0 || Suche nach einem Router&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Router Advertisement || 0 || Bekanntmachung eines Routers&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| 11 || rowspan=&amp;quot;2&amp;quot;| Time Exceeded || 0 || TTL (Time To Live, Lebensdauer) abgelaufen&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Zeitlimit während der Defragmentierung überschritten&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ICMP-Daten ==&lt;br /&gt;
&lt;br /&gt;
Je nach Typ der ICMP-Nachricht haben die, sich dem ICMP-Header anschließenden Daten, eine unterschiedlichen Inhalt und sind verschieden strukturiert. Oft wird der IP-Header wiederholt und im Anschluß daran die ersten 64 Bit des ursprünglichen Datagramms. Damit wird dem Zielrechner die Zuordnung der Nachricht ermöglicht.&lt;br /&gt;
&lt;br /&gt;
= Anwendungen =&lt;br /&gt;
&lt;br /&gt;
Am häufigsten wird ICMP zur Fehlerermittlung genutzt. Situationen, die eine ICMP-Fehlermeldung auslösen sind:&lt;br /&gt;
&lt;br /&gt;
* Ziel nicht erreichbar (&#039;&#039;Destination Unreachable&#039;&#039;): Dieser Fehler tritt auf, wenn der Zielrechner nicht mehr existiert, oder auf diesem kein passendes Protokoll gefunden werden kann. Tritt dieser Fall ein, wird der Absender entsprechend benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
* Zeit überschritten (&#039;&#039;Time Exceeded&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Ungültige Parameter (&#039;&#039;Parameter Problem&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Senderate reduzieren (&#039;&#039;Source Quench&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Umleitung im Netzwerk (&#039;&#039;Redirect&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Prüfung auf die Erreichbarkeit eines Gerätes&lt;br /&gt;
* Ermittlung des Pfades, den ein Datagramm durch das Netz beschreitet&lt;br /&gt;
* Ermittlung der maximalen Größe des Datagramms auf diesem Pfad&lt;br /&gt;
&lt;br /&gt;
== Ping ==&lt;br /&gt;
&lt;br /&gt;
Mit diesem Programm kann die Erreichbarkeit eines Netzwerkteilnehmers geprüft werden. Das Programm sendet die ICMP-Nachricht &#039;&#039;Echo Request&#039;&#039; an eine IP-Adresse &amp;amp; wartet daraufhin auf eine Antwort, dem &#039;&#039;Echo Reply&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 $ ping  google.de&lt;br /&gt;
 PING google.de(ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003)) 56 data bytes&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=1 ttl=119 time=25.7 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=2 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=3 ttl=119 time=22.6 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=4 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=5 ttl=119 time=23.1 ms&lt;br /&gt;
 ^C&lt;br /&gt;
 --- google.de ping statistics ---&lt;br /&gt;
 5 packets transmitted, 5 received, 0% packet loss, time 4006ms&lt;br /&gt;
 rtt min/avg/max/mdev = 22.572/23.416/25.650/1.130 ms&lt;br /&gt;
&lt;br /&gt;
[[File:Ping.png|750px|none]]&lt;br /&gt;
&lt;br /&gt;
== Trace Route ==&lt;br /&gt;
&lt;br /&gt;
Mit dem Kommandozeilenbefehl &#039;&#039;&#039;traceroute&#039;&#039;&#039; kann der Pfad ermittelt werden, der von einem IP-Paket vom Sender zum Empfänger beschritten wird: &lt;br /&gt;
&lt;br /&gt;
 $ traceroute google.de&lt;br /&gt;
 traceroute to google.de (172.217.19.67), 30 hops max, 60 byte packets&lt;br /&gt;
  1  fritz.box (192.168.100.1)  0.450 ms  0.593 ms  0.743 ms&lt;br /&gt;
  2  ber1005dihr001.versatel.de (62.214.63.92)  12.670 ms  12.750 ms  12.693 ms&lt;br /&gt;
  3  62.214.37.245 (62.214.37.245)  13.746 ms  13.787 ms  13.825 ms&lt;br /&gt;
  4  62.214.37.130 (62.214.37.130)  23.674 ms  23.716 ms 62.214.37.158 (62.214.37.158)  41.595 ms&lt;br /&gt;
  5  72.14.222.28 (72.14.222.28)  22.010 ms  22.063 ms 89.246.109.250 (89.246.109.250)  29.791 ms&lt;br /&gt;
  6  108.170.251.145 (108.170.251.145)  26.073 ms 108.170.252.18 (108.170.252.18)  37.669 ms 108.170.252.19 (108.170.252.19)  24.852 ms&lt;br /&gt;
  7  209.85.245.203 (209.85.245.203)  18.491 ms 209.85.242.79 (209.85.242.79)  44.834 ms 209.85.244.219 (209.85.244.219)  23.396 ms&lt;br /&gt;
  8  ham02s17-in-f3.1e100.net (172.217.19.67)  18.911 ms  17.654 ms  19.136 ms&lt;br /&gt;
&lt;br /&gt;
* Das Programm kann zur Analyse von Netzwerkproblemen genutzt werden: Nimmt ein Paket den erwarteten Weg, oder kommt es über Umwege dorthin? Welche alternativen Wege beschreitet ein Paket beim Ausfall eines Netzknotens?&lt;br /&gt;
* Es werden die Laufzeiten zwischen den einzelnen Stationen (Hops) ermittelt, so daß überprüft werden kann, ob es auf dem Weg zum Ziel zu Engpässen oder Überlastungen kommt.&lt;br /&gt;
&lt;br /&gt;
Funktionsweise von traceroute:&lt;br /&gt;
&lt;br /&gt;
* Der Absender sendet eine ICMP-Nachricht vom Typ &#039;&#039;Echo Request&#039;&#039; an den Zielrechner. Von besonderer Bedeutung ist hierbei die Lebenszeit der Nachricht von eins (&#039;&#039;TTL=1&#039;&#039;).&lt;br /&gt;
* Die nächste Station auf dem Weg zum Zielrechner vermindert den Wert von &#039;&#039;TTL&#039;&#039; um eins, so daß dieser Wert jetzt Null beträgt und die Nachricht daraufhin verworfen wird. Der Absender wird jedoch über diesen Vorgang informiert und erhält eine ICMP-Nachricht vom Typ &#039;&#039;time to live exceeded in transit&#039;&#039;, die auch die IP-Adresse der Zwischenstation enthält.&lt;br /&gt;
* Der Absender verschickt daraufhin erneut ein &#039;&#039;Echo Request&#039;&#039; an den Zielrechner - dieses Mal jedoch mit einer &#039;&#039;TTL&#039;&#039; von zwei. Somit erreicht die Nachricht die zweite Zwischenstation auf dem Weg zum Ziel, bevor auch diese verworfen und der Absender benachrichtigt wird.&lt;br /&gt;
* Der Absender versendet nun weitere Nachrichten vom Typ &#039;&#039;Echo Request&#039;&#039; - und erhöht jeweils den Wert der Lebenszeit - bis der Zielrechner erreicht wird und eine ICMP-Nachricht vom Typ &#039;&#039;Echo Reply&#039;&#039; erhalten wird.&lt;br /&gt;
* Am Ende des Programmablaufs wird von &#039;&#039;traceroute&#039;&#039; eine nummerierte Liste erhalten, die die IP-Adressen der durchlaufenen Zwischenstationen und der dazugehörigen Laufzeiten enthält.&lt;br /&gt;
&lt;br /&gt;
== Pfad-MTU Ermittlung ==&lt;br /&gt;
&lt;br /&gt;
Eine weitere wichtige Funktion von ICMP ist ein Verfahren zur Ermittlung der &#039;&#039;&#039;&#039;&#039;M&#039;&#039;&#039;aximum &#039;&#039;&#039;T&#039;&#039;&#039;ransfer &#039;&#039;&#039;U&#039;&#039;&#039;nit&#039;&#039; für ein entferntes IP-Netz. Dieses wird als &#039;&#039;Path MTU Discovery&#039;&#039; bezeichnet und ist von jedem Router zu unterstützen.&lt;br /&gt;
&lt;br /&gt;
Ablauf zur Ermittlung der MTU:&lt;br /&gt;
&lt;br /&gt;
* Der Sender generiert ein IP-Paket mit der MTU des lokalen Netzes und gesetztem &#039;&#039;Don&#039;t Fragment&#039;&#039;-Bit&lt;br /&gt;
* Wird auf dem Weg ein Transfernetz erreicht, dessen MTU überschritten wird, so daß dessen Router das Paket fragmentieren müsste, wird das Paket verworfen und der Absender durch eine ICMP-Nachricht vom Typ 3 Code 4 (&#039;&#039;Destination Unreachable&#039;&#039;,&#039;&#039;Fragmentation required, and DF flag set&#039;&#039;) benachrichtigt.&lt;br /&gt;
* Da der Absender nun die MTU der Gegenseite kennt, kann er die seine entsprechend anpassen und die Daten erneut versenden.&lt;br /&gt;
&lt;br /&gt;
== Umleitung im Netzwerk ==&lt;br /&gt;
&lt;br /&gt;
Wird von einem Router bemerkt, daß es für ein IP-Paket einen schnelleren Weg zum Ziel gibt, kann er den Absender darüber informieren. Dies geschieht mit einer ICMP-Nachricht vom Typ &#039;&#039;Redirect&#039;&#039;:&lt;br /&gt;
&lt;br /&gt;
* Rechner &#039;&#039;&#039;B&#039;&#039;&#039; möchte Daten an Rechner &#039;&#039;&#039;A&#039;&#039;&#039; versenden und sendet diese an seinen Standard-Router &#039;&#039;&#039;R2&#039;&#039;&#039; (1)&lt;br /&gt;
* Router &#039;&#039;&#039;R2&#039;&#039;&#039; übergibt die Daten an Router &#039;&#039;&#039;R1&#039;&#039;&#039;, der diese an den Zielrechner &#039;&#039;&#039;A&#039;&#039;&#039; weiterleitet (2)&lt;br /&gt;
* Router &#039;&#039;&#039;R2&#039;&#039;&#039; erkennt jedoch, daß es für Rechner &#039;&#039;&#039;A&#039;&#039;&#039; günstiger wäre, sich gleich an Router &#039;&#039;&#039;R1&#039;&#039;&#039; zu wenden und teilt ihm dieses durch eine ICMP-Nachricht vom Typ &#039;&#039;Redirect&#039;&#039; mit (3)&lt;br /&gt;
* Rechner &#039;&#039;&#039;B&#039;&#039;&#039; sendet fortan die Daten direkt zu Router &#039;&#039;&#039;R1&#039;&#039;&#039; (4)&lt;br /&gt;
&lt;br /&gt;
[[File:ICMP-Redirect.png|600px|none]]&lt;br /&gt;
&lt;br /&gt;
= Missbrauch =&lt;br /&gt;
&lt;br /&gt;
== Ping flood ==&lt;br /&gt;
&lt;br /&gt;
Bei der einfachsten Variante dieser Angriffsmethode sendet ein angreifender Rechner in schneller Folge &#039;&#039;Echo Request&#039;&#039;-Nachrichten an das Opfer. Dabei wird die eigene Adresse (also die des Absenders) gefälscht, so daß ein zufälliger Rechner mit den resultierenden &#039;&#039;Echo Reply&#039;&#039;-Antworten des Opfers bombardiert wird. Ziel solcher Angriffe ist es, die Nichtverfügbarkeit eines Dienstes (&#039;&#039;&#039;D&#039;&#039;&#039;enial &#039;&#039;&#039;o&#039;&#039;&#039;f &#039;&#039;&#039;S&#039;&#039;&#039;ervice) herbeizuführen, da das Opfer mit der Beantwortung der ICMP-Anfragen beschäftigt wird.&lt;br /&gt;
&lt;br /&gt;
== Ping of Death ==&lt;br /&gt;
&lt;br /&gt;
Diese Variante eines Denial-of-Service-Angriffs sollte heute nicht mehr zum Ziel führen, da die dafür anfälligen Betriebssysteme inzwischen entsprechende Updates erhielten. Beim &#039;&#039;Ping of Death&#039;&#039; wurden ICMP-Nachrichten versendet, bei denen die zulässige Größe überschritten wurde, so daß diese für den Transport fragmentiert werden mussten. Das letzte Fragment einer solchen Nachricht enthielt dann eine Kombination der Werte für Offset und Fragmentgröße, die das Gesamtpaket größer werden ließen, als die erlaubten 65&#039;535 Byte. Dies konnte zu einem Stapelüberlauf und somit zum Absturz des Zielrechners führen.&lt;br /&gt;
&lt;br /&gt;
= Kontrollfragen =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Datei:ICMP-Redirect.png&amp;diff=24638</id>
		<title>Datei:ICMP-Redirect.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Datei:ICMP-Redirect.png&amp;diff=24638"/>
		<updated>2021-03-08T13:28:19Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: Datei hochgeladen mit MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Datei hochgeladen mit MsUpload&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24637</id>
		<title>Internet Control Message Protocol</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24637"/>
		<updated>2021-03-08T10:39:37Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: /* Anwendungen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das &#039;&#039;&#039;I&#039;&#039;&#039;nternet &#039;&#039;&#039;C&#039;&#039;&#039;ontrol &#039;&#039;&#039;M&#039;&#039;&#039;essage &#039;&#039;&#039;P&#039;&#039;&#039;rotocol (ICMP) kommt in TCP/IP-Netzwerken zum Einsatz, um Informationen über Probleme und den Status des Netzwerks auszutauschen oder Funktionen zu prüfen.&lt;br /&gt;
&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* ursprünglich definiert von Jon Postel, einem Wegbereiter des Internets&lt;br /&gt;
* Verabschiedung des ersten Standards im April 1981 als [https://tools.ietf.org/html/rfc777 RFC 777]&lt;br /&gt;
* mehrmalige Aktualisierungen führten zur aktuellen Definition [https://tools.ietf.org/html/rfc792 RFC 792]&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
Das Internet-Protokoll ermöglicht die Kommunikation von Geräten über beliebig lange Pfade. Da es sich nicht vermeiden läßt, daß bei dieser Datenübertragung Fehler auftreten, wurde mit ICMP eine Möglichkeit geschaffen, den Absender der Datagramme über etwaige Probleme zu informieren. Mögliche Probleme sind:&lt;br /&gt;
&lt;br /&gt;
* ein Gerät oder Dienst ist nicht ereichbar&lt;br /&gt;
* einzelne Bits der Datagramme wurden auf dem Weg verfälscht&lt;br /&gt;
* die Lebenszeit (TTL) eines Datagramms ist abgelaufen&lt;br /&gt;
* die Pufferkapazität des Empfängers ist erschöpft&lt;br /&gt;
&lt;br /&gt;
Das ICMP-Protokoll wird als Teil der OSI-Schicht 3 betrachtet. Die Daten werden jedoch in IP-Paketen transportiert, wie dies bei TCP &amp;amp; UDP geschieht, obwohl ICMP kein Transportprotokoll ist. ICMP nutzt somit das IP-Protokoll, als wäre es ein Protokoll einer höheren Schicht (im OSI-Modell), obwohl es eigentlich integraler Bestandteil des IP-Protokolls ist.&lt;br /&gt;
&lt;br /&gt;
= Die Paketstruktur =&lt;br /&gt;
&lt;br /&gt;
== ICMP-Header ==&lt;br /&gt;
&lt;br /&gt;
Der Header einer ICMP-Nachricht:&lt;br /&gt;
*folgt direkt auf den IPv4-Header und wird dort an einer Protokollnummer erkannt&lt;br /&gt;
*erweitert den IP-Header und ist als integraler Bestandteil des IP-Protokolls zu sehen&lt;br /&gt;
*besitzt eine Länge von 8 Byte, gefolgt von einem Datenabschnitt variabler Größe&lt;br /&gt;
Die ersten vier Bytes des Headers haben ein festgelegtes Format:&lt;br /&gt;
*Mit dem ersten Byte wird der Typ der Nachricht kodiert.&lt;br /&gt;
*Das zweite Byte enthält einen, vom jeweiligen Typ abhängigen Code&lt;br /&gt;
*Das dritte und vierte Byte bilden eine Prüfsumme des Headers&lt;br /&gt;
Die folgenden (und letzten) vier Bytes des Headers sind vom Typ der ICMP-Nachricht abhängig.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ICMP4.png|750px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable toptextcells&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Typ !! Typname !! Code !! Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Echo Reply || 0 || Echo-Antwort&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;7&amp;quot;| 3 || rowspan=&amp;quot;7&amp;quot;| Destination Unreachable || 0 || Netzwerk nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Host (Zielstation) nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Protokoll nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Port nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Fragmentierung nötig, &#039;&#039;&#039;D&#039;&#039;&#039;on’t &#039;&#039;&#039;F&#039;&#039;&#039;ragment aber gesetzt&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Route nicht möglich&lt;br /&gt;
|-&lt;br /&gt;
| 13 || Paket wird von der Firewall des Empfängers geblockt&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Source Quench || 0 || Datagramm verworfen, da Warteschlange voll&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;| 5 || rowspan=&amp;quot;4&amp;quot;| Redirect Message || 0 || Benachrichtigung über eine Umleitung für das angegebene Netzwerk&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Benachrichtigung über eine Umleitung für den ausgewählten Host&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Umleitung für den angegebenen Dienst &amp;amp; das Netz&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Umleitung für den angegebenen Dienst &amp;amp; den Host&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Echo Request || 0 || Echo-Anfrage (Ping)&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Router Solicitation || 0 || Suche nach einem Router&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Router Advertisement || 0 || Bekanntmachung eines Routers&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| 11 || rowspan=&amp;quot;2&amp;quot;| Time Exceeded || 0 || TTL (Time To Live, Lebensdauer) abgelaufen&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Zeitlimit während der Defragmentierung überschritten&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ICMP-Daten ==&lt;br /&gt;
&lt;br /&gt;
Je nach Typ der ICMP-Nachricht haben die, sich dem ICMP-Header anschließenden Daten, eine unterschiedlichen Inhalt und sind verschieden strukturiert. Oft wird der IP-Header wiederholt und im Anschluß daran die ersten 64 Bit des ursprünglichen Datagramms. Damit wird dem Zielrechner die Zuordnung der Nachricht ermöglicht.&lt;br /&gt;
&lt;br /&gt;
= Anwendungen =&lt;br /&gt;
&lt;br /&gt;
Am häufigsten wird ICMP zur Fehlerermittlung genutzt. Situationen, die eine ICMP-Fehlermeldung auslösen sind:&lt;br /&gt;
&lt;br /&gt;
* Ziel nicht erreichbar (&#039;&#039;Destination Unreachable&#039;&#039;): Dieser Fehler tritt auf, wenn der Zielrechner nicht mehr existiert, oder auf diesem kein passendes Protokoll gefunden werden kann. Tritt dieser Fall ein, wird der Absender entsprechend benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
* Zeit überschritten (&#039;&#039;Time Exceeded&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Ungültige Parameter (&#039;&#039;Parameter Problem&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Senderate reduzieren (&#039;&#039;Source Quench&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Umleitung im Netzwerk (&#039;&#039;Redirect&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Prüfung auf die Erreichbarkeit eines Gerätes&lt;br /&gt;
* Ermittlung des Pfades, den ein Datagramm durch das Netz beschreitet&lt;br /&gt;
* Ermittlung der maximalen Größe des Datagramms auf diesem Pfad&lt;br /&gt;
&lt;br /&gt;
== Ping ==&lt;br /&gt;
&lt;br /&gt;
Mit diesem Programm kann die Erreichbarkeit eines Netzwerkteilnehmers geprüft werden. Das Programm sendet die ICMP-Nachricht &#039;&#039;Echo Request&#039;&#039; an eine IP-Adresse &amp;amp; wartet daraufhin auf eine Antwort, dem &#039;&#039;Echo Reply&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 $ ping  google.de&lt;br /&gt;
 PING google.de(ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003)) 56 data bytes&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=1 ttl=119 time=25.7 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=2 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=3 ttl=119 time=22.6 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=4 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=5 ttl=119 time=23.1 ms&lt;br /&gt;
 ^C&lt;br /&gt;
 --- google.de ping statistics ---&lt;br /&gt;
 5 packets transmitted, 5 received, 0% packet loss, time 4006ms&lt;br /&gt;
 rtt min/avg/max/mdev = 22.572/23.416/25.650/1.130 ms&lt;br /&gt;
&lt;br /&gt;
[[File:Ping.png|750px|none]]&lt;br /&gt;
&lt;br /&gt;
== Trace Route ==&lt;br /&gt;
&lt;br /&gt;
Mit dem Kommandozeilenbefehl &#039;&#039;&#039;traceroute&#039;&#039;&#039; kann der Pfad ermittelt werden, der von einem IP-Paket vom Sender zum Empfänger beschritten wird: &lt;br /&gt;
&lt;br /&gt;
 $ traceroute google.de&lt;br /&gt;
 traceroute to google.de (172.217.19.67), 30 hops max, 60 byte packets&lt;br /&gt;
  1  fritz.box (192.168.100.1)  0.450 ms  0.593 ms  0.743 ms&lt;br /&gt;
  2  ber1005dihr001.versatel.de (62.214.63.92)  12.670 ms  12.750 ms  12.693 ms&lt;br /&gt;
  3  62.214.37.245 (62.214.37.245)  13.746 ms  13.787 ms  13.825 ms&lt;br /&gt;
  4  62.214.37.130 (62.214.37.130)  23.674 ms  23.716 ms 62.214.37.158 (62.214.37.158)  41.595 ms&lt;br /&gt;
  5  72.14.222.28 (72.14.222.28)  22.010 ms  22.063 ms 89.246.109.250 (89.246.109.250)  29.791 ms&lt;br /&gt;
  6  108.170.251.145 (108.170.251.145)  26.073 ms 108.170.252.18 (108.170.252.18)  37.669 ms 108.170.252.19 (108.170.252.19)  24.852 ms&lt;br /&gt;
  7  209.85.245.203 (209.85.245.203)  18.491 ms 209.85.242.79 (209.85.242.79)  44.834 ms 209.85.244.219 (209.85.244.219)  23.396 ms&lt;br /&gt;
  8  ham02s17-in-f3.1e100.net (172.217.19.67)  18.911 ms  17.654 ms  19.136 ms&lt;br /&gt;
&lt;br /&gt;
* Das Programm kann zur Analyse von Netzwerkproblemen genutzt werden: Nimmt ein Paket den erwarteten Weg, oder kommt es über Umwege dorthin? Welche alternativen Wege beschreitet ein Paket beim Ausfall eines Netzknotens?&lt;br /&gt;
* Es werden die Laufzeiten zwischen den einzelnen Stationen (Hops) ermittelt, so daß überprüft werden kann, ob es auf dem Weg zum Ziel zu Engpässen oder Überlastungen kommt.&lt;br /&gt;
&lt;br /&gt;
Funktionsweise von traceroute:&lt;br /&gt;
&lt;br /&gt;
* Der Absender sendet eine ICMP-Nachricht vom Typ &#039;&#039;Echo Request&#039;&#039; an den Zielrechner. Von besonderer Bedeutung ist hierbei die Lebenszeit der Nachricht von eins (&#039;&#039;TTL=1&#039;&#039;).&lt;br /&gt;
* Die nächste Station auf dem Weg zum Zielrechner vermindert den Wert von &#039;&#039;TTL&#039;&#039; um eins, so daß dieser Wert jetzt Null beträgt und die Nachricht daraufhin verworfen wird. Der Absender wird jedoch über diesen Vorgang informiert und erhält eine ICMP-Nachricht vom Typ &#039;&#039;time to live exceeded in transit&#039;&#039;, die auch die IP-Adresse der Zwischenstation enthält.&lt;br /&gt;
* Der Absender verschickt daraufhin erneut ein &#039;&#039;Echo Request&#039;&#039; an den Zielrechner - dieses Mal jedoch mit einer &#039;&#039;TTL&#039;&#039; von zwei. Somit erreicht die Nachricht die zweite Zwischenstation auf dem Weg zum Ziel, bevor auch diese verworfen und der Absender benachrichtigt wird.&lt;br /&gt;
* Der Absender versendet nun weitere Nachrichten vom Typ &#039;&#039;Echo Request&#039;&#039; - und erhöht jeweils den Wert der Lebenszeit - bis der Zielrechner erreicht wird und eine ICMP-Nachricht vom Typ &#039;&#039;Echo Reply&#039;&#039; erhalten wird.&lt;br /&gt;
* Am Ende des Programmablaufs wird von &#039;&#039;traceroute&#039;&#039; eine nummerierte Liste erhalten, die die IP-Adressen der durchlaufenen Zwischenstationen und der dazugehörigen Laufzeiten enthält.&lt;br /&gt;
&lt;br /&gt;
== Pfad-MTU Ermittlung ==&lt;br /&gt;
&lt;br /&gt;
Eine weitere wichtige Funktion von ICMP ist ein Verfahren zur Ermittlung der &#039;&#039;&#039;&#039;&#039;M&#039;&#039;&#039;aximum &#039;&#039;&#039;T&#039;&#039;&#039;ransfer &#039;&#039;&#039;U&#039;&#039;&#039;nit&#039;&#039; für ein entferntes IP-Netz. Dieses wird als &#039;&#039;Path MTU Discovery&#039;&#039; bezeichnet und ist von jedem Router zu unterstützen.&lt;br /&gt;
&lt;br /&gt;
Ablauf zur Ermittlung der MTU:&lt;br /&gt;
&lt;br /&gt;
* Der Sender generiert ein IP-Paket mit der MTU des lokalen Netzes und gesetztem &#039;&#039;Don&#039;t Fragment&#039;&#039;-Bit&lt;br /&gt;
* Wird auf dem Weg ein Transfernetz erreicht, dessen MTU überschritten wird, so daß dessen Router das Paket fragmentieren müsste, wird das Paket verworfen und der Absender durch eine ICMP-Nachricht vom Typ 3 Code 4 (&#039;&#039;Destination Unreachable&#039;&#039;,&#039;&#039;Fragmentation required, and DF flag set&#039;&#039;) benachrichtigt.&lt;br /&gt;
* Da der Absender nun die MTU der Gegenseite kennt, kann er die seine entsprechend anpassen und die Daten erneut versenden.&lt;br /&gt;
&lt;br /&gt;
= Missbrauch =&lt;br /&gt;
&lt;br /&gt;
== Ping flood ==&lt;br /&gt;
&lt;br /&gt;
Bei der einfachsten Variante dieser Angriffsmethode sendet ein angreifender Rechner in schneller Folge &#039;&#039;Echo Request&#039;&#039;-Nachrichten an das Opfer. Dabei wird die eigene Adresse (also die des Absenders) gefälscht, so daß ein zufälliger Rechner mit den resultierenden &#039;&#039;Echo Reply&#039;&#039;-Antworten des Opfers bombardiert wird. Ziel solcher Angriffe ist es, die Nichtverfügbarkeit eines Dienstes (&#039;&#039;&#039;D&#039;&#039;&#039;enial &#039;&#039;&#039;o&#039;&#039;&#039;f &#039;&#039;&#039;S&#039;&#039;&#039;ervice) herbeizuführen, da das Opfer mit der Beantwortung der ICMP-Anfragen beschäftigt wird.&lt;br /&gt;
&lt;br /&gt;
== Ping of Death ==&lt;br /&gt;
&lt;br /&gt;
Diese Variante eines Denial-of-Service-Angriffs sollte heute nicht mehr zum Ziel führen, da die dafür anfälligen Betriebssysteme inzwischen entsprechende Updates erhielten. Beim &#039;&#039;Ping of Death&#039;&#039; wurden ICMP-Nachrichten versendet, bei denen die zulässige Größe überschritten wurde, so daß diese für den Transport fragmentiert werden mussten. Das letzte Fragment einer solchen Nachricht enthielt dann eine Kombination der Werte für Offset und Fragmentgröße, die das Gesamtpaket größer werden ließen, als die erlaubten 65&#039;535 Byte. Dies konnte zu einem Stapelüberlauf und somit zum Absturz des Zielrechners führen.&lt;br /&gt;
&lt;br /&gt;
= Kontrollfragen =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24636</id>
		<title>Internet Control Message Protocol</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24636"/>
		<updated>2021-03-08T10:03:23Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: /* ICMP-Header */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das &#039;&#039;&#039;I&#039;&#039;&#039;nternet &#039;&#039;&#039;C&#039;&#039;&#039;ontrol &#039;&#039;&#039;M&#039;&#039;&#039;essage &#039;&#039;&#039;P&#039;&#039;&#039;rotocol (ICMP) kommt in TCP/IP-Netzwerken zum Einsatz, um Informationen über Probleme und den Status des Netzwerks auszutauschen oder Funktionen zu prüfen.&lt;br /&gt;
&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* ursprünglich definiert von Jon Postel, einem Wegbereiter des Internets&lt;br /&gt;
* Verabschiedung des ersten Standards im April 1981 als [https://tools.ietf.org/html/rfc777 RFC 777]&lt;br /&gt;
* mehrmalige Aktualisierungen führten zur aktuellen Definition [https://tools.ietf.org/html/rfc792 RFC 792]&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
Das Internet-Protokoll ermöglicht die Kommunikation von Geräten über beliebig lange Pfade. Da es sich nicht vermeiden läßt, daß bei dieser Datenübertragung Fehler auftreten, wurde mit ICMP eine Möglichkeit geschaffen, den Absender der Datagramme über etwaige Probleme zu informieren. Mögliche Probleme sind:&lt;br /&gt;
&lt;br /&gt;
* ein Gerät oder Dienst ist nicht ereichbar&lt;br /&gt;
* einzelne Bits der Datagramme wurden auf dem Weg verfälscht&lt;br /&gt;
* die Lebenszeit (TTL) eines Datagramms ist abgelaufen&lt;br /&gt;
* die Pufferkapazität des Empfängers ist erschöpft&lt;br /&gt;
&lt;br /&gt;
Das ICMP-Protokoll wird als Teil der OSI-Schicht 3 betrachtet. Die Daten werden jedoch in IP-Paketen transportiert, wie dies bei TCP &amp;amp; UDP geschieht, obwohl ICMP kein Transportprotokoll ist. ICMP nutzt somit das IP-Protokoll, als wäre es ein Protokoll einer höheren Schicht (im OSI-Modell), obwohl es eigentlich integraler Bestandteil des IP-Protokolls ist.&lt;br /&gt;
&lt;br /&gt;
= Die Paketstruktur =&lt;br /&gt;
&lt;br /&gt;
== ICMP-Header ==&lt;br /&gt;
&lt;br /&gt;
Der Header einer ICMP-Nachricht:&lt;br /&gt;
*folgt direkt auf den IPv4-Header und wird dort an einer Protokollnummer erkannt&lt;br /&gt;
*erweitert den IP-Header und ist als integraler Bestandteil des IP-Protokolls zu sehen&lt;br /&gt;
*besitzt eine Länge von 8 Byte, gefolgt von einem Datenabschnitt variabler Größe&lt;br /&gt;
Die ersten vier Bytes des Headers haben ein festgelegtes Format:&lt;br /&gt;
*Mit dem ersten Byte wird der Typ der Nachricht kodiert.&lt;br /&gt;
*Das zweite Byte enthält einen, vom jeweiligen Typ abhängigen Code&lt;br /&gt;
*Das dritte und vierte Byte bilden eine Prüfsumme des Headers&lt;br /&gt;
Die folgenden (und letzten) vier Bytes des Headers sind vom Typ der ICMP-Nachricht abhängig.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ICMP4.png|750px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable toptextcells&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Typ !! Typname !! Code !! Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Echo Reply || 0 || Echo-Antwort&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;7&amp;quot;| 3 || rowspan=&amp;quot;7&amp;quot;| Destination Unreachable || 0 || Netzwerk nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Host (Zielstation) nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Protokoll nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Port nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Fragmentierung nötig, &#039;&#039;&#039;D&#039;&#039;&#039;on’t &#039;&#039;&#039;F&#039;&#039;&#039;ragment aber gesetzt&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Route nicht möglich&lt;br /&gt;
|-&lt;br /&gt;
| 13 || Paket wird von der Firewall des Empfängers geblockt&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Source Quench || 0 || Datagramm verworfen, da Warteschlange voll&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;| 5 || rowspan=&amp;quot;4&amp;quot;| Redirect Message || 0 || Benachrichtigung über eine Umleitung für das angegebene Netzwerk&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Benachrichtigung über eine Umleitung für den ausgewählten Host&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Umleitung für den angegebenen Dienst &amp;amp; das Netz&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Umleitung für den angegebenen Dienst &amp;amp; den Host&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Echo Request || 0 || Echo-Anfrage (Ping)&lt;br /&gt;
|-&lt;br /&gt;
| 9 || Router Solicitation || 0 || Suche nach einem Router&lt;br /&gt;
|-&lt;br /&gt;
| 10 || Router Advertisement || 0 || Bekanntmachung eines Routers&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| 11 || rowspan=&amp;quot;2&amp;quot;| Time Exceeded || 0 || TTL (Time To Live, Lebensdauer) abgelaufen&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Zeitlimit während der Defragmentierung überschritten&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ICMP-Daten ==&lt;br /&gt;
&lt;br /&gt;
Je nach Typ der ICMP-Nachricht haben die, sich dem ICMP-Header anschließenden Daten, eine unterschiedlichen Inhalt und sind verschieden strukturiert. Oft wird der IP-Header wiederholt und im Anschluß daran die ersten 64 Bit des ursprünglichen Datagramms. Damit wird dem Zielrechner die Zuordnung der Nachricht ermöglicht.&lt;br /&gt;
&lt;br /&gt;
= Anwendungen =&lt;br /&gt;
&lt;br /&gt;
Am häufigsten wird ICMP zur Fehlerermittlung genutzt. Situationen, die eine ICMP-Fehlermeldung auslösen sind:&lt;br /&gt;
&lt;br /&gt;
* Ziel nicht erreichbar (&#039;&#039;Destination Unreachable&#039;&#039;): Dieser Fehler tritt auf, wenn der Zielrechner nicht mehr existiert, oder auf diesem kein passendes Protokoll gefunden werden kann. Tritt dieser Fall ein, wird der Absender entsprechend benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
* Zeit überschritten (&#039;&#039;Time Exceeded&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Ungültige Parameter (&#039;&#039;Parameter Problem&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Senderate reduzieren (&#039;&#039;Source Quench&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Umleitung im Netzwerk (&#039;&#039;Redirect&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Prüfung auf die Erreichbarkeit eines Gerätes&lt;br /&gt;
* Ermittlung des Pfades, den ein Datagramm durch das Netz beschreitet&lt;br /&gt;
* Ermittlung der maximalen Größe des Datagramms auf diesem Pfad&lt;br /&gt;
&lt;br /&gt;
== Ping ==&lt;br /&gt;
&lt;br /&gt;
Mit diesem Programm kann die Erreichbarkeit eines Netzwerkteilnehmers geprüft werden. Das Programm sendet die ICMP-Nachricht &#039;&#039;Echo Request&#039;&#039; an eine IP-Adresse &amp;amp; wartet daraufhin auf eine Antwort, dem &#039;&#039;Echo Reply&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 $ ping  google.de&lt;br /&gt;
 PING google.de(ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003)) 56 data bytes&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=1 ttl=119 time=25.7 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=2 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=3 ttl=119 time=22.6 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=4 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=5 ttl=119 time=23.1 ms&lt;br /&gt;
 ^C&lt;br /&gt;
 --- google.de ping statistics ---&lt;br /&gt;
 5 packets transmitted, 5 received, 0% packet loss, time 4006ms&lt;br /&gt;
 rtt min/avg/max/mdev = 22.572/23.416/25.650/1.130 ms&lt;br /&gt;
&lt;br /&gt;
[[File:Ping.png|750px|none]]&lt;br /&gt;
&lt;br /&gt;
== Trace Route ==&lt;br /&gt;
&lt;br /&gt;
Mit dem Kommandozeilenbefehl &#039;&#039;&#039;traceroute&#039;&#039;&#039; kann der Pfad ermittelt werden, der von einem IP-Paket vom Sender zum Empfänger beschritten wird: &lt;br /&gt;
&lt;br /&gt;
 $ traceroute google.de&lt;br /&gt;
 traceroute to google.de (172.217.19.67), 30 hops max, 60 byte packets&lt;br /&gt;
  1  fritz.box (192.168.100.1)  0.450 ms  0.593 ms  0.743 ms&lt;br /&gt;
  2  ber1005dihr001.versatel.de (62.214.63.92)  12.670 ms  12.750 ms  12.693 ms&lt;br /&gt;
  3  62.214.37.245 (62.214.37.245)  13.746 ms  13.787 ms  13.825 ms&lt;br /&gt;
  4  62.214.37.130 (62.214.37.130)  23.674 ms  23.716 ms 62.214.37.158 (62.214.37.158)  41.595 ms&lt;br /&gt;
  5  72.14.222.28 (72.14.222.28)  22.010 ms  22.063 ms 89.246.109.250 (89.246.109.250)  29.791 ms&lt;br /&gt;
  6  108.170.251.145 (108.170.251.145)  26.073 ms 108.170.252.18 (108.170.252.18)  37.669 ms 108.170.252.19 (108.170.252.19)  24.852 ms&lt;br /&gt;
  7  209.85.245.203 (209.85.245.203)  18.491 ms 209.85.242.79 (209.85.242.79)  44.834 ms 209.85.244.219 (209.85.244.219)  23.396 ms&lt;br /&gt;
  8  ham02s17-in-f3.1e100.net (172.217.19.67)  18.911 ms  17.654 ms  19.136 ms&lt;br /&gt;
&lt;br /&gt;
* Das Programm kann zur Analyse von Netzwerkproblemen genutzt werden: Nimmt ein Paket den erwarteten Weg, oder kommt es über Umwege dorthin? Welche alternativen Wege beschreitet ein Paket beim Ausfall eines Netzknotens?&lt;br /&gt;
* Es werden die Laufzeiten zwischen den einzelnen Stationen (Hops) ermittelt, so daß überprüft werden kann, ob es auf dem Weg zum Ziel zu Engpässen oder Überlastungen kommt.&lt;br /&gt;
&lt;br /&gt;
Funktionsweise von traceroute:&lt;br /&gt;
&lt;br /&gt;
* Der Absender sendet eine ICMP-Nachricht vom Typ &#039;&#039;Echo Request&#039;&#039; an den Zielrechner. Von besonderer Bedeutung ist hierbei die Lebenszeit der Nachricht von eins (&#039;&#039;TTL=1&#039;&#039;).&lt;br /&gt;
* Die nächste Station auf dem Weg zum Zielrechner vermindert den Wert von &#039;&#039;TTL&#039;&#039; um eins, so daß dieser Wert jetzt Null beträgt und die Nachricht daraufhin verworfen wird. Der Absender wird jedoch über diesen Vorgang informiert und erhält eine ICMP-Nachricht vom Typ &#039;&#039;time to live exceeded in transit&#039;&#039;, die auch die IP-Adresse der Zwischenstation enthält.&lt;br /&gt;
* Der Absender verschickt daraufhin erneut ein &#039;&#039;Echo Request&#039;&#039; an den Zielrechner - dieses Mal jedoch mit einer &#039;&#039;TTL&#039;&#039; von zwei. Somit erreicht die Nachricht die zweite Zwischenstation auf dem Weg zum Ziel, bevor auch diese verworfen und der Absender benachrichtigt wird.&lt;br /&gt;
* Der Absender versendet nun weitere Nachrichten vom Typ &#039;&#039;Echo Request&#039;&#039; - und erhöht jeweils den Wert der Lebenszeit - bis der Zielrechner erreicht wird und eine ICMP-Nachricht vom Typ &#039;&#039;Echo Reply&#039;&#039; erhalten wird.&lt;br /&gt;
* Am Ende des Programmablaufs wird von &#039;&#039;traceroute&#039;&#039; eine nummerierte Liste erhalten, die die IP-Adressen der durchlaufenen Zwischenstationen und der dazugehörigen Laufzeiten enthält.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Missbrauch =&lt;br /&gt;
&lt;br /&gt;
== Ping flood ==&lt;br /&gt;
&lt;br /&gt;
Bei der einfachsten Variante dieser Angriffsmethode sendet ein angreifender Rechner in schneller Folge &#039;&#039;Echo Request&#039;&#039;-Nachrichten an das Opfer. Dabei wird die eigene Adresse (also die des Absenders) gefälscht, so daß ein zufälliger Rechner mit den resultierenden &#039;&#039;Echo Reply&#039;&#039;-Antworten des Opfers bombardiert wird. Ziel solcher Angriffe ist es, die Nichtverfügbarkeit eines Dienstes (&#039;&#039;&#039;D&#039;&#039;&#039;enial &#039;&#039;&#039;o&#039;&#039;&#039;f &#039;&#039;&#039;S&#039;&#039;&#039;ervice) herbeizuführen, da das Opfer mit der Beantwortung der ICMP-Anfragen beschäftigt wird.&lt;br /&gt;
&lt;br /&gt;
== Ping of Death ==&lt;br /&gt;
&lt;br /&gt;
Diese Variante eines Denial-of-Service-Angriffs sollte heute nicht mehr zum Ziel führen, da die dafür anfälligen Betriebssysteme inzwischen entsprechende Updates erhielten. Beim &#039;&#039;Ping of Death&#039;&#039; wurden ICMP-Nachrichten versendet, bei denen die zulässige Größe überschritten wurde, so daß diese für den Transport fragmentiert werden mussten. Das letzte Fragment einer solchen Nachricht enthielt dann eine Kombination der Werte für Offset und Fragmentgröße, die das Gesamtpaket größer werden ließen, als die erlaubten 65&#039;535 Byte. Dies konnte zu einem Stapelüberlauf und somit zum Absturz des Zielrechners führen.&lt;br /&gt;
&lt;br /&gt;
= Kontrollfragen =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24635</id>
		<title>Internet Control Message Protocol</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24635"/>
		<updated>2021-03-08T09:36:53Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: /* ICMP-Header */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das &#039;&#039;&#039;I&#039;&#039;&#039;nternet &#039;&#039;&#039;C&#039;&#039;&#039;ontrol &#039;&#039;&#039;M&#039;&#039;&#039;essage &#039;&#039;&#039;P&#039;&#039;&#039;rotocol (ICMP) kommt in TCP/IP-Netzwerken zum Einsatz, um Informationen über Probleme und den Status des Netzwerks auszutauschen oder Funktionen zu prüfen.&lt;br /&gt;
&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* ursprünglich definiert von Jon Postel, einem Wegbereiter des Internets&lt;br /&gt;
* Verabschiedung des ersten Standards im April 1981 als [https://tools.ietf.org/html/rfc777 RFC 777]&lt;br /&gt;
* mehrmalige Aktualisierungen führten zur aktuellen Definition [https://tools.ietf.org/html/rfc792 RFC 792]&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
Das Internet-Protokoll ermöglicht die Kommunikation von Geräten über beliebig lange Pfade. Da es sich nicht vermeiden läßt, daß bei dieser Datenübertragung Fehler auftreten, wurde mit ICMP eine Möglichkeit geschaffen, den Absender der Datagramme über etwaige Probleme zu informieren. Mögliche Probleme sind:&lt;br /&gt;
&lt;br /&gt;
* ein Gerät oder Dienst ist nicht ereichbar&lt;br /&gt;
* einzelne Bits der Datagramme wurden auf dem Weg verfälscht&lt;br /&gt;
* die Lebenszeit (TTL) eines Datagramms ist abgelaufen&lt;br /&gt;
* die Pufferkapazität des Empfängers ist erschöpft&lt;br /&gt;
&lt;br /&gt;
Das ICMP-Protokoll wird als Teil der OSI-Schicht 3 betrachtet. Die Daten werden jedoch in IP-Paketen transportiert, wie dies bei TCP &amp;amp; UDP geschieht, obwohl ICMP kein Transportprotokoll ist. ICMP nutzt somit das IP-Protokoll, als wäre es ein Protokoll einer höheren Schicht (im OSI-Modell), obwohl es eigentlich integraler Bestandteil des IP-Protokolls ist.&lt;br /&gt;
&lt;br /&gt;
= Die Paketstruktur =&lt;br /&gt;
&lt;br /&gt;
== ICMP-Header ==&lt;br /&gt;
&lt;br /&gt;
Der Header einer ICMP-Nachricht:&lt;br /&gt;
*folgt direkt auf den IPv4-Header und wird dort an einer Protokollnummer erkannt&lt;br /&gt;
*erweitert den IP-Header und ist als integraler Bestandteil des IP-Protokolls zu sehen&lt;br /&gt;
*besitzt eine Länge von 8 Byte, gefolgt von einem Datenabschnitt variabler Größe&lt;br /&gt;
Die ersten vier Bytes des Headers haben ein festgelegtes Format:&lt;br /&gt;
*Mit dem ersten Byte wird der Typ der Nachricht kodiert.&lt;br /&gt;
*Das zweite Byte enthält einen, vom jeweiligen Typ abhängigen Code&lt;br /&gt;
*Das dritte und vierte Byte bilden eine Prüfsumme des Headers&lt;br /&gt;
Die folgenden (und letzten) vier Bytes des Headers sind vom Typ der ICMP-Nachricht abhängig.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ICMP4.png|750px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable toptextcells&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Typ !! Typname !! Code !! Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Echo Reply || 0 || Echo-Antwort&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;7&amp;quot;| 3 || rowspan=&amp;quot;7&amp;quot;| Destination Unreachable || 0 || Netzwerk nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Host (Zielstation) nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Protokoll nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Port nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Fragmentierung nötig, &#039;&#039;&#039;D&#039;&#039;&#039;on’t &#039;&#039;&#039;F&#039;&#039;&#039;ragment aber gesetzt&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Route nicht möglich&lt;br /&gt;
|-&lt;br /&gt;
| 13 || Paket wird von der Firewall des Empfängers geblockt&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Source Quench || 0 || Datagramm verworfen, da Warteschlange voll&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;4&amp;quot;| 5 || rowspan=&amp;quot;4&amp;quot;| Redirect Message || 0 || Benachrichtigung über eine Umleitung für das angegebene Netzwerk&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Benachrichtigung über eine Umleitung für den ausgewählten Host&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Umleitung für den angegebenen Dienst &amp;amp; das Netz&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Umleitung für den angegebenen Dienst &amp;amp; den Host&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Echo Request || 0 || Echo-Anfrage (Ping)&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| 11 || rowspan=&amp;quot;2&amp;quot;| Time Exceeded || 0 || TTL (Time To Live, Lebensdauer) abgelaufen&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Zeitlimit während der Defragmentierung überschritten&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ICMP-Daten ==&lt;br /&gt;
&lt;br /&gt;
Je nach Typ der ICMP-Nachricht haben die, sich dem ICMP-Header anschließenden Daten, eine unterschiedlichen Inhalt und sind verschieden strukturiert. Oft wird der IP-Header wiederholt und im Anschluß daran die ersten 64 Bit des ursprünglichen Datagramms. Damit wird dem Zielrechner die Zuordnung der Nachricht ermöglicht.&lt;br /&gt;
&lt;br /&gt;
= Anwendungen =&lt;br /&gt;
&lt;br /&gt;
Am häufigsten wird ICMP zur Fehlerermittlung genutzt. Situationen, die eine ICMP-Fehlermeldung auslösen sind:&lt;br /&gt;
&lt;br /&gt;
* Ziel nicht erreichbar (&#039;&#039;Destination Unreachable&#039;&#039;): Dieser Fehler tritt auf, wenn der Zielrechner nicht mehr existiert, oder auf diesem kein passendes Protokoll gefunden werden kann. Tritt dieser Fall ein, wird der Absender entsprechend benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
* Zeit überschritten (&#039;&#039;Time Exceeded&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Ungültige Parameter (&#039;&#039;Parameter Problem&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Senderate reduzieren (&#039;&#039;Source Quench&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Umleitung im Netzwerk (&#039;&#039;Redirect&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Prüfung auf die Erreichbarkeit eines Gerätes&lt;br /&gt;
* Ermittlung des Pfades, den ein Datagramm durch das Netz beschreitet&lt;br /&gt;
* Ermittlung der maximalen Größe des Datagramms auf diesem Pfad&lt;br /&gt;
&lt;br /&gt;
== Ping ==&lt;br /&gt;
&lt;br /&gt;
Mit diesem Programm kann die Erreichbarkeit eines Netzwerkteilnehmers geprüft werden. Das Programm sendet die ICMP-Nachricht &#039;&#039;Echo Request&#039;&#039; an eine IP-Adresse &amp;amp; wartet daraufhin auf eine Antwort, dem &#039;&#039;Echo Reply&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 $ ping  google.de&lt;br /&gt;
 PING google.de(ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003)) 56 data bytes&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=1 ttl=119 time=25.7 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=2 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=3 ttl=119 time=22.6 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=4 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=5 ttl=119 time=23.1 ms&lt;br /&gt;
 ^C&lt;br /&gt;
 --- google.de ping statistics ---&lt;br /&gt;
 5 packets transmitted, 5 received, 0% packet loss, time 4006ms&lt;br /&gt;
 rtt min/avg/max/mdev = 22.572/23.416/25.650/1.130 ms&lt;br /&gt;
&lt;br /&gt;
[[File:Ping.png|750px|none]]&lt;br /&gt;
&lt;br /&gt;
== Trace Route ==&lt;br /&gt;
&lt;br /&gt;
Mit dem Kommandozeilenbefehl &#039;&#039;&#039;traceroute&#039;&#039;&#039; kann der Pfad ermittelt werden, der von einem IP-Paket vom Sender zum Empfänger beschritten wird: &lt;br /&gt;
&lt;br /&gt;
 $ traceroute google.de&lt;br /&gt;
 traceroute to google.de (172.217.19.67), 30 hops max, 60 byte packets&lt;br /&gt;
  1  fritz.box (192.168.100.1)  0.450 ms  0.593 ms  0.743 ms&lt;br /&gt;
  2  ber1005dihr001.versatel.de (62.214.63.92)  12.670 ms  12.750 ms  12.693 ms&lt;br /&gt;
  3  62.214.37.245 (62.214.37.245)  13.746 ms  13.787 ms  13.825 ms&lt;br /&gt;
  4  62.214.37.130 (62.214.37.130)  23.674 ms  23.716 ms 62.214.37.158 (62.214.37.158)  41.595 ms&lt;br /&gt;
  5  72.14.222.28 (72.14.222.28)  22.010 ms  22.063 ms 89.246.109.250 (89.246.109.250)  29.791 ms&lt;br /&gt;
  6  108.170.251.145 (108.170.251.145)  26.073 ms 108.170.252.18 (108.170.252.18)  37.669 ms 108.170.252.19 (108.170.252.19)  24.852 ms&lt;br /&gt;
  7  209.85.245.203 (209.85.245.203)  18.491 ms 209.85.242.79 (209.85.242.79)  44.834 ms 209.85.244.219 (209.85.244.219)  23.396 ms&lt;br /&gt;
  8  ham02s17-in-f3.1e100.net (172.217.19.67)  18.911 ms  17.654 ms  19.136 ms&lt;br /&gt;
&lt;br /&gt;
* Das Programm kann zur Analyse von Netzwerkproblemen genutzt werden: Nimmt ein Paket den erwarteten Weg, oder kommt es über Umwege dorthin? Welche alternativen Wege beschreitet ein Paket beim Ausfall eines Netzknotens?&lt;br /&gt;
* Es werden die Laufzeiten zwischen den einzelnen Stationen (Hops) ermittelt, so daß überprüft werden kann, ob es auf dem Weg zum Ziel zu Engpässen oder Überlastungen kommt.&lt;br /&gt;
&lt;br /&gt;
Funktionsweise von traceroute:&lt;br /&gt;
&lt;br /&gt;
* Der Absender sendet eine ICMP-Nachricht vom Typ &#039;&#039;Echo Request&#039;&#039; an den Zielrechner. Von besonderer Bedeutung ist hierbei die Lebenszeit der Nachricht von eins (&#039;&#039;TTL=1&#039;&#039;).&lt;br /&gt;
* Die nächste Station auf dem Weg zum Zielrechner vermindert den Wert von &#039;&#039;TTL&#039;&#039; um eins, so daß dieser Wert jetzt Null beträgt und die Nachricht daraufhin verworfen wird. Der Absender wird jedoch über diesen Vorgang informiert und erhält eine ICMP-Nachricht vom Typ &#039;&#039;time to live exceeded in transit&#039;&#039;, die auch die IP-Adresse der Zwischenstation enthält.&lt;br /&gt;
* Der Absender verschickt daraufhin erneut ein &#039;&#039;Echo Request&#039;&#039; an den Zielrechner - dieses Mal jedoch mit einer &#039;&#039;TTL&#039;&#039; von zwei. Somit erreicht die Nachricht die zweite Zwischenstation auf dem Weg zum Ziel, bevor auch diese verworfen und der Absender benachrichtigt wird.&lt;br /&gt;
* Der Absender versendet nun weitere Nachrichten vom Typ &#039;&#039;Echo Request&#039;&#039; - und erhöht jeweils den Wert der Lebenszeit - bis der Zielrechner erreicht wird und eine ICMP-Nachricht vom Typ &#039;&#039;Echo Reply&#039;&#039; erhalten wird.&lt;br /&gt;
* Am Ende des Programmablaufs wird von &#039;&#039;traceroute&#039;&#039; eine nummerierte Liste erhalten, die die IP-Adressen der durchlaufenen Zwischenstationen und der dazugehörigen Laufzeiten enthält.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Missbrauch =&lt;br /&gt;
&lt;br /&gt;
== Ping flood ==&lt;br /&gt;
&lt;br /&gt;
Bei der einfachsten Variante dieser Angriffsmethode sendet ein angreifender Rechner in schneller Folge &#039;&#039;Echo Request&#039;&#039;-Nachrichten an das Opfer. Dabei wird die eigene Adresse (also die des Absenders) gefälscht, so daß ein zufälliger Rechner mit den resultierenden &#039;&#039;Echo Reply&#039;&#039;-Antworten des Opfers bombardiert wird. Ziel solcher Angriffe ist es, die Nichtverfügbarkeit eines Dienstes (&#039;&#039;&#039;D&#039;&#039;&#039;enial &#039;&#039;&#039;o&#039;&#039;&#039;f &#039;&#039;&#039;S&#039;&#039;&#039;ervice) herbeizuführen, da das Opfer mit der Beantwortung der ICMP-Anfragen beschäftigt wird.&lt;br /&gt;
&lt;br /&gt;
== Ping of Death ==&lt;br /&gt;
&lt;br /&gt;
Diese Variante eines Denial-of-Service-Angriffs sollte heute nicht mehr zum Ziel führen, da die dafür anfälligen Betriebssysteme inzwischen entsprechende Updates erhielten. Beim &#039;&#039;Ping of Death&#039;&#039; wurden ICMP-Nachrichten versendet, bei denen die zulässige Größe überschritten wurde, so daß diese für den Transport fragmentiert werden mussten. Das letzte Fragment einer solchen Nachricht enthielt dann eine Kombination der Werte für Offset und Fragmentgröße, die das Gesamtpaket größer werden ließen, als die erlaubten 65&#039;535 Byte. Dies konnte zu einem Stapelüberlauf und somit zum Absturz des Zielrechners führen.&lt;br /&gt;
&lt;br /&gt;
= Kontrollfragen =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24634</id>
		<title>Internet Control Message Protocol</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24634"/>
		<updated>2021-03-08T02:17:48Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: /* ICMP-Daten */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das &#039;&#039;&#039;I&#039;&#039;&#039;nternet &#039;&#039;&#039;C&#039;&#039;&#039;ontrol &#039;&#039;&#039;M&#039;&#039;&#039;essage &#039;&#039;&#039;P&#039;&#039;&#039;rotocol (ICMP) kommt in TCP/IP-Netzwerken zum Einsatz, um Informationen über Probleme und den Status des Netzwerks auszutauschen oder Funktionen zu prüfen.&lt;br /&gt;
&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* ursprünglich definiert von Jon Postel, einem Wegbereiter des Internets&lt;br /&gt;
* Verabschiedung des ersten Standards im April 1981 als [https://tools.ietf.org/html/rfc777 RFC 777]&lt;br /&gt;
* mehrmalige Aktualisierungen führten zur aktuellen Definition [https://tools.ietf.org/html/rfc792 RFC 792]&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
Das Internet-Protokoll ermöglicht die Kommunikation von Geräten über beliebig lange Pfade. Da es sich nicht vermeiden läßt, daß bei dieser Datenübertragung Fehler auftreten, wurde mit ICMP eine Möglichkeit geschaffen, den Absender der Datagramme über etwaige Probleme zu informieren. Mögliche Probleme sind:&lt;br /&gt;
&lt;br /&gt;
* ein Gerät oder Dienst ist nicht ereichbar&lt;br /&gt;
* einzelne Bits der Datagramme wurden auf dem Weg verfälscht&lt;br /&gt;
* die Lebenszeit (TTL) eines Datagramms ist abgelaufen&lt;br /&gt;
* die Pufferkapazität des Empfängers ist erschöpft&lt;br /&gt;
&lt;br /&gt;
Das ICMP-Protokoll wird als Teil der OSI-Schicht 3 betrachtet. Die Daten werden jedoch in IP-Paketen transportiert, wie dies bei TCP &amp;amp; UDP geschieht, obwohl ICMP kein Transportprotokoll ist. ICMP nutzt somit das IP-Protokoll, als wäre es ein Protokoll einer höheren Schicht (im OSI-Modell), obwohl es eigentlich integraler Bestandteil des IP-Protokolls ist.&lt;br /&gt;
&lt;br /&gt;
= Die Paketstruktur =&lt;br /&gt;
&lt;br /&gt;
== ICMP-Header ==&lt;br /&gt;
&lt;br /&gt;
Der Header einer ICMP-Nachricht:&lt;br /&gt;
*folgt direkt auf den IPv4-Header und wird dort an einer Protokollnummer erkannt&lt;br /&gt;
*erweitert den IP-Header und ist als integraler Bestandteil des IP-Protokolls zu sehen&lt;br /&gt;
*besitzt eine Länge von 8 Byte, gefolgt von einem Datenabschnitt variabler Größe&lt;br /&gt;
Die ersten vier Bytes des Headers haben ein festgelegtes Format:&lt;br /&gt;
*Mit dem ersten Byte wird der Typ der Nachricht kodiert.&lt;br /&gt;
*Das zweite Byte enthält einen, vom jeweiligen Typ abhängigen Code&lt;br /&gt;
*Das dritte und vierte Byte bilden eine Prüfsumme des Headers&lt;br /&gt;
Die folgenden (und letzten) vier Bytes des Headers sind vom Typ der ICMP-Nachricht abhängig.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ICMP4.png|750px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable toptextcells&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Typ !! Typname !! Code !! Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Echo-Antwort || 0 || Echo-Antwort&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;7&amp;quot;| 3 || rowspan=&amp;quot;7&amp;quot;| Ziel nicht erreichbar || 0 || Netzwerk nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Host (Zielstation) nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Protokoll nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Port nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Fragmentierung nötig, &#039;&#039;&#039;D&#039;&#039;&#039;on’t &#039;&#039;&#039;F&#039;&#039;&#039;ragment aber gesetzt&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Route nicht möglich&lt;br /&gt;
|-&lt;br /&gt;
| 13 || Paket wird von der Firewall des Empfängers geblockt&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Entlasten der Quelle || 0 || Datagramm verworfen, da Warteschlange voll&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Echo-Anfrage || 0 || Echo-Anfrage (Ping)&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| 11 || rowspan=&amp;quot;2&amp;quot;| Zeitlimit überschritten || 0 || TTL (Time To Live, Lebensdauer) abgelaufen&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Zeitlimit während der Defragmentierung überschritten&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ICMP-Daten ==&lt;br /&gt;
&lt;br /&gt;
Je nach Typ der ICMP-Nachricht haben die, sich dem ICMP-Header anschließenden Daten, eine unterschiedlichen Inhalt und sind verschieden strukturiert. Oft wird der IP-Header wiederholt und im Anschluß daran die ersten 64 Bit des ursprünglichen Datagramms. Damit wird dem Zielrechner die Zuordnung der Nachricht ermöglicht.&lt;br /&gt;
&lt;br /&gt;
= Anwendungen =&lt;br /&gt;
&lt;br /&gt;
Am häufigsten wird ICMP zur Fehlerermittlung genutzt. Situationen, die eine ICMP-Fehlermeldung auslösen sind:&lt;br /&gt;
&lt;br /&gt;
* Ziel nicht erreichbar (&#039;&#039;Destination Unreachable&#039;&#039;): Dieser Fehler tritt auf, wenn der Zielrechner nicht mehr existiert, oder auf diesem kein passendes Protokoll gefunden werden kann. Tritt dieser Fall ein, wird der Absender entsprechend benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
* Zeit überschritten (&#039;&#039;Time Exceeded&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Ungültige Parameter (&#039;&#039;Parameter Problem&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Senderate reduzieren (&#039;&#039;Source Quench&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Umleitung im Netzwerk (&#039;&#039;Redirect&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Prüfung auf die Erreichbarkeit eines Gerätes&lt;br /&gt;
* Ermittlung des Pfades, den ein Datagramm durch das Netz beschreitet&lt;br /&gt;
* Ermittlung der maximalen Größe des Datagramms auf diesem Pfad&lt;br /&gt;
&lt;br /&gt;
== Ping ==&lt;br /&gt;
&lt;br /&gt;
Mit diesem Programm kann die Erreichbarkeit eines Netzwerkteilnehmers geprüft werden. Das Programm sendet die ICMP-Nachricht &#039;&#039;Echo Request&#039;&#039; an eine IP-Adresse &amp;amp; wartet daraufhin auf eine Antwort, dem &#039;&#039;Echo Reply&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 $ ping  google.de&lt;br /&gt;
 PING google.de(ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003)) 56 data bytes&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=1 ttl=119 time=25.7 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=2 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=3 ttl=119 time=22.6 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=4 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=5 ttl=119 time=23.1 ms&lt;br /&gt;
 ^C&lt;br /&gt;
 --- google.de ping statistics ---&lt;br /&gt;
 5 packets transmitted, 5 received, 0% packet loss, time 4006ms&lt;br /&gt;
 rtt min/avg/max/mdev = 22.572/23.416/25.650/1.130 ms&lt;br /&gt;
&lt;br /&gt;
[[File:Ping.png|750px|none]]&lt;br /&gt;
&lt;br /&gt;
== Trace Route ==&lt;br /&gt;
&lt;br /&gt;
Mit dem Kommandozeilenbefehl &#039;&#039;&#039;traceroute&#039;&#039;&#039; kann der Pfad ermittelt werden, der von einem IP-Paket vom Sender zum Empfänger beschritten wird: &lt;br /&gt;
&lt;br /&gt;
 $ traceroute google.de&lt;br /&gt;
 traceroute to google.de (172.217.19.67), 30 hops max, 60 byte packets&lt;br /&gt;
  1  fritz.box (192.168.100.1)  0.450 ms  0.593 ms  0.743 ms&lt;br /&gt;
  2  ber1005dihr001.versatel.de (62.214.63.92)  12.670 ms  12.750 ms  12.693 ms&lt;br /&gt;
  3  62.214.37.245 (62.214.37.245)  13.746 ms  13.787 ms  13.825 ms&lt;br /&gt;
  4  62.214.37.130 (62.214.37.130)  23.674 ms  23.716 ms 62.214.37.158 (62.214.37.158)  41.595 ms&lt;br /&gt;
  5  72.14.222.28 (72.14.222.28)  22.010 ms  22.063 ms 89.246.109.250 (89.246.109.250)  29.791 ms&lt;br /&gt;
  6  108.170.251.145 (108.170.251.145)  26.073 ms 108.170.252.18 (108.170.252.18)  37.669 ms 108.170.252.19 (108.170.252.19)  24.852 ms&lt;br /&gt;
  7  209.85.245.203 (209.85.245.203)  18.491 ms 209.85.242.79 (209.85.242.79)  44.834 ms 209.85.244.219 (209.85.244.219)  23.396 ms&lt;br /&gt;
  8  ham02s17-in-f3.1e100.net (172.217.19.67)  18.911 ms  17.654 ms  19.136 ms&lt;br /&gt;
&lt;br /&gt;
* Das Programm kann zur Analyse von Netzwerkproblemen genutzt werden: Nimmt ein Paket den erwarteten Weg, oder kommt es über Umwege dorthin? Welche alternativen Wege beschreitet ein Paket beim Ausfall eines Netzknotens?&lt;br /&gt;
* Es werden die Laufzeiten zwischen den einzelnen Stationen (Hops) ermittelt, so daß überprüft werden kann, ob es auf dem Weg zum Ziel zu Engpässen oder Überlastungen kommt.&lt;br /&gt;
&lt;br /&gt;
Funktionsweise von traceroute:&lt;br /&gt;
&lt;br /&gt;
* Der Absender sendet eine ICMP-Nachricht vom Typ &#039;&#039;Echo Request&#039;&#039; an den Zielrechner. Von besonderer Bedeutung ist hierbei die Lebenszeit der Nachricht von eins (&#039;&#039;TTL=1&#039;&#039;).&lt;br /&gt;
* Die nächste Station auf dem Weg zum Zielrechner vermindert den Wert von &#039;&#039;TTL&#039;&#039; um eins, so daß dieser Wert jetzt Null beträgt und die Nachricht daraufhin verworfen wird. Der Absender wird jedoch über diesen Vorgang informiert und erhält eine ICMP-Nachricht vom Typ &#039;&#039;time to live exceeded in transit&#039;&#039;, die auch die IP-Adresse der Zwischenstation enthält.&lt;br /&gt;
* Der Absender verschickt daraufhin erneut ein &#039;&#039;Echo Request&#039;&#039; an den Zielrechner - dieses Mal jedoch mit einer &#039;&#039;TTL&#039;&#039; von zwei. Somit erreicht die Nachricht die zweite Zwischenstation auf dem Weg zum Ziel, bevor auch diese verworfen und der Absender benachrichtigt wird.&lt;br /&gt;
* Der Absender versendet nun weitere Nachrichten vom Typ &#039;&#039;Echo Request&#039;&#039; - und erhöht jeweils den Wert der Lebenszeit - bis der Zielrechner erreicht wird und eine ICMP-Nachricht vom Typ &#039;&#039;Echo Reply&#039;&#039; erhalten wird.&lt;br /&gt;
* Am Ende des Programmablaufs wird von &#039;&#039;traceroute&#039;&#039; eine nummerierte Liste erhalten, die die IP-Adressen der durchlaufenen Zwischenstationen und der dazugehörigen Laufzeiten enthält.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Missbrauch =&lt;br /&gt;
&lt;br /&gt;
== Ping flood ==&lt;br /&gt;
&lt;br /&gt;
Bei der einfachsten Variante dieser Angriffsmethode sendet ein angreifender Rechner in schneller Folge &#039;&#039;Echo Request&#039;&#039;-Nachrichten an das Opfer. Dabei wird die eigene Adresse (also die des Absenders) gefälscht, so daß ein zufälliger Rechner mit den resultierenden &#039;&#039;Echo Reply&#039;&#039;-Antworten des Opfers bombardiert wird. Ziel solcher Angriffe ist es, die Nichtverfügbarkeit eines Dienstes (&#039;&#039;&#039;D&#039;&#039;&#039;enial &#039;&#039;&#039;o&#039;&#039;&#039;f &#039;&#039;&#039;S&#039;&#039;&#039;ervice) herbeizuführen, da das Opfer mit der Beantwortung der ICMP-Anfragen beschäftigt wird.&lt;br /&gt;
&lt;br /&gt;
== Ping of Death ==&lt;br /&gt;
&lt;br /&gt;
Diese Variante eines Denial-of-Service-Angriffs sollte heute nicht mehr zum Ziel führen, da die dafür anfälligen Betriebssysteme inzwischen entsprechende Updates erhielten. Beim &#039;&#039;Ping of Death&#039;&#039; wurden ICMP-Nachrichten versendet, bei denen die zulässige Größe überschritten wurde, so daß diese für den Transport fragmentiert werden mussten. Das letzte Fragment einer solchen Nachricht enthielt dann eine Kombination der Werte für Offset und Fragmentgröße, die das Gesamtpaket größer werden ließen, als die erlaubten 65&#039;535 Byte. Dies konnte zu einem Stapelüberlauf und somit zum Absturz des Zielrechners führen.&lt;br /&gt;
&lt;br /&gt;
= Kontrollfragen =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24633</id>
		<title>Internet Control Message Protocol</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24633"/>
		<updated>2021-03-08T02:04:16Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das &#039;&#039;&#039;I&#039;&#039;&#039;nternet &#039;&#039;&#039;C&#039;&#039;&#039;ontrol &#039;&#039;&#039;M&#039;&#039;&#039;essage &#039;&#039;&#039;P&#039;&#039;&#039;rotocol (ICMP) kommt in TCP/IP-Netzwerken zum Einsatz, um Informationen über Probleme und den Status des Netzwerks auszutauschen oder Funktionen zu prüfen.&lt;br /&gt;
&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* ursprünglich definiert von Jon Postel, einem Wegbereiter des Internets&lt;br /&gt;
* Verabschiedung des ersten Standards im April 1981 als [https://tools.ietf.org/html/rfc777 RFC 777]&lt;br /&gt;
* mehrmalige Aktualisierungen führten zur aktuellen Definition [https://tools.ietf.org/html/rfc792 RFC 792]&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
Das Internet-Protokoll ermöglicht die Kommunikation von Geräten über beliebig lange Pfade. Da es sich nicht vermeiden läßt, daß bei dieser Datenübertragung Fehler auftreten, wurde mit ICMP eine Möglichkeit geschaffen, den Absender der Datagramme über etwaige Probleme zu informieren. Mögliche Probleme sind:&lt;br /&gt;
&lt;br /&gt;
* ein Gerät oder Dienst ist nicht ereichbar&lt;br /&gt;
* einzelne Bits der Datagramme wurden auf dem Weg verfälscht&lt;br /&gt;
* die Lebenszeit (TTL) eines Datagramms ist abgelaufen&lt;br /&gt;
* die Pufferkapazität des Empfängers ist erschöpft&lt;br /&gt;
&lt;br /&gt;
Das ICMP-Protokoll wird als Teil der OSI-Schicht 3 betrachtet. Die Daten werden jedoch in IP-Paketen transportiert, wie dies bei TCP &amp;amp; UDP geschieht, obwohl ICMP kein Transportprotokoll ist. ICMP nutzt somit das IP-Protokoll, als wäre es ein Protokoll einer höheren Schicht (im OSI-Modell), obwohl es eigentlich integraler Bestandteil des IP-Protokolls ist.&lt;br /&gt;
&lt;br /&gt;
= Die Paketstruktur =&lt;br /&gt;
&lt;br /&gt;
== ICMP-Header ==&lt;br /&gt;
&lt;br /&gt;
Der Header einer ICMP-Nachricht:&lt;br /&gt;
*folgt direkt auf den IPv4-Header und wird dort an einer Protokollnummer erkannt&lt;br /&gt;
*erweitert den IP-Header und ist als integraler Bestandteil des IP-Protokolls zu sehen&lt;br /&gt;
*besitzt eine Länge von 8 Byte, gefolgt von einem Datenabschnitt variabler Größe&lt;br /&gt;
Die ersten vier Bytes des Headers haben ein festgelegtes Format:&lt;br /&gt;
*Mit dem ersten Byte wird der Typ der Nachricht kodiert.&lt;br /&gt;
*Das zweite Byte enthält einen, vom jeweiligen Typ abhängigen Code&lt;br /&gt;
*Das dritte und vierte Byte bilden eine Prüfsumme des Headers&lt;br /&gt;
Die folgenden (und letzten) vier Bytes des Headers sind vom Typ der ICMP-Nachricht abhängig.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ICMP4.png|750px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable toptextcells&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Typ !! Typname !! Code !! Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Echo-Antwort || 0 || Echo-Antwort&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;7&amp;quot;| 3 || rowspan=&amp;quot;7&amp;quot;| Ziel nicht erreichbar || 0 || Netzwerk nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Host (Zielstation) nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Protokoll nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Port nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Fragmentierung nötig, &#039;&#039;&#039;D&#039;&#039;&#039;on’t &#039;&#039;&#039;F&#039;&#039;&#039;ragment aber gesetzt&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Route nicht möglich&lt;br /&gt;
|-&lt;br /&gt;
| 13 || Paket wird von der Firewall des Empfängers geblockt&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Entlasten der Quelle || 0 || Datagramm verworfen, da Warteschlange voll&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Echo-Anfrage || 0 || Echo-Anfrage (Ping)&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| 11 || rowspan=&amp;quot;2&amp;quot;| Zeitlimit überschritten || 0 || TTL (Time To Live, Lebensdauer) abgelaufen&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Zeitlimit während der Defragmentierung überschritten&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ICMP-Daten ==&lt;br /&gt;
&lt;br /&gt;
= Anwendungen =&lt;br /&gt;
&lt;br /&gt;
Am häufigsten wird ICMP zur Fehlerermittlung genutzt. Situationen, die eine ICMP-Fehlermeldung auslösen sind:&lt;br /&gt;
&lt;br /&gt;
* Ziel nicht erreichbar (&#039;&#039;Destination Unreachable&#039;&#039;): Dieser Fehler tritt auf, wenn der Zielrechner nicht mehr existiert, oder auf diesem kein passendes Protokoll gefunden werden kann. Tritt dieser Fall ein, wird der Absender entsprechend benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
* Zeit überschritten (&#039;&#039;Time Exceeded&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Ungültige Parameter (&#039;&#039;Parameter Problem&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Senderate reduzieren (&#039;&#039;Source Quench&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Umleitung im Netzwerk (&#039;&#039;Redirect&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Prüfung auf die Erreichbarkeit eines Gerätes&lt;br /&gt;
* Ermittlung des Pfades, den ein Datagramm durch das Netz beschreitet&lt;br /&gt;
* Ermittlung der maximalen Größe des Datagramms auf diesem Pfad&lt;br /&gt;
&lt;br /&gt;
== Ping ==&lt;br /&gt;
&lt;br /&gt;
Mit diesem Programm kann die Erreichbarkeit eines Netzwerkteilnehmers geprüft werden. Das Programm sendet die ICMP-Nachricht &#039;&#039;Echo Request&#039;&#039; an eine IP-Adresse &amp;amp; wartet daraufhin auf eine Antwort, dem &#039;&#039;Echo Reply&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 $ ping  google.de&lt;br /&gt;
 PING google.de(ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003)) 56 data bytes&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=1 ttl=119 time=25.7 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=2 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=3 ttl=119 time=22.6 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=4 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=5 ttl=119 time=23.1 ms&lt;br /&gt;
 ^C&lt;br /&gt;
 --- google.de ping statistics ---&lt;br /&gt;
 5 packets transmitted, 5 received, 0% packet loss, time 4006ms&lt;br /&gt;
 rtt min/avg/max/mdev = 22.572/23.416/25.650/1.130 ms&lt;br /&gt;
&lt;br /&gt;
[[File:Ping.png|750px|none]]&lt;br /&gt;
&lt;br /&gt;
== Trace Route ==&lt;br /&gt;
&lt;br /&gt;
Mit dem Kommandozeilenbefehl &#039;&#039;&#039;traceroute&#039;&#039;&#039; kann der Pfad ermittelt werden, der von einem IP-Paket vom Sender zum Empfänger beschritten wird: &lt;br /&gt;
&lt;br /&gt;
 $ traceroute google.de&lt;br /&gt;
 traceroute to google.de (172.217.19.67), 30 hops max, 60 byte packets&lt;br /&gt;
  1  fritz.box (192.168.100.1)  0.450 ms  0.593 ms  0.743 ms&lt;br /&gt;
  2  ber1005dihr001.versatel.de (62.214.63.92)  12.670 ms  12.750 ms  12.693 ms&lt;br /&gt;
  3  62.214.37.245 (62.214.37.245)  13.746 ms  13.787 ms  13.825 ms&lt;br /&gt;
  4  62.214.37.130 (62.214.37.130)  23.674 ms  23.716 ms 62.214.37.158 (62.214.37.158)  41.595 ms&lt;br /&gt;
  5  72.14.222.28 (72.14.222.28)  22.010 ms  22.063 ms 89.246.109.250 (89.246.109.250)  29.791 ms&lt;br /&gt;
  6  108.170.251.145 (108.170.251.145)  26.073 ms 108.170.252.18 (108.170.252.18)  37.669 ms 108.170.252.19 (108.170.252.19)  24.852 ms&lt;br /&gt;
  7  209.85.245.203 (209.85.245.203)  18.491 ms 209.85.242.79 (209.85.242.79)  44.834 ms 209.85.244.219 (209.85.244.219)  23.396 ms&lt;br /&gt;
  8  ham02s17-in-f3.1e100.net (172.217.19.67)  18.911 ms  17.654 ms  19.136 ms&lt;br /&gt;
&lt;br /&gt;
* Das Programm kann zur Analyse von Netzwerkproblemen genutzt werden: Nimmt ein Paket den erwarteten Weg, oder kommt es über Umwege dorthin? Welche alternativen Wege beschreitet ein Paket beim Ausfall eines Netzknotens?&lt;br /&gt;
* Es werden die Laufzeiten zwischen den einzelnen Stationen (Hops) ermittelt, so daß überprüft werden kann, ob es auf dem Weg zum Ziel zu Engpässen oder Überlastungen kommt.&lt;br /&gt;
&lt;br /&gt;
Funktionsweise von traceroute:&lt;br /&gt;
&lt;br /&gt;
* Der Absender sendet eine ICMP-Nachricht vom Typ &#039;&#039;Echo Request&#039;&#039; an den Zielrechner. Von besonderer Bedeutung ist hierbei die Lebenszeit der Nachricht von eins (&#039;&#039;TTL=1&#039;&#039;).&lt;br /&gt;
* Die nächste Station auf dem Weg zum Zielrechner vermindert den Wert von &#039;&#039;TTL&#039;&#039; um eins, so daß dieser Wert jetzt Null beträgt und die Nachricht daraufhin verworfen wird. Der Absender wird jedoch über diesen Vorgang informiert und erhält eine ICMP-Nachricht vom Typ &#039;&#039;time to live exceeded in transit&#039;&#039;, die auch die IP-Adresse der Zwischenstation enthält.&lt;br /&gt;
* Der Absender verschickt daraufhin erneut ein &#039;&#039;Echo Request&#039;&#039; an den Zielrechner - dieses Mal jedoch mit einer &#039;&#039;TTL&#039;&#039; von zwei. Somit erreicht die Nachricht die zweite Zwischenstation auf dem Weg zum Ziel, bevor auch diese verworfen und der Absender benachrichtigt wird.&lt;br /&gt;
* Der Absender versendet nun weitere Nachrichten vom Typ &#039;&#039;Echo Request&#039;&#039; - und erhöht jeweils den Wert der Lebenszeit - bis der Zielrechner erreicht wird und eine ICMP-Nachricht vom Typ &#039;&#039;Echo Reply&#039;&#039; erhalten wird.&lt;br /&gt;
* Am Ende des Programmablaufs wird von &#039;&#039;traceroute&#039;&#039; eine nummerierte Liste erhalten, die die IP-Adressen der durchlaufenen Zwischenstationen und der dazugehörigen Laufzeiten enthält.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Missbrauch =&lt;br /&gt;
&lt;br /&gt;
== Ping flood ==&lt;br /&gt;
&lt;br /&gt;
Bei der einfachsten Variante dieser Angriffsmethode sendet ein angreifender Rechner in schneller Folge &#039;&#039;Echo Request&#039;&#039;-Nachrichten an das Opfer. Dabei wird die eigene Adresse (also die des Absenders) gefälscht, so daß ein zufälliger Rechner mit den resultierenden &#039;&#039;Echo Reply&#039;&#039;-Antworten des Opfers bombardiert wird. Ziel solcher Angriffe ist es, die Nichtverfügbarkeit eines Dienstes (&#039;&#039;&#039;D&#039;&#039;&#039;enial &#039;&#039;&#039;o&#039;&#039;&#039;f &#039;&#039;&#039;S&#039;&#039;&#039;ervice) herbeizuführen, da das Opfer mit der Beantwortung der ICMP-Anfragen beschäftigt wird.&lt;br /&gt;
&lt;br /&gt;
== Ping of Death ==&lt;br /&gt;
&lt;br /&gt;
Diese Variante eines Denial-of-Service-Angriffs sollte heute nicht mehr zum Ziel führen, da die dafür anfälligen Betriebssysteme inzwischen entsprechende Updates erhielten. Beim &#039;&#039;Ping of Death&#039;&#039; wurden ICMP-Nachrichten versendet, bei denen die zulässige Größe überschritten wurde, so daß diese für den Transport fragmentiert werden mussten. Das letzte Fragment einer solchen Nachricht enthielt dann eine Kombination der Werte für Offset und Fragmentgröße, die das Gesamtpaket größer werden ließen, als die erlaubten 65&#039;535 Byte. Dies konnte zu einem Stapelüberlauf und somit zum Absturz des Zielrechners führen.&lt;br /&gt;
&lt;br /&gt;
= Kontrollfragen =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24632</id>
		<title>Internet Control Message Protocol</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24632"/>
		<updated>2021-03-07T23:49:19Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das &#039;&#039;&#039;I&#039;&#039;&#039;nternet &#039;&#039;&#039;C&#039;&#039;&#039;ontrol &#039;&#039;&#039;M&#039;&#039;&#039;essage &#039;&#039;&#039;P&#039;&#039;&#039;rotocol (ICMP) kommt in TCP/IP-Netzwerken zum Einsatz, um Informationen über Probleme und den Status des Netzwerks auszutauschen oder Funktionen zu prüfen.&lt;br /&gt;
&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* ursprünglich definiert von Jon Postel, einem Wegbereiter des Internets&lt;br /&gt;
* Verabschiedung des ersten Standards im April 1981 als [https://tools.ietf.org/html/rfc777 RFC 777]&lt;br /&gt;
* mehrmalige Aktualisierungen führten zur aktuellen Definition [https://tools.ietf.org/html/rfc792 RFC 792]&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
Das Internet-Protokoll ermöglicht die Kommunikation von Geräten über beliebig lange Pfade. Da es sich nicht vermeiden läßt, daß bei dieser Datenübertragung Fehler auftreten, wurde mit ICMP eine Möglichkeit geschaffen, den Absender der Datagramme über etwaige Probleme zu informieren. Mögliche Probleme sind:&lt;br /&gt;
&lt;br /&gt;
* ein Gerät oder Dienst ist nicht ereichbar&lt;br /&gt;
* einzelne Bits der Datagramme wurden auf dem Weg verfälscht&lt;br /&gt;
* die Lebenszeit (TTL) eines Datagramms ist abgelaufen&lt;br /&gt;
* die Pufferkapazität des Empfängers ist erschöpft&lt;br /&gt;
&lt;br /&gt;
Das ICMP-Protokoll wird als Teil der OSI-Schicht 3 betrachtet. Die Daten werden jedoch in IP-Paketen transportiert, wie dies bei TCP &amp;amp; UDP geschieht, obwohl ICMP kein Transportprotokoll ist. ICMP nutzt somit das IP-Protokoll, als wäre es ein Protokoll einer höheren Schicht (im OSI-Modell), obwohl es eigentlich integraler Bestandteil des IP-Protokolls ist.&lt;br /&gt;
&lt;br /&gt;
= Die Paketstruktur =&lt;br /&gt;
&lt;br /&gt;
== ICMP-Header ==&lt;br /&gt;
&lt;br /&gt;
Der Header einer ICMP-Nachricht:&lt;br /&gt;
*folgt direkt auf den IPv4-Header und wird dort an einer Protokollnummer erkannt&lt;br /&gt;
*erweitert den IP-Header und ist als integraler Bestandteil des IP-Protokolls zu sehen&lt;br /&gt;
*besitzt eine Länge von 8 Byte, gefolgt von einem Datenabschnitt variabler Größe&lt;br /&gt;
Die ersten vier Bytes des Headers haben ein festgelegtes Format:&lt;br /&gt;
*Mit dem ersten Byte wird der Typ der Nachricht kodiert.&lt;br /&gt;
*Das zweite Byte enthält einen, vom jeweiligen Typ abhängigen Code&lt;br /&gt;
*Das dritte und vierte Byte bilden eine Prüfsumme des Headers&lt;br /&gt;
Die folgenden (und letzten) vier Bytes des Headers sind vom Typ der ICMP-Nachricht abhängig.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ICMP4.png|750px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable toptextcells&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Typ !! Typname !! Code !! Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Echo-Antwort || 0 || Echo-Antwort&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;7&amp;quot;| 3 || rowspan=&amp;quot;7&amp;quot;| Ziel nicht erreichbar || 0 || Netzwerk nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Host (Zielstation) nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Protokoll nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Port nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Fragmentierung nötig, &#039;&#039;&#039;D&#039;&#039;&#039;on’t &#039;&#039;&#039;F&#039;&#039;&#039;ragment aber gesetzt&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Route nicht möglich&lt;br /&gt;
|-&lt;br /&gt;
| 13 || Paket wird von der Firewall des Empfängers geblockt&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Entlasten der Quelle || 0 || Datagramm verworfen, da Warteschlange voll&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Echo-Anfrage || 0 || Echo-Anfrage (Ping)&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| 11 || rowspan=&amp;quot;2&amp;quot;| Zeitlimit überschritten || 0 || TTL (Time To Live, Lebensdauer) abgelaufen&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Zeitlimit während der Defragmentierung überschritten&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ICMP-Daten ==&lt;br /&gt;
&lt;br /&gt;
= Anwendungen =&lt;br /&gt;
&lt;br /&gt;
Am häufigsten wird ICMP zur Fehlerermittlung genutzt. Situationen, die eine ICMP-Fehlermeldung auslösen sind:&lt;br /&gt;
&lt;br /&gt;
* Ziel nicht erreichbar (&#039;&#039;Destination Unreachable&#039;&#039;): Dieser Fehler tritt auf, wenn der Zielrechner nicht mehr existiert, oder auf diesem kein passendes Protokoll gefunden werden kann. Tritt dieser Fall ein, wird der Absender entsprechend benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
* Zeit überschritten (&#039;&#039;Time Exceeded&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Ungültige Parameter (&#039;&#039;Parameter Problem&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Senderate reduzieren (&#039;&#039;Source Quench&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Umleitung im Netzwerk (&#039;&#039;Redirect&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Prüfung auf die Erreichbarkeit eines Gerätes&lt;br /&gt;
* Ermittlung des Pfades, den ein Datagramm durch das Netz beschreitet&lt;br /&gt;
* Ermittlung der maximalen Größe des Datagramms auf diesem Pfad&lt;br /&gt;
&lt;br /&gt;
== Ping ==&lt;br /&gt;
&lt;br /&gt;
Mit diesem Programm kann die Erreichbarkeit eines Netzwerkteilnehmers geprüft werden. Das Programm sendet die ICMP-Nachricht &#039;&#039;Echo Request&#039;&#039; an eine IP-Adresse &amp;amp; wartet daraufhin auf eine Antwort, dem &#039;&#039;Echo Reply&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 $ ping  google.de&lt;br /&gt;
 PING google.de(ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003)) 56 data bytes&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=1 ttl=119 time=25.7 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=2 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=3 ttl=119 time=22.6 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=4 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=5 ttl=119 time=23.1 ms&lt;br /&gt;
 ^C&lt;br /&gt;
 --- google.de ping statistics ---&lt;br /&gt;
 5 packets transmitted, 5 received, 0% packet loss, time 4006ms&lt;br /&gt;
 rtt min/avg/max/mdev = 22.572/23.416/25.650/1.130 ms&lt;br /&gt;
&lt;br /&gt;
[[File:Ping.png|750px|none]]&lt;br /&gt;
&lt;br /&gt;
== Trace Route ==&lt;br /&gt;
&lt;br /&gt;
Mit dem Kommandozeilenbefehl &#039;&#039;&#039;traceroute&#039;&#039;&#039; kann der Pfad ermittelt werden, der von einem IP-Paket vom Sender zum Empfänger beschritten wird: &lt;br /&gt;
&lt;br /&gt;
 $ traceroute google.de&lt;br /&gt;
 traceroute to google.de (172.217.19.67), 30 hops max, 60 byte packets&lt;br /&gt;
  1  fritz.box (192.168.100.1)  0.450 ms  0.593 ms  0.743 ms&lt;br /&gt;
  2  ber1005dihr001.versatel.de (62.214.63.92)  12.670 ms  12.750 ms  12.693 ms&lt;br /&gt;
  3  62.214.37.245 (62.214.37.245)  13.746 ms  13.787 ms  13.825 ms&lt;br /&gt;
  4  62.214.37.130 (62.214.37.130)  23.674 ms  23.716 ms 62.214.37.158 (62.214.37.158)  41.595 ms&lt;br /&gt;
  5  72.14.222.28 (72.14.222.28)  22.010 ms  22.063 ms 89.246.109.250 (89.246.109.250)  29.791 ms&lt;br /&gt;
  6  108.170.251.145 (108.170.251.145)  26.073 ms 108.170.252.18 (108.170.252.18)  37.669 ms 108.170.252.19 (108.170.252.19)  24.852 ms&lt;br /&gt;
  7  209.85.245.203 (209.85.245.203)  18.491 ms 209.85.242.79 (209.85.242.79)  44.834 ms 209.85.244.219 (209.85.244.219)  23.396 ms&lt;br /&gt;
  8  ham02s17-in-f3.1e100.net (172.217.19.67)  18.911 ms  17.654 ms  19.136 ms&lt;br /&gt;
&lt;br /&gt;
* Das Programm kann zur Analyse von Netzwerkproblemen genutzt werden: Nimmt ein Paket den erwarteten Weg, oder kommt es über Umwege dorthin? Welche alternativen Wege beschreitet ein Paket beim Ausfall eines Netzknotens?&lt;br /&gt;
* Es werden die Laufzeiten zwischen den einzelnen Stationen (Hops) ermittelt, so daß überprüft werden kann, ob es auf dem Weg zum Ziel zu Engpässen oder Überlastungen kommt.&lt;br /&gt;
&lt;br /&gt;
Funktionsweise von traceroute:&lt;br /&gt;
&lt;br /&gt;
* Der Absender sendet eine ICMP-Nachricht vom Typ &#039;&#039;Echo Request&#039;&#039; an den Zielrechner. Von besonderer Bedeutung ist hierbei die Lebenszeit der Nachricht von eins (&#039;&#039;TTL=1&#039;&#039;).&lt;br /&gt;
* Die nächste Station auf dem Weg zum Zielrechner vermindert den Wert von &#039;&#039;TTL&#039;&#039; um eins, so daß dieser Wert jetzt Null beträgt und die Nachricht daraufhin verworfen wird. Der Absender wird jedoch über diesen Vorgang informiert und erhält eine ICMP-Nachricht vom Typ &#039;&#039;time to live exceeded in transit&#039;&#039;, die auch die IP-Adresse der Zwischenstation enthält.&lt;br /&gt;
* Der Absender verschickt daraufhin erneut ein &#039;&#039;Echo Request&#039;&#039; an den Zielrechner - dieses Mal jedoch mit einer &#039;&#039;TTL&#039;&#039; von zwei. Somit erreicht die Nachricht die zweite Zwischenstation auf dem Weg zum Ziel, bevor auch diese verworfen und der Absender benachrichtigt wird.&lt;br /&gt;
* Der Absender versendet nun weitere Nachrichten vom Typ &#039;&#039;Echo Request&#039;&#039; - und erhöht jeweils den Wert der Lebenszeit - bis der Zielrechner erreicht wird und eine ICMP-Nachricht vom Typ &#039;&#039;Echo Reply&#039;&#039; erhalten wird.&lt;br /&gt;
* Am Ende des Programmablaufs wird von &#039;&#039;traceroute&#039;&#039; eine nummerierte Liste erhalten, die die IP-Adressen der durchlaufenen Zwischenstationen und der dazugehörigen Laufzeiten enthält.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Missbrauch =&lt;br /&gt;
&lt;br /&gt;
== Ping flood ==&lt;br /&gt;
&lt;br /&gt;
Bei der einfachsten Variante dieser Angriffsmethode sendet ein angreifender Rechner in schneller Folge &#039;&#039;Echo Request&#039;&#039;-Nachrichten an das Opfer. Dabei wird die eigene Adresse (also die des Absenders) gefälscht, so daß ein zufälliger Rechner mit den resultierenden &#039;&#039;Echo Reply&#039;&#039;-Antworten des Opfers bombardiert wird. Ziel solcher Angriffe ist es, die Nichtverfügbarkeit eines Dienstes herbeizuführen, da das Opfer mit der Beantwortung der ICMP-Anfragen beschäftigt wird.&lt;br /&gt;
&lt;br /&gt;
== Ping of Death ==&lt;br /&gt;
&lt;br /&gt;
= Kontrollfragen =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24631</id>
		<title>Internet Control Message Protocol</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24631"/>
		<updated>2021-03-07T23:19:20Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das &#039;&#039;&#039;I&#039;&#039;&#039;nternet &#039;&#039;&#039;C&#039;&#039;&#039;ontrol &#039;&#039;&#039;M&#039;&#039;&#039;essage &#039;&#039;&#039;P&#039;&#039;&#039;rotocol (ICMP) kommt in TCP/IP-Netzwerken zum Einsatz, um Informationen über Probleme und den Status des Netzwerks auszutauschen oder Funktionen zu prüfen.&lt;br /&gt;
&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* ursprünglich definiert von Jon Postel, einem Wegbereiter des Internets&lt;br /&gt;
* Verabschiedung des ersten Standards im April 1981 als [https://tools.ietf.org/html/rfc777 RFC 777]&lt;br /&gt;
* mehrmalige Aktualisierungen führten zur aktuellen Definition [https://tools.ietf.org/html/rfc792 RFC 792]&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
Das Internet-Protokoll ermöglicht die Kommunikation von Geräten über beliebig lange Pfade. Da es sich nicht vermeiden läßt, daß bei dieser Datenübertragung Fehler auftreten, wurde mit ICMP eine Möglichkeit geschaffen, den Absender der Datagramme über etwaige Probleme zu informieren. Mögliche Probleme sind:&lt;br /&gt;
&lt;br /&gt;
* ein Gerät oder Dienst ist nicht ereichbar&lt;br /&gt;
* einzelne Bits der Datagramme wurden auf dem Weg verfälscht&lt;br /&gt;
* die Lebenszeit (TTL) eines Datagramms ist abgelaufen&lt;br /&gt;
* die Pufferkapazität des Empfängers ist erschöpft&lt;br /&gt;
&lt;br /&gt;
Das ICMP-Protokoll wird als Teil der OSI-Schicht 3 betrachtet. Die Daten werden jedoch in IP-Paketen transportiert, wie dies bei TCP &amp;amp; UDP geschieht, obwohl ICMP kein Transportprotokoll ist. ICMP nutzt somit das IP-Protokoll, als wäre es ein Protokoll einer höheren Schicht (im OSI-Modell), obwohl es eigentlich integraler Bestandteil des IP-Protokolls ist.&lt;br /&gt;
&lt;br /&gt;
= Die Paketstruktur =&lt;br /&gt;
&lt;br /&gt;
== ICMP-Header ==&lt;br /&gt;
&lt;br /&gt;
Der Header einer ICMP-Nachricht:&lt;br /&gt;
*folgt direkt auf den IPv4-Header und wird dort an einer Protokollnummer erkannt&lt;br /&gt;
*erweitert den IP-Header und ist als integraler Bestandteil des IP-Protokolls zu sehen&lt;br /&gt;
*besitzt eine Länge von 8 Byte, gefolgt von einem Datenabschnitt variabler Größe&lt;br /&gt;
Die ersten vier Bytes des Headers haben ein festgelegtes Format:&lt;br /&gt;
*Mit dem ersten Byte wird der Typ der Nachricht kodiert.&lt;br /&gt;
*Das zweite Byte enthält einen, vom jeweiligen Typ abhängigen Code&lt;br /&gt;
*Das dritte und vierte Byte bilden eine Prüfsumme des Headers&lt;br /&gt;
Die folgenden (und letzten) vier Bytes des Headers sind vom Typ der ICMP-Nachricht abhängig.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ICMP4.png|750px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable toptextcells&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Typ !! Typname !! Code !! Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Echo-Antwort || 0 || Echo-Antwort&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;7&amp;quot;| 3 || rowspan=&amp;quot;7&amp;quot;| Ziel nicht erreichbar || 0 || Netzwerk nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Host (Zielstation) nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Protokoll nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Port nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Fragmentierung nötig, &#039;&#039;&#039;D&#039;&#039;&#039;on’t &#039;&#039;&#039;F&#039;&#039;&#039;ragment aber gesetzt&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Route nicht möglich&lt;br /&gt;
|-&lt;br /&gt;
| 13 || Paket wird von der Firewall des Empfängers geblockt&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Entlasten der Quelle || 0 || Datagramm verworfen, da Warteschlange voll&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Echo-Anfrage || 0 || Echo-Anfrage (Ping)&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| 11 || rowspan=&amp;quot;2&amp;quot;| Zeitlimit überschritten || 0 || TTL (Time To Live, Lebensdauer) abgelaufen&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Zeitlimit während der Defragmentierung überschritten&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ICMP-Daten ==&lt;br /&gt;
&lt;br /&gt;
= Anwendungen =&lt;br /&gt;
&lt;br /&gt;
Am häufigsten wird ICMP zur Fehlerermittlung genutzt. Situationen, die eine ICMP-Fehlermeldung auslösen sind:&lt;br /&gt;
&lt;br /&gt;
* Ziel nicht erreichbar (&#039;&#039;Destination Unreachable&#039;&#039;): Dieser Fehler tritt auf, wenn der Zielrechner nicht mehr existiert, oder auf diesem kein passendes Protokoll gefunden werden kann. Tritt dieser Fall ein, wird der Absender entsprechend benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
* Zeit überschritten (&#039;&#039;Time Exceeded&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Ungültige Parameter (&#039;&#039;Parameter Problem&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Senderate reduzieren (&#039;&#039;Source Quench&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Umleitung im Netzwerk (&#039;&#039;Redirect&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Prüfung auf die Erreichbarkeit eines Gerätes&lt;br /&gt;
* Ermittlung des Pfades, den ein Datagramm durch das Netz beschreitet&lt;br /&gt;
* Ermittlung der maximalen Größe des Datagramms auf diesem Pfad&lt;br /&gt;
&lt;br /&gt;
== Ping ==&lt;br /&gt;
&lt;br /&gt;
Mit diesem Programm kann die Erreichbarkeit eines Netzwerkteilnehmers geprüft werden. Das Programm sendet die ICMP-Nachricht &#039;&#039;Echo Request&#039;&#039; an eine IP-Adresse &amp;amp; wartet daraufhin auf eine Antwort, dem &#039;&#039;Echo Reply&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 $ ping  google.de&lt;br /&gt;
 PING google.de(ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003)) 56 data bytes&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=1 ttl=119 time=25.7 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=2 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=3 ttl=119 time=22.6 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=4 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=5 ttl=119 time=23.1 ms&lt;br /&gt;
 ^C&lt;br /&gt;
 --- google.de ping statistics ---&lt;br /&gt;
 5 packets transmitted, 5 received, 0% packet loss, time 4006ms&lt;br /&gt;
 rtt min/avg/max/mdev = 22.572/23.416/25.650/1.130 ms&lt;br /&gt;
&lt;br /&gt;
[[File:Ping.png|750px|none]]&lt;br /&gt;
&lt;br /&gt;
== Trace Route ==&lt;br /&gt;
&lt;br /&gt;
Mit dem Kommandozeilenbefehl &#039;&#039;&#039;traceroute&#039;&#039;&#039; kann der Pfad ermittelt werden, der von einem IP-Paket vom Sender zum Empfänger beschritten wird: &lt;br /&gt;
&lt;br /&gt;
 $ traceroute google.de&lt;br /&gt;
 traceroute to google.de (172.217.19.67), 30 hops max, 60 byte packets&lt;br /&gt;
  1  fritz.box (192.168.100.1)  0.450 ms  0.593 ms  0.743 ms&lt;br /&gt;
  2  ber1005dihr001.versatel.de (62.214.63.92)  12.670 ms  12.750 ms  12.693 ms&lt;br /&gt;
  3  62.214.37.245 (62.214.37.245)  13.746 ms  13.787 ms  13.825 ms&lt;br /&gt;
  4  62.214.37.130 (62.214.37.130)  23.674 ms  23.716 ms 62.214.37.158 (62.214.37.158)  41.595 ms&lt;br /&gt;
  5  72.14.222.28 (72.14.222.28)  22.010 ms  22.063 ms 89.246.109.250 (89.246.109.250)  29.791 ms&lt;br /&gt;
  6  108.170.251.145 (108.170.251.145)  26.073 ms 108.170.252.18 (108.170.252.18)  37.669 ms 108.170.252.19 (108.170.252.19)  24.852 ms&lt;br /&gt;
  7  209.85.245.203 (209.85.245.203)  18.491 ms 209.85.242.79 (209.85.242.79)  44.834 ms 209.85.244.219 (209.85.244.219)  23.396 ms&lt;br /&gt;
  8  ham02s17-in-f3.1e100.net (172.217.19.67)  18.911 ms  17.654 ms  19.136 ms&lt;br /&gt;
&lt;br /&gt;
* Das Programm kann zur Analyse von Netzwerkproblemen genutzt werden: Nimmt ein Paket den erwarteten Weg, oder kommt es über Umwege dorthin? Welche alternativen Wege beschreitet ein Paket beim Ausfall eines Netzknotens?&lt;br /&gt;
* Es werden die Laufzeiten zwischen den einzelnen Stationen (Hops) ermittelt, so daß überprüft werden kann, ob es auf dem Weg zum Ziel zu Engpässen oder Überlastungen kommt.&lt;br /&gt;
&lt;br /&gt;
Funktionsweise von traceroute:&lt;br /&gt;
&lt;br /&gt;
* Der Absender sendet eine ICMP-Nachricht vom Typ &#039;&#039;Echo Request&#039;&#039; an den Zielrechner. Von besonderer Bedeutung ist hierbei die Lebenszeit der Nachricht von eins (&#039;&#039;TTL=1&#039;&#039;).&lt;br /&gt;
* Die nächste Station auf dem Weg zum Zielrechner vermindert den Wert von &#039;&#039;TTL&#039;&#039; um eins, so daß dieser Wert jetzt Null beträgt und die Nachricht daraufhin verworfen wird. Der Absender wird jedoch über diesen Vorgang informiert und erhält eine ICMP-Nachricht vom Typ &#039;&#039;time to live exceeded in transit&#039;&#039;, die auch die IP-Adresse der Zwischenstation enthält.&lt;br /&gt;
* Der Absender verschickt daraufhin erneut ein &#039;&#039;Echo Request&#039;&#039; an den Zielrechner - dieses Mal jedoch mit einer &#039;&#039;TTL&#039;&#039; von zwei. Somit erreicht die Nachricht die zweite Zwischenstation auf dem Weg zum Ziel, bevor auch diese verworfen und der Absender benachrichtigt wird.&lt;br /&gt;
* Der Absender versendet nun weitere Nachrichten vom Typ &#039;&#039;Echo Request&#039;&#039; - und erhöht jeweils den Wert der Lebenszeit - bis der Zielrechner erreicht wird und eine ICMP-Nachricht vom Typ &#039;&#039;Echo Reply&#039;&#039; erhalten wird.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Missbrauch =&lt;br /&gt;
&lt;br /&gt;
== Ping flood ==&lt;br /&gt;
&lt;br /&gt;
== Ping of Death ==&lt;br /&gt;
&lt;br /&gt;
= Kontrollfragen =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24299</id>
		<title>Internet Control Message Protocol</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24299"/>
		<updated>2021-03-03T08:00:23Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: /* Die Paketstruktur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das &#039;&#039;&#039;I&#039;&#039;&#039;nternet &#039;&#039;&#039;C&#039;&#039;&#039;ontrol &#039;&#039;&#039;M&#039;&#039;&#039;essage &#039;&#039;&#039;P&#039;&#039;&#039;rotocol (ICMP) ist eine Erweiterung des Internet-Protokolls (IP) und dient der Fehlerberichterstattung an die Absender-IP-Adresse.&lt;br /&gt;
&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* ursprünglich definiert von Jon Postel, einem Wegbereiter des Internets&lt;br /&gt;
* Verabschiedung des ersten Standards im April 1981 als [https://tools.ietf.org/html/rfc777 RFC 777]&lt;br /&gt;
* mehrmalige Aktualisierungen führten zur aktuellen Definition [https://tools.ietf.org/html/rfc792 RFC 792]&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
Das Internet-Protokoll ermöglicht die Kommunikation von Geräten über beliebig lange Pfade. Da es sich nicht vermeiden läßt, daß bei dieser Datenübertragung Fehler auftreten, wurde mit ICMP eine Möglichkeit geschaffen, den Absender der Datagramme über etwaige Probleme zu informieren. Mögliche Probleme sind:&lt;br /&gt;
&lt;br /&gt;
* ein Gerät oder Dienst ist nicht ereichbar&lt;br /&gt;
* einzelne Bits der Datagramme wurden auf dem Weg verfälscht&lt;br /&gt;
* die Lebenszeit (TTL) eines Datagramms ist abgelaufen&lt;br /&gt;
* die Pufferkapazität des Empfängers ist erschöpft&lt;br /&gt;
&lt;br /&gt;
Das ICMP-Protokoll wird als Teil der OSI-Schicht 3 betrachtet. Die Daten werden jedoch in IP-Paketen transportiert, wie dies bei TCP &amp;amp; UDP geschieht, obwohl ICMP kein Transportprotokoll ist. ICMP nutzt somit das IP-Protokoll, als wäre es ein Protokoll einer höheren Schicht (im OSI-Modell), obwohl es eigentlich integraler Bestandteil des IP-Protokolls ist.&lt;br /&gt;
&lt;br /&gt;
= Die Paketstruktur =&lt;br /&gt;
&lt;br /&gt;
== ICMP-Header ==&lt;br /&gt;
&lt;br /&gt;
Der Header einer ICMP-Nachricht:&lt;br /&gt;
*folgt direkt auf den IPv4-Header und wird dort an einer Protokollnummer erkannt&lt;br /&gt;
*erweitert den IP-Header und ist als integraler Bestandteil des IP-Protokolls zu sehen&lt;br /&gt;
*besitzt eine Länge von 8 Byte, gefolgt von einem Datenabschnitt variabler Größe&lt;br /&gt;
Die ersten vier Bytes des Headers haben ein festgelegtes Format:&lt;br /&gt;
*Mit dem ersten Byte wird der Typ der Nachricht kodiert.&lt;br /&gt;
*Das zweite Byte enthält einen, vom jeweiligen Typ abhängigen Code&lt;br /&gt;
*Das dritte und vierte Byte bilden eine Prüfsumme des Headers&lt;br /&gt;
Die folgenden (und letzten) vier Bytes des Headers sind vom Typ der ICMP-Nachricht abhängig.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ICMP4.png|750px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable toptextcells&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Typ !! Typname !! Code !! Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Echo-Antwort || 0 || Echo-Antwort&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;7&amp;quot;| 3 || rowspan=&amp;quot;7&amp;quot;| Ziel nicht erreichbar || 0 || Netzwerk nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Host (Zielstation) nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Protokoll nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Port nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Fragmentierung nötig, &#039;&#039;&#039;D&#039;&#039;&#039;on’t &#039;&#039;&#039;F&#039;&#039;&#039;ragment aber gesetzt&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Route nicht möglich&lt;br /&gt;
|-&lt;br /&gt;
| 13 || Paket wird von der Firewall des Empfängers geblockt&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Entlasten der Quelle || 0 || Datagramm verworfen, da Warteschlange voll&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Echo-Anfrage || 0 || Echo-Anfrage (Ping)&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| 11 || rowspan=&amp;quot;2&amp;quot;| Zeitlimit überschritten || 0 || TTL (Time To Live, Lebensdauer) abgelaufen&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Zeitlimit während der Defragmentierung überschritten&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
== ICMP-Daten ==&lt;br /&gt;
&lt;br /&gt;
= Anwendungen =&lt;br /&gt;
&lt;br /&gt;
Am häufigsten wird ICMP zur Fehlerermittlung genutzt. Situationen, die eine ICMP-Fehlermeldung auslösen sind:&lt;br /&gt;
&lt;br /&gt;
* Ziel nicht erreichbar (&#039;&#039;Destination Unreachable&#039;&#039;): Dieser Fehler tritt auf, wenn der Zielrechner nicht mehr existiert, oder auf diesem kein passendes Protokoll gefunden werden kann. Tritt dieser Fall ein, wird der Absender entsprechend benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
* Zeit überschritten (&#039;&#039;Time Exceeded&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Ungültige Parameter (&#039;&#039;Parameter Problem&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Senderate reduzieren (&#039;&#039;Source Quench&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Umleitung im Netzwerk (&#039;&#039;Redirect&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Prüfung auf die Erreichbarkeit eines Gerätes&lt;br /&gt;
* Ermittlung des Pfades, den ein Datagramm durch das Netz beschreitet&lt;br /&gt;
* Ermittlung der maximalen Größe des Datagramms auf diesem Pfad&lt;br /&gt;
&lt;br /&gt;
== Ping ==&lt;br /&gt;
&lt;br /&gt;
Mit diesem Programm kann die Erreichbarkeit eines Netzwerkteilnehmers geprüft werden. Das Programm sendet die ICMP-Nachricht &#039;&#039;Echo Request&#039;&#039; an eine IP-Adresse &amp;amp; wartet daraufhin auf eine Antwort, dem &#039;&#039;Echo Reply&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 $ ping  google.de&lt;br /&gt;
 PING google.de(ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003)) 56 data bytes&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=1 ttl=119 time=25.7 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=2 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=3 ttl=119 time=22.6 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=4 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=5 ttl=119 time=23.1 ms&lt;br /&gt;
 ^C&lt;br /&gt;
 --- google.de ping statistics ---&lt;br /&gt;
 5 packets transmitted, 5 received, 0% packet loss, time 4006ms&lt;br /&gt;
 rtt min/avg/max/mdev = 22.572/23.416/25.650/1.130 ms&lt;br /&gt;
&lt;br /&gt;
[[File:Ping.png|750px|none]]&lt;br /&gt;
&lt;br /&gt;
== Trace Route ==&lt;br /&gt;
&lt;br /&gt;
Mit dem Kommandozeilenbefehl &#039;&#039;&#039;traceroute&#039;&#039;&#039; kann der Pfad ermittelt werden, der von einem IP-Paket vom Sender zum Empfänger beschritten wird: &lt;br /&gt;
&lt;br /&gt;
 $ traceroute google.de&lt;br /&gt;
 traceroute to google.de (172.217.19.67), 30 hops max, 60 byte packets&lt;br /&gt;
  1  fritz.box (192.168.100.1)  0.450 ms  0.593 ms  0.743 ms&lt;br /&gt;
  2  ber1005dihr001.versatel.de (62.214.63.92)  12.670 ms  12.750 ms  12.693 ms&lt;br /&gt;
  3  62.214.37.245 (62.214.37.245)  13.746 ms  13.787 ms  13.825 ms&lt;br /&gt;
  4  62.214.37.130 (62.214.37.130)  23.674 ms  23.716 ms 62.214.37.158 (62.214.37.158)  41.595 ms&lt;br /&gt;
  5  72.14.222.28 (72.14.222.28)  22.010 ms  22.063 ms 89.246.109.250 (89.246.109.250)  29.791 ms&lt;br /&gt;
  6  108.170.251.145 (108.170.251.145)  26.073 ms 108.170.252.18 (108.170.252.18)  37.669 ms 108.170.252.19 (108.170.252.19)  24.852 ms&lt;br /&gt;
  7  209.85.245.203 (209.85.245.203)  18.491 ms 209.85.242.79 (209.85.242.79)  44.834 ms 209.85.244.219 (209.85.244.219)  23.396 ms&lt;br /&gt;
  8  ham02s17-in-f3.1e100.net (172.217.19.67)  18.911 ms  17.654 ms  19.136 ms&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Missbrauch =&lt;br /&gt;
&lt;br /&gt;
== Ping flood ==&lt;br /&gt;
&lt;br /&gt;
== Ping of Death ==&lt;br /&gt;
&lt;br /&gt;
= Kontrollfragen =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24298</id>
		<title>Internet Control Message Protocol</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24298"/>
		<updated>2021-03-03T07:57:28Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das &#039;&#039;&#039;I&#039;&#039;&#039;nternet &#039;&#039;&#039;C&#039;&#039;&#039;ontrol &#039;&#039;&#039;M&#039;&#039;&#039;essage &#039;&#039;&#039;P&#039;&#039;&#039;rotocol (ICMP) ist eine Erweiterung des Internet-Protokolls (IP) und dient der Fehlerberichterstattung an die Absender-IP-Adresse.&lt;br /&gt;
&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* ursprünglich definiert von Jon Postel, einem Wegbereiter des Internets&lt;br /&gt;
* Verabschiedung des ersten Standards im April 1981 als [https://tools.ietf.org/html/rfc777 RFC 777]&lt;br /&gt;
* mehrmalige Aktualisierungen führten zur aktuellen Definition [https://tools.ietf.org/html/rfc792 RFC 792]&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
Das Internet-Protokoll ermöglicht die Kommunikation von Geräten über beliebig lange Pfade. Da es sich nicht vermeiden läßt, daß bei dieser Datenübertragung Fehler auftreten, wurde mit ICMP eine Möglichkeit geschaffen, den Absender der Datagramme über etwaige Probleme zu informieren. Mögliche Probleme sind:&lt;br /&gt;
&lt;br /&gt;
* ein Gerät oder Dienst ist nicht ereichbar&lt;br /&gt;
* einzelne Bits der Datagramme wurden auf dem Weg verfälscht&lt;br /&gt;
* die Lebenszeit (TTL) eines Datagramms ist abgelaufen&lt;br /&gt;
* die Pufferkapazität des Empfängers ist erschöpft&lt;br /&gt;
&lt;br /&gt;
Das ICMP-Protokoll wird als Teil der OSI-Schicht 3 betrachtet. Die Daten werden jedoch in IP-Paketen transportiert, wie dies bei TCP &amp;amp; UDP geschieht, obwohl ICMP kein Transportprotokoll ist. ICMP nutzt somit das IP-Protokoll, als wäre es ein Protokoll einer höheren Schicht (im OSI-Modell), obwohl es eigentlich integraler Bestandteil des IP-Protokolls ist.&lt;br /&gt;
&lt;br /&gt;
= Die Paketstruktur =&lt;br /&gt;
&lt;br /&gt;
Der Header einer ICMP-Nachricht:&lt;br /&gt;
*folgt direkt auf den IPv4-Header und wird dort an einer Protokollnummer erkannt&lt;br /&gt;
*erweitert den IP-Header und ist als integraler Bestandteil des IP-Protokolls zu sehen&lt;br /&gt;
*besitzt eine Länge von 8 Byte, gefolgt von einem Datenabschnitt variabler Größe&lt;br /&gt;
Die ersten vier Bytes des Headers haben ein festgelegtes Format:&lt;br /&gt;
*Mit dem ersten Byte wird der Typ der Nachricht kodiert.&lt;br /&gt;
*Das zweite Byte enthält einen, vom jeweiligen Typ abhängigen Code&lt;br /&gt;
*Das dritte und vierte Byte bilden eine Prüfsumme des Headers&lt;br /&gt;
Die folgenden (und letzten) vier Bytes des Headers sind vom Typ der ICMP-Nachricht abhängig.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ICMP4.png|750px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable toptextcells&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Typ !! Typname !! Code !! Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Echo-Antwort || 0 || Echo-Antwort&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;7&amp;quot;| 3 || rowspan=&amp;quot;7&amp;quot;| Ziel nicht erreichbar || 0 || Netzwerk nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Host (Zielstation) nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Protokoll nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Port nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Fragmentierung nötig, &#039;&#039;&#039;D&#039;&#039;&#039;on’t &#039;&#039;&#039;F&#039;&#039;&#039;ragment aber gesetzt&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Route nicht möglich&lt;br /&gt;
|-&lt;br /&gt;
| 13 || Paket wird von der Firewall des Empfängers geblockt&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Entlasten der Quelle || 0 || Datagramm verworfen, da Warteschlange voll&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Echo-Anfrage || 0 || Echo-Anfrage (Ping)&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| 11 || rowspan=&amp;quot;2&amp;quot;| Zeitlimit überschritten || 0 || TTL (Time To Live, Lebensdauer) abgelaufen&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Zeitlimit während der Defragmentierung überschritten&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Anwendungen =&lt;br /&gt;
&lt;br /&gt;
Am häufigsten wird ICMP zur Fehlerermittlung genutzt. Situationen, die eine ICMP-Fehlermeldung auslösen sind:&lt;br /&gt;
&lt;br /&gt;
* Ziel nicht erreichbar (&#039;&#039;Destination Unreachable&#039;&#039;): Dieser Fehler tritt auf, wenn der Zielrechner nicht mehr existiert, oder auf diesem kein passendes Protokoll gefunden werden kann. Tritt dieser Fall ein, wird der Absender entsprechend benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
* Zeit überschritten (&#039;&#039;Time Exceeded&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Ungültige Parameter (&#039;&#039;Parameter Problem&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Senderate reduzieren (&#039;&#039;Source Quench&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Umleitung im Netzwerk (&#039;&#039;Redirect&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Prüfung auf die Erreichbarkeit eines Gerätes&lt;br /&gt;
* Ermittlung des Pfades, den ein Datagramm durch das Netz beschreitet&lt;br /&gt;
* Ermittlung der maximalen Größe des Datagramms auf diesem Pfad&lt;br /&gt;
&lt;br /&gt;
== Ping ==&lt;br /&gt;
&lt;br /&gt;
Mit diesem Programm kann die Erreichbarkeit eines Netzwerkteilnehmers geprüft werden. Das Programm sendet die ICMP-Nachricht &#039;&#039;Echo Request&#039;&#039; an eine IP-Adresse &amp;amp; wartet daraufhin auf eine Antwort, dem &#039;&#039;Echo Reply&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 $ ping  google.de&lt;br /&gt;
 PING google.de(ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003)) 56 data bytes&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=1 ttl=119 time=25.7 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=2 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=3 ttl=119 time=22.6 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=4 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=5 ttl=119 time=23.1 ms&lt;br /&gt;
 ^C&lt;br /&gt;
 --- google.de ping statistics ---&lt;br /&gt;
 5 packets transmitted, 5 received, 0% packet loss, time 4006ms&lt;br /&gt;
 rtt min/avg/max/mdev = 22.572/23.416/25.650/1.130 ms&lt;br /&gt;
&lt;br /&gt;
[[File:Ping.png|750px|none]]&lt;br /&gt;
&lt;br /&gt;
== Trace Route ==&lt;br /&gt;
&lt;br /&gt;
Mit dem Kommandozeilenbefehl &#039;&#039;&#039;traceroute&#039;&#039;&#039; kann der Pfad ermittelt werden, der von einem IP-Paket vom Sender zum Empfänger beschritten wird: &lt;br /&gt;
&lt;br /&gt;
 $ traceroute google.de&lt;br /&gt;
 traceroute to google.de (172.217.19.67), 30 hops max, 60 byte packets&lt;br /&gt;
  1  fritz.box (192.168.100.1)  0.450 ms  0.593 ms  0.743 ms&lt;br /&gt;
  2  ber1005dihr001.versatel.de (62.214.63.92)  12.670 ms  12.750 ms  12.693 ms&lt;br /&gt;
  3  62.214.37.245 (62.214.37.245)  13.746 ms  13.787 ms  13.825 ms&lt;br /&gt;
  4  62.214.37.130 (62.214.37.130)  23.674 ms  23.716 ms 62.214.37.158 (62.214.37.158)  41.595 ms&lt;br /&gt;
  5  72.14.222.28 (72.14.222.28)  22.010 ms  22.063 ms 89.246.109.250 (89.246.109.250)  29.791 ms&lt;br /&gt;
  6  108.170.251.145 (108.170.251.145)  26.073 ms 108.170.252.18 (108.170.252.18)  37.669 ms 108.170.252.19 (108.170.252.19)  24.852 ms&lt;br /&gt;
  7  209.85.245.203 (209.85.245.203)  18.491 ms 209.85.242.79 (209.85.242.79)  44.834 ms 209.85.244.219 (209.85.244.219)  23.396 ms&lt;br /&gt;
  8  ham02s17-in-f3.1e100.net (172.217.19.67)  18.911 ms  17.654 ms  19.136 ms&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
= Missbrauch =&lt;br /&gt;
&lt;br /&gt;
== Ping flood ==&lt;br /&gt;
&lt;br /&gt;
== Ping of Death ==&lt;br /&gt;
&lt;br /&gt;
= Kontrollfragen =&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&amp;lt;div class=&amp;quot;toccolours mw-collapsible mw-collapsed&amp;quot;&amp;gt;&lt;br /&gt;
?&lt;br /&gt;
&amp;lt;div class=&amp;quot;mw-collapsible-content&amp;quot;&amp;gt;&lt;br /&gt;
A:&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;br /&gt;
&amp;lt;/div&amp;gt;&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24297</id>
		<title>Internet Control Message Protocol</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24297"/>
		<updated>2021-03-03T07:53:58Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das &#039;&#039;&#039;I&#039;&#039;&#039;nternet &#039;&#039;&#039;C&#039;&#039;&#039;ontrol &#039;&#039;&#039;M&#039;&#039;&#039;essage &#039;&#039;&#039;P&#039;&#039;&#039;rotocol (ICMP) ist eine Erweiterung des Internet-Protokolls (IP) und dient der Fehlerberichterstattung an die Absender-IP-Adresse.&lt;br /&gt;
&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* ursprünglich definiert von Jon Postel, einem Wegbereiter des Internets&lt;br /&gt;
* Verabschiedung des ersten Standards im April 1981 als [https://tools.ietf.org/html/rfc777 RFC 777]&lt;br /&gt;
* mehrmalige Aktualisierungen führten zur aktuellen Definition [https://tools.ietf.org/html/rfc792 RFC 792]&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
Das Internet-Protokoll ermöglicht die Kommunikation von Geräten über beliebig lange Pfade. Da es sich nicht vermeiden läßt, daß bei dieser Datenübertragung Fehler auftreten, wurde mit ICMP eine Möglichkeit geschaffen, den Absender der Datagramme über etwaige Probleme zu informieren. Mögliche Probleme sind:&lt;br /&gt;
&lt;br /&gt;
* ein Gerät oder Dienst ist nicht ereichbar&lt;br /&gt;
* einzelne Bits der Datagramme wurden auf dem Weg verfälscht&lt;br /&gt;
* die Lebenszeit (TTL) eines Datagramms ist abgelaufen&lt;br /&gt;
* die Pufferkapazität des Empfängers ist erschöpft&lt;br /&gt;
&lt;br /&gt;
Das ICMP-Protokoll wird als Teil der OSI-Schicht 3 betrachtet. Die Daten werden jedoch in IP-Paketen transportiert, wie dies bei TCP &amp;amp; UDP geschieht, obwohl ICMP kein Transportprotokoll ist. ICMP nutzt somit das IP-Protokoll, als wäre es ein Protokoll einer höheren Schicht (im OSI-Modell), obwohl es eigentlich integraler Bestandteil des IP-Protokolls ist.&lt;br /&gt;
&lt;br /&gt;
= Die Paketstruktur =&lt;br /&gt;
&lt;br /&gt;
Der Header einer ICMP-Nachricht:&lt;br /&gt;
*folgt direkt auf den IPv4-Header und wird dort an einer Protokollnummer erkannt&lt;br /&gt;
*erweitert den IP-Header und ist als integraler Bestandteil des IP-Protokolls zu sehen&lt;br /&gt;
*besitzt eine Länge von 8 Byte, gefolgt von einem Datenabschnitt variabler Größe&lt;br /&gt;
Die ersten vier Bytes des Headers haben ein festgelegtes Format:&lt;br /&gt;
*Mit dem ersten Byte wird der Typ der Nachricht kodiert.&lt;br /&gt;
*Das zweite Byte enthält einen, vom jeweiligen Typ abhängigen Code&lt;br /&gt;
*Das dritte und vierte Byte bilden eine Prüfsumme des Headers&lt;br /&gt;
Die folgenden (und letzten) vier Bytes des Headers sind vom Typ der ICMP-Nachricht abhängig.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ICMP4.png|750px|none]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable toptextcells&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Typ !! Typname !! Code !! Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Echo-Antwort || 0 || Echo-Antwort&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;7&amp;quot;| 3 || rowspan=&amp;quot;7&amp;quot;| Ziel nicht erreichbar || 0 || Netzwerk nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Host (Zielstation) nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Protokoll nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Port nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Fragmentierung nötig, &#039;&#039;&#039;D&#039;&#039;&#039;on’t &#039;&#039;&#039;F&#039;&#039;&#039;ragment aber gesetzt&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Route nicht möglich&lt;br /&gt;
|-&lt;br /&gt;
| 13 || Paket wird von der Firewall des Empfängers geblockt&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Entlasten der Quelle || 0 || Datagramm verworfen, da Warteschlange voll&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Echo-Anfrage || 0 || Echo-Anfrage (Ping)&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| 11 || rowspan=&amp;quot;2&amp;quot;| Zeitlimit überschritten || 0 || TTL (Time To Live, Lebensdauer) abgelaufen&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Zeitlimit während der Defragmentierung überschritten&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Anwendungen =&lt;br /&gt;
&lt;br /&gt;
Am häufigsten wird ICMP zur Fehlerermittlung genutzt. Situationen, die eine ICMP-Fehlermeldung auslösen sind:&lt;br /&gt;
&lt;br /&gt;
* Ziel nicht erreichbar (&#039;&#039;Destination Unreachable&#039;&#039;): Dieser Fehler tritt auf, wenn der Zielrechner nicht mehr existiert, oder auf diesem kein passendes Protokoll gefunden werden kann. Tritt dieser Fall ein, wird der Absender entsprechend benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
* Zeit überschritten (&#039;&#039;Time Exceeded&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Ungültige Parameter (&#039;&#039;Parameter Problem&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Senderate reduzieren (&#039;&#039;Source Quench&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Umleitung im Netzwerk (&#039;&#039;Redirect&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Prüfung auf die Erreichbarkeit eines Gerätes&lt;br /&gt;
* Ermittlung des Pfades, den ein Datagramm durch das Netz beschreitet&lt;br /&gt;
* Ermittlung der maximalen Größe des Datagramms auf diesem Pfad&lt;br /&gt;
&lt;br /&gt;
== Ping ==&lt;br /&gt;
&lt;br /&gt;
Mit diesem Programm kann die Erreichbarkeit eines Netzwerkteilnehmers geprüft werden. Das Programm sendet die ICMP-Nachricht &#039;&#039;Echo Request&#039;&#039; an eine IP-Adresse &amp;amp; wartet daraufhin auf eine Antwort, dem &#039;&#039;Echo Reply&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 $ ping  google.de&lt;br /&gt;
 PING google.de(ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003)) 56 data bytes&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=1 ttl=119 time=25.7 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=2 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=3 ttl=119 time=22.6 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=4 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=5 ttl=119 time=23.1 ms&lt;br /&gt;
 ^C&lt;br /&gt;
 --- google.de ping statistics ---&lt;br /&gt;
 5 packets transmitted, 5 received, 0% packet loss, time 4006ms&lt;br /&gt;
 rtt min/avg/max/mdev = 22.572/23.416/25.650/1.130 ms&lt;br /&gt;
&lt;br /&gt;
[[File:Ping.png|750px|none]]&lt;br /&gt;
&lt;br /&gt;
== Trace Route ==&lt;br /&gt;
&lt;br /&gt;
Mit dem Kommandozeilenbefehl &#039;&#039;&#039;traceroute&#039;&#039;&#039; kann der Pfad ermittelt werden, der von einem IP-Paket vom Sender zum Empfänger beschritten wird: &lt;br /&gt;
&lt;br /&gt;
 $ traceroute google.de&lt;br /&gt;
 traceroute to google.de (172.217.19.67), 30 hops max, 60 byte packets&lt;br /&gt;
  1  fritz.box (192.168.100.1)  0.450 ms  0.593 ms  0.743 ms&lt;br /&gt;
  2  ber1005dihr001.versatel.de (62.214.63.92)  12.670 ms  12.750 ms  12.693 ms&lt;br /&gt;
  3  62.214.37.245 (62.214.37.245)  13.746 ms  13.787 ms  13.825 ms&lt;br /&gt;
  4  62.214.37.130 (62.214.37.130)  23.674 ms  23.716 ms 62.214.37.158 (62.214.37.158)  41.595 ms&lt;br /&gt;
  5  72.14.222.28 (72.14.222.28)  22.010 ms  22.063 ms 89.246.109.250 (89.246.109.250)  29.791 ms&lt;br /&gt;
  6  108.170.251.145 (108.170.251.145)  26.073 ms 108.170.252.18 (108.170.252.18)  37.669 ms 108.170.252.19 (108.170.252.19)  24.852 ms&lt;br /&gt;
  7  209.85.245.203 (209.85.245.203)  18.491 ms 209.85.242.79 (209.85.242.79)  44.834 ms 209.85.244.219 (209.85.244.219)  23.396 ms&lt;br /&gt;
  8  ham02s17-in-f3.1e100.net (172.217.19.67)  18.911 ms  17.654 ms  19.136 ms&lt;br /&gt;
&lt;br /&gt;
== Trace Path ==&lt;br /&gt;
&lt;br /&gt;
= Missbrauch =&lt;br /&gt;
&lt;br /&gt;
== Ping flood ==&lt;br /&gt;
&lt;br /&gt;
== Ping of Death ==&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24290</id>
		<title>Internet Control Message Protocol</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24290"/>
		<updated>2021-03-02T14:04:10Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: /* Ping */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das &#039;&#039;&#039;I&#039;&#039;&#039;nternet &#039;&#039;&#039;C&#039;&#039;&#039;ontrol &#039;&#039;&#039;M&#039;&#039;&#039;essage &#039;&#039;&#039;P&#039;&#039;&#039;rotocol (ICMP) ist eine Erweiterung des Internet-Protokolls (IP) und dient der Fehlerberichterstattung an die Absender-IP-Adresse.&lt;br /&gt;
&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* ursprünglich definiert von Jon Postel, einem Wegbereiter des Internets&lt;br /&gt;
* Verabschiedung des ersten Standards im April 1981 als [https://tools.ietf.org/html/rfc777 RFC 777]&lt;br /&gt;
* mehrmalige Aktualisierungen führten zur aktuellen Definition [https://tools.ietf.org/html/rfc792 RFC 792]&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
Das Internet-Protokoll ermöglicht die Kommunikation von Geräten über beliebig lange Pfade. Da es sich nicht vermeiden läßt, daß bei dieser Datenübertragung Fehler auftreten, wurde mit ICMP eine Möglichkeit geschaffen, den Absender der Datagramme über etwaige Probleme zu informieren. Mögliche Probleme sind:&lt;br /&gt;
&lt;br /&gt;
* ein Gerät oder Dienst ist nicht ereichbar&lt;br /&gt;
* einzelne Bits der Datagramme wurden auf dem Weg verfälscht&lt;br /&gt;
* die Lebenszeit (TTL) eines Datagramms ist abgelaufen&lt;br /&gt;
* die Pufferkapazität des Empfängers ist erschöpft&lt;br /&gt;
&lt;br /&gt;
Das ICMP-Protokoll wird als Teil der OSI-Schicht 3 betrachtet. Die Daten werden jedoch in IP-Paketen transportiert, wie dies bei TCP &amp;amp; UDP geschieht, obwohl ICMP kein Transportprotokoll ist. ICMP nutzt somit das IP-Protokoll, als wäre es ein Protokoll einer höheren Schicht (im OSI-Modell), obwohl es eigentlich integraler Bestandteil des IP-Protokolls ist.&lt;br /&gt;
&lt;br /&gt;
Der Header einer ICMP-Nachricht:&lt;br /&gt;
*folgt direkt auf den IPv4-Header und wird dort an einer Protokollnummer erkannt&lt;br /&gt;
*erweitert den IP-Header und ist als integraler Bestandteil des IP-Protokolls zu sehen&lt;br /&gt;
*besitzt eine Länge von 8 Byte, gefolgt von einem Datenabschnitt variabler Größe&lt;br /&gt;
Die ersten vier Bytes des Headers haben ein festgelegtes Format:&lt;br /&gt;
*Mit dem ersten Byte wird der Typ der Nachricht kodiert.&lt;br /&gt;
*Das zweite Byte enthält einen, vom jeweiligen Typ abhängigen Code&lt;br /&gt;
*Das dritte und vierte Byte bilden eine Prüfsumme des Headers&lt;br /&gt;
Die folgenden (und letzten) vier Bytes des Headers sind vom Typ der ICMP-Nachricht abhängig.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ICMP4.png|750px|none]]&lt;br /&gt;
&lt;br /&gt;
= Die Paketstruktur =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable toptextcells&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Typ !! Typname !! Code !! Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Echo-Antwort || 0 || Echo-Antwort&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;7&amp;quot;| 3 || rowspan=&amp;quot;7&amp;quot;| Ziel nicht erreichbar || 0 || Netzwerk nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Host (Zielstation) nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Protokoll nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Port nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Fragmentierung nötig, &#039;&#039;&#039;D&#039;&#039;&#039;on’t &#039;&#039;&#039;F&#039;&#039;&#039;ragment aber gesetzt&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Route nicht möglich&lt;br /&gt;
|-&lt;br /&gt;
| 13 || Paket wird von der Firewall des Empfängers geblockt&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Entlasten der Quelle || 0 || Datagramm verworfen, da Warteschlange voll&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Echo-Anfrage || 0 || Echo-Anfrage (Ping)&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| 11 || rowspan=&amp;quot;2&amp;quot;| Zeitlimit überschritten || 0 || TTL (Time To Live, Lebensdauer) abgelaufen&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Zeitlimit während der Defragmentierung überschritten&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Anwendungen =&lt;br /&gt;
&lt;br /&gt;
Am häufigsten wird ICMP zur Fehlerermittlung genutzt. Situationen, die eine ICMP-Fehlermeldung auslösen sind:&lt;br /&gt;
&lt;br /&gt;
* Ziel nicht erreichbar (&#039;&#039;Destination Unreachable&#039;&#039;): Dieser Fehler tritt auf, wenn der Zielrechner nicht mehr existiert, oder auf diesem kein passendes Protokoll gefunden werden kann. Tritt dieser Fall ein, wird der Absender entsprechend benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
* Zeit überschritten (&#039;&#039;Time Exceeded&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Ungültige Parameter (&#039;&#039;Parameter Problem&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Senderate reduzieren (&#039;&#039;Source Quench&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Umleitung im Netzwerk (&#039;&#039;Redirect&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Prüfung auf die Erreichbarkeit eines Gerätes&lt;br /&gt;
* Ermittlung des Pfades, den ein Datagramm durch das Netz beschreitet&lt;br /&gt;
* Ermittlung der maximalen Größe des Datagramms auf diesem Pfad&lt;br /&gt;
&lt;br /&gt;
== Ping ==&lt;br /&gt;
&lt;br /&gt;
Mit diesem Programm kann die Erreichbarkeit eines Netzwerkteilnehmers geprüft werden. Das Programm sendet die ICMP-Nachricht &#039;&#039;Echo Request&#039;&#039; an eine IP-Adresse &amp;amp; wartet daraufhin auf eine Antwort, dem &#039;&#039;Echo Reply&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 $ ping  google.de&lt;br /&gt;
 PING google.de(ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003)) 56 data bytes&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=1 ttl=119 time=25.7 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=2 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=3 ttl=119 time=22.6 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=4 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=5 ttl=119 time=23.1 ms&lt;br /&gt;
 ^C&lt;br /&gt;
 --- google.de ping statistics ---&lt;br /&gt;
 5 packets transmitted, 5 received, 0% packet loss, time 4006ms&lt;br /&gt;
 rtt min/avg/max/mdev = 22.572/23.416/25.650/1.130 ms&lt;br /&gt;
&lt;br /&gt;
[[File:Ping.png|750px|none]]&lt;br /&gt;
&lt;br /&gt;
== Trace Route ==&lt;br /&gt;
&lt;br /&gt;
Mit dem Kommandozeilenbefehl &#039;&#039;&#039;traceroute&#039;&#039;&#039; kann der Pfad ermittelt werden, der von einem IP-Paket vom Sender zum Empfänger beschritten wird: &lt;br /&gt;
&lt;br /&gt;
 $ traceroute google.de&lt;br /&gt;
 traceroute to google.de (172.217.19.67), 30 hops max, 60 byte packets&lt;br /&gt;
  1  fritz.box (192.168.100.1)  0.450 ms  0.593 ms  0.743 ms&lt;br /&gt;
  2  ber1005dihr001.versatel.de (62.214.63.92)  12.670 ms  12.750 ms  12.693 ms&lt;br /&gt;
  3  62.214.37.245 (62.214.37.245)  13.746 ms  13.787 ms  13.825 ms&lt;br /&gt;
  4  62.214.37.130 (62.214.37.130)  23.674 ms  23.716 ms 62.214.37.158 (62.214.37.158)  41.595 ms&lt;br /&gt;
  5  72.14.222.28 (72.14.222.28)  22.010 ms  22.063 ms 89.246.109.250 (89.246.109.250)  29.791 ms&lt;br /&gt;
  6  108.170.251.145 (108.170.251.145)  26.073 ms 108.170.252.18 (108.170.252.18)  37.669 ms 108.170.252.19 (108.170.252.19)  24.852 ms&lt;br /&gt;
  7  209.85.245.203 (209.85.245.203)  18.491 ms 209.85.242.79 (209.85.242.79)  44.834 ms 209.85.244.219 (209.85.244.219)  23.396 ms&lt;br /&gt;
  8  ham02s17-in-f3.1e100.net (172.217.19.67)  18.911 ms  17.654 ms  19.136 ms&lt;br /&gt;
&lt;br /&gt;
== Trace Path ==&lt;br /&gt;
&lt;br /&gt;
= Missbrauch =&lt;br /&gt;
&lt;br /&gt;
== Ping flood ==&lt;br /&gt;
&lt;br /&gt;
== Ping of Death ==&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Datei:Ping.png&amp;diff=24267</id>
		<title>Datei:Ping.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Datei:Ping.png&amp;diff=24267"/>
		<updated>2021-03-02T13:21:46Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: Datei hochgeladen mit MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Datei hochgeladen mit MsUpload&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24250</id>
		<title>Internet Control Message Protocol</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24250"/>
		<updated>2021-03-02T12:53:51Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: /* Die Paketstruktur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das &#039;&#039;&#039;I&#039;&#039;&#039;nternet &#039;&#039;&#039;C&#039;&#039;&#039;ontrol &#039;&#039;&#039;M&#039;&#039;&#039;essage &#039;&#039;&#039;P&#039;&#039;&#039;rotocol (ICMP) ist eine Erweiterung des Internet-Protokolls (IP) und dient der Fehlerberichterstattung an die Absender-IP-Adresse.&lt;br /&gt;
&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* ursprünglich definiert von Jon Postel, einem Wegbereiter des Internets&lt;br /&gt;
* Verabschiedung des ersten Standards im April 1981 als [https://tools.ietf.org/html/rfc777 RFC 777]&lt;br /&gt;
* mehrmalige Aktualisierungen führten zur aktuellen Definition [https://tools.ietf.org/html/rfc792 RFC 792]&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
Das Internet-Protokoll ermöglicht die Kommunikation von Geräten über beliebig lange Pfade. Da es sich nicht vermeiden läßt, daß bei dieser Datenübertragung Fehler auftreten, wurde mit ICMP eine Möglichkeit geschaffen, den Absender der Datagramme über etwaige Probleme zu informieren. Mögliche Probleme sind:&lt;br /&gt;
&lt;br /&gt;
* ein Gerät oder Dienst ist nicht ereichbar&lt;br /&gt;
* einzelne Bits der Datagramme wurden auf dem Weg verfälscht&lt;br /&gt;
* die Lebenszeit (TTL) eines Datagramms ist abgelaufen&lt;br /&gt;
* die Pufferkapazität des Empfängers ist erschöpft&lt;br /&gt;
&lt;br /&gt;
Das ICMP-Protokoll wird als Teil der OSI-Schicht 3 betrachtet. Die Daten werden jedoch in IP-Paketen transportiert, wie dies bei TCP &amp;amp; UDP geschieht, obwohl ICMP kein Transportprotokoll ist. ICMP nutzt somit das IP-Protokoll, als wäre es ein Protokoll einer höheren Schicht (im OSI-Modell), obwohl es eigentlich integraler Bestandteil des IP-Protokolls ist.&lt;br /&gt;
&lt;br /&gt;
Der Header einer ICMP-Nachricht:&lt;br /&gt;
*folgt direkt auf den IPv4-Header und wird dort an einer Protokollnummer erkannt&lt;br /&gt;
*erweitert den IP-Header und ist als integraler Bestandteil des IP-Protokolls zu sehen&lt;br /&gt;
*besitzt eine Länge von 8 Byte, gefolgt von einem Datenabschnitt variabler Größe&lt;br /&gt;
Die ersten vier Bytes des Headers haben ein festgelegtes Format:&lt;br /&gt;
*Mit dem ersten Byte wird der Typ der Nachricht kodiert.&lt;br /&gt;
*Das zweite Byte enthält einen, vom jeweiligen Typ abhängigen Code&lt;br /&gt;
*Das dritte und vierte Byte bilden eine Prüfsumme des Headers&lt;br /&gt;
Die folgenden (und letzten) vier Bytes des Headers sind vom Typ der ICMP-Nachricht abhängig.&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:ICMP4.png|750px|none]]&lt;br /&gt;
&lt;br /&gt;
= Die Paketstruktur =&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable toptextcells&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Typ !! Typname !! Code !! Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Echo-Antwort || 0 || Echo-Antwort&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;7&amp;quot;| 3 || rowspan=&amp;quot;7&amp;quot;| Ziel nicht erreichbar || 0 || Netzwerk nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Host (Zielstation) nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Protokoll nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Port nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Fragmentierung nötig, &#039;&#039;&#039;D&#039;&#039;&#039;on’t &#039;&#039;&#039;F&#039;&#039;&#039;ragment aber gesetzt&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Route nicht möglich&lt;br /&gt;
|-&lt;br /&gt;
| 13 || Paket wird von der Firewall des Empfängers geblockt&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Entlasten der Quelle || 0 || Datagramm verworfen, da Warteschlange voll&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Echo-Anfrage || 0 || Echo-Anfrage (Ping)&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| 11 || rowspan=&amp;quot;2&amp;quot;| Zeitlimit überschritten || 0 || TTL (Time To Live, Lebensdauer) abgelaufen&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Zeitlimit während der Defragmentierung überschritten&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Anwendungen =&lt;br /&gt;
&lt;br /&gt;
Am häufigsten wird ICMP zur Fehlerermittlung genutzt. Situationen, die eine ICMP-Fehlermeldung auslösen sind:&lt;br /&gt;
&lt;br /&gt;
* Ziel nicht erreichbar (&#039;&#039;Destination Unreachable&#039;&#039;): Dieser Fehler tritt auf, wenn der Zielrechner nicht mehr existiert, oder auf diesem kein passendes Protokoll gefunden werden kann. Tritt dieser Fall ein, wird der Absender entsprechend benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
* Zeit überschritten (&#039;&#039;Time Exceeded&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Ungültige Parameter (&#039;&#039;Parameter Problem&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Senderate reduzieren (&#039;&#039;Source Quench&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Umleitung im Netzwerk (&#039;&#039;Redirect&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Prüfung auf die Erreichbarkeit eines Gerätes&lt;br /&gt;
* Ermittlung des Pfades, den ein Datagramm durch das Netz beschreitet&lt;br /&gt;
* Ermittlung der maximalen Größe des Datagramms auf diesem Pfad&lt;br /&gt;
&lt;br /&gt;
== Ping ==&lt;br /&gt;
&lt;br /&gt;
Mit diesem Programm kann die Erreichbarkeit eines Netzwerkteilnehmers geprüft werden. Das Programm sendet die ICMP-Nachricht &#039;&#039;Echo Request&#039;&#039; an eine IP-Adresse &amp;amp; wartet daraufhin auf eine Antwort, dem &#039;&#039;Echo Reply&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 $ ping  google.de&lt;br /&gt;
 PING google.de(ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003)) 56 data bytes&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=1 ttl=119 time=25.7 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=2 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=3 ttl=119 time=22.6 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=4 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=5 ttl=119 time=23.1 ms&lt;br /&gt;
 ^C&lt;br /&gt;
 --- google.de ping statistics ---&lt;br /&gt;
 5 packets transmitted, 5 received, 0% packet loss, time 4006ms&lt;br /&gt;
 rtt min/avg/max/mdev = 22.572/23.416/25.650/1.130 ms&lt;br /&gt;
&lt;br /&gt;
== Trace Route ==&lt;br /&gt;
&lt;br /&gt;
Mit dem Kommandozeilenbefehl &#039;&#039;&#039;traceroute&#039;&#039;&#039; kann der Pfad ermittelt werden, der von einem IP-Paket vom Sender zum Empfänger beschritten wird: &lt;br /&gt;
&lt;br /&gt;
 $ traceroute google.de&lt;br /&gt;
 traceroute to google.de (172.217.19.67), 30 hops max, 60 byte packets&lt;br /&gt;
  1  fritz.box (192.168.100.1)  0.450 ms  0.593 ms  0.743 ms&lt;br /&gt;
  2  ber1005dihr001.versatel.de (62.214.63.92)  12.670 ms  12.750 ms  12.693 ms&lt;br /&gt;
  3  62.214.37.245 (62.214.37.245)  13.746 ms  13.787 ms  13.825 ms&lt;br /&gt;
  4  62.214.37.130 (62.214.37.130)  23.674 ms  23.716 ms 62.214.37.158 (62.214.37.158)  41.595 ms&lt;br /&gt;
  5  72.14.222.28 (72.14.222.28)  22.010 ms  22.063 ms 89.246.109.250 (89.246.109.250)  29.791 ms&lt;br /&gt;
  6  108.170.251.145 (108.170.251.145)  26.073 ms 108.170.252.18 (108.170.252.18)  37.669 ms 108.170.252.19 (108.170.252.19)  24.852 ms&lt;br /&gt;
  7  209.85.245.203 (209.85.245.203)  18.491 ms 209.85.242.79 (209.85.242.79)  44.834 ms 209.85.244.219 (209.85.244.219)  23.396 ms&lt;br /&gt;
  8  ham02s17-in-f3.1e100.net (172.217.19.67)  18.911 ms  17.654 ms  19.136 ms&lt;br /&gt;
&lt;br /&gt;
== Trace Path ==&lt;br /&gt;
&lt;br /&gt;
= Missbrauch =&lt;br /&gt;
&lt;br /&gt;
== Ping flood ==&lt;br /&gt;
&lt;br /&gt;
== Ping of Death ==&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Datei:ICMP4.png&amp;diff=24247</id>
		<title>Datei:ICMP4.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Datei:ICMP4.png&amp;diff=24247"/>
		<updated>2021-03-02T12:51:24Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: Datei hochgeladen mit MsUpload&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Datei hochgeladen mit MsUpload&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24199</id>
		<title>Internet Control Message Protocol</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24199"/>
		<updated>2021-03-02T10:39:40Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: /* Grundlagen */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das &#039;&#039;&#039;I&#039;&#039;&#039;nternet &#039;&#039;&#039;C&#039;&#039;&#039;ontrol &#039;&#039;&#039;M&#039;&#039;&#039;essage &#039;&#039;&#039;P&#039;&#039;&#039;rotocol (ICMP) ist eine Erweiterung des Internet-Protokolls (IP) und dient der Fehlerberichterstattung an die Absender-IP-Adresse.&lt;br /&gt;
&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* ursprünglich definiert von Jon Postel, einem Wegbereiter des Internets&lt;br /&gt;
* Verabschiedung des ersten Standards im April 1981 als [https://tools.ietf.org/html/rfc777 RFC 777]&lt;br /&gt;
* mehrmalige Aktualisierungen führten zur aktuellen Definition [https://tools.ietf.org/html/rfc792 RFC 792]&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
Das Internet-Protokoll ermöglicht die Kommunikation von Geräten über beliebig lange Pfade. Da es sich nicht vermeiden läßt, daß bei dieser Datenübertragung Fehler auftreten, wurde mit ICMP eine Möglichkeit geschaffen, den Absender der Datagramme über etwaige Probleme zu informieren. Mögliche Probleme sind:&lt;br /&gt;
&lt;br /&gt;
* ein Gerät oder Dienst ist nicht ereichbar&lt;br /&gt;
* einzelne Bits der Datagramme wurden auf dem Weg verfälscht&lt;br /&gt;
* die Lebenszeit (TTL) eines Datagramms ist abgelaufen&lt;br /&gt;
* die Pufferkapazität des Empfängers ist erschöpft&lt;br /&gt;
&lt;br /&gt;
Das ICMP-Protokoll wird als Teil der OSI-Schicht 3 betrachtet. Die Daten werden jedoch in IP-Paketen transportiert, wie dies bei TCP &amp;amp; UDP geschieht, obwohl ICMP kein Transportprotokoll ist. ICMP nutzt somit das IP-Protokoll, als wäre es ein Protokoll einer höheren Schicht (im OSI-Modell), obwohl es eigentlich integraler Bestandteil des IP-Protokolls ist.&lt;br /&gt;
&lt;br /&gt;
= Die Paketstruktur =&lt;br /&gt;
&lt;br /&gt;
Der Header einer ICMP-Nachricht:&lt;br /&gt;
*folgt direkt auf den IPv4-Header und wird dort an einer Protokollnummer erkannt&lt;br /&gt;
*erweitert den IP-Header und ist als integraler Bestandteil des IP-Protokolls zu sehen&lt;br /&gt;
*besitzt eine Länge von 8 Byte, gefolgt von einem Datenabschnitt variabler Größe&lt;br /&gt;
Die ersten vier Bytes des Headers haben ein festgelegtes Format:&lt;br /&gt;
*Mit dem ersten Byte wird der Typ der Nachricht kodiert.&lt;br /&gt;
*Das zweite Byte enthält einen, vom jeweiligen Typ abhängigen Code&lt;br /&gt;
*Das dritte und vierte Byte bilden eine Prüfsumme des Headers&lt;br /&gt;
Die folgenden (und letzten) vier Bytes des Headers sind vom Typ der ICMP-Nachricht abhängig.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ICMP3.png|800px|ohne]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable toptextcells&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Typ !! Typname !! Code !! Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Echo-Antwort || 0 || Echo-Antwort&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;7&amp;quot;| 3 || rowspan=&amp;quot;7&amp;quot;| Ziel nicht erreichbar || 0 || Netzwerk nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Host (Zielstation) nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Protokoll nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Port nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Fragmentierung nötig, &#039;&#039;&#039;D&#039;&#039;&#039;on’t &#039;&#039;&#039;F&#039;&#039;&#039;ragment aber gesetzt&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Route nicht möglich&lt;br /&gt;
|-&lt;br /&gt;
| 13 || Paket wird von der Firewall des Empfängers geblockt&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Entlasten der Quelle || 0 || Datagramm verworfen, da Warteschlange voll&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Echo-Anfrage || 0 || Echo-Anfrage (Ping)&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| 11 || rowspan=&amp;quot;2&amp;quot;| Zeitlimit überschritten || 0 || TTL (Time To Live, Lebensdauer) abgelaufen&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Zeitlimit während der Defragmentierung überschritten&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Anwendungen =&lt;br /&gt;
&lt;br /&gt;
Am häufigsten wird ICMP zur Fehlerermittlung genutzt. Situationen, die eine ICMP-Fehlermeldung auslösen sind:&lt;br /&gt;
&lt;br /&gt;
* Ziel nicht erreichbar (&#039;&#039;Destination Unreachable&#039;&#039;): Dieser Fehler tritt auf, wenn der Zielrechner nicht mehr existiert, oder auf diesem kein passendes Protokoll gefunden werden kann. Tritt dieser Fall ein, wird der Absender entsprechend benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
* Zeit überschritten (&#039;&#039;Time Exceeded&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Ungültige Parameter (&#039;&#039;Parameter Problem&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Senderate reduzieren (&#039;&#039;Source Quench&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Umleitung im Netzwerk (&#039;&#039;Redirect&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Prüfung auf die Erreichbarkeit eines Gerätes&lt;br /&gt;
* Ermittlung des Pfades, den ein Datagramm durch das Netz beschreitet&lt;br /&gt;
* Ermittlung der maximalen Größe des Datagramms auf diesem Pfad&lt;br /&gt;
&lt;br /&gt;
== Ping ==&lt;br /&gt;
&lt;br /&gt;
Mit diesem Programm kann die Erreichbarkeit eines Netzwerkteilnehmers geprüft werden. Das Programm sendet die ICMP-Nachricht &#039;&#039;Echo Request&#039;&#039; an eine IP-Adresse &amp;amp; wartet daraufhin auf eine Antwort, dem &#039;&#039;Echo Reply&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 $ ping  google.de&lt;br /&gt;
 PING google.de(ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003)) 56 data bytes&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=1 ttl=119 time=25.7 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=2 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=3 ttl=119 time=22.6 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=4 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=5 ttl=119 time=23.1 ms&lt;br /&gt;
 ^C&lt;br /&gt;
 --- google.de ping statistics ---&lt;br /&gt;
 5 packets transmitted, 5 received, 0% packet loss, time 4006ms&lt;br /&gt;
 rtt min/avg/max/mdev = 22.572/23.416/25.650/1.130 ms&lt;br /&gt;
&lt;br /&gt;
== Trace Route ==&lt;br /&gt;
&lt;br /&gt;
Mit dem Kommandozeilenbefehl &#039;&#039;&#039;traceroute&#039;&#039;&#039; kann der Pfad ermittelt werden, der von einem IP-Paket vom Sender zum Empfänger beschritten wird: &lt;br /&gt;
&lt;br /&gt;
 $ traceroute google.de&lt;br /&gt;
 traceroute to google.de (172.217.19.67), 30 hops max, 60 byte packets&lt;br /&gt;
  1  fritz.box (192.168.100.1)  0.450 ms  0.593 ms  0.743 ms&lt;br /&gt;
  2  ber1005dihr001.versatel.de (62.214.63.92)  12.670 ms  12.750 ms  12.693 ms&lt;br /&gt;
  3  62.214.37.245 (62.214.37.245)  13.746 ms  13.787 ms  13.825 ms&lt;br /&gt;
  4  62.214.37.130 (62.214.37.130)  23.674 ms  23.716 ms 62.214.37.158 (62.214.37.158)  41.595 ms&lt;br /&gt;
  5  72.14.222.28 (72.14.222.28)  22.010 ms  22.063 ms 89.246.109.250 (89.246.109.250)  29.791 ms&lt;br /&gt;
  6  108.170.251.145 (108.170.251.145)  26.073 ms 108.170.252.18 (108.170.252.18)  37.669 ms 108.170.252.19 (108.170.252.19)  24.852 ms&lt;br /&gt;
  7  209.85.245.203 (209.85.245.203)  18.491 ms 209.85.242.79 (209.85.242.79)  44.834 ms 209.85.244.219 (209.85.244.219)  23.396 ms&lt;br /&gt;
  8  ham02s17-in-f3.1e100.net (172.217.19.67)  18.911 ms  17.654 ms  19.136 ms&lt;br /&gt;
&lt;br /&gt;
== Trace Path ==&lt;br /&gt;
&lt;br /&gt;
= Missbrauch =&lt;br /&gt;
&lt;br /&gt;
== Ping flood ==&lt;br /&gt;
&lt;br /&gt;
== Ping of Death ==&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24197</id>
		<title>Internet Control Message Protocol</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24197"/>
		<updated>2021-03-02T10:27:44Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: /* Die Paketstruktur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das &#039;&#039;&#039;I&#039;&#039;&#039;nternet &#039;&#039;&#039;C&#039;&#039;&#039;ontrol &#039;&#039;&#039;M&#039;&#039;&#039;essage &#039;&#039;&#039;P&#039;&#039;&#039;rotocol (ICMP) ist eine Erweiterung des Internet-Protokolls (IP) und dient der Fehlerberichterstattung an die Absender-IP-Adresse.&lt;br /&gt;
&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* ursprünglich definiert von Jon Postel, einem Wegbereiter des Internets&lt;br /&gt;
* Verabschiedung des ersten Standards im April 1981 als [https://tools.ietf.org/html/rfc777 RFC 777]&lt;br /&gt;
* mehrmalige Aktualisierungen führten zur aktuellen Definition [https://tools.ietf.org/html/rfc792 RFC 792]&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
Das Internet-Protokoll ermöglicht die Kommunikation von Geräten über beliebig lange Pfade. Da es sich nicht vermeiden läßt, daß bei dieser Datenübertragung Fehler auftreten, wurde mit ICMP eine Möglichkeit geschaffen, den Absender der Datagramme über etwaige Probleme zu informieren. Mögliche Probleme sind:&lt;br /&gt;
&lt;br /&gt;
* ein Gerät oder Dienst ist nicht ereichbar&lt;br /&gt;
* einzelne Bits der Datagramme wurden auf dem Weg verfälscht&lt;br /&gt;
* die Lebenszeit (TTL) eines Datagramms ist abgelaufen&lt;br /&gt;
* die Pufferkapazität des Empfängers ist erschöpft&lt;br /&gt;
&lt;br /&gt;
Das ICMP-Protokoll wird als Teil der OSI-Schicht 3 betrachtet. Die Daten werden jedoch in IP-Paketen transportiert, wie dies bei TCP &amp;amp; UDP geschieht, obwohl ICMP kein Transportprotokoll ist.&lt;br /&gt;
&lt;br /&gt;
= Die Paketstruktur =&lt;br /&gt;
&lt;br /&gt;
Der Header einer ICMP-Nachricht:&lt;br /&gt;
*folgt direkt auf den IPv4-Header und wird dort an einer Protokollnummer erkannt&lt;br /&gt;
*erweitert den IP-Header und ist als integraler Bestandteil des IP-Protokolls zu sehen&lt;br /&gt;
*besitzt eine Länge von 8 Byte, gefolgt von einem Datenabschnitt variabler Größe&lt;br /&gt;
Die ersten vier Bytes des Headers haben ein festgelegtes Format:&lt;br /&gt;
*Mit dem ersten Byte wird der Typ der Nachricht kodiert.&lt;br /&gt;
*Das zweite Byte enthält einen, vom jeweiligen Typ abhängigen Code&lt;br /&gt;
*Das dritte und vierte Byte bilden eine Prüfsumme des Headers&lt;br /&gt;
Die folgenden (und letzten) vier Bytes des Headers sind vom Typ der ICMP-Nachricht abhängig.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ICMP3.png|800px|ohne]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable toptextcells&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Typ !! Typname !! Code !! Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Echo-Antwort || 0 || Echo-Antwort&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;7&amp;quot;| 3 || rowspan=&amp;quot;7&amp;quot;| Ziel nicht erreichbar || 0 || Netzwerk nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Host (Zielstation) nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Protokoll nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Port nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Fragmentierung nötig, &#039;&#039;&#039;D&#039;&#039;&#039;on’t &#039;&#039;&#039;F&#039;&#039;&#039;ragment aber gesetzt&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Route nicht möglich&lt;br /&gt;
|-&lt;br /&gt;
| 13 || Paket wird von der Firewall des Empfängers geblockt&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Entlasten der Quelle || 0 || Datagramm verworfen, da Warteschlange voll&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Echo-Anfrage || 0 || Echo-Anfrage (Ping)&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| 11 || rowspan=&amp;quot;2&amp;quot;| Zeitlimit überschritten || 0 || TTL (Time To Live, Lebensdauer) abgelaufen&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Zeitlimit während der Defragmentierung überschritten&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Anwendungen =&lt;br /&gt;
&lt;br /&gt;
Am häufigsten wird ICMP zur Fehlerermittlung genutzt. Situationen, die eine ICMP-Fehlermeldung auslösen sind:&lt;br /&gt;
&lt;br /&gt;
* Ziel nicht erreichbar (&#039;&#039;Destination Unreachable&#039;&#039;): Dieser Fehler tritt auf, wenn der Zielrechner nicht mehr existiert, oder auf diesem kein passendes Protokoll gefunden werden kann. Tritt dieser Fall ein, wird der Absender entsprechend benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
* Zeit überschritten (&#039;&#039;Time Exceeded&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Ungültige Parameter (&#039;&#039;Parameter Problem&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Senderate reduzieren (&#039;&#039;Source Quench&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Umleitung im Netzwerk (&#039;&#039;Redirect&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Prüfung auf die Erreichbarkeit eines Gerätes&lt;br /&gt;
* Ermittlung des Pfades, den ein Datagramm durch das Netz beschreitet&lt;br /&gt;
* Ermittlung der maximalen Größe des Datagramms auf diesem Pfad&lt;br /&gt;
&lt;br /&gt;
== Ping ==&lt;br /&gt;
&lt;br /&gt;
Mit diesem Programm kann die Erreichbarkeit eines Netzwerkteilnehmers geprüft werden. Das Programm sendet die ICMP-Nachricht &#039;&#039;Echo Request&#039;&#039; an eine IP-Adresse &amp;amp; wartet daraufhin auf eine Antwort, dem &#039;&#039;Echo Reply&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 $ ping  google.de&lt;br /&gt;
 PING google.de(ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003)) 56 data bytes&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=1 ttl=119 time=25.7 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=2 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=3 ttl=119 time=22.6 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=4 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=5 ttl=119 time=23.1 ms&lt;br /&gt;
 ^C&lt;br /&gt;
 --- google.de ping statistics ---&lt;br /&gt;
 5 packets transmitted, 5 received, 0% packet loss, time 4006ms&lt;br /&gt;
 rtt min/avg/max/mdev = 22.572/23.416/25.650/1.130 ms&lt;br /&gt;
&lt;br /&gt;
== Trace Route ==&lt;br /&gt;
&lt;br /&gt;
Mit dem Kommandozeilenbefehl &#039;&#039;&#039;traceroute&#039;&#039;&#039; kann der Pfad ermittelt werden, der von einem IP-Paket vom Sender zum Empfänger beschritten wird: &lt;br /&gt;
&lt;br /&gt;
 $ traceroute google.de&lt;br /&gt;
 traceroute to google.de (172.217.19.67), 30 hops max, 60 byte packets&lt;br /&gt;
  1  fritz.box (192.168.100.1)  0.450 ms  0.593 ms  0.743 ms&lt;br /&gt;
  2  ber1005dihr001.versatel.de (62.214.63.92)  12.670 ms  12.750 ms  12.693 ms&lt;br /&gt;
  3  62.214.37.245 (62.214.37.245)  13.746 ms  13.787 ms  13.825 ms&lt;br /&gt;
  4  62.214.37.130 (62.214.37.130)  23.674 ms  23.716 ms 62.214.37.158 (62.214.37.158)  41.595 ms&lt;br /&gt;
  5  72.14.222.28 (72.14.222.28)  22.010 ms  22.063 ms 89.246.109.250 (89.246.109.250)  29.791 ms&lt;br /&gt;
  6  108.170.251.145 (108.170.251.145)  26.073 ms 108.170.252.18 (108.170.252.18)  37.669 ms 108.170.252.19 (108.170.252.19)  24.852 ms&lt;br /&gt;
  7  209.85.245.203 (209.85.245.203)  18.491 ms 209.85.242.79 (209.85.242.79)  44.834 ms 209.85.244.219 (209.85.244.219)  23.396 ms&lt;br /&gt;
  8  ham02s17-in-f3.1e100.net (172.217.19.67)  18.911 ms  17.654 ms  19.136 ms&lt;br /&gt;
&lt;br /&gt;
== Trace Path ==&lt;br /&gt;
&lt;br /&gt;
= Missbrauch =&lt;br /&gt;
&lt;br /&gt;
== Ping flood ==&lt;br /&gt;
&lt;br /&gt;
== Ping of Death ==&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24196</id>
		<title>Internet Control Message Protocol</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24196"/>
		<updated>2021-03-02T10:19:28Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: /* Die Paketstruktur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das &#039;&#039;&#039;I&#039;&#039;&#039;nternet &#039;&#039;&#039;C&#039;&#039;&#039;ontrol &#039;&#039;&#039;M&#039;&#039;&#039;essage &#039;&#039;&#039;P&#039;&#039;&#039;rotocol (ICMP) ist eine Erweiterung des Internet-Protokolls (IP) und dient der Fehlerberichterstattung an die Absender-IP-Adresse.&lt;br /&gt;
&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* ursprünglich definiert von Jon Postel, einem Wegbereiter des Internets&lt;br /&gt;
* Verabschiedung des ersten Standards im April 1981 als [https://tools.ietf.org/html/rfc777 RFC 777]&lt;br /&gt;
* mehrmalige Aktualisierungen führten zur aktuellen Definition [https://tools.ietf.org/html/rfc792 RFC 792]&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
Das Internet-Protokoll ermöglicht die Kommunikation von Geräten über beliebig lange Pfade. Da es sich nicht vermeiden läßt, daß bei dieser Datenübertragung Fehler auftreten, wurde mit ICMP eine Möglichkeit geschaffen, den Absender der Datagramme über etwaige Probleme zu informieren. Mögliche Probleme sind:&lt;br /&gt;
&lt;br /&gt;
* ein Gerät oder Dienst ist nicht ereichbar&lt;br /&gt;
* einzelne Bits der Datagramme wurden auf dem Weg verfälscht&lt;br /&gt;
* die Lebenszeit (TTL) eines Datagramms ist abgelaufen&lt;br /&gt;
* die Pufferkapazität des Empfängers ist erschöpft&lt;br /&gt;
&lt;br /&gt;
Das ICMP-Protokoll wird als Teil der OSI-Schicht 3 betrachtet. Die Daten werden jedoch in IP-Paketen transportiert, wie dies bei TCP &amp;amp; UDP geschieht, obwohl ICMP kein Transportprotokoll ist.&lt;br /&gt;
&lt;br /&gt;
= Die Paketstruktur =&lt;br /&gt;
&lt;br /&gt;
Der Header einer ICMP-Nachricht:&lt;br /&gt;
*folgt direkt auf den IPv4-Header und wird dort an einer Protokollnummer erkannt&lt;br /&gt;
*erweitert den IP-Header und ist als integraler Bestandteil des IP-Protokolls zu sehen&lt;br /&gt;
*besitzt eine Länge von 8 Byte, gefolgt von einem Datenabschnitt variabler Größe&lt;br /&gt;
Die ersten vier Bytes des Headers haben ein festgelegtes Format, währen die folgenden vier Bytes vom Typ der ICMP-Nachricht abhängen.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ICMP3.png|800px|ohne]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable toptextcells&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Typ !! Typname !! Code !! Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Echo-Antwort || 0 || Echo-Antwort&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;7&amp;quot;| 3 || rowspan=&amp;quot;7&amp;quot;| Ziel nicht erreichbar || 0 || Netzwerk nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Host (Zielstation) nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Protokoll nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Port nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Fragmentierung nötig, &#039;&#039;&#039;D&#039;&#039;&#039;on’t &#039;&#039;&#039;F&#039;&#039;&#039;ragment aber gesetzt&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Route nicht möglich&lt;br /&gt;
|-&lt;br /&gt;
| 13 || Paket wird von der Firewall des Empfängers geblockt&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Entlasten der Quelle || 0 || Datagramm verworfen, da Warteschlange voll&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Echo-Anfrage || 0 || Echo-Anfrage (Ping)&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| 11 || rowspan=&amp;quot;2&amp;quot;| Zeitlimit überschritten || 0 || TTL (Time To Live, Lebensdauer) abgelaufen&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Zeitlimit während der Defragmentierung überschritten&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Anwendungen =&lt;br /&gt;
&lt;br /&gt;
Am häufigsten wird ICMP zur Fehlerermittlung genutzt. Situationen, die eine ICMP-Fehlermeldung auslösen sind:&lt;br /&gt;
&lt;br /&gt;
* Ziel nicht erreichbar (&#039;&#039;Destination Unreachable&#039;&#039;): Dieser Fehler tritt auf, wenn der Zielrechner nicht mehr existiert, oder auf diesem kein passendes Protokoll gefunden werden kann. Tritt dieser Fall ein, wird der Absender entsprechend benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
* Zeit überschritten (&#039;&#039;Time Exceeded&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Ungültige Parameter (&#039;&#039;Parameter Problem&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Senderate reduzieren (&#039;&#039;Source Quench&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Umleitung im Netzwerk (&#039;&#039;Redirect&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Prüfung auf die Erreichbarkeit eines Gerätes&lt;br /&gt;
* Ermittlung des Pfades, den ein Datagramm durch das Netz beschreitet&lt;br /&gt;
* Ermittlung der maximalen Größe des Datagramms auf diesem Pfad&lt;br /&gt;
&lt;br /&gt;
== Ping ==&lt;br /&gt;
&lt;br /&gt;
Mit diesem Programm kann die Erreichbarkeit eines Netzwerkteilnehmers geprüft werden. Das Programm sendet die ICMP-Nachricht &#039;&#039;Echo Request&#039;&#039; an eine IP-Adresse &amp;amp; wartet daraufhin auf eine Antwort, dem &#039;&#039;Echo Reply&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 $ ping  google.de&lt;br /&gt;
 PING google.de(ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003)) 56 data bytes&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=1 ttl=119 time=25.7 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=2 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=3 ttl=119 time=22.6 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=4 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=5 ttl=119 time=23.1 ms&lt;br /&gt;
 ^C&lt;br /&gt;
 --- google.de ping statistics ---&lt;br /&gt;
 5 packets transmitted, 5 received, 0% packet loss, time 4006ms&lt;br /&gt;
 rtt min/avg/max/mdev = 22.572/23.416/25.650/1.130 ms&lt;br /&gt;
&lt;br /&gt;
== Trace Route ==&lt;br /&gt;
&lt;br /&gt;
Mit dem Kommandozeilenbefehl &#039;&#039;&#039;traceroute&#039;&#039;&#039; kann der Pfad ermittelt werden, der von einem IP-Paket vom Sender zum Empfänger beschritten wird: &lt;br /&gt;
&lt;br /&gt;
 $ traceroute google.de&lt;br /&gt;
 traceroute to google.de (172.217.19.67), 30 hops max, 60 byte packets&lt;br /&gt;
  1  fritz.box (192.168.100.1)  0.450 ms  0.593 ms  0.743 ms&lt;br /&gt;
  2  ber1005dihr001.versatel.de (62.214.63.92)  12.670 ms  12.750 ms  12.693 ms&lt;br /&gt;
  3  62.214.37.245 (62.214.37.245)  13.746 ms  13.787 ms  13.825 ms&lt;br /&gt;
  4  62.214.37.130 (62.214.37.130)  23.674 ms  23.716 ms 62.214.37.158 (62.214.37.158)  41.595 ms&lt;br /&gt;
  5  72.14.222.28 (72.14.222.28)  22.010 ms  22.063 ms 89.246.109.250 (89.246.109.250)  29.791 ms&lt;br /&gt;
  6  108.170.251.145 (108.170.251.145)  26.073 ms 108.170.252.18 (108.170.252.18)  37.669 ms 108.170.252.19 (108.170.252.19)  24.852 ms&lt;br /&gt;
  7  209.85.245.203 (209.85.245.203)  18.491 ms 209.85.242.79 (209.85.242.79)  44.834 ms 209.85.244.219 (209.85.244.219)  23.396 ms&lt;br /&gt;
  8  ham02s17-in-f3.1e100.net (172.217.19.67)  18.911 ms  17.654 ms  19.136 ms&lt;br /&gt;
&lt;br /&gt;
== Trace Path ==&lt;br /&gt;
&lt;br /&gt;
= Missbrauch =&lt;br /&gt;
&lt;br /&gt;
== Ping flood ==&lt;br /&gt;
&lt;br /&gt;
== Ping of Death ==&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24195</id>
		<title>Internet Control Message Protocol</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Internet_Control_Message_Protocol&amp;diff=24195"/>
		<updated>2021-03-02T10:11:01Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: /* Die Paketstruktur */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Das &#039;&#039;&#039;I&#039;&#039;&#039;nternet &#039;&#039;&#039;C&#039;&#039;&#039;ontrol &#039;&#039;&#039;M&#039;&#039;&#039;essage &#039;&#039;&#039;P&#039;&#039;&#039;rotocol (ICMP) ist eine Erweiterung des Internet-Protokolls (IP) und dient der Fehlerberichterstattung an die Absender-IP-Adresse.&lt;br /&gt;
&lt;br /&gt;
= Historie =&lt;br /&gt;
&lt;br /&gt;
* ursprünglich definiert von Jon Postel, einem Wegbereiter des Internets&lt;br /&gt;
* Verabschiedung des ersten Standards im April 1981 als [https://tools.ietf.org/html/rfc777 RFC 777]&lt;br /&gt;
* mehrmalige Aktualisierungen führten zur aktuellen Definition [https://tools.ietf.org/html/rfc792 RFC 792]&lt;br /&gt;
&lt;br /&gt;
= Grundlagen =&lt;br /&gt;
&lt;br /&gt;
Das Internet-Protokoll ermöglicht die Kommunikation von Geräten über beliebig lange Pfade. Da es sich nicht vermeiden läßt, daß bei dieser Datenübertragung Fehler auftreten, wurde mit ICMP eine Möglichkeit geschaffen, den Absender der Datagramme über etwaige Probleme zu informieren. Mögliche Probleme sind:&lt;br /&gt;
&lt;br /&gt;
* ein Gerät oder Dienst ist nicht ereichbar&lt;br /&gt;
* einzelne Bits der Datagramme wurden auf dem Weg verfälscht&lt;br /&gt;
* die Lebenszeit (TTL) eines Datagramms ist abgelaufen&lt;br /&gt;
* die Pufferkapazität des Empfängers ist erschöpft&lt;br /&gt;
&lt;br /&gt;
Das ICMP-Protokoll wird als Teil der OSI-Schicht 3 betrachtet. Die Daten werden jedoch in IP-Paketen transportiert, wie dies bei TCP &amp;amp; UDP geschieht, obwohl ICMP kein Transportprotokoll ist.&lt;br /&gt;
&lt;br /&gt;
= Die Paketstruktur =&lt;br /&gt;
&lt;br /&gt;
Der Header einer ICMP-Nachricht folgt direkt auf den IPv4-Header und wird dort an einer Protokollnummer erkannt. Dieser Header erweitert den IP-Header und ist als integraler Bestandteil des IP-Protokolls zu sehen. Er besitzt eine Länge von 8 Byte, gefolgt von einem Datenabschnitt variabler Größe.&lt;br /&gt;
&lt;br /&gt;
[[Datei:ICMP3.png|800px|ohne]]&lt;br /&gt;
&lt;br /&gt;
{| class=&amp;quot;wikitable toptextcells&amp;quot;&lt;br /&gt;
|-&lt;br /&gt;
! Typ !! Typname !! Code !! Bedeutung&lt;br /&gt;
|-&lt;br /&gt;
| 0 || Echo-Antwort || 0 || Echo-Antwort&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;7&amp;quot;| 3 || rowspan=&amp;quot;7&amp;quot;| Ziel nicht erreichbar || 0 || Netzwerk nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Host (Zielstation) nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 2 || Protokoll nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 3 || Port nicht erreichbar&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Fragmentierung nötig, &#039;&#039;&#039;D&#039;&#039;&#039;on’t &#039;&#039;&#039;F&#039;&#039;&#039;ragment aber gesetzt&lt;br /&gt;
|-&lt;br /&gt;
| 5 || Route nicht möglich&lt;br /&gt;
|-&lt;br /&gt;
| 13 || Paket wird von der Firewall des Empfängers geblockt&lt;br /&gt;
|-&lt;br /&gt;
| 4 || Entlasten der Quelle || 0 || Datagramm verworfen, da Warteschlange voll&lt;br /&gt;
|-&lt;br /&gt;
| 8 || Echo-Anfrage || 0 || Echo-Anfrage (Ping)&lt;br /&gt;
|-&lt;br /&gt;
|rowspan=&amp;quot;2&amp;quot;| 11 || rowspan=&amp;quot;2&amp;quot;| Zeitlimit überschritten || 0 || TTL (Time To Live, Lebensdauer) abgelaufen&lt;br /&gt;
|-&lt;br /&gt;
| 1 || Zeitlimit während der Defragmentierung überschritten&lt;br /&gt;
|}&lt;br /&gt;
&lt;br /&gt;
= Anwendungen =&lt;br /&gt;
&lt;br /&gt;
Am häufigsten wird ICMP zur Fehlerermittlung genutzt. Situationen, die eine ICMP-Fehlermeldung auslösen sind:&lt;br /&gt;
&lt;br /&gt;
* Ziel nicht erreichbar (&#039;&#039;Destination Unreachable&#039;&#039;): Dieser Fehler tritt auf, wenn der Zielrechner nicht mehr existiert, oder auf diesem kein passendes Protokoll gefunden werden kann. Tritt dieser Fall ein, wird der Absender entsprechend benachrichtigt.&lt;br /&gt;
&lt;br /&gt;
* Zeit überschritten (&#039;&#039;Time Exceeded&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Ungültige Parameter (&#039;&#039;Parameter Problem&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Senderate reduzieren (&#039;&#039;Source Quench&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Umleitung im Netzwerk (&#039;&#039;Redirect&#039;&#039;)&lt;br /&gt;
&lt;br /&gt;
* Prüfung auf die Erreichbarkeit eines Gerätes&lt;br /&gt;
* Ermittlung des Pfades, den ein Datagramm durch das Netz beschreitet&lt;br /&gt;
* Ermittlung der maximalen Größe des Datagramms auf diesem Pfad&lt;br /&gt;
&lt;br /&gt;
== Ping ==&lt;br /&gt;
&lt;br /&gt;
Mit diesem Programm kann die Erreichbarkeit eines Netzwerkteilnehmers geprüft werden. Das Programm sendet die ICMP-Nachricht &#039;&#039;Echo Request&#039;&#039; an eine IP-Adresse &amp;amp; wartet daraufhin auf eine Antwort, dem &#039;&#039;Echo Reply&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
 $ ping  google.de&lt;br /&gt;
 PING google.de(ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003)) 56 data bytes&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=1 ttl=119 time=25.7 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=2 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=3 ttl=119 time=22.6 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=4 ttl=119 time=22.9 ms&lt;br /&gt;
 64 bytes from ham02s17-in-x03.1e100.net (2a00:1450:4005:80b::2003): icmp_seq=5 ttl=119 time=23.1 ms&lt;br /&gt;
 ^C&lt;br /&gt;
 --- google.de ping statistics ---&lt;br /&gt;
 5 packets transmitted, 5 received, 0% packet loss, time 4006ms&lt;br /&gt;
 rtt min/avg/max/mdev = 22.572/23.416/25.650/1.130 ms&lt;br /&gt;
&lt;br /&gt;
== Trace Route ==&lt;br /&gt;
&lt;br /&gt;
Mit dem Kommandozeilenbefehl &#039;&#039;&#039;traceroute&#039;&#039;&#039; kann der Pfad ermittelt werden, der von einem IP-Paket vom Sender zum Empfänger beschritten wird: &lt;br /&gt;
&lt;br /&gt;
 $ traceroute google.de&lt;br /&gt;
 traceroute to google.de (172.217.19.67), 30 hops max, 60 byte packets&lt;br /&gt;
  1  fritz.box (192.168.100.1)  0.450 ms  0.593 ms  0.743 ms&lt;br /&gt;
  2  ber1005dihr001.versatel.de (62.214.63.92)  12.670 ms  12.750 ms  12.693 ms&lt;br /&gt;
  3  62.214.37.245 (62.214.37.245)  13.746 ms  13.787 ms  13.825 ms&lt;br /&gt;
  4  62.214.37.130 (62.214.37.130)  23.674 ms  23.716 ms 62.214.37.158 (62.214.37.158)  41.595 ms&lt;br /&gt;
  5  72.14.222.28 (72.14.222.28)  22.010 ms  22.063 ms 89.246.109.250 (89.246.109.250)  29.791 ms&lt;br /&gt;
  6  108.170.251.145 (108.170.251.145)  26.073 ms 108.170.252.18 (108.170.252.18)  37.669 ms 108.170.252.19 (108.170.252.19)  24.852 ms&lt;br /&gt;
  7  209.85.245.203 (209.85.245.203)  18.491 ms 209.85.242.79 (209.85.242.79)  44.834 ms 209.85.244.219 (209.85.244.219)  23.396 ms&lt;br /&gt;
  8  ham02s17-in-f3.1e100.net (172.217.19.67)  18.911 ms  17.654 ms  19.136 ms&lt;br /&gt;
&lt;br /&gt;
== Trace Path ==&lt;br /&gt;
&lt;br /&gt;
= Missbrauch =&lt;br /&gt;
&lt;br /&gt;
== Ping flood ==&lt;br /&gt;
&lt;br /&gt;
== Ping of Death ==&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
	<entry>
		<id>https://wiki.foxtom.de/index.php?title=Datei:ICMP3.png&amp;diff=24067</id>
		<title>Datei:ICMP3.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.foxtom.de/index.php?title=Datei:ICMP3.png&amp;diff=24067"/>
		<updated>2021-03-01T10:27:38Z</updated>

		<summary type="html">&lt;p&gt;JoergNolte: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;ICMP-Header&lt;/div&gt;</summary>
		<author><name>JoergNolte</name></author>
	</entry>
</feed>