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.

5.45.97.207

Da IPv4 “nur” gut 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.

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 so genannte 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 so genannten Ports an. Man unterscheidet hier im Wesentlichen zwei Arten von logischen Ports. Wenn die Übertragung keine besondere Übertragungssicherheit braucht 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 Emails ü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 Paket 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, in dem man diese Zahl mit einer bestimmten Anzahl von Einsen, gefolgt von Nullen so dass sich in Summe auch hier wieder 32 Bit ergeben, Bit-weise UND-verknüpft.

Diese nun “maskierte” Zahl ist die Adresse des Netzes zu dem die IP gehört. Der Router hat nun eine Tabelle mit verschiedenen Netzen und das Netz was am genauesten passt, bestimmt wohin die Reise weiter geht. Im einfachsten Fall besteht die Netzmaske nur aus 255, also 8 Eins-Bits, oder 0, also 8 Null-Bits, was nun 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 hinter einen Schrägstrich hinter die IP:

12.34.56.78/16

Früher am Anfang des Internet nutzte man noch Routing-Klassen, bei denen die Netzmaske sich eindeutig aus der IP-Adresse ableiten ließ. Das Verfahren war aber zu unflexibel, so dass 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.

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

Es gibt verschiedene Schreibweisen  für IP. Wenn Bytes von rechts, oder wie auch genannt werden Oktette, 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 eine Integer schreiben. Oder als zwei Integer, von denen die erste das erste Byte ist und die zweite die restlichen drei. Letzteres macht 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 ein Ländercode (engl. “country code”), eine so genannte ccTLD. Jedes Land der Erde hat so einen 2-Buchstaben-Code. Es gibt noch viele weitere TLD und seit dem 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. Beim 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, so dass man genau da wo man seinen DSL-Zugang gekauft hat auch so eine Domäne kaufen kann.

Wenn man dann so eine 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 selber einen DNS 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 so genannte Reverse Lookup auch wieder einen Rechnernamen zuordnen.

Beispiel

Betrachten wir was alles passiert wenn wir z.B. eine Email verschicken. Die Adresse sei z.B. web@dd3ah.de. Im Email-Programm wie z.B. Thunderbird ist ein Email-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. Der Server schaut nun in seine so genannte Routing-Tabelle. Dort ist vermerkt wohin bestimmte IP-Adressen geschickt werden sollen. Die meisten Adressen landen beim so genannten Gateway. Das ist der Router, der alle Pakete weiterleitet. Unser Server fragt also nun im LAN über das so genannte ARP, welche MAC-Adresse zu der IP des Gateway gehört. An diese MAC schickt er sein Paket über das Ethernet-Protokoll. Der Router schaut nun 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 Email-Server von dd3ah.de angekommen ist.

Hier wird das Paket nun am TCP-Port des Email-Servers zugestellt. Dieser schaut sich nun den vorderen Teil der Email-Adresse vor dem @ an und stellt die Email 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 z.B. 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#anker?parameter=wert&attribut=456

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

User und geheim sind so genannte Credentials, also Zugangsdaten. Werden sie benötigt, aber nicht angegeben, werden sie für gewöhnlich in einer Dialogbox abgefragt.

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.

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

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

Weitere Protokolle

Es gibt unzählige Protokolle im Internet für alle nur erdenklichen Anforderungen. Einige dienen dazu dass das Internet selber funktioniert, wie die Routing-Protokolle. Oder Protokolle die Informationen über das Netzwerk selber verbreiten wie z.B. 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 Handies, 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 Client ausliefern und auch das Gateway um ins Internet zu kommen, dazu der DNS-Server. Viele weitere Konfigurationen sind damit automatisierbar wie z.B. der Name des Client, 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 ü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 IPv4-Netz nach außen zum Internet. Die IP im LAN wird daher meist 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 selber eine Internet-fähige IP-Adresse zu haben.

Umgekehrt kann man im NAT auch ein so genanntes 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-Router braucht 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 so genannten “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. Handies, die gerade im Mobilen Netzwerk eingebucht sind, auf Server zuhause 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 Internet 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 Internet 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. Email 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 etwas 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 ernstzunehmenden 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 Email 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 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.

Kategorien: Computer