Computernetzwerke
- Folien aus dem Linux-Kurs: http://plutz.net/training/damago_2024_09/[attachment]/Tag_06.html#autoslide2
- Computernetzwerke
- Frage: was ist der Unterschied zwischen einem Router und einem Switch?
- Frage: was ist eine Subnetzmaske?
- Aufgabe
- Hyper-V Netzwerkswitches
- Übung IP-Adressen
- Gateway
- Gateway-Config
- Stand am Dienstag
- Aufgabe
- Alle Rechner Konfigurieren:
- Gateway
- Green
- Orange
- Blue
- Testen
- Aufgabe
- NAT-Routing
- Hausaufgabe:
- Alternativ, grafisch:
- Recherche
- Experiment NAT-Routing
- Nächster Schritt: DHCP-Server
- Aufgabe: Interface eingrenzen
- Aufgabe: "statische" dynamische Adressen
- Aufgabe: Subnetzmasken
- Begriffe
- Aufgabe: Routing-Tabelle
- Hoppla! Das Experiment war anders geplant ;-)
- Aufgabe: Traceroute
- Aufgabe: DNS
- Aufgabe: IPv6
- IPv6 Adressschreibweise
- Verkürzt folgende IPv6-Adressen soweit wie möglich:
- Schreibt folgende IPv6-Adressen vollständig aus:
- Kurze Übung:
- Transportprotokolle
- UDP
- TCP
- ICMP
- DCCP, SCTP, andere....
Frage: was ist der Unterschied zwischen einem Router und einem Switch?
Switch
- "Hardwaremäßig"
- Weiterleitung
Router
- Verbindung zwischen Netzwerken
- Modem (was anderes)
Frage: was ist eine Subnetzmaske?
Aufgabe
Legt in Hyper-V einen privaten Netzwerkswitch an
- im Baum unter Hyper-V-Manager, rechtsklick auf DT-...-...
- Manager für Virtuelle Switches
- Neuer virtueller Netzwerkswitch
- Typ: Privat
Legt zwei virtuelle Maschinen an, die jeweils nur am Privaten Switch hängen.
- Generation 2
Arbeitsspericher, so dass es Sinn macht
- kein dynamischer Speicher
- Verbindung: der private Switch (Namen habt ihr selbst vergeben)
- Betriebssystem von Imagedatei
- Fertig stellen
- Rechtsklick auf die Maschine → Einstellungen → Sicherheit → Sicheren Start ausschalten
(ggf. ist ein Windows-Neustart nötig)
Gebt den Rechnern über den NetworkManager manuell eine IP-Adresse
- Rechtsklick auf NetworkManager-Icon im Systray
- Verbindungen bearbeiten
- Kabelgebundene Verbindung 1 (kann anders heißen)
- IPv4-Einstellungen
- "Methode" von DHCP auf Manuell umschalten
- "Hinzufügen" (von Adresse)
- 192.168.???.1/24, bzw. 192.168.???.2/24
ping 192.168.???.???
(den jeweils anderen Rechner)ip neighbor
odersudo arp -n
Alternativ zum NetworkManager:
~# ip address add ADRESSE/MASKE dev eth0
Hyper-V Netzwerkswitches
Übung IP-Adressen
- Setzt die IP des einen Rechners auf 192.168.4.1/24, den anderen auf 192.168.4.65/24.
- startet im Terminal einen Ping auf den jeweils anderen Rechner.
Fangt an, die Subnetzmasken zu ändern (nicht vergessen: jedesmal das Netzwerk trennen und wieder einschalten, um die Änderungen zu übernehmen).
- Funktioniert die Kommunikation mit unterschiedlichen Subnetzmasken
- Unter welchen Umständen funktioniert sie, bzw. funktioniert sie nicht?
Beobachtet die Fehlermeldungen von
ping
- Wenn ihr eine IP-Adresse im Internet anpingt (es gibt ja noch keine Internetverbindung)
- Wenn ihr eine nicht existente IP-Adresse anpingt
- usw...
Gateway
Legt einen Virtuellen Rechner an, der als Gateway verwendet wird
- anlegen in Hyper-V, wie bisher
- Rechtsklick → Einstellungen
- Hardware hinzufügen → Netzwerkkarte
- neue Netzwerkkarte mit Default-Switch verbinden
Installiert den Gateway-Rechner via Debian-Installer
- Beachtet dass der Installer der Live-CD ein bisschen spinnt
- Netzwerkinterface für die Installation: eth1 (kann auch der Andere sein)
Gateway-Config
In
/etc/network/interfaces
des Gateway-Rechners wird ein Netzwerkinterface, per default mitdhcp
konfiguriertTragt für das andere Interface eine statische IP-Konfiguration
ein, die eine Kommunikation, mit dem "grünen" und "orangen"
Rechner ermöglicht. (Recherche!)auto eth0 iface eth0 inet static address 192.168.4.254 # letzte Hostadresse im Subnetz netmask 255.255.255.0
- wenn ihr Erfolg habt, bootet der Rechner beim nächsten Start mit der korrekten Konfiguration
- via
~# ifup INTERFACE
und~# ifdown INTERFACE
, kann man die Konfiguration aus der Datei auch ohne Reboot anwenden
Stand am Dienstag
- Grüner Rechner
- privater Switch
- 192.168.4.1/24
- Gateway: keines
- Oranger rechner
- privater Switch
- 192.168.4.65/24
- Gateway: 192.168.4.254
- Gateway
- privater Switch
- 192.168.4.254/24
- default Switch
- dhcp
- Ping Orange ↔ Green
- Ping Orange ↔ Gateway
- Ping Green ↔ Gateway
- Ping Green ↔ 1.1.1.1 → Fehler!
- Ping Orange → 1.1.1.1 → keine Antwort
- Ping Orange ↔ 172er DHCP-Adresse von Gateway → Antwortet!
Aufgabe
Wir setzen einen Windows-Computer auf, der mit am default-Switch hängt.
- Hyper-V → Aktionen → Schnellerstellung → Windows 11
- 21 GB Download abwarten
- Maschine Verbinden/Starten
- Windows-Firewall deaktivieren
Stand danach
- Ping Blue ↔ Gateway
- Ping Blue ↔ Hyper-V-Spezial-Gateway (172.29.64.1)
- Ping Gateway ↔ Hyper-V-Spezial-Gateway (172.29.64.1)
- Ping Green ↔ Blue → Fehler!
- Ping Orange → Blue → keine Antwort
- Blue
- default Switch
- dhcp
- Gateway: 172.29.64.1
- Routen
- interface-Route nach 172.29.64.0/20
- default (0.0.0.0)-Route via Hyper-V-Spezial-Gateway (172.29.64.1)
Windows-Shell als Administrator ausführen
:> route add 192.168.4.0 mask 255.255.255.0 IP-Adresse-von-"Gateway"
(unter Linux wäre das gleiche)
~# ip route add 192.168.4.0/24 via IP-Adresse-von-"Gateway"
Am Gateway das Routing einschalten
~# echo 1 > /proc/sys/net/ipv4/ip_forward
Ping Blue ↔ Orange
:> ping 192.168.4.65
Alle Rechner Konfigurieren:
Gateway
Zielzustand wie angezeigt. Dateien müssen ggf. editiert werden.
eth0
und eth1
werden je nach Hyper-V-Konfiguration eingesetzt.
~# cat /etc/network/interfaces
auto lo
iface lo inet loopback
auto eth1
iface eth1 inet dhcp
auto eth0
iface eth0 inet static
address 192.168.4.254
netmask 255.255.255.0
~# echo 1 >/proc/sys/net/ipv4/ip_forward
bzw.
~# cat /etc/sysctl.d/10-ipforward.conf
net.ipv4.ip_forward = 1
Green
Gateway pingen: ~$ ping 192.168.4.254
Orange
(hier wird zusätzlich das Gateway gesetzt)
Blue
(Windows-Rechner)
Dieser Rechner bekommt bereits eine Default-Route vom Hyper-V-DHCP-Server.
Es muss noch eine zweite Route angelegt werden, um über "Gateway" in das Netz `192.168.4.0
zu kommen.
Windows-CMD-Shell als Admin:
:> route add 192.168.4.0 mask 255.255.255.0 172.29.70.180
Die letzte IP-Adresse ist die des Rechners "Gateway". Diese wird in jeder Hyper-V-Installation abweichen, muss also via ~$ ip address list
auf "Gateway" nachgeschlagen werden.
Testen
Auf "Blue": :> ping 192.168.4.65
Aufgabe
- Vergleicht die Ausgabe vom
ip route list
-Kommando auf Green und Orange - nutzt
ip route add ...
auf dem Rechner Green um die fehlende Route zu ergänzen (steht oben, ggf. hilft auch ein Chatbot) - Führt die Ping Kommandos zwischen Green ↔ Blue und Blue ↔ Green (mit entsprechenden IP-Adressen) aus
~# ip route add default via 192.168.4.254
oder
~# ip route add 0.0.0.0/0 via 192.168.4.254
Begriffe Router ↔ Gateway
- 1. Lehrbuch-Definition
- Router vermittelt zwischen IP-Netzen
- Gateway übersetzt zwischen verschiedenen Netzwerktechniken
Aber: DSL-Router, LTE-Router
- → entspricht nicht tatsächlich dem Sprachgebrauch
Nicht wie wir den Begriff im Kurs verwenden!
gutes Beispiel für diese Definition:
- VoIP-Gateway - Applikation die Anrufe aus dem Telefonnetz ins IP-Basierte VoIP-Netz vermittelt
- Email ↔ Fax Gateway
Eigentlich ein anderer Gateway-Begriff als hier im Netzwerkkurs
- 2. Loser Sprachgebrauch (wenn wir von Netzwerkrouting sprechen)
- Router übermittelt Traffic in spezifisches anderes (lokales) IP-Netz
- Das Gateway ist der Router der zum Rest des Internet / in ein übergeordnetes Netzwerk führt
→ Vorsicht, der Sprachgebrauch ist unscharf und kann sich nach Betriebskultur unterscheiden
NAT-Routing
Network Address Translation (Linuxer sagen auch Masquerading) ist eine Sonderfunktion von Routern, bei der die Quelladresse von weitergeleiteten Paketen umgeschrieben wird. Hier setzt der Router seine eigene IP-Adresse ein, aus Sicht eines weiteren Gateways erscheint es dann so, als ob das Paket vom ersten Router selbst ausgeht.
NAT-Routing auf dem Gateway aktivieren (eth1
/eth0
, je nachdem was das internetseitige Interface des Gatewa
ys ist)
~# apt-get install iptables
~# iptables -t nat -A POSTROUTING -o eth1 -j MASQUERADE
Hausaufgabe:
Auf dem grünen Rechner:
~# echo nameserver 192.109.42.41 >/etc/resolv.conf
Damit wird der Nameserver von IN-Berlin benutzt. → Webbrowser öffnen
- geht
Alternativ, grafisch:

Recherche
Die iptables
-Regel auf dem Gateway-Rechner ist nicht "rebootfest". Wie kann man dafür sorgen, dass sie beim Systemstart immer wieder hergestellt wird.
allgemein beim Systemstart
- als SystemD-Service-File
- als Cron-Job
- Achtung: keine Garantie bzgl. des Zeitpunktes zu dem die Config geladen wird! Es kann passieren, dass das Netzwerkinterface mehrere Sekunden online ist, bevor die Firewall-Regeln geladen werden.
wenn das Netzwerk konfiguriert wird
- Debian-Paket:
iptables-persistent
(nur Debian)
- Debian-Paket:
in
/etc/network/interfaces
pre-up /sbin/iptables -t nat ... ...
unterhalb deriface
-Zeile- Nachteil: viele Einträge machen das Config-File unübersichtlich → Auslagern in Script
Experiment NAT-Routing
Das NAT-Routing auf "Gateway" muss für dieses Experiment eingerichtet sein.
nutzt
ncat -vk
um auf dem "Orangen" Rechner einen TCP-Listener zu startenmit dem Parameter
-v
zeigtncat
die IP-Adresse und den Source-Port eingehender Verbindungen anmit dem Parameter
-k
kannncat
mehrere gleichzeitige Verbindungen annnehmen (Standardverhalten ist, dass alle weiteren Verbindungsversuche abgelehnt werden, nachdem die erste Verbindung besteht)Orange:
~$ ncat -vkl 1024
verbindet euch vom Rechner "Green" zu dem laufenden, "lauschenden"
ncat
- nutzt den Parameter
-p
um explizit einen Source-Port für die Verbindung zu wählen
- nutzt den Parameter
Was passiert mit Source-IP und -Port,
wenn ihr euch vom Rechner "Green" zu "Orange" verbindet?
wenn ihr euch vom Rechner "Gateway" zu "Orange" verbindet?
wenn ihr für die gleichzeitige Verbindung von beiden Rechnern den selben Source-Port wählt
Green:
~$ ncat orange 1024 -p 20000
Port 20000 ist danach belegt und kann nicht gleichzeitig von einem anderen Prozess benutzt werden
Startet einen Listener auf "Blue"
- Blue:
:> ncat -vkl 1024
- Blue:
Was passiert mit Source-IP und -Port
wenn ihr euch vom Rechner "Orange" zu "Blue" verbindet?
wenn ihr euch vom Rechner "Green" zu "Blue" verbindet?
wenn ihr für die gleichzeitige Verbindung von beiden Rechnern den selben Source-Port wählt
→ Das Gateway setzt die Source-IP auf seine eigene
→ ist der Source-Port bereits von einer anderen Verbindung belegt, wird auch der Port "maskiert"
Mit
iptables -t nat -F
könnt ihr die Network Address Translation deaktivieren- wie verhalten sich die Verbindungen aus dem vorherigen Aufgabenteil jetzt?
- (Hinweis: damit hier eine Verbindung zustande kommt, muss die Rückroute auf "Blue" gesetzt sein)
Nächster Schritt: DHCP-Server
Im internen Netzwerk soll die Netzwerkkonfiguration automagisch vergeben werden, so dass man auf Green und Orange keine Einstellungen mehr machen braucht.
- Hierzu dient das DHCP-Protokoll: https://en.wikipedia.org/wiki/Dynamic_Host_Configuration_Protocol
- der Dienst
dnsmasq
enthält unter Anderem einen DHCP-Server - schaut in die (weitestgehend auskommentierte) Config-Datei von dnsmasq und in die man-page und versucht den DHCP-Dienst für das 192.168.4.0er-Netzwerk zu konfigurieren
~# apt-get install dnsmasq
Editiere: /etc/dnsmasq.conf
→ einzige aktive Zeile:
dhcp-range=192.168.4.16,192.168.4.128,255.255.255.0,2h
dnsmasq neustarten: ~# systemctl restart dnsmasq
dnsmasq bei der Arbeit zusehen: ~# journalctl -u dnsmasq -f
→ Werden der grüne oder der orange Rechner neu gestartet, können wir die DHCP-Discover-Nachrichten sehen.
Aufgabe: Interface eingrenzen
Haltet das Journal am Gateway / DHCP-Server offen.
Am Windows-Rechner:
:> ipconfig /release
:> ipconfig /renew
- → Ihr beobachtet im Journal den DHCP-Discover vom Windows-Rechner (dnsmasq weigert sich aber eine Antwort zu geben, weil für das entsprechende Netz kein DHCP-Range konfiguriert ist)
Richtet dnsmasq so ein, dass es von vornherein nur DHCP-Discovers aus dem inneren Netzwerk empfängt
- entweder
interface=eth0
(Interface kann abweichen) - oder
listen-address=192.168.4.254
- entweder
Aufgabe: "statische" dynamische Adressen
Der DHCP-Server kann die Client-Rechner an ihrer MAC-Adresse eindeutig erkennen.
Der Rechner "Orange" soll immer die Adresse
.65
bekommen, und unter dem Namen "orange" im lokalen DNS registriert werden.Gleiches gilt für den Rechner "Green" mit der Adresse
.66
dhcp-host=00:15:5d:02:67:01,192.168.4.65,orange dhcp-host=00:15:5d:02:67:02,192.168.4.66,green
MAC-Adressen können (werden!) abweichen
- nach der Einrichtung sollten die Live-Systeme sich immer gegenseitig als "orange" und "green" pingen können.
Aufgabe: Subnetzmasken
Ein Rechner hat eine IP-Adresse und Subnetzmaske. Eine Applikation versucht sich zu einem bestimmten Zielrechner zu verbinden. Rechner im selben IP-Netz können direkt erreicht werden, Rechner in fremden Netzen müssen über einen Router angesprochen werden.
Subnetzmasken können in Lang- oder Kurznotation angegeben sein, z.B. 255.255.255.0
oder /24
.
Rechnet aus, ob die folgenden Verbindungen geroutet werden müssen:
Eigene IP | Subnetzmaske | Zielrechner | Routing ja/nein |
---|---|---|---|
192.168.4.12 | 255.255.255.0 | 192.168.4.190 | nein |
192.168.4.12 | 255.255.255.0 | 172.25.64.3 | ja |
192.168.4.12 | 255.255.255.0 | 192.168.3.190 | ja |
172.25.67.3 | 255.255.240.0 | 172.25.67.90 | nein |
172.25.67.3 | 255.255.240.0 | 172.25.71.90 | nein |
172.25.67.3 | 255.255.240.0 | 172.25.63.90 | ja |
107.24.9.108 | 255.255.128.0 | 107.24.100.1 | nein |
107.24.9.108 | 255.255.192.0 | 107.24.100.1 | ja |
107.24.9.108 | 252.0.0.0 | 78.44.9.92 | ja |
200.200.100.4 | 255.254.0.0 | 200.199.101.3 | ja |
200.200.100.4 | /15 | 200.201.99.3 | nein |
200.200.100.4 | /17 | 200.201.99.3 | ja |
1.1.1.1 | /29 | 8.8.8.8 | ja |
1.1.1.1 | /29 | 1.1.1.10 | ja |
1.1.1.1 | /28 | 1.1.1.10 | nein |
1.1.1.1 | /27 | 1.1.1.10 | nein |
1.1.1.1 | /26 | 1.1.1.10 | nein |
1.1.1.1 | /26 | 1.1.1.5 | nein |
1.1.1.1 | /30 | 1.1.1.5 | ja |
Rechenbeispiel: Subnetzmaske 255.255.240.0
Adr. 10101100 00011001 0100|0011 00000011
Maske 11111111 11111111 1111|0000 00000000
Ziel 10101100 00011001 0100|0011 01011010
10101100 00011001 0100|0111 01011010
10101100 00011001 0011|1111 01011010
^
'- Netzgrenze
Dort wo die Einsen in der
Netzmaske enden
172 25 67 90
10101100 00011001 0100|0011 01011010 <- IP-Adresse
10101100 00011001 0100|0000 00000000 <- Netzadresse
172 25 64 0
10101100 00011001 0100|1111 11111111 <- Broadcastadresse
172 25 79 255
Begriffe
Klasse A: 255.0.0.0 bzw /8 Klasse B: 255.255.0.0 bzw /16 Klasse C: 255.255.255.0 bzw /24
- CIDR
- Classless Inter-Domain Routing
Beispiel CIDR-Netz: 255.255.240.0 Aber CIDR-Notation: /20
Aufgabe: Routing-Tabelle
Wir arbeiten am Windows-Rechner, befehle um Routen zu setzten sind
:> route add 192.168.4.0 mask 255.255.255.0 172.29.70.180
(Gateway wird abweichen):> route delete 192.168.4.0
:> route add 192.0.0.0 mask 255.0.0.0 172.29.70.180
Mit den Kommandos oben, könnt ihr folgende verschieden Zustände in der Routing-Tabelle herstellen
- Keine Route außer der Default-Route
- Eine spezifische Route ins Netz 192.168.4.0
- Eine allgemeinere Route ins Netz 192.0.0.0
Probiert in jedem der folgenden Zustände
- Einen Ping an den Orangen Rechner: 192.168.4.65
- Einen Ping an den öffentlichen IN-Berlin Nameserver: 192.109.42.41
- Einen Ping an den öffentlichen Internet-Host: 1.1.1.1 (Cloudflare-Nameserver)
- Fertigt eine Tabelle an, in der ihr seht, welche Pings bei welchen Routing-Varianten funktionieren. und welche nicht
default | 192.168.4.0/24 | 192.0.0.0/8 | |
---|---|---|---|
1.1.1.1 | ping | ping | ping |
192.168.4.65 | - | ping | ping |
192.109.42.41 | ping | ping | ping (Hoppla!) |
Hoppla! Das Experiment war anders geplant ;-)
Der Rechner versucht jedes Paket über das Gateway zu Routen, das laut Routing-Tabelle am ehesten der Ziel-IP-Adresse entspricht.
- Ein Ping nach 1.1.1.1 wird in jedem Fall über das Default-Gateway geroutet, da keine andere Route existiert, die zu der Zieladresse passt.
Ein Ping nach 192.168.4.65 wird
- über das Default-Gateway geroutet, wenn keine genauere Route existiert → in diesem Fall erreichen wir den Zielrechner nicht!
- über unser internes Gateway geroutet, wenn die Route dafür gesetzt ist
- über ein Gateway geroutet, dass ins übergeordnete Netz 192.0.0.0 führt, wenn keine genauere Route existiert
Ein Ping nach 192.109.42.41 wird
- über das Default-Gateway geroutet wenn keine genauere Route existiert
- über das Default-Gateway geroutet, wenn nur eine Route nach 192.168.4.0 existiert, da das Zielnetz dieser Route nicht zur IP passt. Das default-Gateway stellt in dem fall die genaueste passende Route.
fälschlicherweise über das interne Gateway geroutet, wenn der Rechner glaubt, dass dieses eine Route nach 192.0.0.0 darstellt. Diese Route ist passend und spezifischer als die Default-Route.
- Unerwarteterweise funktioniert der Ping trotzdem, denn das Interne Gateway reicht das Paket seinerseits an das korrekte Default-Gateway weiter - das Experiment war so nicht geplant ;-)
Aufgabe: Traceroute
Das Ping Kommando enthält einen Switch für die TTL.
- setzt einen Ping nach 1.1.1.1 ab
- gebt eine TTL von 32 an
- Führt weitere Pings mit immer kleiner werdender TTL aus. → was ist eigentlich die TTL?
- was machen die Programme
traceroute
bzw.tracert
unter Linux und Windows?
Aufgabe: DNS
https://en.wikipedia.org/wiki/Domain_Name_System
- Was sind DNS-Record-Typen?
- Was sind Subdomains, Top-Level-Domains, Second-Level-Domains?
- Schlagt mit dem Kommando
dig
unter Linux denNS
-Record der Top-Level-Domainde.
nach - Was sind die DNS-Root-Server?
- Planspiel: Was könnte passieren wenn die US-Amerikanische RREEGGIEERUNG!!! verbietet, dass .de-Domains vergeben werden ;-)
Aufgabe: IPv6
An unseren bestehenden Rechnern kann man auch IPv6-Adressen und Routen setzen.
~# ip address list
~# ip address add ADRESSE/MASKE dev eth0
~# ip address del ADRESSE/MASKE dev eth0
~# ip route list
~# ip -6 route list
~# ip route add NETZWERK/MASKE via GATEWAY
~# ip route add NETZWERK/MASKE via GATEWAY
Unser privates Netzwerk soll das
/64
er-Netzfc00:affe:d00f::
kriegen- Das Gateway dementsprechend als
fc00:affe:d00f::1
- der grüne und orange Rechner jeweils mit einer anderen Host-Adress
- Tragt das Gateway zunächst manuell in die Routing-Tabelle von Orange und Green ein
- Das Gateway dementsprechend als
Am Hyper-V-Netz vergeben wir das Netz
fc00:beef:cace::/64
- Das Gateway kriegt die entsprechende Adresse am richtigen INterface
Auf dem Rechner Blue kann in Network-Connections → Properties → IPv6 die Adresse und Gateway klicken
- oder irgendwie am CLI einstellen
IPv6-Forwarding am Gateway aktiviert man in der Spezialdatei
/proc/sys/net/ipv6/conf/all/forwarding
Führt folgende Experimente durch
- Können sich Orange und Green auf ihrer jeweiligen
fe80
-Adresse pingen? - Können sich Orange und Green auf ihrer jeweiligen
fc00
-Adresse pingen? - Kann Orange das Gateway anpingen?
- Kann Orange den Rechner Blue anpingen?
- Was sagt der
traceroute
von Orange nach Blue
- Können sich Orange und Green auf ihrer jeweiligen
IPv6 Adressschreibweise
Verkürzt folgende IPv6-Adressen soweit wie möglich:
0000:0000:0000:0000:0000:0000:0000:0001
-> ::1
feed:5eed:0070:face:0000:0000:0000:0000
-> feed:5eed:70:face::
b1ac:0000:0000:0000:00c0:00ff:000e:000e
-> b1ac::c0:ff:e:e
1000:2000:3000:4000:5000:0006:0007:0008
-> 1000:2000:3000:4000:5000:6:7:8
0000:0000:d0d0:0000:0000:dead:0000:0000
-> ::d0d0:0:0:dead:0:0 (standard!)
-> Ebenfalls zulässig / verständlich
0:0:d0d0::dead:0:0
0:0:d0d0:0:0:dead::
Schreibt folgende IPv6-Adressen vollständig aus:
c0:1d::beef
-> 00c0:001d:0000:0000:0000:0000:0000:beef
0:bee::f00d:0:1
-> 0000:0bee:0000:0000:0000:f00d:0000:0001
0:1:d::a:1:e
-> 0000:0001:000d:0000:0000:000a:0001:000e
Kurze Übung:
Legt euch die VMs Green und Orange auf dem Bildschirm bereit.
lasst auf Orange ein Nncat im TCP-Modus laufen:
~$ ncat -l 1024
Verbindet den anderen Rechner damit:
~$ ncat orange 1024
schreibt ein paar Zeilen Text in die verbindung
öffnet die Hyper-V-Einstellungen von Orange.
Datei → Einstellungen → Netzwerk → Virtuelles Switch
Setzt den Switch auf "Nicht Verbunden" → Anwenden
Schreibt ein paar weitere Zeilen auf die Verbindung
→ Die Daten kommen auf dem anderen Rechner noch nicht an.
Verbindet den Switch wieder → Anwenden
→ nach einem Augenblick werden die gesendeten Daten nachgereicht
Führt das gleiche Experiment mit UDP durch:
green:~$ ncat -ul 1024 orange:~$ ncat -u green 1024
Transportprotokolle
UDP
- Pakete enthalten Portnummern, um die Sendende / Empfangende Applikation auf den kommunizierenden Rechnern zu identifizieren
- Geringer Overhead
- Geringe Latenz
TCP
Pakete enthalten Portnummern, Sequenznummern, und weiteres Signaling-Overhead
- Korrekte Reihenfolge und Vollständigkeit versendeter Daten wird sichergestellt
- Benötigt Buffering bei Sender und Empfänger (um Bestätigung / Vollständigkeit von Daten abzuwarten)
- Etwas mehr Overhead als UDP
- Latenz durch Buffering
- Verbindung kann abbrechen wenn das Betriebssystem entscheidet, dass die Gegenstelle zu lange nicht geantwortet hat (Sendbuffer Läuft über, etc.)
Applikationen suchen sich aus, ob sie auf einem TCP-Kanal (Stream) oder per UDP (Datagram) kommunizieren. Einige Applikationsprotokolle benutzen immer TCP als Transportschicht, einige benutzen immer UDP, bei wenigen ist die Transportschicht austauschbar.
ICMP
- Beispiel: ping
- Signalisiert Fehlermeldungen (z.B. vom Router: Destination net unreachable)
- Applikationen können idR. keine fertige ICMP-Funktionalität vom OS anfordern (Ping arbeitet auf einem IP-Socket und baut ICMP-Pakete "von Hand")
DCCP, SCTP, andere....
- Wenig verbreitet
- Braucht idR. root/Administrator-Rechte, da nicht vom OS bereitgesstellt