Show pageOld revisionsBacklinksBack to top This page is read only. You can view the source, but not change it. Ask your administrator if you think this is wrong. ====== 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://ipchicken.com/ * https://ifconfig.me/ * https://www.top10vpn.com/tools/what-is-my-ip/ (gibt aus IPv6 Adressen aus, falls Sie mit einer unterwegs sind). Kommandos, die Ihre lokalen IP-Adressen anzeigen: <code bash> ipconfig # Windows (und Mac?) ip addr # Linux </code> Kommando, das Ihre öffentliche IP-Adresse anzeigt: <code bash> curl --silent https://ifconfig.me curl --silent https://ifconfig.me/all </code> ==== 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 (für grosse Netzwerke, wie z.B. das Schul-WLAN) * 172.16.0.0 bis 172.31.255.255 (für mittlere Netzwerke, z.B. das interne Netzwerk vom Cluster, der die Schulnetze betreut.) * 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 (Loopback Netzwerk, normalerweise der eigene Computer, auch localhost genannt). ==== 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 (24 Bit Netzmaske) * 255.255.0.0 (16 Bit Netzmaske) * 255.255.255.254 (31 Bit Netzmaske) ==== Datenpakete Routing ==== Aussprache: «ruuting», wie französisch «route», («rauting» wäre dann die Fräsmaschine) * Internet: Ein Netz, das Netzwerke verbindet (Netzteil der IP-Adresse). * Datenpaket: * Zieladresse, Zielport (Nummer von 0-65535) * Absenderadresse, Absenderport * 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, in welches nächste Netz das Datenpacket weitergeleitet werden soll * Meist mehrere Möglichkeiten, Auswahl nach Auslastung/Geschwindigkeit. Packetverfolgung ;-) <code bash> tracert tech-lab.ch # Windows traceroute tech-lab.ch # Linux (evtl. Installation vom Programm nötig) </code> ===== 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, ksbg.ch, google.com. (Ein Name (ohne Punkt), Punkt, TLD). * Subdomain: subdomain.name.tld, z.B. www.tech-lab.ch, ofi.tech-lab.ch, fginfo.ksbg.ch, www.ksbg.ch (www, ofi, fginfo wären hier die Subdomains). * http://world-wide-web.niemand-tippt-von-hand-webadressen-ein.ch/ ==== 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://mll-legal.com/wp-content/uploads/2019/12/maggi_case.pdf Lookup auf der Kommandozeile: <code bash> nslookup tech-lab.ch # Windows host tech-lab.ch # Linux </code> Die Auflösung funktioniert auch in die entgegengesetzte Richtung, also z.B. <code bash> nslookup 81.62.232.82 </code> 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). </hidden> </WRAP> ==== 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/Router zu Hause: Kennt die IP noch, oder fragt nach (Caching) * 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 # Windows </code> Zuständige Nameserver für einen Domain finden: <code bash> nslookup -type=ns tech-lab.ch # Windows host -t ns tech-lab.ch # Linux dig ns tech-lab.ch # Linux </code> <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. </hidden> </WRAP> ===== Ports ===== Bei einem Verbindungsaufgaufbau ist nicht nur die IP-Adresse, sondern auch die Portnummer wichtig. <WRAP todo> * Laden Sie folgendes Archiv: {{lehrkraefte:blc:informatik:glf22:webserver.zip}} herunter und entpacken Sie es. * Navigieren Sie auf der Kommandozeile ins entpackte Verzeichnis und starten Sie einen einfachen Webserver mit <code bash> python -m http.server </code> * Verbinden Sie sich dann auf http://localhost:8000 * Betrachten Sie die Ausgabe auf der Konsole. <hidden Telnet auf Windows ist offenbar 💩> * Überprüfen Sie auf der Kommandozeile, ob telnet installiert ist: <code bash> telnet localhost 8000 </code> * Wenn dies fehlschlägt, Öffnen Sie die System-Einstellungen und suchen Sie nach «Windows Features aktivieren» und setzen Sie dort bei «Telnet client» ein Häckchen. Evtl. muss der Computer danach neu gestartet werden? * Machen Sie eine Webanfrage «von Hand» auf der Kommandozeile: <code bash> telnet localhost 8000 </code> und geben Sie dann <code txt> GET / HTTP/1.1 </code> gefolgt von zwei mal <key>Enter</key> ein. Das wird wohl nicht angezeigt etc, aber die Antwort vom Webserver sollten Sie sehen. </hidden> </WRAP> <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://192.168.1.xyz:8000 auf Ihren Webserver zugreifen. * Sie dürfen gerne «Ihre» Webseite modifizieren oder weitere Dinge hinzufügen. </WRAP> ====== NAT ====== Network Address Translation. * Problem: Theoretisches Limit von $2^{32}$ IP-Adressen, praktisch noch etwas weniger (3.6 Milliarden?) * 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/Portnummer) gemerkt. * 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 </code> * Finden Sie eine interne IP vom Cluster (d.h. eine IP eines private Netzwerks, aber nicht ihres eigenen)? </WRAP> lehrkraefte/blc/informatik/glf22/crash-course-network.txt Last modified: 2023/03/31 14:51by Ivo Blöchliger