Internetprotokolle - prototyping-lab/technisches-grundlagenprojekt GitHub Wiki
Damit die Rechner miteinander kommunizieren können, müssen sie sich verstehen können. Das regeln die Protokolle. Sie definieren die Syntax und Semantik innerhalb derer Daten über die Leitungen des Internet ausgetauscht werden können. Eines dieser Protokolle ist das Internetprotokoll, dieses ist ein in Computernetzen weit verbreitetes Netzwerkprotokoll und stellt die Grundlage des Internets dar. Die Internetschicht ist für die Weitervermittlung von Paketen und die Wegwahl (Routing) zuständig. Die Aufgabe dieser Schicht ist es, einem empfangenen Paket das nächste Zwischenziel zu ermitteln und das Paket dorthin weiterzuleiten.
Kern dieser Schicht ist das Internet Protocol (IP) in der Version 4 oder 6, das einen Paketauslieferungsdienst bereitstellt. Es verpackt die zu vermittelnden Informationen in IP-Datenpakete und regelt die Vermittlung der Datenpakete an das jeweilige Ziel. Die Dual-Stacks, die es in der Windows Welt ab Vista gibt, können dabei automatisch erkennen, ob sie einen Kommunikationspartner über IPv6 oder IPv4 erreichen können und nutzen vorzugsweise IPv6. Die Internetschicht entspricht der Vermittlungsschicht des ISO/OSI-Referenzmodells.
IPv4 ist Version 4 der Internetprotokolle und kam ab 1983 zum Einsatz.
Jedes Gerät besitzt eine feste MAC-Adresse. Nun hat beispielsweise unser Laptop im Moment WLAN und funkt „Hallo ich bin da“ herum. Der Laptop schickt seine MAC-Adresse herum und der Router empfängt diese MAC-Adresse. Wenn im Router DHCP aktiviert ist, schaut der Router nach der nächsten freien IP-Adresse und vergibt diese an den Laptop. Sobald sie nun die IP-Adressen voneinander kennen können sie Datenpakete austauschen.
Die IP-Adresse 192.168.178.5 (als Beispiel) ist eine IP-Adresse aus einem Heimnetz. Jedes Gerät mit Internetzugang besitzt in einem Heimnetzwerk seine eigene IP-Adresse. Diese Adresse ist nichts weiter als die Anschrift von unseren Computer, Laptop, Handy, etc. Diese Adresse kann von mehreren abgeschlossenen privaten Netzwerken verwendet werden, ohne dass es zu Adresskollisionen kommt, da nach außen nur die IP-Adresse des NAT-Routers sichtbar ist. NAT steht für Netzwerkadressübersetzung. Die IP nach außen wechselt abhängig vom Internetprovider, bei der Telekom zum Beispiel alle 24 Stunden. Das hilft auch dafür zu sorgen, dass weniger IP-Adressen benötigt werden, da hiermit bis zu 254 IP-Adressen (nutzbare) pro Heimnetzwerk mit einer öffentlichen IP-Adresse abgedeckt werden. Das heißt mit dieser einen IP-Adresse gehen alle Geräte in diesem Netzwerk über den Router raus und bekommen auch auf diese Adresse eine Antwort. Damit nun der Router weiß, an wen er welches Paket weiterleiten muss gibt es die NAT Tabellen (Network Adress Translation). Diese NAT Tabelle übersetzt die ankommenden Informationen.
Das ist im Moment die öffentliche IP-Adresse meines Routers nach außen. Mein Laptop weiß nichts von der öffentlichen IP-Adresse und kennt nur die interne IP-Adresse.
Eine IPv4-Adresse besteht aus 32 Bit (4 Byte). Damit diese besser strukturiert ist, wird sie in jeweils 8 Bit (1 Byte) aufgeteilt und durch einen Punkt voneinander getrennt. Zur besseren Lesbarkeit werden IPv4-Adressen in der dezimalen Schreibweise dargestellt.
Die ersten zwei Blöcke der untenstehenden IPv4-Adresse gehören dem Heimnetzwerk und sind in diesem immer identisch. Der dritte Block steht in diesem Fall für die Fritz Box, bei jeder Fritz Box ist diese Stelle identisch. Die ersten drei Blöcke zusammen sind die Netzwerkadresse, der letzte Block die Hostadresse. Der letzte Block ist variabel und kann in dem Heimnetzwerk jedem Gerät seine eigene IP-Adresse geben, entweder durch DHCP (automatische IP-Adressvergabe) oder durch die Vergabe fester IP-Adressen. Diese letzte Zahl befindet sich im Bereich zwischen 0 und 255. Das heißt es existieren 256 verfügbare IP-Adressen pro Heimnetzwerk. Jedoch muss man hiervon noch 2 IP-Adressen "abziehen", damit man auf die richtige Anzahl nutzbarer IP-Adressen kommt. Da jeder IP-Adressbereich eine IP-Adresse für die Netzadresse (192.168.178.0), die kleinste Adresse im Netz, und eine für die Broadcastadresse (192.168.178.255), die größte Adresse im Netz, benötigt. Diese Adressen können an keinen Host vergeben werden.
Die Broadcastadresse das ist die Adresse, wenn man an alle IP-Adressen des Netzwerks etwas senden will, dann schickt man es an diese Adresse und dann bekommt jedes Gerät eine Anfrage und muss eine Antwort schicken. Dies geschieht mit sogenannten Hello Paketen. Jedes Gerät das mit dem Netzwerk verbunden ist sendet in gewissen Abständen sogenannte Hello Pakete und zwar an die Broadcastadresse. Um zu zeigen, dass das jeweilige Gerät noch aktiv ist.
Der Befehl "Ipconfig" in der Kommandozeile von Windows eingegeben liefert: IP-Adresse, Subnetzmaske und Standardgateway
Ipconfig
Der Befehl "tracert www.google.de" protokolliert den Weg von meinem Laptop zu Google:
1.Zu dem Router im Netzwerk
2.Zum Provider
3.Über mehere Knotenpunkte zum Google Server
tracert www.google.de
Die Aufteilung eines zusammenhängenden Adressraums von IP-Adressen in mehrere kleinere Adressräume nennt man Subnetting. Ein Subnet, Subnetz bzw. Teilnetz ist ein physikalisches Segment eines Netzwerks, in dem IP-Adressen mit der gleichen Netzwerkadresse benutzt werden. Diese Teilnetze können über Routern miteinander verbunden werden und bilden dann ein großes zusammenhängendes Netzwerk. Von außen wird das Netz nur als ein großes Netz wahrgenommen. Durch die rasche Entwicklung des Internets, und dem somit verbundenen Mangel an IP-Adressen, wurde nach einer passenden Lösung gesucht. Diese Lösung offenbarte sich unter anderem als Subnetting. Ebenfalls ist Subnetting sicherer, da es für eine höhere Sicherheit des LANs sorgt. Sinn ist meist die bessere Verwaltbarkeit, wie auch das Trennen des Netzwerks in logische Arbeitsgruppen oder auch das Trennen des Netzwerks von sensitiven Bereichen vom Hauptnetz. Ebenfalls reduziert Subnetting das Verkehrsaufkommen. Das bedeutet, dass mittels IP-Adresse und Subnetzmaske für IPv4, bzw. Präfixlänge bei IPv6, Computer innerhalb eines Netzwerkes in logische Einheiten, sogenannte Subnetze, gruppiert werden können. Auf dieser Basis ist es möglich, Computer in größeren Netzwerken zu adressieren und ihnen IP-Pakete zu senden, da logische Adressierung die Grundlage für Routing ist.
Es gibt zwei Formen der Schreibweise für die Subnetzmaske in Kombination mit der IP-Adresse.
IP-Adresse/Subnetzmaske: 192.168.178.87/255.255.255.0
IP-Adresse/Suffix: 192.168.178.87/24
Jede IP-Adresse teilt sich in Netz-Adresse und Host-Adresse. Die Slash 24 bedeutet die ersten 24 Bit von insgesamt 32 Bit gehören dem Netz (8 Bit für 3 Zeichen). In dem Fall sind die 24 Bit genau hier bei dem Punkt getrennt, das heißt die ersten drei Stellen sind die Netzadresse, das heißt diese drei Stellen müssen in einem Heimnetzwerk immer gleich sein. Die letzte Stelle ist die Host-Adresse. Die Zahl nach dem Slash, also das Suffix gibt immer die Größe der Bit an, die dem Netz gehören, der Rest gehört zur Hostadresse. Eine andere Art und Weise dies darzustellen ist mithilfe der Subnetzmaske: 255.255.255.0. Die Subnetzmaske bestimmt, an welcher Stelle diese Trennung stattfindet. Die nachfolgende Tabelle enthält Subnetzmasken. Je nach verwendeter Netzwerk-Adresse und Subnetzmaske wird eine bestimmte Host-Anzahl in einem Subnetz adressierbar.
Die 4 Dezimalzahlen jeder IP-Adresse entspricht einem 32-Bit-Wert. Die Subnetzmaske ist mit 32 Bit genauso lang, wie jede IP-Adresse. Jedes Bit der Subnetzmaske ist einem Bit einer IP-Adresse zugeordnet. Die Subnetzmaske besteht aus einer zusammenhängenden Folge von 1 und 0. An der Stelle, wo die Subnetzmaske von 1 auf 0 umspringt trennt sich die IP-Adresse in Netz-Adresse und Host-Adresse.
Die Subnetzmaske wird also wie eine Schablone auf die IP-Adresse gelegt um die Netz-Adresse und Host-Adresse herauszufinden. Die Informationen über die Netz-Adresse ist wichtig bei der Zustellung eines IP-Datenpakets. Ist die Netz-Adresse bei der Quell- und Ziel-Adresse gleich, wird das Datenpaket innerhalb des gleichen Subnetzes zugestellt. Sind die Netz-Adressen unterschiedlich muss das Datenpaket über das Standard-Gateway in ein anderes Subnetz geroutet werden.
IPv6 ist der direkte Nachfolger von IPv4 und Teil der Protokollfamilie TCP/IP. Seit Dezember 1998 steht IPv6 bereit.
Der Hauptgrund für die Einführung von IPv6 war die Adressproblematik, da es bei IPv4 "nur" circa 4 Mrd. Adressen gibt. Die Zukunft wird jedoch sein, dass bald jedes Auto seine eigene IP-Adresse benötigt, sowie das jeder Fernseher bald ein Internetknoten sein soll. Und mit IPv4 ist dies nicht möglich. Das Ziel war es dieses Problem langfristig zu lösen. Weitere Verbesserungen sind:
- schnelleres Routing
- Datenpakete bis 4 GB
- eine höhere Sicherheit in der 3.Schicht bieten
Trotzdem wird eine Koexistenz mit IPv4 angestrebt, da es unmöglich ist das Internet auf einen Schlag komplett umzustellen. Durch IPv6 gibt es 340 Sextillionen IP-Adressen, das sind 1500 IP-Adressen pro Quadratmeter. Zumindest stand heute ist es unvorstellbar das diese ganzen Adressen irgendwann belegt sind.
Bei IPv6 fragt der Rechner selbst ins Netzwerk rein und fragt, welche Netzadresse, welchen Netzbereich (die ersten 64 Bit), welche 64 Bit sind den hier für ihn zuständig. Dann bekommt er vom Router die Netzwerkpräfix, hiermit ist der Router fertig. Den hinteren Teil wird über die MAC-Adresse und einen zufälligen Bit generiert. Somit kann er sich selbst eine Adresse geben, weil er den Netzbereich kennt. Der Vorteil von dieser Kommunikation ist der Router weiß ganz genau, was in dem Netzwerk los ist. Er kennt jetzt diesen Rechner, weil er bereits angefragt hat. Das heißt, es ist keine IP-Adressenvergabe möglich, ohne das sich hier die Geräte angemeldet haben. Das ist ein Sicherheitspunkt. Jetzt könnte es natürlich durch Zufall sein, das aufgrund der MAC-Adresse und dem zufälligen Bit den er generiert hat eine Adresse doppelt vergeben wird. Doppelt vergebene Adressen würden ein Netzwerk zusammen brechen lassen, minimum für die Geräte die die doppelten Adressen haben, wenn nicht sogar das gesamte Netzwerk.
Dafür gibt es DAD (Duplicate Address Detection), dabei wird wie folgt gearbeitet; der Rechner erstellt sich erstmal eine fertige IPv6-Adresse konfiguriert sich auch damit und danach sendet er an diese Adresse eine Anfrage. Wenn eine Antwort zurückkommt, dann weiß der Rechner, das diese Adresse bereits vergeben ist. Dann ändert er diesen Bereich und schon wissen wir warum er das zufällig generieren kann. Er schickt wieder eine Anfrage los und wenn er wieder eine Antwort bekommt, weiß er die ist auch schon belegt. Das macht er solange bis er irgendwann keine Antwort bekommt und dann weiß er diese Adresse ist gerade frei. Wir reden hier von der automatisierten Aktion man kann natürlich auch IPv6-Adressen statisch vergeben. Das macht man allerdings nur dann, wenn der Administrator auch weiß was in den Netzwerken los ist. DAD ist ein Vorgang der verhindert, das IP-Adressen doppelt vorkommen. Und trotzdem sehr wenig Verkehr im Netz herscht.
Das Problem hierbei ist nur, dass man die MAC-Adresse leicht rausfinden kann und es somit nicht mehr so sicher ist. Die Lösung sind Privacy Extensions die machen folgendes, sie nutzen hinten einfach willkürlich andere Zahlen. Um es nochmal sicherer zu machen, wechselt dieser hintere Anteil ständig, je nachdem wie es eingestellt ist.
IPv6-Adressen bestehen aus 8 Blöcken zu 16 Bit mit jeweils vierstelligen hexadezimalen Zahlen. Diese Blöcke werden jeweils durch einen Doppelpunkt getrennt. IPv6-Adressen sind 128 Bit lang. Jede Zahl/Buchstabe ist 4 Bit lang.
- ersten 64 Bit = Netzwerkpräfix, für das Routing zuständig
- letzten 64 Bit = Internface Identifier (IID), Host-Adressanteil
An die Stelle der IPv4-Netzmaske und der IPv4-Netzwerkadresse treten bei IPv6 die Präfixlänge und das Präfix. Die Präfixlänge gibt die Anzahl der Bits an, die den Präfix bilden. Die typische IPv6-Präfixlänge für ein Netzwerk ist /64. Das heißt die ersten 64 Bit gehören dem Netz. Der Interface Teil ändert sich pro Gerät. Die Teilung ist in diesem Fall nach 64 Bit, ab da beginnnt der Host-Adressteil.
Der Interface Identifier wird wie folgt zusammengesetzt und zwar nimmt man sich hierfür die MAC-Adresse. Die MAC-Adresse hier in unserem Fall wäre es die 02:00:00:37:02:10. Die MAC-Adresse wird jetzt binär ausgeschrieben zum besseren Verständnis. Der zweite Bit im ersten Block, zum Verständnis man liest eine binäre Adresse immer von rechts nach links, wird negiert. Sollte hier also eine Eins stehen wie in unserem Fall, wird daraus eine Null. Das ist jetzt auch der einzige Bit der geändert wird. Alles andere bleibt dann so. Das heißt die ersten drei Blöcke, werden unten übernommen. Das schwarze ist ein zufällig generierter Block und 16 Bit lang. Dieser wird ebenfalls unten eingefügt. Nun wird der Rest der MAC-Adresse unten übernommen. Der Netzwerkbereich ist identisch. Nun haben wir die IPv6-Adresse.
Weil IPv6-Adressen sehr lang sein können, werden sie in der Regel gekürzt. Diese beinhalten unter Anderem folgende Regeln:
2001:0db6:0000:affe:0000:0000:0000:0001
1.) Führende Nullen innerhalb eines Blockes dürfen ausgelassen werden.
2001:db6:0:affe:0:0:0:1
2.) Einmal darf eine Folge von Nullblöcken durch "::" ersetzt werden. Nur einmal, da sie sonst nicht mehr eindeutig identifizierbar ist.
2001:db8:0:affe::1
3.) Immer Kleinbuchstaben
4.) Die Kürzung zu zwei Doppelpunkte ("::") darf nur einmal bei der längsten Folge von Nullerblöcken durchgeführt werden. Oder bei gleicher Länge, die erste von links.
Hier kannst du dein Wissen prüfen!
Text: Nadine | Bild: Paul | Quiz: Nyal