**Dies ist eine alte Version des Dokuments!**
Aufgaben B: IP-Adresse & Subnetzmaske
Aufgabe B1: IPv4-Adressen
- Wie viele verschiedene IPv4-Adressen gibt es?
- Reicht dies aus, um alle Geräte im Internet eindeutig zu adressieren?
Aufgabe B2: Subnetzmaske
Eine typische Subnetzmaske in einem Heimnetzwerk ist $255.255.255.0$. Wie viele verschiedene Geräte kann man maximal haben in diesem Subnetz?
Aufgabe B3: Mein IP
- Stelle sicher, dass dein Computer mit dem Eduroam-Netz der Schule verbunden ist. Bestimme dann die (lokale) IP deines Geräts in diesem Subnetz, sowie die Subnetzmaske (siehe unten).
- Trage deine IP mit Name in Tabelle an Wandtafel.
- Wie viele Geräte können sich mit diesem Subnetz verbinden? Reicht dies oder sollte man die Subnetzmaske anpassen?
Win:
- Terminal (Eingabeaufforderung): ipconfig
Mac:
- Terminal: ifconfig
- Systemeinstellung / Netzwerk / WLAN / Weitere Optionen / TCP/IP
Aufgabe B4: IPv4
- Wie du gesehen hast, reicht der IPv4-Standard nicht aus, um alle Geräte im Internet zu adressieren. Aus wie vielen Bytes müsste eine IP-Adresse mindestens bestehen, damit dies aktuell möglich ist?
- Tatsächlich wurde dieses Problem mit IPv6 bereits angegangen. Studiere den Eintrag zu IPv6 unten:
Aufgabe B5 (CIDR)
Subnetzmasken können auch durch CIDR-Suffix kürzer ausgedrückt werden. Dieser Wert gibt die Anzahl Bits an, die in der Subnetzmaske $1$ sind. Z.B. steht $/10$ für $255.192.0.0$.
a) Wandle um $4-$Byte-Notation $\rightarrow$ CIDR-Notation:
- i) $255.255.255.255$
- ii) $255.255.255.0$
- iii) $255.240.0.0$
b) Wandle um CIDR-Notation $\rightarrow$ $4-$Byte-Notation:
- i) $/7$
- ii) $/25$
Aufgabe B6: Subnetzmasken
- Wie viele Hosts kann ein Netzwerk mit Subnetzmaske $255.255.255.192$ haben?
- Wie viele Hosts kann ein Netzwerk mit CIDR /14 haben?
- Welche Subnetzmaske (normal und CIDR) sollte der Informatiker einer Firma mit ca. $5000$ Geräten für das Netzwerk der Firma wählen?
Zusatzaufgaben (Programmieren)
a)
Schreibe ein Python-Programm (z.B. eine Funktion), welches für einen gegebenen CIDR-Suffix die entsprechende Subnetzmaske im $4$-Byte-Format (z.B. $255.192.0.0$) bestimmt und umgekehrt.
b)
- Subnetzmaske in andere Formate umwandeln:
subnet_dec_to_bin(subnet) *
subnetbintodec(subnetbin)subnet_bin_to_cidr(subnet_bin) *
subnetdectocidr(subnet) *cidr_to_subnet_bin(cidr) *
cidrtosubnetdec(cidr)
- Abzahl mögliche Hosts für Subnetzmaske (in versch. Formaten) bestimmen:
nr_hosts_from_subnet_bin(subnet_bin) *
nrhostsfromsubnetdec(subnetdec) * `nrhostsfromcidr(cidr)
c)
Erweitere deinen Code aus a) und implementiere einen ultimativen Netzwerk-Rechner im Stile der folgenden Website: https://www.heise.de/netze/tools/netzwerkrechner/ Man soll seine IP-Adresse und CIDR-Suffix angeben können und zurück erhalten:
- Subnetzmaske (verwende Code von vorheriger Zusatzaufgabe)
- Anzahl Hosts
Die weiteren Angaben (IP-Range, Broadcast, …) können dann später hinzugefügt werden. Falls du bereits über Klassen/OOP Bescheid weisst, wäre diese Aufgabe ein gutes Anwendungsbeispiel.