Mastodon Mastodon

Das Internet, wie wir es heute kennen beruht im Wesentlichen auf dem Internet-Protokoll, wie es seit den 80ern allgemein genutzt wird und schon davor zuerst in militärischen und später universitären Forschungseinrichtungen seit den 60ern genutzt wurde. Die Grundlage dieses Netzes ist die IP-Adresse. In der klassischen Variante IPv4 besteht sie aus 4 Byte, die mit einem Punkt getrennt als Dezimalzahl aufgeschrieben werden.

202.61.224.86

Da IPv4 „nur“ gut 2564 = 4*109 Adressen verwalten kann und diese nun trotz NAT immer enger werden, setzt sich seit einiger Zeit auch IPv6 durch. Hier stehen gut 3*1038 Adressen zur Verfügung.

Bei IPv6 benutzt man Hex-Zahlen, die in 2 Byte gruppiert und dann mit Doppelpunkt getrennt werden. Führende Nullen in jeder Gruppe werden weggelassen und an einer (1!) Stelle in der Adresse können beliebige viele Null-Gruppen komplett weggelassen werden. An dieser Stelle stehen dann zwei Doppelpunkte direkt nebeneinander.

fe80::189e:feff:fe9d:b72f

fe80:0000:0000:0000:189e:feff:fe9d:b72f

2a03:4000:56:f19:189e:feff:fe9d:b72f

2a03:4000:0056:0f19:189e:feff:fe9d:b72f

Layer

Protokolle sind heutzutage in Ebenen (engl. „Layer“) aufgeteilt, die aufeinander aufbauen. Die IP-Adresse ist im üblichen OSI-Modell schon Ebene 3. Unter der IP-Ebene liegt die MAC-Ebene. Sie ist im lokalen Netzwerk („LAN“) von Bedeutung. Hier werden die einzelnen Geräte über ihre sogenannte Hardware-Adresse angesprochen. Diese MAC-Adresse besteht aus 6 Byte, die als Hex-Zahl und mit Doppelpunkten getrennt aufgeschrieben werden.

b8:27:eb:d4:f5:fb

Die unterste Ebene 1 beschreibt die physikalischen Gegebenheiten des Netzwerks. Bei einem kabelgebundenen Netz ist das meist Ethernet mit den charakteristischen 8-poligen RJ45-Steckern.

Ports

Nach oben schließt sich an die IP-Ebene die Ebene der sogenannten Ports an. Man unterscheidet hier im Wesentlichen zwei Arten von logischen Ports. Wenn die Übertragung keine besondere Übertragungssicherheit benötigt oder diese selbst sicherstellt, benutzt man UDP. Das wird z.B. gern für Streaming-Dienste genutzt. Ist dagegen die Integrität der Übertragung wesentlich und man möchte, dass das Netz diese sicherstellt, benutzt man TCP. Die Kombination von IP und TCP hat sich so weit als Standard durchgesetzt, dass man oft auch vom TCP/IP-Protokoll spricht. Daneben gibt es noch ICMP, was die Übertragung auf technischer Ebene sicherstellt. Das bekannteste ICMP-Protokoll ist wohl der Ping.

Die TCP-Ports sind durchnummeriert und werden auf der Seite des Servers üblicherweise in einer standardisierten Weise benutzt. Am bekanntesten sind vielleicht der Port 25 für die Übertragung von E-Mails über das SMTP-Protokoll, Port 80 für das WWW-Protokoll HTTP, bzw. Port 443 für die SSL/TLS-gesicherte Übertragung mit HTTPS. Auf dieser Ebene findet nun wirklich die eigentliche Übertragung der Daten statt. Ein Client meldet sich beim Server und fragt etwas an und der Server beantwortet die Anfrage. Die tatsächliche Übertragungsrichtung der Daten ist davon unabhängig. Die Anfrage kann z.B. auch der gewünschte Upload einer Datei sein.

Verbindung

InternetDer Benutzer links oben benutzt seinen Browser um im Web zu surfen. Durch die Ebenen des OSI-Protokolls wird ein Datenpaket geschnürt. Es umfasst am Ende die Ebenen 7 bis 3. Für die eigentliche Übertragung kommen die Ebenen 2 und 1 hinzu. Diese beiden untersten Ebenen werden im Laufe der Übertragung immer wieder ausgetauscht. Das eigentliche Datenpaket auf den Ebenen 3 bis 7 bleibt dabei als „Nutzlast“ erhalten. Der Server rechts nimmt das Datenpaket entgegen und bearbeitet die Anfrage.

Genauer formuliert schnüren die Ebenen 7 bis 5 das Datenpaket, indem sie die Anfrage des Benutzers auf die technische Ebene abstrahieren. Die Ebenen 4 und 3 adressieren das Paket dann für die Übertragung im Internet. Umgekehrt auf Server-Seite konkretisieren dort die Ebenen 5 bis 7 die Anfrage so, dass der Server sie beantworten kann.

Diese Ebenen kann man sich anschaulich auch wie Hüllen oder „Zwiebelschichten“ vorstellen. Die ganz konkrete Anfrage des Benutzers wird zu einer HTTP-Anfrage mit einem HTTP-Header abstrahiert. Der Browser ergänzt noch technische Informationen wie akzeptierte Zeichensätze, Kompressionen und Verschlüsselungen. In dieser abstrahierten technischen Darstellung ist die Anfrage des Benutzers im „Kern“ immer noch enthalten. Darum legt sich dann die TCP-Schicht, und die IP-Schicht, damit das Paket im Internet auf die Reise gehen kann. Und darum kommt als Verpackung noch die MAC-Schicht damit die Reise im LAN auf der physikalischen Ebene wirklich beginnen kann.

Die Knoten im Internet entfernen jeweils nur die äußerste Schicht und fügen eine neue lokale Adressierung hinzu, damit das Paket weiter in Richtung Server transportiert werden kann. Dazu schauen sich die Router auch die dann zeitweise äußerste Ebene 3 mit der IP-Adresse an. Erst der Server am Ende der Kette packt das Paket komplett aus und kann aus den Angaben der verschiedenen Ebenen entscheiden wie genau er die Anfrage beantwortet.

Routing

Wie entscheiden nun die Router, wohin die Reise des Pakets geht? Dazu erinnern wir uns daran, dass die IP-Adresse eine Zahl mit 4 Byte ist. Schreibt man diese binär einfach als lange Zahl mit 32 Bit auf, so kann man einen bestimmten Teil davon maskieren. Dazu schreibt man die sogenannte Netzmaske als lange Binärzahl. Zuerst kommen je nach Größe des Netzes lauter Einsen, gefolgt von lauter Nullen, sodass sich in Summe auch hier wieder 32 Bit ergeben. Die Adresse wird nun mit der Netzmaske UND-verknüpft.

Diese „maskierte“ Zahl ist die Adresse des Netzes zu dem die IP gehört. Der Router hat eine Tabelle mit verschiedenen Netzen und das Netz, was am genauesten passt, bestimmt, wohin die Reise weitergeht. Im einfachsten Fall sind alle Bytes der Netzmaske entweder 255, also 8 Eins-Bits, oder 0, also 8 Null-Bits, was dazu führt, dass das Byte der IP entweder stehen bleibt oder zu null wird.

Beispiel:

IP:

 12. 34. 56. 78

Netzmaske:

255.255.  0.  0

Netz:

 12. 34.  0.  0

In der moderneren CDIR-Schreibweise schreibt man kürzer einfach nur noch die Anzahl der Eins-Bits mit einem Schrägstrich hinter die IP:

12.34.56.78/16

Früher am Anfang des Internets nutzte man noch Routing-Klassen, bei denen die Netzmaske sich eindeutig aus der IP-Adresse ableiten ließ. Das Verfahren war aber zu unflexibel, sodass es bald abgeschafft wurde. Aus der Zeit haben sich aber die Begriffe class A für /8 , class B für /16 und class C für /24 gehalten. Die heutige moderne Art des Routings mit beliebigen Netzmasken, nennt man Classless Routing.

Wichtig zu merken sind noch die für private Netzwerke reservierten IP-Bereiche. Diese werden im Internet nicht benutzt und sie verlassen nicht das LAN in dem sie definiert sind.

10/8

172.16/12

192.168/16

Und schließlich gibt es noch ein für den lokalen Rechner reserviertes Netz. Adressen aus diesem Bereich verlassen nie den Rechner auf dem sie definiert sind. Diese Adressen nennt man auch localhost.

127/8

Wichtig ist dabei umgekehrt auch zu verstehen, dass nur diese Adressen eine feste Bedeutung haben. Alle anderen werden zugewiesen und dürfen nicht leichtfertig für eigene Zwecke missbraucht werden, wenn man zuverlässig im Internet kommunizieren möchte.

Es gibt verschiedene Schreibweisen für IP. Wenn Bytes, oder wie auch genannt werden Oktette, von rechts ganz weggelassen werden, nimmt man sie zu null an. Das ist nur in der Schreibweise mit der Netzmaske wie oben üblich. Man kann sie auch als ein Integer schreiben. Oder als zwei Integer, von denen die erste das erste Byte ist und die zweite die restlichen drei. Letzteres ergibt besonders Sinn, wenn die mittleren Bytes Null sind.

127.0.0.1  =  127.1 = 2130706433

DNS

Das DNS dient dazu, Namen von Rechnern in IP-Adressen umzuwandeln. Die Namen der Rechner im Internet bestehen aus durch Punkt getrennte Teile. Sie sind hierarchisch aufgebaut. Die höchste Hierarchie hat der Teil ganz rechts. Hier finden wir die TLD. Bei dd3ah.de ist also de die TLD. In diesem Fall ist sie ein Ländercode (engl. „Country Code“), eine sogenannte ccTLD. Jedes Land der Erde hat so einen 2-Buchstaben-Code. Es gibt noch viele weitere TLD und seitdem die Vergabekriterien gelockert wurden, werden es auch ständig mehr. Die bekannteste ist wohl com. Zu jeder TLD gehört ein NIC, welches die DNS-Server der TLD betreibt. Über das Whois-Protokoll bekommt man vom NIC weitere Informationen über einen Rechnernamen heraus, z.B. den DNS-Server, der genau diesen Rechnernamen betreut. Bei diesen NICs kann man nun nach verschiedenen Kriterien seine eigene Domäne kaufen. Bei unserem deutschen de-NIC geht das recht einfach und günstig, bei anderen ist es recht teuer, bei wieder anderen geht es für Privatpersonen gar nicht. Die Details erfährt man bei den Registraren. Die meisten ISP sind auch Registrare, sodass man genau da, wo man seinen DSL-Zugang gekauft hat auch eine solche Domäne kaufen kann.

Wenn man dann eine solche Domäne wie dd3ah.de gekauft hat, muss man dafür sorgen, dass die Rechner in dieser Domäne auch über das DNS gefunden werden. Dazu kann man selbst einen DNS-Server betreiben oder das als Dienstleistung z. B. vom ISP einkaufen. Man kann dann innerhalb seiner Domäne beliebigen Rechnernamen IPs zuweisen. Und man kann umgekehrt IPs über das sogenannte Reverse Lookup auch wieder einen Rechnernamen zuordnen.

Beispiel

Betrachten wir, was alles passiert, wenn wir z. B. eine E-Mail verschicken. Die Adresse sei web@dd3ah.de. Im E-Mail-Programm wie Thunderbird ist ein E-Mail-Server hinterlegt. Der Server schaut nur auf den hinteren Teil der Adresse hinter dem @. Das ist der Hostname. Dieser wird über das DNS-Protokoll in eine IP-Adresse aufgelöst. Im Falle einer E-Mail-Adresse geschieht dies zuerst über den Eintrag für den Mail-eXchanger MX, sonst über den Eintrag für die Address A.

Der Server schaut nun in seine sogenannte Routing-Tabelle. Dort ist vermerkt, wohin bestimmte IP-Adressen geschickt werden sollen. Die meisten Adressen landen beim sogenannten Gateway. Das ist der Router, der alle Pakete weiterleitet. Unser Server fragt also im LAN über das ARP, welche MAC-Adresse zu der IP des Gateways gehört. An diese MAC schickt er sein Paket über das Ethernet-Protokoll. Der Router schaut in seine Routing-Tabelle. Dort wird als nächste Station ein Router des ISP stehen. Das Spiel mit Routing-Tabelle und ARP wiederholt sich, bis das Paket beim E-Mail-Server von dd3ah.de angekommen ist.

Hier wird das Paket am TCP-Port des E-Mail-Servers zugestellt. Dieser schaut sich den vorderen Teil der E-Mail-Adresse vor dem @ an und stellt die E-Mail im Postfach web zu. Von dort kann sie dann z. B. mit dem IMAP-Protokoll abgeholt werden.

URI

Betrachten wir nun noch eine URI, auch als URL oder einfach Link bekannt. Im einfachsten Fall sieht sie beispielsweise so aus: https://dd3ah.de/. Betrachten wir sie aber in der vollständigen Version mit allen möglichen Details:

https://user:geheim@dd3ah.de:7878/pfad/verzeichnis/datei.tmp?parameter=wert&attribut=456#anker

Vorn vor dem ersten Doppelpunkt steht mit https das Protokoll. Das gibt auch den per Default zu benutzenden Port vor.

User und geheim sind sogenannte Credentials, also Zugangsdaten. Werden diese benötigt, aber nicht angegeben, werden sie für gewöhnlich in einer Dialogbox abgefragt. Es gilt heute als unsicher, die Credentials in der URI anzugeben, weil sie hier auch in einem Bookmark ungesichert abgelegt würden. Die meisten Browser speichern sie auf Wunsch in einem speziellen Passwort-Container.

dd3ah.de ist hier der Hostname. Dieser hat eine doppelte Bedeutung. Zum einen wird er über das DNS in eine IP aufgelöst. Zum anderen gibt er beim Webserver auch an, welche Website man aufrufen möchte für den Fall, dass der Server mehrere Websites ausliefert. Seit dem SNI-Protokoll funktioniert das auch mit SSL/TLS-gesicherten Seiten.

Die 7878 ist der Port für den Fall, dass man nicht mit dem Standard-Port arbeiten möchte.

Es folgen mit /pfad/verzeichnis/ Unterverzeichnisse auf dem Server.

datei.tmp ist die gewünschte Datei auf dem Server. Wird diese ausgelassen, ist auf dem Server ein Standard hinterlegt, oft index.html oder index.php.

Hinter dem Fragezeichen ? stehen sogenannte GET-Parameter, mit denen man der aufgerufenen Seite Werte übergeben kann. Die einzelnen Parameter sind mit & voneinander getrennt.

Im Detail ist noch interessant, dass diese Angaben komplett als Anfrage an den Server geschickt werden. Wie dieser das interpretiert kann dort beliebig konfiguriert werden. Der Server muss das also nicht so wie hier beschrieben auswerten, auch wenn das die übliche Art ist.

Der anker ist eine Stelle auf der Seite, die der Browser gleich beim Laden anspringen soll.

Weitere Protokolle

Es gibt unzählige Protokolle im Internet für alle nur erdenklichen Anforderungen. Einige dienen dazu, dass das Internet selbst funktioniert; wie die Routing-Protokolle. Andere Protokolle liefern Informationen über das Netzwerk selbst, wie SNMP oder SLP. Über die meisten muss man nichts wissen, um seine Geräte im LAN ins Internet zu bringen. Hier werden nun noch einige beschrieben, die für das Verständnis eines LAN vielleicht nützlich sind.

DHCP

Ändert sich das LAN regelmäßig, z. B. durch wechselnde Gäste als Clients wie Handys, so ist eine manuelle Konfiguration sehr lästig. Auch in einem weitgehend statischen Netz hat eine zentrale Konfiguration Vorteile. Zu diesem Zweck wurde das Dynamic Host Configuration Protocol DHCP erfunden. Ein statischer Server im LAN, der immer zur Verfügung steht, liefert die Konfiguration für alle anderen aus. Dieser Server ist in einem typischen Heimnetz der DSL-Router. Als Minimum wird DHCP die IP des Clients ausliefern und auch das Gateway um ins Internet zu kommen, dazu der DNS-Server. Viele weitere Konfigurationen sind damit automatisierbar wie der Name des Clients, der Zeitserver usw.

Die IPs werden dabei per Default mehr oder weniger zufällig vergeben. Der DHCP-Server ist aber eventuell nicht der einzige Server im LAN. Server sollten aber von den anderen Clients zuverlässig erreicht werden. Um nun auch Server per DHCP zentral konfigurieren zu können, kann man einzelne IPs im LAN auch statisch vergeben. Der DHCP-Server wird also den anderen Servern im LAN immer die gleiche IP vergeben. Diese Zuordnung zu einer festen IP erfolgt oft über die MAC-Adresse. Dies ist ein schönes Beispiel, dass viele Dienste im Netzwerk leistungsfähige Optionen haben, die es erlauben, das System an die eigenen Erfordernisse anzupassen.

NAT

Die meisten Heimnetze haben nur eine IP im Netz nach außen zum Internet. Die IP im LAN wird daher überwiegend aus einem lokalen Netzwerk sein. Diese lokalen IP-Adressen nutzen aber nichts im Internet. Die Lösung ist das Network Address Translation Protokoll NAT. Der Router merkt sich jede einzelne Anfrage ins Internet in einer NAT-Tabelle und setzt die Absender-IP auf die eine externe um. Kommt dann eine Antwort aus dem Internet, schaut der Router in seine Tabelle und setzt die Ziel-IP wieder passend auf die interne um. So kann jeder Client im LAN beliebige Server im Internet erreichen, ohne selbst eine Internet-fähige IP-Adresse zu haben.

Umgekehrt kann man im NAT auch ein sogenanntes Port-Forwarding eintragen. Damit kann ein vom Internet erreichbarer Port auf dem Router einem Server im LAN zugeordnet werden. Jeder Server im LAN kann also aus dem Internet erreichbar sein.

Das LAN darf für NAT nicht zu viele Anfragen gleichzeitig schicken. Der TCP-Stack des NAT-Routers benötigt für jede Verbindung aus dem LAN einen Port. Erzeugen die Clients im LAN einige 10.000 Verbindungen in kurzer Folge, so läuft die NAT-Tabelle über und es können keine neuen Verbindungen mehr aufgebaut werden. Bei einfachen Routern kann das schon bei viel weniger Verbindungen auftreten.

VPN

Will man zwei oder mehr getrennte lokale „private“ Netze über das Internet miteinander koppeln, so kann man diese Verbindung virtuell herstellen. Für die Clients sieht es auf beiden Seiten dieses sogenannten „Tunnel“ so aus, als wären die Clients auf der anderen Seite im gleichen LAN. Diese Technik wird Virtual Private Network VPN genannt. Es ist damit auch möglich einzelne Endgeräte wie z. B. Handys, die gerade im Mobilen Netzwerk eingebucht sind, auf Server zu Hause im LAN zugreifen zu lassen.

Der Einfachheit halber wird man meist getrennte Subnetze für die einzelnen LAN vergeben, also in einem Netz 10.1/16 und im anderen 10.2/16 . Sollte das nicht gehen, kann man sich auch hier mit NAT behelfen.

Sicherheit

Am Anfang des Internets galt der physische Zugang zum Internet als die entscheidende Hürde für einen Angreifer. Innerhalb des Netzes galt größtes Vertrauen. Wichtig war in diesem System, dass normale Benutzer des Internets typischerweise auf den eigentlichen Netzwerk-Rechnern keine Root-Rechte hatten, also über die Zugangsberechtigungen der Terminals davon abgehalten werden konnten, Daten zu lesen, die sie nichts angehen.

Praktisch alle traditionellen Protokolle arbeiten daher im Klartext. Diese Naivität hat das Internet heute verloren. E-Mail ist eins der letzten Relikte, wo Verschlüsselung und Signierung noch nicht zum Standard gehören. Diese Nachlässigkeit bezahlen wir mit Spam und schlimmerem.

Ich rate jedem, sich mit dem Thema Verschlüsselung etwas zu beschäftigen. Protokolle wie telnet, ftp und http mögen zum Spielen und Basteln ganz nett sein, aber bei der Übertragung von ernst zu nehmenden Daten und im Internet haben sie heute nichts mehr verloren. Sie können leicht durch moderne Protokolle wie ssh, sftp und https ersetzt werden, was man auch wirklich immer tun sollte.

Bei E-Mail kann man die üblichen Protokolle smtp, pop und imap wenigstens mit STARTTLS absichern. Praktisch alle modernen Server sollten das beherrschen. Besser noch beschäftigt man sich zusätzlich mit der Verschlüsselung per S/MIME oder PGP.

Hamnet

Das Hamnet nutzt diese Internet-Technologie für den Amateurfunk. Damit die beiden Netze koexistieren können, wurde dem Hamnet ein eigener IP-Bereich zugewiesen. Der Bereich 44/8 steht überwiegend dem Amateurfunk zur Verfügung. Über spezielle Einstiegsknoten oder per VPN kommt man in dieses Netz. Ein paar Server sind in der Linksammlung aufgeführt.

Im Hamnet gilt natürlich wie immer im Amateurfunk, dass die übertragenen Informationen öffentlich sein müssen. Das oben über Verschlüsselung für das Internet Gesagte gilt also im Hamnet nicht. Umgekehrt bedeutet das, dass im Hamnet keine vertraulichen persönlichen Daten ausgetauscht werden sollen. Die beiden Netze müssen also streng getrennt betrachtet werden. Das ist besonders zu beachten, wenn der gleiche Rechner im Internet und im Hamnet benutzt wird.

Teilen
Kategorien: Computer