Die Vermittlungsschicht (Network Layer) ist die dritte Schicht des OSI-Referenzmodells und des TCP/IP-Protokollstapels. Diese Schicht ermöglicht die Kommunikation zwischen Geräten über Netzwerkgrenzen hinweg. Während Layer 2 nur die direkte Kommunikation zwischen Geräten im selben physischen Netzwerk ermöglicht, sorgt Layer 3, insbesondere das Internet Protocol (IP), für die Weiterleitung von Datenpaketen über multiple Netzwerke hinweg.
Der IPv4-Header enthält wichtige Steuerinformationen für die Übertragung und Weiterleitung von Datenpaketen im Netzwerk. Ein Standard-IPv4-Header besteht aus 20 Bytes (ohne Optionen).
| Feld | Größe (Bits) | Beschreibung |
|---|---|---|
| Version | 4 | Gibt die IP-Version an (4 für IPv4) |
| IHL (Internet Header Length) | 4 | Länge des Headers in 32-Bit-Worten (Mindestwert: 5) |
| DSCP/ECN | 8 | Differentiated Services Code Point (6 Bits) für QoS und Explicit Congestion Notification (2 Bits) |
| Gesamtlänge | 16 | Gesamtlänge des Pakets in Bytes (Header + Daten) |
| Identifikation | 16 | Identifiziert Fragmente desselben Datagramms |
| Flags | 3 | Steuerflags für die Fragmentierung |
| Fragment-Offset | 13 | Position des Fragments im ursprünglichen Datagramm |
| TTL (Time To Live) | 8 | Lebensdauer des Pakets, verhindert Endlosschleifen |
| Protokoll | 8 | Identifiziert das Protokoll der nächsthöheren Schicht (z.B. 6 für TCP, 17 für UDP) |
| Header-Prüfsumme | 16 | Dient zur Fehlererkennung im Header |
| Quell-IP-Adresse | 32 | IP-Adresse des Absenders |
| Ziel-IP-Adresse | 32 | IP-Adresse des Empfängers |
| Optionen | variabel | Optionale Felder (wenn IHL > 5) |
Flags (3 Bits):
TTL (Time To Live):
| Klasse | Erster Oktett | Netzwerk-Bits | Host-Bits | Anzahl Netzwerke | Hosts pro Netzwerk |
|---|---|---|---|---|---|
| A | 1-126 | 8 | 24 | 126 | 16.777.214 |
| B | 128-191 | 16 | 16 | 16.384 | 65.534 |
| C | 192-223 | 24 | 8 | 2.097.152 | 254 |
| D | 224-239 | Multicast | |||
| E | 240-255 | Reserviert |
Hinweis: Der Bereich 127.x.x.x ist für Loopback-Adressen reserviert.
Die Subnetzmaske definiert, welcher Teil einer IP-Adresse das Netzwerk und welcher Teil den Host identifiziert.
Beispiel: Subnetzmaske 255.255.255.0 - In Binär: 11111111.11111111.11111111.00000000 - Bedeutet: Die ersten 24 Bits identifizieren das Netzwerk, die letzten 8 Bits den Host - CIDR-Notation: /24 (gibt die Anzahl der Netzwerk-Bits an)
Gegeben:
Berechnung:
IP-Adresse in Binär: 11000000.10101000.00101101.01001110
Subnetzmaske in Binär: 11111111.11111111.11111111.00000000
Bitweise AND-Verknüpfung:
11000000.10101000.00101101.01001110 (IP)
11111111.11111111.11111111.00000000 (Maske)
------------------------------------ (AND)
11000000.10101000.00101101.00000000 (Netzadresse)Netzadresse: 192.168.45.0
Gegeben:
Berechnung:
Invertiere die Subnetzmaske: 0.0.0.255
Führe eine OR-Verknüpfung mit der Netzadresse durch:
11000000.10101000.00101101.00000000 (Netzadresse)
00000000.00000000.00000000.11111111 (Invertierte Maske)
------------------------------------ (OR)
11000000.10101000.00101101.11111111 (Broadcast-Adresse)Broadcast-Adresse: 192.168.45.255
Angenommen, wir haben das Netzwerk 192.168.10.0/24 und möchten es in 4 gleich große Subnetze aufteilen.
Für ein Netzwerk 172.16.20.0/23:
IPv6 verwendet 128-Bit-Adressen, die in acht Gruppen zu je 16 Bit dargestellt werden, getrennt durch Doppelpunkte (z.B. 2001:0db8:85a3:0000:0000:8a2e:0370:7334).
Vereinfachungsregeln:
Beispiel: 2001:0db8:0000:0000:0000:0000:1428:57ab kann als 2001:db8::1428:57ab geschrieben werden.
Der IPv6-Header ist einfacher strukturiert als sein IPv4-Vorgänger und hat eine feste Größe von 40 Bytes. Erweiterungsheader werden für zusätzliche Funktionen verwendet.
| Feld | Größe (Bits) | Beschreibung |
|---|---|---|
| Version | 4 | Gibt die IP-Version an (6 für IPv6) |
| Traffic Class | 8 | Ähnlich wie DSCP bei IPv4, für QoS |
| Flow Label | 20 | Identifiziert einen bestimmten Verkehrsfluss |
| Payload Length | 16 | Länge der Daten in Bytes (ohne den IPv6-Header selbst) |
| Next Header | 8 | Identifiziert den Header, der auf den IPv6-Header folgt |
| Hop Limit | 8 | Äquivalent zum TTL-Feld in IPv4 |
| Quell-IPv6-Adresse | 128 | IPv6-Adresse des Absenders |
| Ziel-IPv6-Adresse | 128 | IPv6-Adresse des Empfängers |
IPv6 verwendet separate Erweiterungsheader für Funktionen, die früher im IPv4-Header integriert waren:
| Erweiterungsheader | Next Header Wert | Zweck |
|---|---|---|
| Hop-by-Hop Options | 0 | Optionen für jeden Router auf dem Pfad |
| Routing | 43 | Spezifiziert Router, die durchlaufen werden sollen |
| Fragment | 44 | Enthält Fragmentierungsinformationen |
| Destination Options | 60 | Optionen nur für den Zielhost |
| Authentication (AH) | 51 | Bietet Integritätsschutz (Teil von IPsec) |
| Encapsulating Security Payload (ESP) | 50 | Bietet Verschlüsselung (Teil von IPsec) |
Die Erweiterungsheader werden in einer bestimmten Reihenfolge verkettet, wobei jeder Header auf den nächsten verweist, bis schließlich die eigentlichen Daten (z.B. TCP, UDP) erreicht werden.
Routing ist der Prozess der Weiterleitung von Paketen zwischen verschiedenen Netzwerken, wobei der optimale Pfad vom Quell- zum Zielnetzwerk bestimmt wird.
Eine typische Routing-Tabelle enthält folgende Informationen:
Beispiel einer Routing-Tabelle:
Zielnetzwerk Subnetzmaske Gateway Schnittstelle Metrik
0.0.0.0 0.0.0.0 192.168.1.1 eth0 100 (Default-Route)
192.168.1.0 255.255.255.0 0.0.0.0 eth0 0 (Direkt verbunden)
192.168.2.0 255.255.255.0 192.168.1.254 eth0 10
10.0.0.0 255.0.0.0 192.168.1.253 eth0 50
Wenn ein Router ein Paket empfängt: 1. Extrahiert er die Ziel-IP-Adresse 2. Vergleicht diese mit den Einträgen in seiner Routing-Tabelle 3. Wählt den spezifischsten Eintrag (längste übereinstimmende Präfix) 4. Leitet das Paket an den entsprechenden Next-Hop weiter 5. Wenn kein passender Eintrag gefunden wird, wird die Default-Route verwendet
Hier ein Beispiel für eine grundlegende Konfiguration eines Cisco-Routers:
Router> enable
Router# configure terminal
Router(config)# hostname R1
R1(config)# interface GigabitEthernet0/0
R1(config-if)# ip address 192.168.1.1 255.255.255.0
R1(config-if)# no shutdown
R1(config-if)# exit
R1(config)# interface GigabitEthernet0/1
R1(config-if)# ip address 192.168.2.1 255.255.255.0
R1(config-if)# no shutdown
R1(config-if)# exit
R1(config)# ip route 192.168.3.0 255.255.255.0 192.168.2.2
R1(config)# ip route 0.0.0.0 0.0.0.0 192.168.1.254
Diese Konfiguration: 1. Benennt den Router als “R1” 2. Konfiguriert zwei Schnittstellen mit IP-Adressen 3. Fügt eine statische Route zum Netzwerk 192.168.3.0/24 hinzu 4. Setzt eine Default-Route zum Gateway 192.168.1.254
ICMP ist ein unterstützendes Protokoll auf Layer 3, das für Diagnose und Fehlermeldungen verwendet wird.
Häufig verwendete ICMP-Nachrichten:
NAT ermöglicht es, private IP-Adressen in öffentliche umzusetzen und umgekehrt. Haupttypen:
Beispiel für NAT Overload:
Layer 3 bildet das Rückgrat des Internets und ermöglicht die weltweite Kommunikation zwischen Milliarden von Geräten. Ein fundiertes Verständnis der Vermittlungsschicht ist essenziell für die Planung, Implementierung und Fehlerbehebung moderner Netzwerke.