IP-Adressen und Ports

Das große Haus

Wir Menschen verstehen besser, wenn wir Bilder vor Augen haben. Deshalb versuche ich es mal mit einem großen Haus.

Da gibt es ein großes Haus mit vielen Zimmern.

Damit Briefe und Packete zu diesem Haus zugestellt werden können, besitzt es eine Postanschrift. Beispiel:

Hauptstraße 17
12345 Müllershausen

Damit die Zustellung im richtigen Zimmer landet, benötigt es einer weiteren Angabe. Das kann der Name der Person oder die Zimmernummer sein. Beispiele:

Fr. Wagner

oder

Zimmer 127

Aber was hat das mit Netzwerktechnik zu tun?

Sehr viel.

Jeder Computer, der mit einem Netzwerk verbunden ist, ist quasi so ein großes Haus.

Damit er mittels des Netzwerks kommunizieren kann, benötigt er selbst eine "Postanschrift", sonst wissen Gegenstellen nicht, wohin sie die Antwort senden sollen. Und das ist die IP-Adresse.

Jeder Computer ist in der Lage, mit mehreren Netzwerkanwendungen gleichzeitig umzugehen. Aber wie landet die Antwort bei der entsprechenden Anwendung? Mit der "Zimmernummer", dem Port, gelingt das.

Übrigens: Wenn ich hier von Computer spreche, sind damit auch Smartphones, Tablets, etc. gemeint. Alle diese Geräte können im Netzwerk agieren.

Inhalt

IP-Adresse

Das Internet ist weltweit. Damit Donald Trump oder ich nicht das Internet durcheinander bringen, gibt es die IANA (Internet Assigned Numbers Authority) seit 1988. Sie kümmert sich um die Verteilung der IP-Adressen im Internet weltweit.

Ein Computer kann wenig ohne weitere Software mit einem Straßennahmen oder einer Postleitzahl anfangen.

Er kann nur mit 0 und 1 umgehen, weil er digital ist. Deshalb sind IP-Adressen wie folgt aufgebaut:

IPv4-Adressen

Eine IPv4-Adresse hat eine Länge von 32 Bit, also 32 Nullen oder Einsen. Beispiel:

11000000 10101000 00000010 10011010

Damit wir Menschen besser damit umgehen können, werden hier immer 8 Bit zu einer Dezimahlzahl zusammengefasst. Zwischen den Zahlen wird ein Punkt notiert. Das wäre hier:

192.168.2.154

Somit sind bei diesen Zahlen Werte von 0 bis 255 möglich.

Da 32 Bit genutzt werden, könnten sich theoretich 2 hoch 32 Geräte miteinander verbinden. Das wären also 4294967296 Geräte, über 4 Mrd. toll, oder doch nicht?

Wieviele Menschen leben auf der Welt? Derzeit sind es knapp 9 Mrd. Wieviele netzwerkfähige Geräte nutzt ein Mensch (Computer, Auto, Smartphone, Tablett, Kühlschrank, Herd, Mikrowelle, Heizung, usw.)? Fazit: Die Anzahl reicht nicht.

Deshalb werden mehrere Geräte zum Internet hin gebündelt, wo dann alle diese Geräte mit der gleichen IP-Adresse unterwegs sind. In einem Heimnetz übernimtt das der Router. Übrigens wird der Router "Rauter" ausgesprochen und nicht "Ruter".

In netzwerktechnisch dicht besiedelten Gebieten setzen ISPs (Internet-Service-Provider) auch eine Art Router ein, die vielen Privatkunden eine einzigste IP-Adresse zum Internet hin zuteilen. Die ISPs haben nur einen gewissen Bereich von IP-Adressen zur Verfügung.

Vielleicht ist es schön, dass das so geht. Aber es hat Nachteile. Für polizeiliche und staatsanwaltliche Untersuchungen bei Straftaten ist das ein riesen großer zusätzlicher Aufwand. Und ich als Serverbetreiber habe auch keine Chance, zu erkennen; "War es die gleiche Person, die meinen Server ärgert? Oder war es das gleiche Gebiet?"

Ein paar fest vergeben IPv4-Adressbereiche

vonbisVerwendungszweck
0.0.0.00.255.255.255Das Netzwerk selbst
10.0.0.010.255.255.255Direktverbindungen zwischen Computern ohne Router
127.0.0.0127.255.255.255Der Computer selbst (Loopback)
Innerhalb eines Computers kommunizieren Programme miteinander mittels Netzwerk.
169.254.0.0169.254.255.255DHCP. Wenn ihr ein neues Gerät im Heimnetz anmeldet, benötigt das neue Gerät dann auch eine IP-Adresse vom Router. Über diesen Adressbereich wird dem Gerät die IP-Adresse zugeteilt.
172.16.0.0172.31.255.255Privates Netz, wird oft für Gastzugänge genutzt, 1048576 Teilnehmer wären möglich..
192.168.0.0192.168.255.255Privates Netz, 65536 Teilnehmer wären möglich.
224.0.0.0239.255.255.255Multicasts, Mehrpunktverbindungen
240.0.0.0255.255.255.254Reserviert
255.255.255.255255.255.255.255Limited Broadast, über diese Adresse kommuniziert der Router mit allen Teilnehmern im Netzwerk, also eine Art Mehrpunktverbindung.

Und so werden aus den 4,2 Mrd. Adressen immer weniger, die für das Internet zur Verfügung stehen.

Die 2 Adressbereiche für private Netze können in jedem privaten Netzwerk genutzt werden. Diese Adressen werden nicht in das Internet geroutet.

IPv6-Adressen

Eine IPv6-Adresse besteht aus 128 Bit und ist somit 4 mal länger als eine IPv4-Adresse. Ein Beispiel:

10000000000011 0000000011000111 0111001111111010 1011110100101001 0000000000000000 0000000000000000 1011101011111111 0000011001000011

Damit wir diese große Anzahl an Bits händeln können, werden 16 Bits zu einer hexadezimalen Zahl (Basis 16, Ziffern von 0 bis 9 und a bis f) zusammengefasst. Zwischen diesen Zahlen wird ein Doppelpunkt notiert. In diesem Beispiel sieht das so aus:

2003:00c7:73fa:bd29:0000:0000:baff:0643

Also sind für jeder dieser Zahlen Werte von 0000 bis ffff möglich.

Da es viele Bereiche gibt, wo die 16er Bitgruppen mit Nullen beginnen, können führende Nullen weggelasen werden:

2003:c7:73fa:bd29:0:0:baff:643

Sind eine oder mehrere aufeinander folgenden 16er Bitgruppen komplett mit Nullen belegt, kann man diese komplett weglassen. Dazu muss ein 2. Doppelpunkt notiert werden. Das geht aber nur einmal pro Adresse.

2003:c7:73fa:bd29::baff:643

Aus den 128 Bits resultieren
340.282.366.920.938.463.463.374.607.431.768.211.456
mögliche IP-Adressen. Kann mir jemand die Zahl vorlesen?

340 Sextillionen 282 Quintilliarden 366 Quintillionen 920 Qadrilliarden 938 Quadrillionen 463 Trilliarden 463 Trillionen 374 Billiarden 607 Billionen 431 Milliarden 768 Millionen 211 Tausend 456

Zu so großen Zahlen fehlt uns einfach der Bezug, deshalb drücke ich es andes aus.

Für jedem Qadratzentimeter (Fläche von 1 cm mal 1 cm) der Erdoberfläche inklusive der Meere stehen so 4 IPv6-Adressen zur Verfügung.

Man glaubt es kaum, das gibt es schon seit dem Jahre 2002. Und noch heute tun sich Netzwerkdienste mit IPv6-Adressierungen schwer.

Da es so die Unmenge an möglichen Addressen gibt, hat man sich auf folgendes geeinigt:

  1. Man trennt die Adresse in der Mitte, also nach 64 Bit.
  2. Der erste Teil davon ist der globale Teil der Adresse. Ihn nennt man Präfix. Dieser wird vom ISP oder Router zugewiesen.
  3. Der zweite Teil ist der lokale Teil, der Suffix genannt wird. Dieser kann selbst, z.Bsp. im Heimnetz, genutzt werden.

In dem Beispiel bedeutet das:

Globaler Teil
Präfix
Lokaler Teil
Suffix
2003:00c7:73fa:bd290000:0000:baff:0643
2003:c7:73fa:bd29::baff:643

Aufgrund der 64 Bit stehen somit jedem Teil 18.446.744.073.709.551.616 Adressen zur Verfügung. Reichen Euch 18,4 Trillionen Adressen für das Heimnetz?

Weitere Unterschiede von IPv6 zu IPv4

Ein paar Bereiche von IPv6-Adressen

Adresse bginnt mitVerwendungszweck
::1, also
0:0:0:0:0:0:0:1
Loopback, localhost. Über diese Adresse kommunizieren Programme innerhalb eines Gerätes. Sie ist sogar vorhanden, wenn das Gerät keine Netzwerkschnittstelle besitzt.
2Alle Internetadressen weltweit beginnen mit 2. Das wurde so erst mal von der IANA festgelegt, da es immer noch mehr als genug sind.
fdAlle Adressen, die mit fd beginnen, sind Adressen im privaten Netz. Sie werden nicht ins Internet geroutet. Den kompletten Präfix definiert in der Regel der Router.
fe80::, gemeint ist
fe80:0:0:0:
Link-Local-Adressen. Mittels Routeradvertisement können die automatischen Adresskonfigurationen ohne DHCP erfolgen, dafür wird dieser Adressbereich genutzt.
ff00:Multicast, Mehrfachverbindungen

Und mehr Adressen braucht der normale Anwender auf der Welt erst mal nicht. Könnt Ihr erkennen, was da noch übrig bleibt?

Inhalt

Port

Kommen wir nun zu den Zimmernummern im großen Haus.

Um eine Netzwerkverbindung zu einem Gerät herstellen zu können, benötigt das Gerät eine IP-Adresse (Postanschrift).

Auf dem Gerät können aber viele Dienste laufen, die mit dem Netzwerk kommunizieren.

Wie kommt nun aber die Netzwerkanfrage beim richtigen Dienst an? Über die Zimmernummer, dem Port.

Jede Netzwerkanfrage wird zu einer IP-Adresse über einen Port gesendet.

Der Port hat eine Größe von 16 Bits. Beispiel:

0000 0001 1011 1011

Damit wir besser mit diesen Bits umgehen können, werden diese zu einer Dezimahlzahl zusammengefasst. In diesem Beispiel:

443

Das ist also der Port, auf dem ein Webserver auf eine HTTPS-Verbindung lauscht.

Aus den 16 Bits ergebnen sich mögliche Werte von 0 bis 65535.

Man könnte also theoretisch 65536 Netzwerkdienste auf einem Gerät laufen lassen?

Nein.

Einige Ports sind fest dem System vergeben. Also kann man diese nicht nutzen. Das sind aber nur wenige.

Was ist denn, wenn wir dem Gerät eine zweite IP-Adresse zuweisen und somit noch einmal ein großes Haus bauen?

Netzwerkdienste lassen sich in der Regel IP-Adressen zuordnen. Ups, da sind es ja 131072 Möglichkeiten für Netzwerkdienste.

Transportprotokolle

Die derzeit gängigsten Varianten sind TCP und UDP. Ich gehe hier nicht näher darauf ein.

TCP wird mehr genutzt. Port 12345 ist als Beispiel vergeben.

Für UDP ist der Port 12345 aber verfügbar.

Somit erhöht sich durch den Einsatz von verschieden Protokollen die Anzahl an möglichen Netzwerkdiensten pro Gerät.


Besonderheit bei TCP

Eine TCP-Verbindung benötigt 2 Ports. Sie ermöglichen Duplex-Verbindungen, wo das Senden und Empfangen von Daten gleichzeitig erfolgen kann.

Die Anfrage des Clients zum Server wird auf dem festgelegten Port durchgeführt. Danach wird ein Antwort-Port, der sich im Bereich 49152 bis 65565 befindet, ausgehandelt, da dieser Port auf beiden Geräten frei sein muss.

Somit können beide Geräte, wenn es die Software kann, gleichzeitig Daten senden und empfangen.

Nach dem Beenden der TCP-Verbindung steht der Antwort-Port wieder zur freien Verfügung.

Portbereiche

Damit Donald Trump oder ich nicht mal wieder das Internet durcheinander bringen, wurden von der IANA Portbereiche festgelegt.

BereichVerwendungszweck
0 bis 1023

Systemports

Dieser Bereich ist für Systemprogramme vorgesehen.

Einige Beispiele für TCP-Verbindungen sind:

  • Port 22: SSH-Verbindungen
  • Port 25, 465, 587: Mail-MTAs
  • Port 80: Webserver HTTP-Verbindungen
  • Port 443: Webserver HTTPS-Verbindungen

Um Ports aus diesem Bereich nutzen zu können, sind Root-Rechte (Administratorrechte) erforderlich.

1024 bis 49151

Registrierte Ports

So wirklich registriert ist hier nicht alles.

Auf diesen Ports befinden sich Netzwerkdienste, die eigentlich speziell auf Anwendungen ausgelegt sind.

Viele dieser Ports werden inoffiziell von Anwendungen genutzt. So gibt es hier keine absolute Ordnung. Werden mehrere Anwendungen gleichzeitig genutzt, können diese miteinander kollodieren.

Um diesen Portbereich zu nutzen, sind keine Root-Rechte erforderlich.

49152 bis 65535

Dynamische Ports

Hier kann man seine eigene (private) Software unterbringen.

Dieser Bereich wird für den Antwort-Port von TCP verwendet, Sichwort Duplex.

Linux-Entwickler halten diesen Bereich für zu klein und schlugen vor, diesen Bereich schon bei Port 32000 beginnen zu lassen. Die daraus entstandenen Disskusionen sind im Ergebnis bis derzeit ins Leere gelaufen.

Eine halbwegs komplette Portliste findet Ihr auf de.wikipedia.org

Inhalt