7 Layer 3 - Die Vermittlungsschicht

7.1 Einführung: Die Welt der Netzwerke verbinden

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.

7.2 Hauptaufgaben von Layer 3

  1. Logische Adressierung: Zuweisung und Verwaltung von IP-Adressen
  2. Routing: Bestimmung des optimalen Pfades für Datenpakete durch das Netzwerk
  3. Fragmentierung: Aufteilung großer Datenpakete in kleinere Einheiten für die Übertragung
  4. Paketweiterleitung: Transport von Datenpaketen von Quell- zu Zielnetzen

7.3 IP-Adressierung

7.3.1 IPv4 Header

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)

7.3.1.1 Wichtige Felder im Detail:

Flags (3 Bits):

TTL (Time To Live):

7.3.1.2 IP-Adressklassen (historisch)

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.

7.3.2 Subnetzmasken

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)

7.4 Praktische Beispiele zur Subnetzberechnung

7.4.1 Beispiel 1: Netzadresse bestimmen

Gegeben:

Berechnung:

  1. IP-Adresse in Binär: 11000000.10101000.00101101.01001110

  2. Subnetzmaske in Binär: 11111111.11111111.11111111.00000000

  3. Bitweise AND-Verknüpfung:

    11000000.10101000.00101101.01001110 (IP)
    11111111.11111111.11111111.00000000 (Maske)
    ------------------------------------ (AND)
    11000000.10101000.00101101.00000000 (Netzadresse)
  4. Netzadresse: 192.168.45.0

7.4.2 Beispiel 2: Broadcast-Adresse bestimmen

Gegeben:

Berechnung:

  1. Invertiere die Subnetzmaske: 0.0.0.255

  2. 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)
  3. Broadcast-Adresse: 192.168.45.255

7.4.3 Beispiel 3: Subnetting eines /24-Netzwerks

Angenommen, wir haben das Netzwerk 192.168.10.0/24 und möchten es in 4 gleich große Subnetze aufteilen.

  1. Wir benötigen 2 zusätzliche Netzwerk-Bits (2² = 4)
  2. Neue Subnetzmaske: /26 (24 + 2) oder 255.255.255.192
  3. Die 4 Subnetze sind:

7.4.4 Beispiel 4: Bestimmen der nutzbaren Host-Adressen

Für ein Netzwerk 172.16.20.0/23:

  1. /23 bedeutet 9 Host-Bits (32 - 23)
  2. Anzahl möglicher Hosts: 2⁹ - 2 = 510 (abzüglich Netzwerk- und Broadcast-Adresse)
  3. Erste nutzbare Host-Adresse: 172.16.20.1
  4. Letzte nutzbare Host-Adresse: 172.16.21.254
  5. Broadcast-Adresse: 172.16.21.255

7.5 IPv6-Adressierung

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:

  1. Führende Nullen innerhalb einer Gruppe können weggelassen werden
  2. Eine oder mehrere aufeinanderfolgende Gruppen aus nur Nullen können durch “::” ersetzt werden (aber nur einmal in einer Adresse)

Beispiel: 2001:0db8:0000:0000:0000:0000:1428:57ab kann als 2001:db8::1428:57ab geschrieben werden.

7.5.1 IPv6 Header

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

7.5.1.1 Verbesserungen gegenüber IPv4:

  1. Vereinfachte Header-Struktur: Weniger Felder, effizientere Verarbeitung
  2. Keine Header-Prüfsumme: Reduziert den Verarbeitungsaufwand in Routern
  3. Keine Fragmentierung auf Router-Ebene: Fragmentierung erfolgt nur an der Quelle
  4. Erweiterungsheader: Modulares Konzept für zusätzliche Funktionen

7.5.1.2 Erweiterungsheader:

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.

7.6 Routing-Grundlagen

Routing ist der Prozess der Weiterleitung von Paketen zwischen verschiedenen Netzwerken, wobei der optimale Pfad vom Quell- zum Zielnetzwerk bestimmt wird.

7.6.1 Routing-Tabelle

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

7.6.2 Routing-Entscheidungsprozess

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

7.6.3 Routing-Protokolle

7.6.3.1 Distance-Vector-Protokolle

7.6.3.3 Path-Vector-Protokolle

7.7 Praxisbeispiel: Router-Konfiguration

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

7.8 ICMP - Internet Control Message Protocol

ICMP ist ein unterstützendes Protokoll auf Layer 3, das für Diagnose und Fehlermeldungen verwendet wird.

Häufig verwendete ICMP-Nachrichten:

7.9 NAT - Network Address Translation

NAT ermöglicht es, private IP-Adressen in öffentliche umzusetzen und umgekehrt. Haupttypen:

7.9.1 Static NAT

7.9.2 Dynamic NAT

7.9.3 PAT (Port Address Translation) / NAT Overload

Beispiel für NAT Overload:

7.10 Layer 3 - Die wichtigsten Fakten

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.