Adressauflösung
H1 R1 H2
128.96.34.15
45:35:FE:36:42:55 128.96.34.1 128.96.34.16 57:FF:AA:36:AB:11 85:48:A4:28:AA:18
IP‐Adresse Physikalische Adresse 128.96.34.1 57:FF:AA:36:AB:11 128.96.34.16 85:48:A4:28:AA:18
… …
IP‐Adresse Physikalische Adresse
128.96.34.15 ???
128.96.34.16 85:48:A4:28:AA:18
… …
Oracle VirtualBox 6.1
Ein wenig Praxis
Aus der Linux‐Ecke
ifconfig – Konfiguration einer Netzwerkschnittstelle
ip route – Konfigurieren von Routen
arp– Anzeige und Modifikation des ARP‐Cache
Wenn keine Argumente angegeben werden, wird der aktuelle Zustand angegeben.
Aus der Windows‐Ecke
ipconfig /all – zeigt die gesamte IP‐Konfiguration an
arp /a – zeigt den ARP‐Cache an
Unsere Spiel‐Umgebung Ubuntu‐Installation in einer VirtualBox‐Umgebung
Guest‐System (z.B. Ubuntu)
Virtuelle Netzwerkkarte Virtuelle
Netzwerkkarte
Oracle VM VirtualBox networking engine Host‐System (z.B. Windows 10)
Internet
Reale Netzwerkkarte
Ein wenig Praxis
Linux (Terminal) Windows (PowerShell)
Diskussion des vorigen Praxisversuches
IP‐Adressen wie z.B. 10.0.2.15 global im Netz sichtbar?
Eine kurze Überschlagsrechnung:
• haben in der VM zwei IP‐Adressen verwendet
• Host‐Rechner hat noch eine IP‐Adresse
• Notebook läuft nebenher mit je einer IP‐Adresse für Ethernet‐ und WLAN‐Schnittstelle
• Also: Prof. Frey verschwendet schon alleine mindestens fünf IP‐Adressen!!
Es gibt 2^32 = 4.294.967.296 mögliche IPv4‐Adressen in der Form X1.X2.X3.X4
Es gibt 7 841 925 026 Menschen (gemessen am 27.10.2020 um 18:25:11 [1]) Ganz zu schweigen, dass Netze auch noch strukturiert sind und nicht jedem jede beliebige noch freie IP‐Adresse gegeben werden kann…
Eine derart intensive Internet‐Nutzung war ursprünglich nicht vorgesehen
[1] https://countrymeters.info/de/World
Diskussion des vorigen Praxisversuches
Private IPv4‐Adressen [1]
• Sind nur im lokalen Netz (Intranet) eindeutig
• Jedes lokalen Netz darf diese ohne Koordination mit anderen verwenden
• Sind außerhalb des lokalen Netzes (also im Internet) nicht sichtbar
(Es gibt auch noch einen Shared‐Address‐Bereich für Internetdienstanbieter, einen Link‐Local‐Address‐Bereich für Zeroconf bzw. Automatic Private IP
Addressing (APIPA) und einen localhost mit der IP 127.0.0.1)
Netzadressbereich Anzahl Adressen Anzahl Netze gemäß Netzklasse
10.0.0.0 bis 10.255.255.255 224 = 16.777.216 Klasse A: 1 privates Netz mit 16.777.216 Adressen
172.16.0.0 bis 172.31.255.255 220 = 1.048.576 Klasse B: 16 private Netze mit jeweils 65.536 Adressen
192.168.0.0 bis 192.168.255.255 216 = 65.536 Klasse C: 256 private Netze mit jeweils 256 Adressen
Diskussion des vorigen Praxisversuches
Jedes Lokale Netz braucht aber mindestens eine global eindeutige IP‐Adresse als „Eingang“, um im Internet gefunden werden zu können
• Das ist Aufgabe des Gateway/Router
• Es braucht „an geeigneter Stelle“ einen Übersetzungsschritt zwischen lokler und global eindeutiger IP‐Adresse
• Oder wir ändern das Internet und stellen mehr Adressen zur Verfügung
Das ist Thema des Abschnittes NAT sowie IPv6
Aber was ist denn nun meine (gegenwärtige) globale IP‐Adresse????
Projekt:
• Findet mit den besprochenen Kommandos die lokale IP‐Adresse eures Standardgateways (z.B. 192.168.2.1)
• Damit darauf einloggen (z.B. bei Speed‐Port lokale IP‐Adresse in Browser)
• In IP‐Adress‐Informationen die öffentliche WAN‐IP nachschauen
• Oder für Faule: https://whatismyipaddress.com/
Motivation für Super‐Netting
Betrachten wir als Beispiel die IT‐Abteilung eines Uni‐Campus, die
„autonom“ eine Menge von IP‐Adressen nutzt.
Mit Subnetting können wir gegebene Menge von IP‐Adressen effizient nutzen.
Aber, die IT‐Abteilung muss nach unserem bisherigen
Wissensstand immer noch IP‐Adressmenge in den Granularitäten Class‐A‐, ‐B‐, oder ‐C‐Netz beantragen/verwalten.
Was ist wenn wir z.B. 257 Hosts im Netz haben?
1. Beantrage ein Class‐B‐Netz. Effizienz?
2. Beantrage zwei Class‐C‐Netze.
Lösung: Classless‐Interdomain‐Routing (CIDR)
Aggregiere Netz‐Adressen.
Beispiel: Annahme wir haben 16*256‐1 Hosts.
Verwenden Adressen von 16 Class‐C‐Netzen.
Aber Adressen nicht beliebig, sondern hintereinanderliegend, z.B.:
192.4.16 [1100 0000 . 0000 0100 . 0001 0000]
192.4.17 [1100 0000 . 0000 0100 . 0001 0001]
...
192.4.31 [1100 0000 . 0000 0100 . 0001 1111]
Beobachtung: alle Adressen beginnen mit denselben 20 Bits:
1100 0000 0000 0100 0001
Lösung: Classless‐Interdomain‐Routing (CIDR)
Beobachtung: alle Adressen beginnen mit denselben 20 Bits:
11000000 00000100 0001
Im Beispiel also eine 20‐Bit Netzadresse
• Liegt zwischen Class‐C (24 Bit) und Class‐B (16 Bit)
• Erforderte Ausgabe eines Adressbereiches von 2^4 = 16 Class‐C‐Netzen
Allgemein: i‐Bit‐Netzadresse erfordert wie viele Class‐C‐Netze?
Internet‐Router beachten nur noch die i‐Bit‐Netzadresse.
Lösung: Classless‐Interdomain‐Routing (CIDR)
Wir brauchen für das Schema noch eine passende Notation.
Notation am Beispiel:
192.4.16 [1100 0000 . 0000 0100 . 0001 0000]
192.4.17 [1100 0000 . 0000 0100 . 0001 0001]
...
192.4.31 [1100 0000 . 0000 0100 . 0001 1111]
wird zusammengefasst dargestellt als:
192.4.16/20 [1100 0000 . 0000 0100 . 0001]
Also, /20 bedeutet Netzadresse besteht aus ersten 20 Bit und
fasst die 2^4=16 aufeinander folgenden Class‐C‐Netze beginnend mit 192.4.16 zusammen.
Quiz
Wie fasst man die Class‐C‐Netze 192.4.0 bis 192.4.31 mittels /X‐
Notation zusammen?
Wie stellt man das einzelne Class‐C‐Netz 192.4.16 in /X‐Notation dar?
Lösung: Classless‐Interdomain‐Routing (CIDR)
Umgang mit aggregierten Adressen im Router:
• Adressen in den Routing Tabellen: <länge,wert>‐Paar
• Vergleichbar mit <mask,wert>‐Paar im Subnetting, wenn Mask aus aufeinanderfolgenden 1‐Bit‐Werten besteht CIDR erlaubt sogenannte Routenaggregation. Beispiel:
Internet‐Anbieter Advertise
128.112.128/21
128.112.128/24 Kunden‐Netze
Es müssen noch nicht mal alle 8 aufeinanderfolgenden Netze aktuell genutzt sein!
128.112.135/24
…
Lösung: Classless‐Interdomain‐Routing (CIDR)
CIDR und Routingtabelleneinträge? Prefixe dürfen überlappen.
Beispiel‐Routingtabelle:
Wohin mit der Nachricht an 171.69.10.5?
Wohin mit der Nachricht an 171.69.20.5?
Generell: Longest‐Prefix‐Match
(erfordert effiziente Algorithmen/Datenstrukturen zum Finden des längsten passenden Prefix. vgl. AlgoDat Radix‐ und
Network‐Address Next Hop
... ...
171.69/16 if1 171.69.10/24 if2
... ...
Subnetting versus CIDR
• Subnetting erlaubt das Aufteilen einer Netzadresse in Teilnetze
– Aufteilung annähernd beliebig; alles was mit der Subnetzmaske ausdrückbar ist
• CIDR dient dem Aggregieren von Netzadressen in einer einzigen Adresse
– Aggregation nicht beliebig; Netzadressen müssen aufeinanderfolgend sein; zusammengefasst werden immer nur 2^i viele Netze
– Gewisse Flexibilität, indem man „Dummy‐Netze“
verwendet
Netzwerkarchitektur
Motivation
• Bis jetzt: Basisbegriffe und etwas praktischen Einblick
• Im Folgenden: Anforderungen an ein Rechnernetz generell
• allgemeine, kostengünstige, faire und robuste Konnektivität zwischen einer großen Anzahl von Computern
• Möglichkeit der Weiterentwicklung
Änderungen der zugrunde liegenden Technologien
Änderungen der Anforderungen von Anwendungsprogrammen
• Beherrschbarkeit dieser komplexen Aufgabe mittels Netzwerkarchitekturen Richtline zu Entwurf und Implementierung von Netzwerken
• Im Folgenden: was sind die Aspekte einer Netzwerkarchitektur
• Zentrale Ideen, die allen Netzwerkarchitekturen gemeinsam sind
• Vorstellung der zwei wesentlichen Architekturen:
die OSI‐Architektur [genauer: Referenzmodell]
(oder 7‐Layer‐Architektur) und die Internetarchitektur
Host 1
Protokoll und Service‐Interface
• Protokoll‐Implementation versus Protokoll‐Spezifikation (Beschreibung)
• Interoperabilität
Protokoll High‐Level Objekt
Host 2
Protokoll High‐Level Objekt
Peer‐
Interface Service‐
Interface
Service‐
Interface
Protokollbeschreibung: Message‐ Sequence ‐Chart (MSC)
H1 H2
Protokollbeschreibung: Protokollzustandsautomat
Wait for connection
request
Wait for file request connection request/
connection response
close request
file request/
file response
Protokollkomponenten am Beispiel
H N S
Service‐Primitiven:
Zustände:
Zeitvorgaben:
Nachrichtenformate:
File f GET_FILE(), void ABORT_FILE_RETRIVAL(), ...
CLIENT_IDLE, CLIENT_WAITS_FOR_FILE, ...
if client waits 1000ms then change to state CLIENT_ERROR FILE_REQUEST_MESSAGE: |CLIENT_ADR|SERVER_ADR|FILE_NAME|
Host 1
Protokolle bauen aufeinander auf: Protokollgraph
Protokoll 1
Protokoll 3
Protokoll 2
Protokoll 4
Host 2
Protokoll 1
Protokoll 3
Protokoll 2
Protokoll 4
Nachrichtenkapselung
Host 1
Anwendung 1
Protokoll 1
Protokoll 2
Protokoll 3
Host 2
Daten
Daten H1
Daten H1
H2
Daten H1
H2 H3
Anwendung 1
Protokoll 1
Protokoll 2
Protokoll 3
Daten
Daten H1
Daten H1
H2
Host 1
Multiplexing und Demultiplexing
Protokoll 1
Protokoll 3
Protokoll 2
Protokoll 4
Host 2
Protokoll 1
Protokoll 3
Protokoll 2
Protokoll 4
OSI‐Modell
Internet‐Architektur (TCP/IP‐Architektur)
Nothing stated by TCP/IP model
Internet‐Protokolle
Host 2 Host 1
Adressen im Internet‐Modell
TCP
IP IP
LINK LINK
physical
TCP UDP
UDP
physical
Application Application Application Application
Physikalische Adresse
IP‐Adresse Port
Demux‐Key