mirror of
https://github.com/theoleuthardt/hwr-notes.git
synced 2026-06-06 03:01:08 +00:00
404 lines
No EOL
14 KiB
Markdown
404 lines
No EOL
14 KiB
Markdown
# IT2221 Netzwerktechnik – Vorlesung 7: MPLS VPNs & Segment Routing
|
||
|
||
> **Dozentin:** Gabriele Schrenk | **Datum:** 01.04.2026
|
||
> **Klausur:** Mo., 4. Mai 2026, 14:00–16:00 Uhr, Räume 6B.369 und 6B.371
|
||
|
||
---
|
||
|
||
## 0. Fehlerszenarien nächste Woche Labor
|
||
- PC bekommt keine IP Adresse
|
||
- PC erreicht einen bestimmten anderen PC nicht
|
||
- Mögliche Fehler:
|
||
- OSPF-Nachbarschaft/Routing
|
||
- BGP Redistribution
|
||
- Interfaces falsch eingestellt (MTU Size, Adressen....)
|
||
- Und verschiedene andere Fehler
|
||
|
||
<img src="Troubleshooting_Netz.png"
|
||
alt="Troubleshooting_Netz"
|
||
style="float: left; margin-right: 10px;" />
|
||
|
||
## 1. Troubleshooting Methodology
|
||
|
||
Strukturiertes Vorgehen bei Netzwerkproblemen (z.B. PC bekommt keine IP, PC erreicht anderes Gerät nicht):
|
||
|
||
1. **Problem definieren** – Was genau funktioniert nicht?
|
||
2. **Informationen sammeln** – `show`-Befehle ausführen
|
||
3. **Daten analysieren** – Routingtabellen, Nachbarzustände prüfen
|
||
4. **Hypothese formulieren** – Welche OSI-Schicht ist betroffen?
|
||
5. **Hypothese testen** – Paketmitschnitte (PCAPs) auswerten
|
||
6. **Korrektur implementieren**
|
||
7. **Überprüfen & dokumentieren**
|
||
|
||
Typische Fehlerquellen im Labor: OSPF-Nachbarschaft, BGP-Redistribution, falsche MTU/Adressen an Interfaces.
|
||
|
||
---
|
||
|
||
## 2. VPNs über MPLS – Grundidee
|
||
|
||
**Ziel:** Mehrere Unternehmensstandorte über einen gemeinsamen Provider-Backbone verbinden, dabei aber voneinander isoliert halten.
|
||
|
||
**Anforderungen (Wunschliste):**
|
||
- Nutzung des bestehenden SP-Backbones
|
||
- Überlappende Adressräume erlaubt (verschiedene Kunden dürfen gleiche IPs nutzen)
|
||
- Datentrennung zwischen VPNs
|
||
- Skalierung, QoS, einfache Verwaltung
|
||
|
||
---
|
||
|
||
## 3. VPN-Klassifizierung (RFC 4026 – PPVPN)
|
||
|
||
```
|
||
PPVPN
|
||
├── Layer 2
|
||
│ ├── P2P → VPWS (Virtual Private Wire Service)
|
||
│ └── M2M → VPLS (Virtual Private LAN Service)
|
||
└── Layer 3
|
||
├── PE-based
|
||
│ ├── BGP/MPLS IP VPNs
|
||
│ └── Virtual Router
|
||
└── CE-based
|
||
└── IPsec
|
||
```
|
||
|
||
---
|
||
|
||
## 4. Grundbegriffe: AC, Pseudowire, Tunnel LSP
|
||
|
||
### Attachment Circuit (AC)
|
||
|
||
Physischer oder logischer Anschluss zwischen Kundengerät (**CE**) und Provider-Edge-Router (**PE**). Kann sein: Ethernet-Port, VLAN, PPP, MPLS LSP, etc.
|
||
|
||
```
|
||
[CE-Gerät] ---AC--- [PE-Gerät] --- Service Provider Network
|
||
```
|
||
|
||
### Pseudowire (PW)
|
||
|
||
Ein virtueller „Draht" durch das Provider-Netz, der L2-Daten von einem AC zu einem anderen transportiert.
|
||
|
||
- Nur den beiden **Endpunkt-PEs** bekannt
|
||
- Wird über einen **Tunnel (LSP)** transportiert, der allen Routern (LSRs) dazwischen bekannt ist
|
||
- Pro Richtung ein unidirektionaler Tunnel → ein PW = 2 LSPs
|
||
|
||
### Tunnel LSP – Label Stacking
|
||
|
||
Mehrere Pseudowires zwischen zwei PEs werden in einem Tunnel aggregiert:
|
||
|
||
- **Äußeres Label** = Tunnel LSP (für P-Router sichtbar, sorgt für Transport)
|
||
- **Inneres Label** = Pseudowire LSP (nur PEs kennen es)
|
||
|
||
> P-Router schauen **nur auf das äußere Label** und leiten entsprechend weiter – sie kennen die VPN-Details nicht.
|
||
|
||
---
|
||
|
||
## 5. Layer-2-Dienste: VPWS und VPLS
|
||
|
||
### VPWS – Virtual Private Wire Service
|
||
|
||
- **Point-to-Point**: genau ein AC ↔ genau ein PW
|
||
- Transparente L2-Verbindung zwischen zwei Standorten
|
||
- MPLS definiert Labelverteilung und Kapselung
|
||
- Einsatz von **LDP (Targeted Mode)** oder **MP-BGP** zur Signalisierung
|
||
|
||
**Forwarding-Beispiel (VPWS):**
|
||
|
||
Ein PE empfängt einen VLAN1-Frame vom Kunden. Er schlägt in seiner FEC-Tabelle nach und findet: `VLAN1 → Out-Label 24, Next-Hop 1.1.1.1`. Zusätzlich drückt er ein Transport-Label (z.B. 16) obendrauf. Der Transit-Router (LSR) sieht nur das Transport-Label und leitet weiter. Der Egress-PE entfernt das äußere Label, erkennt anhand des inneren Labels (24) die Ziel-Schnittstelle und sendet den Frame an den Kunden.
|
||
|
||
**VPWS Protection – Auslöser für Umschaltung auf Standby-PW:**
|
||
|
||
- Manueller Eingriff (Precedence-Wert ändern)
|
||
- Statusänderung des PW
|
||
- Ausfall des aktiven PW
|
||
- Benachrichtigung vom Remote-Peer (via T-LDP Notification Message)
|
||
|
||
---
|
||
|
||
### VPLS – Virtual Private LAN Service
|
||
|
||
- **Multipoint-to-Multipoint**: mehrere Standorte agieren wie in einem gemeinsamen Ethernet-LAN
|
||
- Jeder PE enthält ein **Switch-Modul** mit einem emulierten LAN (MAC-Learning, Flooding)
|
||
- Standorte tauschen Ethernet-Frames direkt aus, als wären sie physisch im selben LAN
|
||
|
||
**Architektur:**
|
||
|
||
```
|
||
[Kunde CE] --AC--> [PE: VPLS Forwarder + Emulated LAN Interface]
|
||
<------ VPLS PW ------>
|
||
[PE] --AC--> [Kunde CE]
|
||
```
|
||
|
||
**Skalierungsproblem:** Bei N Standorten braucht man **N*(N-1)/2 Pseudowires** (Vollvermaschung). Bei vielen Standorten entstehen viele States und viel Broadcast-Traffic.
|
||
|
||
**Lösung: Hierarchisches VPLS (H-VPLS)**
|
||
|
||
PE-Router werden in zwei Ebenen aufgeteilt:
|
||
|
||
| Ebene | Gerät | Aufgabe |
|
||
|-------|-------|---------|
|
||
| Kern | **Hub-PE** | Vollvermaschung zwischen Hubs |
|
||
| Rand | **Spoke-PE / MTU-s** | Aggregiert Kundenports zu einer einzigen Spoke-PW zum Hub |
|
||
|
||
- Neue Verbindung nur zwischen Spoke und Hub, kein direktes Mesh zwischen allen Spokes
|
||
- **Vorteile:** Weniger PWs, weniger Broadcast-Replikation, bessere Skalierbarkeit
|
||
|
||
**Multi-Tenant Unit (MTU-s):** Gerät (Router, Switch oder Gateway), das viele Kundenports aggregiert und eine einzige Spoke-PW zum nächsten PE aufbaut.
|
||
|
||
**Dual Homed MTUs:** MTU ist an zwei PEs angebunden → Redundanz bei Ausfall einer Verbindung.
|
||
|
||
**VPLS Auto-Discovery (RFC 4761):** PE-Router erkennen automatisch andere PEs derselben VPLS-Domäne via MP-BGP, ohne manuelle Konfiguration jedes einzelnen Pseudowires.
|
||
|
||
**VPLS Protection:** Backup-LSPs werden über T-LDP aufgebaut; Überwachung via BFD (Bidirectional Forwarding Detection).
|
||
|
||
**VPLS und MTU-Größen:**
|
||
|
||
| Pakettyp | L2 MTU |
|
||
|----------|--------|
|
||
| Normales MPLS-Paket | 1504 |
|
||
| Ethernet over VPLS | 1508 |
|
||
| VLAN over VPLS | 1526 |
|
||
|
||
> VPLS fügt zusätzliche Header ein (MPLS-Label + VPLS-Label), was die MTU erhöht. Alle Geräte im Pfad müssen diese größeren Frames unterstützen.
|
||
|
||
---
|
||
|
||
## 6. Layer-3-VPNs: BGP/MPLS IP VPNs (RFC 4364)
|
||
|
||
### Motivation
|
||
|
||
- Kunden nutzen **private IP-Adressen** (RFC 1918) → können sich überschneiden
|
||
- Provider übernimmt das Routing → Kunde muss sich nicht darum kümmern
|
||
- MPLS-Backbone ist für den Kunden **transparent**
|
||
|
||
### Beteiligte Geräte
|
||
|
||
| Gerät | Aufgabe |
|
||
|-------|---------|
|
||
| **CE** (Customer Edge) | Kundenrouter, kennt nur seine eigene Seite |
|
||
| **PE** (Provider Edge) | Kennt VPN-Routen; verwaltet VRFs; stellt MPLS-Pfade auf |
|
||
| **P** (Provider Core) | Reine Transitknoten; kennen keine VPNs, nur MPLS-Labels |
|
||
|
||
### VRF – VPN Routing and Forwarding Table
|
||
|
||
Jeder PE führt **separate Routing-Tabellen pro Kunde** (VRF). Diese werden via **MP-BGP** zwischen den PEs ausgetauscht.
|
||
|
||
**Problem:** BGP kann normalerweise nur eine Route pro IP-Präfix installieren – aber verschiedene Kunden können dieselben Adressen haben.
|
||
|
||
**Lösung: Route Distinguisher (RD)**
|
||
|
||
---
|
||
|
||
### Route Distinguisher (RD)
|
||
|
||
Ein **8-Byte-Präfix**, der jeder VPN-Route vorangestellt wird, um sie global eindeutig zu machen:
|
||
|
||
```
|
||
[Type 2B] [Administrator 2-4B] [Assigned Number 2-4B] + [IPv4-Adresse 8B] = 12 Bytes
|
||
```
|
||
|
||
**Beispiele:**
|
||
|
||
```
|
||
RD: 65000:101 (AS-Nummer : zugewiesene Nummer)
|
||
RD: 10.0.0.1:1001 (IP-Adresse : zugewiesene Nummer)
|
||
RD: 1000000:10
|
||
```
|
||
|
||
**Ergebnis:** Aus `192.168.1.10` wird die **VPNv4-Adresse** `65000:1:192.168.1.10` → global eindeutig, kein Konflikt trotz Adressüberlappung.
|
||
|
||
> **Wichtig:** Der RD macht Adressen nur **eindeutig**. Er steuert *nicht*, welche Routen wohin verteilt werden – das macht der Route Target.
|
||
|
||
---
|
||
|
||
### Route Target (RT)
|
||
|
||
Ein **BGP Extended Community Attribut** (RFC 4360), das steuert, welche Routen in welches VRF importiert/exportiert werden.
|
||
|
||
Jede VRF hat:
|
||
- **Export Target**: welcher RT wird angefügt, wenn eine Route exportiert wird
|
||
- **Import Target**: welche eingehenden Routen werden in diese VRF installiert
|
||
|
||
**Ablauf – 3-Schritt-Beispiel:**
|
||
|
||
**Schritt 1 – Export:**
|
||
|
||
PE an VPN1-Site1 empfängt eine IPv4-Route vom CE. Er konvertiert sie zu VPN-IPv4 und hängt RT1 und RT4 an (laut Export-Policy: `VRF VPN1 Export = RT1, RT4`). Die Route wird an alle PEs verteilt.
|
||
|
||
**Schritt 2 – Import rechts:**
|
||
|
||
Der rechte PE empfängt die Route mit RT1 und RT4 und vergleicht sie mit seinen VRF-Import-Listen:
|
||
|
||
| VRF | Import-Liste | RT1 Match? | RT4 Match? | Ergebnis |
|
||
|-----|-------------|------------|------------|----------|
|
||
| VPN1 | RT1, RT4 | ✓ | ✓ | Route installiert → weiter zu Sites 4, 5 |
|
||
| VPN2 | RT1, RT2 | ✓ | – | Route installiert → weiter zu Site 3 |
|
||
|
||
**Schritt 3 – Import links:**
|
||
|
||
Der linke PE vergleicht ebenfalls:
|
||
|
||
| VRF | Import-Liste | Ergebnis |
|
||
|-----|-------------|----------|
|
||
| VPN2 | RT1, RT2 | RT1 matcht → Route zu Site 2 |
|
||
| VPN3 | RT3 | kein Match → Route ignoriert |
|
||
|
||
> **Merkhilfe:** RD = macht Adressen **eindeutig**. RT = steuert **Routenverteilung** (wer darf was sehen).
|
||
|
||
---
|
||
|
||
### Site of Origin (SoO)
|
||
|
||
Optionales Attribut, das die CE-PE-Verbindung identifiziert. Verhindert **Routing-Schleifen** bei Multi-Homed CEs (CE an mehrere PEs angebunden).
|
||
|
||
---
|
||
|
||
### Datenweiterleitnung: Label Stacking
|
||
|
||
```
|
||
CE1 ---> PE1 ---> P1 ---> P2 ---> PE2 ---> CE2
|
||
```
|
||
|
||
**Schritt 1 – PE1 (Ingress):**
|
||
Empfängt normales IP-Paket von CE1, sucht in der VRF (Longest Prefix Match), findet iBGP-Next-Hop PE2 und drückt **zwei Labels** auf das Paket:
|
||
|
||
```
|
||
[ Transport-Label | VPN-Label | IP-Paket ]
|
||
```
|
||
|
||
- **VPN-Label** (innen): identifiziert die Ziel-VRF bei PE2
|
||
- **Transport-Label** (außen): für den Weg durch den Core zu PE2
|
||
|
||
**Schritt 2 – P-Router:**
|
||
Leiten nur anhand des **Transport-Labels** weiter – kein VPN-Wissen nötig.
|
||
|
||
**Schritt 3 – PE2 (Egress):**
|
||
Entfernt das Transport-Label, liest das VPN-Label, findet die richtige VRF, leitet das IP-Paket an CE2 weiter.
|
||
|
||
### Penultimate Hop Popping (PHP)
|
||
|
||
**Optimierung:** Der **vorletzte Router (P2)** entfernt bereits das Transport-Label, sodass PE2 nur noch das VPN-Label sieht und nur **einen einzigen Lookup** machen muss statt zwei. PE2 hat dies vorher via LDP beim vorherigen Hop angefordert.
|
||
|
||
```
|
||
PE1 P1 P2 PE2
|
||
[TL|VL|IP] --> [TL|VL|IP] --> [VL|IP] --> [IP]
|
||
^ PHP: TL wird hier entfernt
|
||
```
|
||
|
||
---
|
||
|
||
### Inter-AS VPN
|
||
|
||
Wenn VPN-Standorte über mehrere Autonomous Systems (verschiedene Provider) verbunden sind:
|
||
|
||
| Option | Beschreibung | Label-Austausch |
|
||
|--------|-------------|-----------------|
|
||
| **A** | ASBRs führen VRFs; behandeln sich gegenseitig als CE | Kein Label-Austausch zwischen ASBRs |
|
||
| **B** | ASBRs tauschen VPN-Routen via MP-eBGP aus | MP-eBGP + Label zwischen ASBRs |
|
||
| **C** | Nur PE-Loopback-Adressen und Label-Bindings via eBGP; PEs kommunizieren direkt | eBGP + Label für Transport; MP-iBGP PE ↔ ASBR |
|
||
|
||
---
|
||
|
||
### BGP/MPLS L3 VPN – Vor- und Nachteile
|
||
|
||
| Vorteile | Nachteile |
|
||
|----------|-----------|
|
||
| Skalierbare VPN-Architektur | Komplex für Provider zu betreiben |
|
||
| SP oder Kunde kann VPN verwalten | Kunde hat keine vollständige WAN-Routing-Kontrolle |
|
||
| Vereinfachtes WAN-Routing für Kunden | Nur IP-Verkehr unterstützt |
|
||
| QoS/SLA pro VPN möglich (mit MPLS TE) | BGP konvergiert langsam (Abhilfe: BFD) |
|
||
| Hohe Verfügbarkeit via MPLS FRR | |
|
||
|
||
---
|
||
|
||
## 7. Segment Routing (SR)
|
||
|
||
### Grundprinzip: Source Routing
|
||
|
||
Beim klassischen MPLS berechnet jeder Router Hop-by-Hop den Weg. Bei **Segment Routing** legt der **Ingress-Router** (erster Router) den gesamten Pfad fest und codiert ihn als **geordnete Liste von Segmenten** im Paket.
|
||
|
||
**Segment:** Eine Anweisung für den Router, z.B. „Sende zu Knoten X über den kürzesten Pfad". Segmente werden als **SIDs (Segment Identifiers)** dargestellt.
|
||
|
||
SR ist **Data Plane Agnostic**: funktioniert über MPLS oder IPv6, kombiniert mit IGP (IS-IS, OSPF) oder BGP.
|
||
|
||
---
|
||
|
||
### Vergleich Classic MPLS vs. Segment Routing
|
||
|
||
| | Classic MPLS | Segment Routing |
|
||
|--|--|--|
|
||
| **Pfadaufbau** | LDP / RSVP-TE (separates Protokoll) | IGP/BGP (integriert) |
|
||
| **Control Plane** | Komplex (IGP + LDP + RSVP-TE) | Vereinfacht (nur IGP/BGP) |
|
||
| **State im Core** | Pro LSP/Flow | Nur am Ingress |
|
||
| **Traffic Engineering** | Manuelle TE-LSPs via RSVP-TE | Automatisch über Segmentlisten |
|
||
|
||
---
|
||
|
||
### IGP Segment-Typen
|
||
|
||
#### Node/Prefix SID (global)
|
||
|
||
- **Global gültig** in der gesamten SR-Domäne – jeder Router versteht dieselbe SID gleich
|
||
- Pakete werden zum Zielknoten über den **kürzesten IGP-Pfad** weitergeleitet (normales SPF-Routing)
|
||
- Wird als **Index** angekündigt → tatsächliches Label = SRGB-Basiswert + Index
|
||
|
||
```
|
||
Beispiel:
|
||
SRGB = 16000–23999
|
||
Node-SID Index = 41
|
||
→ Verwendetes MPLS-Label = 16041
|
||
```
|
||
|
||
#### Adjacency SID (lokal)
|
||
|
||
- Nur auf dem **vergebenden Knoten lokal gültig** – andere Router verwenden diese SID nicht
|
||
- Leitet das Paket **explizit über eine bestimmte Nachbarverbindung** weiter (echtes Source Routing)
|
||
- Wird als **absoluter Wert** angekündigt (kein Index, direkt das Label)
|
||
|
||
```
|
||
Beispiel:
|
||
Adjacency SID = 9107
|
||
→ Paket wird zwingend über genau diesen Link weitergeleitet
|
||
```
|
||
|
||
---
|
||
|
||
### SR Vorteile
|
||
|
||
**Control Plane Vereinfachung:**
|
||
- Weniger Protokolle, weniger Abhängigkeiten
|
||
- Automatischer Traffic-Schutz ohne per-Flow-Signalisierung
|
||
|
||
**Traffic Engineering:**
|
||
- Kein manuelles Konfigurieren von TE-LSPs nötig
|
||
- Pfade werden automatisch berechnet oder von einem Controller (z.B. via PCEP) vorgegeben
|
||
- Kein State pro Flow im Kernnetz
|
||
|
||
**Software-Defined Networking:**
|
||
- Hybrider Ansatz zwischen zentralisierter und verteilter Control Plane
|
||
- Controller kann Pfade/Policies über Southbound-Schnittstellen (z.B. PCEP) vorgeben
|
||
- Keine komplette Neukonstruktion des Netzes nötig
|
||
|
||
---
|
||
|
||
### IETF Standards für Segment Routing
|
||
|
||
| Standard | Beschreibung |
|
||
|----------|-------------|
|
||
| RFC 8402 | SR Architektur |
|
||
| RFC 9256 | SR Use Cases |
|
||
| RFC 8660 | SR über MPLS (SR-MPLS) |
|
||
| RFC 9886 | SR über IPv6 (SRv6) |
|
||
|
||
Relevante IETF Working Groups: SPRING, PCE, IDR, 6MAN
|
||
|
||
---
|
||
|
||
## Prüfungsinfo
|
||
|
||
| | |
|
||
|--|--|
|
||
| **Termin** | Mo., 4. Mai 2026, 14:00–16:00 Uhr |
|
||
| **Räume** | 6B.369 (inkl. Nachteilsausgleich) und 6B.371 |
|
||
| **Betreuer** | Schrenk und Albaradie |
|
||
| **Format** | Klausur (keine praktische Prüfung, außer IT25-Jahrgang) |
|
||
| **IT25** | Kombinierte Prüfung: Klausur (K) + Laborausarbeitung (L) | |