Unterschiede
Hier werden die Unterschiede zwischen zwei Versionen der Seite angezeigt.
Beide Seiten, vorherige Überarbeitung Vorherige Überarbeitung Nächste Überarbeitung | Vorherige Überarbeitung | ||
gf_informatik:web_sca:netzwerke:aufgaben_d [2023-11-12 18:40] – [Lösungen] sca | gf_informatik:web_sca:netzwerke:aufgaben_d [2023-11-16 19:48] (aktuell) – [Aufgabe D4: Umrechnungen Repetition] sca | ||
---|---|---|---|
Zeile 15: | Zeile 15: | ||
In einem Subnetz mit Maske 255.255.255.192 hat ein Laptop die IP-Adresse 192.168.1.102. Aufgrund der Maske ist festgelegt, welche anderen IP-Adressen im gleichen Subnetz vergeben werden dürfen. Bestimme, welche der folgenden IP-Adressen in diesem Subnetz vergeben werden können und welche nicht: | In einem Subnetz mit Maske 255.255.255.192 hat ein Laptop die IP-Adresse 192.168.1.102. Aufgrund der Maske ist festgelegt, welche anderen IP-Adressen im gleichen Subnetz vergeben werden dürfen. Bestimme, welche der folgenden IP-Adressen in diesem Subnetz vergeben werden können und welche nicht: | ||
- | * 192.168.1.87 | ||
* 192.168.1.33 | * 192.168.1.33 | ||
+ | * 192.168.1.87 | ||
* 192.168.1.130 | * 192.168.1.130 | ||
Begründe deine Antworten. Tipp 1: Es muss gerechnet werden, verwende dafür Python/ | Begründe deine Antworten. Tipp 1: Es muss gerechnet werden, verwende dafür Python/ | ||
+ | |||
+ | *Optional:* (aber sehr empfohlen): Schreibe einen Code, mit dem du einfach IP-Adressen und Subnetzmasken von der dezimalen 4-Byte-Notation in die Binär-Notation umwandeln kannst und umgekehrt. Schreibe z.B. folgende Funktionen: | ||
+ | <code python> | ||
+ | print(ip_dec_to_bin([133, | ||
+ | print(ip_bin_to_dec(" | ||
+ | </ | ||
++++Tipps Python/ | ++++Tipps Python/ | ||
Zeile 56: | Zeile 62: | ||
1. Wähle eine passende **globale IP-Adresse** für das Netzwerk. | 1. Wähle eine passende **globale IP-Adresse** für das Netzwerk. | ||
+ | ==== Aufgabe D4: Umrechnungen Repetition ==== | ||
+ | |||
+ | Solche Aufgabentypen hast du bereits gelöst. | ||
+ | |||
+ | 1. Wandle die Maske von der 4-Byte-Notation 255.254.0.0 in die CIDR-Notation um | ||
+ | 1. Wie viele IP-Adressen können im Subnetz aus 1. vergeben werden? | ||
+ | 1. Im Netzwerk einer Firma benutzen allerhöchstens $1000$ Geräte das Netzwerk. Welche Maske (in 4-Byte-Notation) sollte gewählt werden? | ||
+ | 1. In einem Netzwerk mit Maske /20 existiert ein Gerät mit IP 29.185.149.170. Ist es möglich, dass im gleichen Netzwerk auch die IP 29.185.144.42 vergeben wird? | ||
+ | |||
+ | ==== Aufgabe D5: Broadcast und Netzwerk Adresse ==== | ||
+ | |||
+ | Wir haben bereits gesehen, dass man beim Berechnen der Anzahl IP-Adressen, | ||
+ | |||
+ | * Die kleinste mögliche erlaubte IP-Adresse ist die sogenannte **Netzwerk Adresse.** Diese kann man als die Adresse des gesamten Netzwerks betrachten. | ||
+ | * Die grösste mögliche erlaubte IP-Adresse heisst **Broadcast Adresse.** Über diese kann man direkt alle Geräte des Subnetzes Adressieren. | ||
+ | |||
+ | In dieser Aufgabe geht es darum, für ein vorgegebenes Netzwerk diese beiden Spezialadressen zu ermitteln. Klicke auf " | ||
+ | |||
+ | ++++Tipps| | ||
+ | |||
+ | Stelle die Maske und die vorgegebene IP-Adresse im Binärsystem dar. Verwende dafür wieder Python. Die Netzwerk Adresse und Broadcast Adressen stimmen in dem Teil, in dem die Maske aus Einsen besteht mit der vorgegebenen IP-Adresse überein. Um die Netzwerk Adresse zu erhalten, füllst du den Rest mit Nullen auf (kleinste mögliche erlaubte IP-Adresse. Wie ermittelt man die Broadcast Adresse? | ||
+ | |||
+ | ++++ | ||
+ | |||
+ | Ermittle die **Netzwerk Adresse** und die **Broadcast Adresse** für ein Netzwerk mit Maske ..., in dem die IP-Adresse ... vorkommt: | ||
+ | |||
+ | 1. Maske /24, IP-Adresse: 192.168.1.127 | ||
+ | 1. Maske /20, IP-Adresse: 29.185.149.17 | ||
+ | 1. In den beiden Netzwerken von 1. und 2.: Welches sind die kleinste und grösste IP-Adressen, | ||
===== Lösungen ===== | ===== Lösungen ===== | ||
Zeile 67: | Zeile 102: | ||
++++Aufgabe D2| | ++++Aufgabe D2| | ||
- | * 192.168.1.87: nicht gleiches NW | + | * 192.168.1.33: nicht gleiches NW |
- | * 192.168.1.33: gleiches NW | + | * 192.168.1.87: gleiches NW |
* 192.168.1.130: | * 192.168.1.130: | ||
Zeile 80: | Zeile 115: | ||
++++ | ++++ | ||
+ | ++++Aufgabe D4| | ||
+ | |||
+ | 1. $15$ | ||
+ | 1. $131070$ | ||
+ | 1. 255.255.252.0 | ||
+ | 1. Ja. Wandle IP-Adressen und Masken ins Binärsystem um, um dies zu zeigen! Verwende dazu Python. | ||
+ | |||
+ | |||
+ | ++++ | ||
+ | |||
+ | ++++Aufgabe D5| | ||
+ | |||
+ | 1. Netzwerk Adresse: 192.168.1.0, | ||
+ | 1. Netzwerk Adresse: 29.185.144.0, | ||
+ | 1. 192.168.1.1 / 192.168.1.254 und 29.185.144.1 / 29.185.159.254 | ||
+ | |||
+ | |||
+ | ++++ | ||
+ | |||
+ | |||
+ | <nodisp 2> | ||
+ | <color blue> | ||
+ | |||
+ | ++++Code IP bin <-> dec| | ||
+ | |||
+ | <code python> | ||
+ | def ip_dec_as_string(ip): | ||
+ | st = "" | ||
+ | for nr in ip: | ||
+ | st += str(nr) + " | ||
+ | return st[0: | ||
+ | |||
+ | def ip_dec_list_to_bin(ip): | ||
+ | # [133, | ||
+ | bin_ip = '' | ||
+ | for nr in ip: | ||
+ | b = bin(nr)[2:] | ||
+ | while len(b) < 8: | ||
+ | b = ' | ||
+ | bin_ip += b + " | ||
+ | return bin_ip[0: | ||
+ | |||
+ | def ip_dec_to_bin(ip): | ||
+ | # " | ||
+ | ip = [int(x) for x in ip.split(' | ||
+ | return ip_dec_list_to_bin(ip) | ||
+ | |||
+ | def ip_bin_to_dec_list(ip_bin): | ||
+ | # " | ||
+ | ip = [] | ||
+ | ip_bin = ip_bin.split(' | ||
+ | for nr in ip_bin: | ||
+ | ip.append(int(nr, | ||
+ | return ip | ||
+ | |||
+ | def ip_bin_to_dec(ip_bin): | ||
+ | # " | ||
+ | ip = ip_bin_to_dec_list(ip_bin) | ||
+ | ip = [str(x) for x in ip] | ||
+ | return ' | ||
+ | |||
+ | def mask_bin_to_cidr(mask_bin): | ||
+ | count = 0 | ||
+ | for x in mask_bin: | ||
+ | if x == ' | ||
+ | return count | ||
+ | |||
+ | print(ip_dec_list_to_bin([133, | ||
+ | print(ip_dec_to_bin(" | ||
+ | print(ip_bin_to_dec_list(" | ||
+ | print(ip_bin_to_dec(" | ||
+ | |||
+ | def ip_dec_same_network_all_dec(mask, | ||
+ | cidr = mask_bin_to_cidr(ip_dec_to_bin(mask)) | ||
+ | ip_1 = '' | ||
+ | ip_2 = '' | ||
+ | for i in range(cidr): | ||
+ | if ip_1[i] != ip_2[i]: | ||
+ | return False | ||
+ | return True | ||
+ | |||
+ | print(ip_dec_same_network_all_dec(" | ||
+ | print(ip_dec_same_network_all_dec(" | ||
+ | print(ip_dec_same_network_all_dec(" | ||
+ | </ | ||
+ | |||
+ | ++++ | ||
+ | </ | ||