Wir alle nutzen es, aber die Wenigsten wissen, wie es funktioniert: das Internet, kurz: das Netz. In meiner Rolle als Vater versuche ich, meinen Kindern die Komplexität der Welt näher zu bringen. Wenn der Speicher deines Handys voll ist, benötigst du kein neues Gerät. Wenn du denkst, Mathe der 10. Klasse wäre der Gipfel der Komplexität, dann google einmal nach „Quaternions“. Wenn du dich für den Klimawandel interessierst, dann arbeite dich bitte in Systeme partieller Differentialgleichungen ein. Wenn du keinen Kohlestrom magst, sollten wir uns einmal den Carbon-Footprint der DataCenter von Instagram anschauen.
Apropos „Abschalten“: Das erfolgt bei meinen jungen Zuhörern bereits nach den ersten Worten, wenn ich eines der obigen Themen auch nur ansatzweise erwähne. Dann heißt es: „Opa erzählt wieder vom Krieg.“
Auch wenn sie der notwendigen Einsicht mit Hohn und Spott begegnen: Die Welt wird immer komplexer und immer weniger Menschen beherrschen diese Komplexität. Das ist erst mal eine schlechte Nachricht, verspricht der wissenden Minderheit aber mehr Erfolg bei den Gehaltsverhandlungen.
Cloud-Anwendungen sprechen selbst mich als kritischen Anwender und Entwickler wegen ihrer Nutzerfreundlichkeit („User Experience") an. Doch wie so immer im Leben hat alles seinen Preis. Meine anfängliche Begeisterung wurde jäh eingetrübt, als die erste Verbindung zu einem SAP-System erstellt werden wollte und den Dienst mit folgendem Fehler quittierte: „Preflight request for CORS failed.“
„Augen auf bei der Berufswahl“, dachte ich mir, „Wärst Du damals mal zur Post gegangen.“ Aber nachdem einer meiner letzten Arbeitgeber mir im Zeugnis eine gewisse Hartnäckigkeit bescheinigte (ist das eigentlich gut oder schlecht?), habe ich es durch intensive Autodidaktik tatsächlich geschafft, eine funktionierende Cloud-Landschaft aufzubauen.
Dies erforderte, dass man sich einmal mit dem Netz als verbindendes Element und dessen Komponenten auseinandersetzt, damit man den Fachleuten aus den Rechenzentren mit breiten Schultern selbstbewusst gegenübertreten kann: „Jungs, ich benötige noch ein digitales Zertifikat!“ Rückfrage: „Soll das zum Code-Signing sein oder brauchst Du ein SSL-Zertifikat?“ Antwort: „Jaaa ... Moment, da kommt gerade ein Gespräch auf der anderen Leitung."
Dieser Beitrag richtet sich an Personen, die neu im Thema sind und denen ich die Mühsal der Eigen-Recherche ersparen möchte. Ich stelle die aus meiner Sicht wichtigsten Komponenten dar und verzichte auf zu detaillierte Beschreibungen.
Letztendlich kann man das Netz auf drei grundlegende Elemente reduzieren:
- die Endpunkte
- die Verbindungen
- die Kommunikation
Die Endpunkte
IP-Adressen
Jedes Gerät, das mit dem Netz verbunden ist, ist ein Endpunkt. Das können Arbeitsplatzrechner sein, Server, Mobiltelefone, aber auch Maschinen oder Autos.
Jeder Endpunkt hat eine eindeutige IP-Adresse. IP heißt „Internet Protocol“. Dieses bestimmt den Aufbau der Adresse. Wenn wir an die Post denken, dann würde ein imaginäres „Post Protocol“ die Adresse wie folgt definieren: Straße, Hausnummer, Postleitzahl, Ort.
Beim Internet-Protokoll ist die Adresse in der Notation „<0..255>.<0..255>.<0..255>.<0..255>“ vorgesehen. Der Zahlenraum 0..255 entspricht 2 hoch 8 = 256 und damit 8 Bit, was wiederum 1 Byte ist. Das bedeutet, dass die gesamte IP-Adresse durch 4 Byte dargestellt werden kann. In binärer Schreibweise geht sie dann etwa wie folgt über die Leitung: 11010110 11101110 00101101 11010100
Im Netz wird im allgemeine die dezimale Darstellung genutzt. Jedes Byte wird der Übersichtlichkeit halber durch einen Punkt vom nächsten getrennt: 214.238.45.212
DNS
Solch eine Zahl kann man sich schlecht merken. Daher gibt es zusätzliche textuelle Darstellung, den Namen. Das Domain Name System (kurz: DNS) stellt die Zuordnung von Namen und IP-Adresse bereit. Die Zuordnungen Name – IP-Adresse liegen auf tausenden Rechnern weltweit, den sogenannten „DNS-Servern“.
Eine Domäne ist ein „Herrschaftsbereich“ oder „Zuständigkeitsbereich“ (lat.: dominium = Herrschaft, Eigentum). Die Domäne „de“ ist beispielsweise für Deutschland zuständig, die Domäne „cpro-ips“ für meine Firma und in der Domäne „support“ steht schließlich der Endpunkt unseres Support-Rechners.
Domänen werden hierarchisch organisiert. Die Domänenhierarchie wird von rechts nach links notiert, wobei rechts die übergeordnete Domäne steht. Die Einträge werden durch einen Punkt getrennt. Der vollständige Domänenname für unseren Support-Rechner lautet also: support.cpro-ips.de.
Das kommt einem schon vertraut vor oder nicht?
Wenn nun jemand diese Zeichenkette beispielsweise in seinen Browser eingibt, so kontaktiert dieser als erstes einen Root (Wurzel)-Name-Server. Dieser kennt alle Name-Server für Top-Level-Domains, wie in diesem Fall den Name-Server für die Top-Level-Domain „de“, der zuständig ist für alle deutschen Rechner.
Die DNS-Anfrage leitet der Root-Server daher an den deutschen Name-Server weiter. Dieser wiederum kennt den Nameserver für die Firmenadresse „cpro-ips“ und delegiert die weitere Auflösung an diesen. Auf dem letzten Name-Server ist schließlich die Zuordnung des Endpunktes „support“ auf die IP-Adresse 214.238.45.212 gespeichert, die dann an den Aufrufer zurückgegeben wird. Der weiß nun:
Dem Namen support.cpro-ips.com ist die IP-Adresse 214.238.45.212 zugeordnet.
Dabei ist zu beachten, dass die Namenshierarchie nicht die Netzwerk-Topologie widerspiegeln muss.
Beispiel:
- support.cpro-ips.com
Der erste Eintrag bezeichnet unseren Support-Rechner in der Niederlassung Hamburg, der zweite unsere Homepage, deren Server in einem Rechenzentrum in Frankfurt steht. Beide Rechner gehören jedoch zur Firmen-Domäne „cpro-ips“.
Damit Namen nicht doppelt vergeben werden, gibt es weltweit ausgezeichnete Vergabestellen für die Top-Level-Domains, die sogenannten Network Information Center (NIC). In Deutschland ist das zuständige NIC das DENIC (Denglish: Deutsches Network Information Center) in Frankfurt.
Historisches Bonmot am Rande:
Frankfurt war ein Kandidat für die Hauptstadt der alten Bundesrepublik. Heute beherbergt Frankfurt nicht nur das DENIC, sondern auch den wichtigsten Knotenpunkt des deutschen Internets und ist damit die Internet-Hauptstadt Deutschlands.
Ports
Bei einem Brief ist der postalische Endpunkt die Hausadresse. Diese ist vergleichbar mit der IP-Adresse eines Rechners. Nun gibt es beim Brief aber auch noch den Namen des eigentlichen Empfängers. In meinem Briefkasten landen z.B. Briefe für:
- Fr. Siekmann
- Hr. Siekmann
- Kind 1 Siekmann
- Kind 2 Siekmann
- 2+n. Kind n Siekmann
Moment mal: Wer hat da „Nerd“ gerufen, nur weil man seine Kinder mit Variablen belegt?
Im Haus werden die Briefe also noch nach Namen aufgeteilt. Das gibt es auch im Internet: Der Rechner mit seiner IP-Adresse entspricht dem Haus mit dessen Anschrift. Die Namen der Hausbewohner werden hingegen durch sogenannte Ports (lat. Porta = Tür, Pforte) identifiziert. Diese leiten die Verbindung innerhalb des gleichen Rechners an unterschiedliche Empfänger weiter. Ports werden mit Nummern bezeichnet und mit einem „:“ an den Namen angehängt: www.google.com:443.
Es gibt Standard-Ports, die z.B. im Browser nicht eingegeben werden müssen, wie der Port 80 für das unsichere, bzw. der Port 443 für das sichere Browsen.
Ports leiten die Kommunikation an ihnen zugeordnete Komponenten auf dem Rechner weiter. Auf SAP-Systemen beispielsweise ist der Port 3200 für die Kommunikation mit dem SAP-GUI zuständig, während der Port 3300 RFC-Aufrufe entgegennimmt.
Verbindungen
Die Endpunkte sind über Medien miteinander verbunden, die geeignet sind, digitale Daten zu übertragen. Dies können beispielsweise sein:
- Kupferkabel
- Glasfaserkabel
- Funkstrecken
Die Medien werden über über Hubs (Naben) und Switches (Weichen) verknüpft. Bei Hubs wird die Kommunikation an alle angeschlossenen Geräte weitergeleitet, d.h. eine Druckanfrage wird nicht nur dem Drucker zugeführt, sondern auch den übrigen verbundenen Geräten.
Bei einem Switch hingegen findet eine Vorselektion statt und die Kommunikation erfolgt in unserem Beispiel ausschließlich mit dem Drucker.
Mit den obigen Komponenten lassen sich lokale Netzwerke (local area networks = LANs) beliebiger Größe aufbauen, so z.B. jeweils für die Geschäftsstellen einer Firma.
Die einzelnen lokalen Netzwerke werden über ein Wide Area Network (WAN) miteinander verknüpft. Diese WANs erstrecken sich über große Distanzen wie Länder oder Kontinente.
Unter den WANs gibt es private WANs, die ausschließlich von privaten Organisationen genutzt werden und es gibt die WANs der Internetdienstleister (Internet Service Provider = ISPs).
Der Netzwerkverbund letzterer ist das, was wir als Internet kennen: Inter (lat.: Zwischen) Networks (den Netzwerken). Es stellt die Verbindung zwischen den einzelnen lokalen Netzwerken her.
Die LANs werden über so genannte Gateways (Tore) mit dem Internet verbunden. An den Gateways stehen Router (Weiterleiter), die für die Kommunikation von lokalem Netz und Internet verantwortlich sind.
Um ein Eindringen von unerwünschten Verbindungen in das lokale Netz zu verhindern, sind die Gateways meistens zusätzlich mit Firewalls (Brandschutzmauern) ausgestattet. Diese können direkt im Router verbaut sein oder auch als Softwarelösung auf einem Rechner hinter dem Router zum Einsatz kommen. Die Firewall steuert, welche IP-Adressen und Ports des lokalen Netzwerkes von außen erreichbar sind. Nicht zugelassene Kommunikationswege werden blockiert.
Im Internet koordinieren Router die Kommunikation. Ein Router kennt wiederum seine mit ihm verbundenen Router. Die Routen für eine angeforderte IP-Adresse oder auch nur Teile der Adresse werden in Routing-Tabellen abgelegt. Die Router kommunizieren untereinander und können ihre Routing-Tabellen selbständig aktualisieren. So ist es möglich, dass beim Ausfall einer Route automatisch eine neue Route ermittelt wird. Der Sprung von Router zu Router wird auch als Hop bezeichnet.
Sie, lieber Leser, erkennen schon, dass Hersteller von Netzwerk-Komponenten eine bedeutende Rolle zukommt. Kritisch wird dies, wenn mit dem Einsatz der Komponenten vom eigentlichen Zweck abweichende Interessen verfolgt werden – Stichpunkt: Huawei.
Aber zum Glück haben wir ja eigene Hersteller, wie z.B. …. ich muss kurz unterbrechen, der Mittagstisch ist gedeckt.
Bin wieder da. Wo waren wir stehen geblieben? Ach egal, nächster Punkt:
Mobiles Arbeiten
Als Beispiel soll einmal die Verbindung eines Heimarbeitsplatzes mit einem SAP-System beschrieben werden.
Die WLAN-Router, wie wir sie von zu Hause kennen, sind meistens mehrere Geräte in einem Gehäuse:
- Switch oder Hub zur Anbindung mehrerer Geräte per Kabel oder Funk wie Notebooks, Tablets, Mobiltelefone
- Router zur Kommunikation mit dem Internet
- DSL- bzw. Glasfaser-Modem zur technischen Anbindung des Hausanschlusses und Wandlung der physikalischen Signale wie Strom oder Licht, in Bits und Bytes
Der WLAN (Wireless LAN: Lokales Funk-Netzwerk)-Router ist der Mittelpunkt des lokalen Netzwerks in Ihrem Zuhause und verbindet dieses mit dem Internet über Ihren Internet-Service-Provider ISP (Telekom, Vodafone, u.a.).
Das Netzwerk Ihres ISPs ist mit dem Netzwerk des ISPs Ihrer Firma über das Internet verbunden. Über einen Switch ist der Server des SAP-Systems in das lokale Firmennetzwerk integriert.
Die Architektur lässt sich eigentlich mit einem Satz auf den Punkt bringen: Heimnetz und Firmennetz werden durch das Internet verbunden.
Kommunikation
Über das Netz wird ein Strom von Binärdaten ausgetauscht. Diesen Daten muss eine Bedeutung gegeben werden. Wenn ich z.B. eine Website lade, benötige ich die IP-Adresse, an welche die Seite gesendet werden soll sowie den Inhalt der Seite.
Zusätzlich muss ich wissen, dass Daten im Netz nicht vollständig, sondern in Paketen übertragen werden.
Als Router erhalte ich ständig einen Datenstrom aus Nullen und Einsen. Was soll ich damit anfangen? Diese Antwort liefert das Protokoll. Dies sagt mir z.B.:
- Die Bytefolge 11111111000000001111111100000000 bedeutet, dass hier ein neues Paket beginnt.
- Nach dieser Startsequenz folgt in 4 Bytes die Adresse des Empfängers.
- Die nächsten 4 Bytes sind eine Zahl, die die Länge des folgenden Bereiches mit den Nutzdaten (in unserem Fall der Website) beschreibt.
Im Web am weitesten verbreitet sind die Protokolle:
- HTTP: Hypertext Transfer Protocol
- HTTPS: Hypertext Transfer Protocol Secure
- TCP: Transport Control Protocol
- IP: Internet Protocol
Die Protokolle bauen aufeinander auf. Hierfür gibt es das OSI (Open Systems Interconnection)-Modell.
„Hypertext” ist die Sprache, in der Webseiten übertragen werden.
In der soganannten URL (Uniform Resource Locator = einheitlicher Ressourcenzeiger) oder auch umgangssprachlich „Internetadresse“ oder „Webadresse“ wird das Protokoll vor dem Ort notiert und von diesem durch „://“ separiert. Die ULR tragen wir z.B. in die Adressleiste des Browsers ein: https://support.cpro-ips.com:443.
Standardports werden meist nicht angegeben. Diese werden vom Browser selbständig ergänzt. Moderne Browser sind sogar in der Lage, das Protokoll automatisch zu ermitteln. So reicht heutzutage die Eingabe von „support.cpro-ips.com" für obige Adresse. Der Browser ergänzt das Protokoll HTTPS sowie den Port 443 selbst.
Kommunikation beim Surfen
Der Aufruf von Webseiten via Browser ist eine der bekanntesten Aktionen im Netz. Hier wollen wir einmal eine Blick auf den Prozess des Datenaustausches werfen:
- Wir tragen die Adresse cpro-ips.com/insights/ in die Adressleiste des Browsers ein.
- Der Browser vervollständigt die Adresse zu https://cpro-ips.com:443/insights/.
- Über die Namensauflösung des DNS wird die Ziel-IP ermittelt.
- Der Browser sendet einen Request (Anfrage) an die Ziel-IP und trägt dort die eigene IP als Quelladresse ein.
- Unter der Ziel-IP ist unser Webserver registriert.
- Dieser liest den Inhalt seines Verzeichnisses /insights/ aus.
- Der Inhalt wird an den Browser mit dessen Quelladresse als neue Zieladresse als Response (Antwort) zurückgesendet.
- Der Browser bereitet den Hypertext-Datenstrom graphisch auf und bringt ihn zur Anzeige.
VPN und Tunnel
Bei den sogenannten Virtual Private Networks werden die Rechner zu einem virtuellen Netz verbunden, das nicht der realen Netz-Topologie entsprechen muss.
Über diese Technologie werden meist Szenarien realisiert, in denen fremde Rechner Bestandteil des eigenen Netzwerks werden, obwohl sie physisch nicht in dieses integriert sind, wie z.B. Anbindungen von Arbeitsplätze im mobilen Arbeiten an das Firmennetzwerk. Hierzu werden die Pakete zuerst so aufgebaut, als wäre der externe Rechner bereits Bestandteil des internen Netzwerks.
Mit den internen IPs ist jedoch kein korrektes Routing möglich, wenn diese nicht öffentlich bekannt sind. Daher wird das Paket mit einem 2. Umschlag versehen und der Inhalt verschlüsselt. Der 2. Umschlag trägt die Routing-Informationen in der realen Welt, sodass das Paket korrekt an den VPN-Server des internen Netzwerkes zugestellt werden kann. Dieser entfernt den 2. Umschlag, entschlüsselt den Inhalt und schickt das innere Paket an die interne Adresse weiter, die von ihm aus ja sichtbar ist.
Dieses Ausstatten der Pakete mit einem 2. Umschlag wird auch Tunneling genannt, da der innere Datenverkehr von außen nicht mehr sichtbar ist.
Ist der Garten nicht schön?
Nachdem ich meiner Familie das Manuskript zur kritischen Würdigung vorlegte, drehten sie meinen Sessel zum Fenster und sagten: „Schau einmal, ist der Garten nicht schön?“
Ich hörte, wie sich die Tür zum Zimmer leise schloss. Das Manuskript blieb ungelesen auf dem Klavier liegen.
Ich schaute zum Router hinüber, der in der Ecke vor sich hinblinkte. Nur eine Taste war nicht beleuchtet: WLAN off …
Kurze Zeit später erwachte das gerade noch ruhige Haus zum Leben. Man hörte aufgeregtes Getrappel auf der Treppe. Die Tür zum Wohnzimmer öffnete sich und mit brechender Stimme wurde verkündet, dass nun der Zeitpunkt gekommen sei, dass alle eine neues Mobilgerät bräuchten, da keines mehr funktioniere.
Ich wendete mich lächelnd wieder dem Fenster zu und dachte: „Aber in einem haben sie recht: Der Garten ist wirklich schön!“