Differences
This shows you the differences between two versions of the page.
| Next revision | Previous revision | ||
| lehrkraefte:blc:informatik:glf22:crash-course-network [2023/03/31 09:16] – created Ivo Blöchliger | lehrkraefte:blc:informatik:glf22:crash-course-network [2023/03/31 12:51] (current) – [NAT] Ivo Blöchliger | ||
|---|---|---|---|
| Line 1: | Line 1: | ||
| + | ====== Netzwerk ====== | ||
| + | * IP-Adressen (IPv4) | ||
| + | * öffentliche IP-Adressen | ||
| + | * private Netze | ||
| + | * eigene IP-Adresse, IP-Adresse gegen aussen | ||
| + | * Routing | ||
| + | * DNS (Domain Name Service) | ||
| + | * Domain, Subdomain | ||
| + | * Hierarchische Auflösung, Caching | ||
| + | * Ports | ||
| + | * Typische Ports: https (443), http (80), dns (53), ssh (22) | ||
| + | * Dynamische Ports | ||
| + | * NAT (Network Address Translation) | ||
| + | ===== IP-Adresse (IPv4) ===== | ||
| + | Services, die Ihre öffentliche(n) IP-Adresse(n) anzeigen: | ||
| + | * https:// | ||
| + | * https:// | ||
| + | * https:// | ||
| + | |||
| + | Kommandos, die Ihre lokalen IP-Adressen anzeigen: | ||
| + | <code bash> | ||
| + | ipconfig | ||
| + | ip addr # Linux | ||
| + | </ | ||
| + | |||
| + | Kommando, das Ihre öffentliche IP-Adresse anzeigt: | ||
| + | <code bash> | ||
| + | curl --silent https:// | ||
| + | curl --silent https:// | ||
| + | </ | ||
| + | |||
| + | ==== Private und reservierte Netzwerke ==== | ||
| + | Folgende Bereiche von IP-Adressen sind reserviert und «gibt es nicht» im Internet: | ||
| + | * 10.0.0.0 bis 10.255.255.255 | ||
| + | * 172.16.0.0 bis 172.31.255.255 | ||
| + | * 192.168.0.0 bis 192.168.255.255 (für kleine Netzwerke, typischerweise zu Hause) | ||
| + | * 127.0.0.0 bis 127.255.255.255 | ||
| + | |||
| + | ==== Anatomie einer IP-Adresesse ==== | ||
| + | * 4 Bytes, normalerweise Dezimal geschrieben mit 3 Punkten getrennt. | ||
| + | * Aufgeteilt in Netzteil (erste $n$ Bits) und Hostteil (letzte $32-n$ Bits). | ||
| + | * Netzmaske gibt an, wie viele Bits zum Netzteil gehören. Binär sind das immer $n$ Einsen, gefolgt von $32-n$ Nullen. Beispiele: | ||
| + | * 255.255.255.0 | ||
| + | * 255.255.0.0 | ||
| + | * 255.255.255.254 (31 Bit Netzmaske) | ||
| + | |||
| + | ==== Datenpakete Routing ==== | ||
| + | Aussprache: «ruuting», | ||
| + | * Internet: Ein Netz, das Netzwerke verbindet (Netzteil der IP-Adresse). | ||
| + | * Datenpaket: | ||
| + | * Zieladresse, | ||
| + | * Absenderadresse, | ||
| + | * Meta-Daten | ||
| + | * Payload (Inhalt, Nutzlast) | ||
| + | * Routing: Datenpakete von einem Netz ins nächste weiterleiten. | ||
| + | * Router: «Computer mit 2 oder mehr Netzwerkanschlüssen» (für jedes verbundene Netz eines). | ||
| + | * Aus den ersten Bits der Zieladresse wird entschieden, | ||
| + | * Meist mehrere Möglichkeiten, | ||
| + | |||
| + | Packetverfolgung ;-) | ||
| + | <code bash> | ||
| + | tracert tech-lab.ch | ||
| + | traceroute tech-lab.ch | ||
| + | </ | ||
| + | ===== DNS ===== | ||
| + | Domain Name Service. «It's always DNS» (wenn es Netzwerkprobleme gibt) | ||
| + | * Telefonbuch für IP-Adressen | ||
| + | * tech-lab.ch ist (für Menschen) einfacher als 81.62.232.82 | ||
| + | * TLD: Top Level Domain (z.B. .ch, .com, .de etc). Der letzte Teil eines Domain-Names. | ||
| + | * Domain: Name.TLD, z.B. tech-lab.ch, | ||
| + | * Subdomain: subdomain.name.tld, | ||
| + | * http:// | ||
| + | |||
| + | ==== Reservierung einer Domain ==== | ||
| + | * TLD legt Regeln für mögliche Domains fest. | ||
| + | * Registrare verwalten Domain-Reservierungen. Kostet je nach Domain und Registrar zwischen 10.- und 100.- pro Jahr (oder mehr) | ||
| + | * Domain grabbing (z.B. Expo01 Story) | ||
| + | * Domain Streitigkeiten (zu blöd, wenn Familie Maggi den Domain maggi.com benutzt hat), siehe https:// | ||
| + | |||
| + | |||
| + | Lookup auf der Kommandozeile: | ||
| + | <code bash> | ||
| + | nslookup tech-lab.ch | ||
| + | host tech-lab.ch | ||
| + | </ | ||
| + | Die Auflösung funktioniert auch in die entgegengesetzte Richtung, also z.B. | ||
| + | <code bash> | ||
| + | nslookup 81.62.232.82 | ||
| + | </ | ||
| + | Wer ist also der Internetprovider vom Tech-Lab? | ||
| + | <WRAP todo> | ||
| + | * Finden Sie heraus, bei welchem Anbieter www.ksbg.ch ghostet ist. | ||
| + | * Finden Sie heraus, wer der Internetprovider der KSBG ist. | ||
| + | <hidden Lösungshinweise> | ||
| + | * IP-Adresse zu www.ksbg.ch bestimmen, dann diese IP-Adresse wieder einem Namen zuordnen. | ||
| + | * Bestimmen Sie dazu Ihre gegen aussen sichtbare IP-Adresse und ordnen Sie dieser einen Namen zu). | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ==== Anatomie der Namensauflösung ==== | ||
| + | * Root-Server | ||
| + | * Wissen, welche Server für TLD-Auflösungen zuständig sind (z.B. für .ch-Domains). | ||
| + | * TLD DNS (z.B. für .ch) | ||
| + | * Wissen, welche Nameserver für einen bestimmten Domain zuständig sind (z.B. für tech-lab.ch) | ||
| + | * Authoritative Nameserver | ||
| + | * Kennt alle Subdomain, Mailserver etc. für einen einen Domain. | ||
| + | * Nameserver vom Provider: Kennt die IP noch, oder fragt nach (Caching) | ||
| + | * Nameserver vom Modem/ | ||
| + | * Lokaler Computer: Kennt die IP noch, oder fragt nach (Caching) | ||
| + | |||
| + | Die Anfragen werden zwischengespeichert während einer gewissen Zeit (TTL, Time to live), meist Stunden bis Tage. | ||
| + | |||
| + | Gecashte Einträge anzeigen (zeigt auch, mit welchen Adressen ihr Computer letztlich höchstwahrscheinlich kommuniziert hat). | ||
| + | <code bash> | ||
| + | ipconfig -displaydns | ||
| + | </ | ||
| + | |||
| + | Zuständige Nameserver für einen Domain finden: | ||
| + | <code bash> | ||
| + | nslookup -type=ns tech-lab.ch | ||
| + | host -t ns tech-lab.ch | ||
| + | dig ns tech-lab.ch | ||
| + | </ | ||
| + | |||
| + | |||
| + | <WRAP todo> | ||
| + | * Finden Sie heraus, bei welchem Provider wohl der Domain-Name ksbg.ch reserviert wurde. | ||
| + | <hidden Lösungshinweis> | ||
| + | Finden Sie heraus, welche Nameserver für ksbg.ch zuständig sind. Besuchen Sie dann die entsprechende Webseite. | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | ===== Ports ===== | ||
| + | Bei einem Verbindungsaufgaufbau ist nicht nur die IP-Adresse, sondern auch die Portnummer wichtig. | ||
| + | |||
| + | <WRAP todo> | ||
| + | * Laden Sie folgendes Archiv: {{lehrkraefte: | ||
| + | * Navigieren Sie auf der Kommandozeile ins entpackte Verzeichnis und starten Sie einen einfachen Webserver mit | ||
| + | <code bash> | ||
| + | python -m http.server | ||
| + | </ | ||
| + | * Verbinden Sie sich dann auf http:// | ||
| + | * Betrachten Sie die Ausgabe auf der Konsole. | ||
| + | |||
| + | <hidden Telnet auf Windows ist offenbar 💩> | ||
| + | * Überprüfen Sie auf der Kommandozeile, | ||
| + | <code bash> | ||
| + | telnet localhost 8000 | ||
| + | </ | ||
| + | * Wenn dies fehlschlägt, | ||
| + | * Machen Sie eine Webanfrage «von Hand» auf der Kommandozeile: | ||
| + | <code bash> | ||
| + | telnet localhost 8000 | ||
| + | </ | ||
| + | und geben Sie dann | ||
| + | <code txt> | ||
| + | GET / HTTP/1.1 | ||
| + | </ | ||
| + | gefolgt von zwei mal < | ||
| + | Das wird wohl nicht angezeigt etc, aber die Antwort vom Webserver sollten Sie sehen. | ||
| + | </ | ||
| + | </ | ||
| + | |||
| + | <WRAP todo> | ||
| + | * Verbinden Sie sich aufs Tech-Lab Netzwerk (falls möglich). | ||
| + | * Wenn Ihr Webserver gestartet ist, geben Sie jemanden die IP-Adresse Ihres Computers (im Tech-Lab Netz 192.168.1.xyz). Er soll per http:// | ||
| + | * Sie dürfen gerne «Ihre» Webseite modifizieren oder weitere Dinge hinzufügen. | ||
| + | </ | ||
| + | |||
| + | ====== NAT ====== | ||
| + | Network Address Translation. | ||
| + | |||
| + | * Problem: Theoretisches Limit von $2^{32}$ IP-Adressen, | ||
| + | * Lösung IPv6 ($2^{128}$ Adressen), aber niemand will umstellen... | ||
| + | * Workaround: NAT | ||
| + | * Am Beispiel der Schule: | ||
| + | * Eine öffentliche IP-Adresse gegen aussen. | ||
| + | * Datenpakete nach draussen werden vom Gateway (erster Router) umadressiert und sich die Verbindungsdetails (IP/ | ||
| + | * Einkommende Antworten werden mit gemerkter Liste wieder umadressiert und an korrekte interne IP weiter geleitet. | ||
| + | |||
| + | <WRAP todo> | ||
| + | * Verbinden Sie sich auf das Schule-SG WLAN | ||
| + | * Verfolgen Sie die Stationen eines Datenpakets zum tech-lab.ch Server mit | ||
| + | <code bash> | ||
| + | tracert tech-lab.ch | ||
| + | </ | ||
| + | * Finden Sie eine interne IP vom Cluster (d.h. eine IP eines private Netzwerks, aber nicht ihres eigenen)? | ||
| + | </ | ||