Rechnernetze

OSI- & TCP/IP-Modell Wiederholung

image-1643376568555.png

Routing

Beispiel: PC1 sendet ein Datenpaket an Server 1 (S1). Was passiert beim Routing?

image-1644234063389.png

Die Ziel-IP-Adresse wird bitweise logisch-UND mit der Subnetzmaske der ersten Zeile verknüpft und mit der Netzadresse verglichen.

image-1644235574067.png

Da das Ergebnis nicht mit 192.168.178.0 übereinstimmt wird mit der nächsten Zeile weiter gemacht. Welches dann bereits das Gateway ist.

 

HTTP

→ Hyper Text Transfer Protocol

image-1647097773927.png

Beispiel: Der Client fragt eine Webseite bei dem Webserver an.

→ Zuerst erfolgt der 3-Way-Handshake zum Aufbau der Verbindung ( | SYN | - | SYN-ACK | - | ACK | )

→ Der Client sendet ein HTTP-GET-REQUEST

→ Der Webserver antwortet mit einem HTTP-RESPONSE


Im Erfolgsfall: 

Bei Misserfolg:

→ Bei Wireshark lässt sich der gesamte HTML-Text der Seite im Response nachlesen (weil unverschlüsseltes HTTP gesprochen wird) → Um dies zu umgehen kann der Header verschlüsselt werden (HTTPS)

 

DHCP

DHCP (Dynamic Host Configuration Protocol) dient dazu, einem Client eine Netzwerk-Konfiguration zuzuweisen.

Beispiel: Ich schalte mein Notebook ein. Dieses benötigt eine Netzwerkkonfiguration.

image-1643188954860.png  

Der DHCP-Server steht in diesem Fall im gleichen Netzwerk wie der Client (Notebook).

  1. Client schickt DHCP-Discover
    • Frage nach Netzwerkkonfiguration
    • An Broadcast (255.255.255.255)
  2. Server antwortet mit einem DHCP-Offer
    • Sendet eine Netzwerkkonfiguration
  3. Client antwortet mit DHCP-Request
    • "Okay, die nehme ich."
  4. Server bestätigt mit DHCP-Acknowledge
    • Bestätigung, dass die Adresse eingetragen wurde.

Die Netzwerkkonfiguration enthält unter anderem:


Bei zwei DHCP-Servern in einem Netzwerk gilt das "First Come-First Serve"-Prinzip.

 

Source-NAT

Source-NAT (Network Address Translation) dient dazu, dass private Netzwerk-Adressen in die öffentliche IP-Adresse des Routers übersetzt werden, um IP-Adressen zu sparen und dennoch das Ziel zu erreichen.

Es gibt nicht genug IP-Adressen um jedes Gerät mit einer eigenen einzigartigen zu versorgen.

Beispiel: Ich frage von meinem Client eine Seite von einem Webserver im Internet an.

image-1644230198117.png

Stelle A

Quell-IP PC, Ziel-IP Webserver

Quell-Port PC, Ziel-Port Webserver

 

Stelle B

Quell-IP Router, Ziel IP Webserver

Quell-Port Router, Ziel-Port Webserver

 

Auf dem Router werden Quell-IP und Quell-Port auf die Daten des Routers geändert. So kann dieser auf dem Rückweg als Ziel erreicht werden. 

Der Router speichert die Daten wie Quell-Port und Quell-IP des anfragenden PCs in seiner NAT-Tabelle mit dem dazugehörigen neuen Port (vom Router festgelegt). Bekommt er eine Antwort auf diesem Port (1025), schaut der Router in seine NAT-Tabelle und schickt das Datenpaket an den PC weiter, der sich für den betreffenden Port (1025) aus der NAT-Tabelle ergibt. Dafür ändert er die Ziel-IP (192.168.1.22) und den Ziel-Port (1024) des Datenpakets wiederum auf die des anfragenden PCs.

 

Port-Forwarding / Destination-NAT

Destination-NAT bzw. Port-Forwarding wird verwendet, um den Ziel-Port und die Ziel-IP eines Datenpaketes zu ändern, damit dieses am Ziel ankommt.

Beispiel: Es soll ein Webserver angesprochen werden, dessen öffentliche IP nicht bekannt gegeben wird. Um auf den Webserver zuzugreifen spricht der Client die IP-Adresse der vorgeschalteten Firewall an. 

image-1644237638441.png

1. Der Client ruft die IP-Adresse der Firewall und den entsprechenden Port auf.

Stelle A

Ziel-IP 1.2.3.4, Ziel-Port 80

2. Die Firewall tauscht Ziel-Port und Ziel-IP in die des Servers (entsprechend Tabelle)

Stelle B

Ziel-IP 6.7.8.9, Ziel-Port 8080

Die Destination-NAT-Regelungen auf der Firewall geben an, an welche IP und welchen Port ein Datenpaket weitergeleitet wird, wenn es auf einem bestimmten Port (hier 80) ankommt. 

image-1644238085630.png

 

Symmetrische & Asymmetrische Verschlüsselung

→ Verschlüsselung dient dazu, dass eine gesendete Nachricht nicht so leicht ausgelesen werden kann, falls sie abgefangen wird.

Beispiel: Alice möchte Bob eine verschlüsselte Nachricht zukommen lassen.

1. Die Nachricht wird symmetrisch verschlüsselt, da mit symmetrischer Verschlüsselung große Datenmengen schnell verschlüsselt werden können.

image-1646054204387.pngUm die Nachricht zu ver- und entschlüsseln, wird ein symmetrischer Schlüssel verwendet. Diesen muss Alice Bob zukommen lassen. Das nennt man das Schlüsselaustauschproblem.

 

2. Der symmetrische Schlüssel wird asymmetrisch verschlüsselt um das Schlüsselaustauschproblem zu lösen.

image-1646054743588.pngUm den symmetrischen Schlüssel zu verschlüsseln, verwendet Alice den öffentlichen Schlüssel von Bob. Die Nachricht wird versendet. Zum Entschlüsseln verwendet Bob seinen privaten Schlüssel. Den öffentlichen Schlüssel erhält Alice vorher von Bob. Zum Beispiel per E-Mail.

Diese Kombination der symmetrischen Verschlüsselung und asymmetrischen Verschlüsselung nennt sich hybride Verschlüsselung.

 

SSH

→ Secure Shell bezeichnet ein Netzprotokoll für verschlüsselte Verbindungen zwischen Client und Server. 

Beispiel: Zwischen einem Client und einem Server soll eine verschlüsselte Verbindung aufgebaut werden, um z.B. Unternehmensdaten auszutauschen.

image-1643701332877.png

 

 

 

Bei SSH wird die Payload verschlüsselt.

Verbindungsaufbau mit SSH

image-1643705475345.png

SSH-Tunnel

→ Ein SSH-Tunnel macht den Zugriff auf einen Server möglich, der ohne Tunnel durch z.B. eine Firewall blockiert wird. Die Verbindung ist verschlüsselt.

Beispiel: Ich möchte auf einen Server zugreifen, werde aber durch eine Firewall blockiert. 

image-1644226993790.png

1. Zwischen dem SSH-Client und dem SSH-Server wird ein Tunnel aufgebaut

2. Das Datenpaket wird zunächst vom Browser an den SSH-Client gesendet. (A)

3. Der SSH-Client leitet das Datenpaket an den SSH-Server weiter. Der HTTP-Header ist verschlüsselt. (B)

4. Der SSH-Server leitet das Datenpaket an die Destination weiter. Das Datenpaket ist nicht mehr verschlüsselt. (C)

 

Bei der Rückantwort vom Server werden die Daten vom SSH-Server wieder zum SSH-Client und von dort zum Browser weitergeleitet. 

Beispiel Autobahntunnel: Über der Autobahn fliegt ein Hubschrauber zur Beobachtung des Verkehrs. Die Autos die auf der Autobahn fahren sind hier die Datenpakete. Solange die Autos nicht durch den Tunnel fahren kann der Hubschrauber die Autos beobachten.

image-1644236067804.png

Sobald die Autos in den Tunnel einfahren hat der Hubschrauber keine Möglichkeit mehr die Autos zu beobachten. Vorausgesetzt wir befinden uns nicht in Mission Impossible.

image-1644236113051.png

 

DNS

Das Domain Name System dient dazu, den Host-Name einer Internetseite in die zugehörige IP-Adresse zu übersetzen.

Beispiel: Ich möchte vom meinem Client das Wiki von Martin aufrufen (wiki.itienken.de), um für die Prüfung zu lernen.

image-1643646440542.png

Wenn jemand eine Webseite bereitstellen möchte, tut er das über einen Dienstleister. Dieser trägt die zur (Sub)domain zugehörige IP-Adresse bei seinem DNS-Server ein und meldet sie bei der Organisation an, die für die Verwaltung der jeweiligen TLD (Top Level Domain) zuständig ist. Diese Organisation betreibt ebenfalls einen DNS-Server, der jedoch lediglich die Domain (ohne Subdomain) und die IP-Adresse des verwaltenden Dienstleister-DNS-Servers speichert. Der DNS-Root-Server hat einen Eintrag für jede TLD mit der IP-Adresse des für diese TLD verantwortlichen DNS-Servers.

Aufrufen des Wikis auf meinem Client
  1. hosts-Datei (nicht? dann 2.)
  2. DNS-Server DSL-Router (nicht? dann 3.)
  3. DNS-Server Provider (nicht? dann 4.)
  4. DNS-Root-Server 
    • Der DNS-Root-Server fragt über die TLD beim entsprechenden DNS-Server an 189.38.95.2
    • Dieser fragt beim Dienstleister an 217.160.80.147
    • Der DNS-Server des Dienstleisters kann die gefragte IP-Adresse liefern → 213.183.189.160

Zwischen dem DNS-Server beim Provider und dem DNS-Root-Server können theoretisch n weitere DNS-Server liegen!

 

E-Mail

SMTP (Simple Mail Transfer Protocol) ist ein Protokoll zum Senden von E-Mails

→ POP3 ist ein Protokoll zum Empfangen von E-Mails

Beispiel: Alice sendet Bob eine E-Mail

image-1645612055660.png

Wenn Alice die E-Mail versendet, wird das SMTP gesprochen. Die Mail wird zunächst an den SMTP-Server von Alice' E-Mail-Client gesendet. Dieser leitet die E-Mail weiter an den POP3-Server von Bob.

Wenn Bob die E-Mail abruft, wird das POP3 gesprochen. Bob verbindet sich mit seinem Account (Benutzername & Passwort). Der Server gibt eine Liste mit den Mails für Bob zurück. Bob kann nun die entsprechende Mail auswählen und anschauen.

image-1646062247642.png

 

Subnetting

→ Mit Subnetting kann ein Netz in mehrere Subnetze aufgeteilt werden.

image-1645520014375.png

Beispiel: In einem Unternehmen sollen die IP-Adressen aus dem Bereich 10.20.30.0/24 auf mehrere Gebäude aufgeteilt werden.

image-1645522109798.pngEs werden 3 Subnetze gebildet. Ein /25-Netz und zwei /26-Netze.

10.20.30.0 /25 → 0 - 127

10.20.30.128 /26 → 128 - 191

10.20.30.192 /26 → 192 - 255

 

Die erste Ziffer des Subnetzes bezeichnet das Netz, die letzte ist die Broadcast-Adresse. Alle IP-Adressen dazwischen können für die Geräte verwendet werden.

image-1645602748002.png

Routingtabellen

image-1645608839034.png

 

IPv4 & IPv6

→ IP (Internet Protocol) ist ein Netzwerkprotokoll auf der Vermittlungsschicht


IPv4

Datenpaket:

Eth-H | IPv4 | TCP | HTTP | Eth-T


IPv6

Datenpaket:

Eth-H | IPv6 | TCP | HTTP | Eth-T

 

4 in 6

→ Bei 4 in 6 muss eine Teilstrecke überbrückt werden, da auf dieser Teilstrecke nur IPv6 gesprochen wird.

image-1646063193319.pngBeispiel: Ich sende ein Datenpaket an einen Server mit IPv4. Auf dem Weg befindet sich ein Router, der nur IPv6 spricht (R3)


1. Zunächst wird das Datenpaket mit IPv4 zusammengebaut und versendet. Vor R2 (A) sieht es so aus:

Eth-H | IPv4 | TCP | HTTP | Eth-T

2. R2 bemerkt anhand der Routingtabelle, dass R3 nur IPv6 spricht. Er erstellt einen IPv6-Header und stellt ihn vor den IPv4-Header. Quelle ist die IPv6-Adresse von R2 (a), Ziel ist die IPv6-Adresse von R4 (b). Das bedeutet, dass der IPv6-Header nur das Teilstück überbrückt. Das Datenpakt sieht so aus (B):

Eth-H | IPv6 | IPv4 | TCP | HTTP | Eth-T

3. R4 bemerkt, dass der IPv6-Header nicht mehr benötigt wird, da seine IP als Destination eingetragen war. Der IPv6-Header wird abgeschnitten. Das Datenpaket an Stelle C:

Eth-H | IPv4 | TCP | HTTP | Eth-T

 

6 in 4

→ Bei 6 in 4 muss eine Teilstrecke überbrückt werden, auf der nur IPv4 gesprochen wird. 

→ Es funktioniert wie 4 in 6, nur dass die IPv4-Strecke überbrückt werden muss:

image-1647014167681.png

A   Eth-H | IPv6 | TCP | HTTP | Eth-T

B   Eth-H | IPv4 | IPv6 | TCP | HTTP | Eth-T

C   Eth-H | IPv6 | TCP | HTTP | Eth-T


Beispiel: Ich sende mit IPv6 ein Datenpaket an einen Server. Auf dem Weg dorthin befindet sich ein Router, der nur IPv4 spricht.

VPN-ESP

→ VPN (Virtual Private Network) wird benötigt, um die Verbindung zwischen zwei Routern zu verschlüsseln. Dabei wird der originale IP-Header verschleiert.

Beispiel: Im Homeoffice greife ich mit meinem PC aus meinem lokalen Netzwerk per VPN auf das Unternehmensnetz bzw. einen Server im Unternehmensnetz zu.

image-1645523744809.png

1. Der VPN-Tunnel wird zwischen R1 und R2 aufgebaut.

2. Das Datenpaket wird zunächst normal aufgebaut und versendet:

image-1645525339514.png

3. Auf R1 wird das gesamte Datenpaket verschlüsselt. Es wird ein neuer IP-Header generiert und vor den verschlüsselten Teil gesetzt.

image-1645525371419.png

4. Auf R2 wird der IPneu-Header wieder abgeschnitten und die Payload entschlüsselt.

image-1645525793216.png

→ Der verschlüsselte Teil wird von ESP-Header und -Trailer ummantelt

→ Da der verschlüsselte Teil immer eine bestimmte Länge haben muss (ein Vielfaches von 32 Bit) wird er um ein Padding, eine entsprechend lange zufällige Zeichenfolge ergänzt.

TODO ESP-Header näher beschreiben

Well Known Ports (Nice to know, nicht prüfungsrelevant)

Ports sind fortlaufend durchnummeriert – von 0 bis 65536

Einige von diesen Kennziffern sind standardisiert und damit bestimmten Anwendungen zugeordnet

Diese Standard-Ports nennt man auch Well Known Ports, da die Kennzahlen für alle bekannt und vor allem fest sind

Für die Registrierung ist die Internet Assigned Numbers Authority (IANA) zuständig

Die Well Known Ports gehen von 0 - 1023


Ein paar der wichtigsten Well Known Ports
Portnummer Name Zweck / Beschreibung
22 SSH Secure Shell Service
23 Telnet Telnet-Service
25 SMTP Simple Mail Transfer Protocol
53 DNS Namensauflösung per DNS
80 HTTP Hypertext Transfer Protocol
110 POP3 Post Office Protocol v3 für die E-Mail-Kommunikation
123 NTP Dienst zur Zeitsynchronisierung
443 HTTPS HTTPS (HTTP über SSL/TLS)

VPN by Falko

VPN

→ VPN (Virtual Private Network) wird benötigt, um die Verbindung zwischen zwei Routern zu verschlüsseln. Dabei wird der originale IP-Header verschleiert.

Beispiel: Im Homeoffice greife ich mit meinem PC aus meinem lokalen Netzwerk per VPN auf das Unternehmensnetz bzw. einen Server im Unternehmensnetz zu.

image-1645523744809.png

 

Allgemein

1. Der VPN-Tunnel wird zwischen R1 und R2 aufgebaut.

2. Das Datenpaket wird zunächst normal aufgebaut und versendet:

image-1645525339514.png

3. Auf R1 wird das gesamte Datenpaket verschlüsselt. Es wird ein neuer IP-Header generiert und vor den verschlüsselten Teil gesetzt.

image-1647168349333.png

4. Auf R2 wird der IPneu-Header wieder abgeschnitten und die Payload entschlüsselt.

 

IPsec VPN (ESP)

Dies ist eine konkrete Implementierung eines VPNs (wir brauchen nur ESP nicht AH)

image-1647168902000.png

→ Da der verschlüsselte Teil immer eine bestimmte Länge haben muss (ein Vielfaches von 32 Bit) wird er um ein Padding, eine entsprechend lange zufällige Zeichenfolge ergänzt.

Azubi Lab

10.208.131.57/24

Testseite

10.208.131.57