David Schirrmeister a595a1f0aa update
2025-04-22 11:28:44 +02:00

335 lines
11 KiB
Markdown

# Internetworking
> ![image_685.png](image_685.png)
## MAC und IP-Adressen im Heimatnetzwerk
![image_686.png](image_686.png)
**Bleiben MAC und IP-Adresse immer gleich?**
- MAC-Adresse
- gelten nur im LAN
- IP-Adresse
- muss unverändert festbleiben
## MAC-Adressierung
### Beispiel Ethernet-Header
![image_687.png](image_687.png)
### Beispiel WLAN-Header
![image_688.png](image_688.png)
- nicht mehr nur Quell- und Zieladresse
- gezwungener Nachrichtenweg über den Router
## Übersicht Network-Layer
> ![image_689.png](image_689.png)
### IP und ICMP
- **Eigenschaften**
- IP
- stellt Header im Network Layer zur Verfügung
- einfache Spezifikation auf beiden Seiten
- einziges Problem: Fragmentierung von IP-Paketen
- ICMP
- Fehlermeldungen und Test des Netzwerks
- Zwischen Host/Router und Router
- Fehler werden verursacht durch
- fehlerhafte IP-Pakete
- "Nichterreichbarkeit" von Netzen, Hosts, Routern, Diensten
- Kein Client von L3, sondern von IP
#### Internet Protocol V6
> ![image_736.png](image_736.png)
##### Neighbor Discovery Protocol (NDP) in IPv6
![image_737.png](image_737.png)
![image_738.png](image_738.png)
![image_739.png](image_739.png)
#### Internet Protocol V4
- realisiert verbindungslose Kommunikation auf L3
- bietet Hardware-unabhängiges Paketformat
- ![image_690.png](image_690.png)
> ![image_735.png](image_735.png)
##### IPv4 Adressierung
![image_691.png](image_691.png)
- Netz
- _bspw. anderes Netz für MK/FBI_
- je feiner man die trennt, desto besser ist Performance, Sicherheit
- Host
- Endgerät
- braucht eine individuelle IP-Adresse
##### IPv4 Lebenszeit
- beim Routen durch vermaschte Netze könnten Datagramme ziellos unendlich lang kreisen
- Ressourcen werden vergeudet
> **Lösung: TTL-Feld**
>
> Jeder Router reduziert TTL um `1`,
> bei Erreichen von `0` wird Paket gelöscht
###### Subnetting
- gleich großer Host/Netz Anteil
- Falls man vom einen mehr braucht → umrechnen
#### ICMP
![image_699.png](image_699.png)
- Falls IP Fehler bei Zustellung hat, ICMP zur Benachrichtigung des Senders nutzen
- Destination Unreachable
- Fragmentation Needed and DF set
- _Fragmentierung benötigt, aber nicht erlaubt_
- Time To Live Exceeded
- Source Quench
- _Host kann Datagramme nicht so schnell verarbeiten, wie diese vom Netzwerk eintreffen_
**Eigenschaften**
- ICMP-Nachrichten als Nutzdaten in IP-Paketen
- enthält
- Typ
- ![image_700.png](image_700.png)
- Code
- ggf. erste 8 Byte des IP-Pakets, das die Fehlermeldung verursacht hat
- wird direkt von `Ping` und `Traceroute` verwendet
##### ICMP: Traceroute
- Sender schickt IP-Paket mit TTL=1
- 1. Router sendet ICMP zurück
- Sender schickt IP-Paket mit TTL=2
- 2. Router sendet ICMP zurück
- ...
##### ICMP-Flooding-Angriff
- Angreifer überflutet Zielgerät mit ICMP-Echo-Request-Paketen
- Zielgerät beantwortet alle
- verbraucht Ressourcen
##### ICMP Smurf-Angriff
- Angreifer schickt ICMP-Paket mit gefälschter Quell-IP-Adresse
- Netzwerk antwortet an gefälschte IP-Adresse
- → DDoS-Angriff auf OSI-Schicht 3
##### ICMP Umleitungen in Mehrpunkt-Ethernet-Netzwerken
| | |
|---------------------------------|------------|
| Host | 10.0.0.100 |
| Router G1 (Standardgateway) | 10.0.0.1 |
| Router G2 (nächster Hop von G1) | 10.0.0.2 |
Wenn Host Paket an Zielnetzwerk X sendet:
1. G1 empfängt von Host in Netzwerk in dem es verbunden ist
2. G1 überprüft Routing-Tabelle und erhält IP von G2 auf Route zu X
3. Wenn G2 und Host in gleichem Netzwerk:
- ICMP-Umleitungsnachricht an Host, dass er es in Zukunft direkt an G2 schicken soll
- kürzer als Weg über G1
4. G1 schickt Datenpaket an Ziel weiter
- Abhängig von Host-Konfiguration
- ICMP-Umleitungsnachricht ignorieren oder anwenden
###### Suboptimaler Pfad mit statischem Routing
![image_701.png](image_701.png)
###### Layer-3-Switch ersetzt Konfiguration mit einem Router
![image_702.png](image_702.png)
## Einfaches Internetwork als Beispiel
![image_692.png](image_692.png)
- von H1 aus zu H8
- R1 packt es aus, schaut wohin, packt es ein und weiter
- R2 packt es aus, schaut wohin, packt es ein und weiter
- R3 packt es aus, schaut wohin, packt es ein und weiter
![image_693.png](image_693.png)
- PPP hat weniger max. Payload als ETH
- IP muss fragmentieren in kleinere Pakete
- Zwei wichtige Punkte
- Jedes Fragment ist ein in sich abgeschlossenes IP-Diagramm
- Übertragung unabhängig von anderen Fragmenten über eine Reihe physikalischer Netzwerke
- Jedes IP-Diagramm wird für jedes zu durchquerendes physikalische Netzwerk in ein entsprechendes Frame gekapselt
### Laptop and DevBoard communication within LAN
#### Step 0: Überblick
![image_694.png](image_694.png)
#### Step 1: Open the Webbrowser and Enter IP Address for the Development Board
#### Step 2: PC Generates and Transmits a Frame
![image_695.png](image_695.png)
#### Step 3: Frame is Forwarded through the Switch
![image_696.png](image_696.png)
- falls nicht bekannt an welchem Port die richtige MAC-Adresse hängt
- an alle (bis auf Sender-Port, da ist MAC-Adresse ja bekannt) rausschicken
#### Step 4: Frame arrives at the Development Board and is forwarded to the Webserver
![image_697.png](image_697.png)
- auf jedem Layer überprüfen ob an richtiger Stelle
- Layer 2: MAC richtig?
- Layer 3: IP richtig?
- Layer 4: PortNumber running auf dem device?
#### Step 5: Webserver on DevBoard generates Frame and sends the page to the pc
![image_698.png](image_698.png)
#### Step 6: Step 3 with new frame
- Frame kommt am Switch an
- Switch schaut, ob er die MAC kennt
- Switch sendet weiter an PC (Port 3)
- PC öffnet frame und schaut, ob er für ihn ist
- PC öffnet Packet und schaut, obs passt
- PC öffnet Message
## Network Address Translation (NAT)
- mehrere Computer teilen sich eine im Internet sichtbare IP-Adresse
- Private Adressräume werden nicht weitergeleitet
- ![image_703.png](image_703.png)
### NAT-Beispiel
![image_705.png](image_705.png)
### Transport Layer NAT (NAPT)
- Löst folgendes Problem
- Browser auf 192.168.0.1:3000 greift auf www.google.de auf Port 80 zu
- Browser auf 192.168.0.2:3000 greift auf www.google.de auf Port 80 zu
- → reines NAT funktioniert nicht
- NAPT nutzt Port-Nummern aus TCP oder UDP
- Gewährleistung Eindeutigkeit in Zuordnung der Pakete
- In der Praxis ist NAT Synonym für NAPT
#### NAPT Beispiel
![image_706.png](image_706.png)
### Local Router with NAT
#### NAT entry and forward Frame to ISP Router
![image_707.png](image_707.png)
#### NAT translation in local Router
![image_708.png](image_708.png)
### Übersicht NAT im globalen Netzwerk
![image_709.png](image_709.png)
## Address Resolution Protocol ARP
> Übersetzung von IP- in physikalische MAC-Adresse
### Beispiel: MAC vom Router
#### Step 1: ARP Request
![image_710.png](image_710.png)
#### Step 2: ARP Response
![image_711.png](image_711.png)
#### Step 3: Entry in ARP Table
![image_712.png](image_712.png)
- Jeder Punkt im Netzwerk wartet seine eigene ARP-Tabelle
- Layer 2 Protokoll, das auf IP Adressen referenziert, sie aber NICHT nutzt
### 2. Beispiel ARP Request
![image_713.png](image_713.png)
### ARP Header
![image_714.png](image_714.png)
### ARP-Quiz
- Die ARP-Request Nachricht wird per Postcast verschickt ✓
- ~~ARP kann zu einer MAC-Adresse eine IP-Adresse vermitteln~~ (Reverse ARP (RARP))
- Die ARP-Tabelle enthält nur die Adressabbildungen der Systeme im LAN, mit denen kommuniziert wurde ✓
- ~~Der ARP-Reply wird per Broadcast geschickt~~ (Unicast)
- ARP kann zu einer IP-Adresse eine MAC-Adresse ermitteln ✓
- Der ARP-Reply wird nur an die anfragende Station geschickt ✓
## Dynamic Host Configuration Protocol (DHCP)
- Vereinfachung der Installation und Verwaltung von vernetzten Rechnern
- DHCP integriert weitgehend automatisch einen Rechner in das Internet bzw. Intranet
### Charakteristika
- Server
- mehrere DHCP-Server können konfiguriert werden
- Koordination z. Zt aber noch nicht standardisiert
- Erneuerung der Konfiguration
- IPs müssen regelmäßig erneut angefordert werden
- vereinfachtes Verfahren
- Optionen
- Verfügbar für:
- Router
- Netzmaske
- NTP (Network Time Protocol)-Timeserver
- SLP (Service-Location Protocol)-Verzeichnis
- DNS (Domain Name System)
### DHCP Header
![image_724.png](image_724.png)
| Field | Octets | Description |
|---------|--------|------------------------------------------------------------------------|
| op | 1 | Messagetyp |
| htype | 1 | Typ der Hardware-Adresse |
| hlen | 1 | Länge der Hardware-Adresse |
| hops | 1 | used in case of relay agents. Clients sets them to 0 |
| xid | 4 | Trasaktions-ID, die vom Client und Server für die Session genutzt wird |
| secs | 2 | Zeit [s] seit Client Prozess requested hat |
| flags | 2 | Flags |
| ciaddr | 4 | Client IP |
| yiaddr | 4 | IP, die dem Client vom Server zugewiesen wird |
| siaddr | 4 | Server IP |
| giaddr | 4 | IP Adresse vom Relay-Agent |
| chaddr | 16 | Client Hardware-Adresse (MAC) |
| sname | 64 | Server Hostname |
| file | 128 | Boot filename |
| options | var | Additional options |
### Client Server Exchange
![image_715.png](image_715.png)
### Arbeitsweise von DHCP
| Fall A | Fall B (`Broadcast Bit = 1`) |
|---------------------------------|---------------------------------|
| ![image_716.png](image_716.png) | ![image_717.png](image_717.png) |
![image_718.png](image_718.png)
| **DHCP Discover** | **DHCP Offer** | **DHCP Request** | **DHCP ACK** | _DHCP NACK_ |
|---------------------------------|---------------------------------|---------------------------------|---------------------------------|:--------------------------------|
| ![image_719.png](image_719.png) | ![image_720.png](image_720.png) | ![image_721.png](image_721.png) | ![image_722.png](image_722.png) | ![image_723.png](image_723.png) |
### DHCP Zustandsdiagramm
![image_725.png](image_725.png)
### DHCP Snooping
![image_726.png](image_726.png)
## Domain Name Service (DNS)
- weltweit verteilte Namensdatenbank
- besitzt hierarchische Namensstruktur
- aufgeteilt in nicht überlappende Zonen
- ![image_730.png](image_730.png)
- ![image_731.png](image_731.png)
- bildet Namen auf Informationen (bspw. IP-Adressen) ab
- www.ieee.org → 199.172.136.40
- Vorteil: Information/Adresse, auf die abgebildet wird, kann sich ändern
### DNS Levels
![image_732.png](image_732.png)
### DNS Funktionsweise
![image_733.png](image_733.png)
![image_734.png](image_734.png)