Seite drucken

Einführung in IP-Adressen und Ports

Vorwort

Folgendes Dokument ist primär für Anfänger gedacht. Es soll einen ersten Überblick vermitteln, was IP-Adressen und Ports sind. Ich hoffe, ihr seit nach der Lektüre etwas schlauer geworden. Solltet Ihr Fragen haben oder Unklarheiten bestehen, nehmt Kontakt zu mir auf.

Einleitung

Ich beginne mit der Einführung nicht direkt beim Thema Internet, sondern will deine Aufmerksamkeit zunächst auf die Post lenken. Stell dir vor, dein Freund Karl Itchy ist vor kurzem in die USA gezogen und du möchtest nun gern wissen, wie es geht und ob es ihm gefällt. Du beschließt du ihm eine Postkarte zu schreiben, obwohl du seine neue Adresse noch nicht kennst.

In deine Postkarte schreibst du nun deine Nachricht und als Empfängerangabe gibst du folgendes an:

Karl Itchy
Springfield
USA

und hoffst, dass die Karte ankommt.

Nach einigen Tagen klingelt bei dir die Post und überreicht die Karte als unzustellbar. Der Postbeamte meint, dass unbedingt eine Postleitzahl zur Zuordnung der Stadt gebraucht wird. Als du später in den Atlas schaust, stellst du fest, dass fast jeder US-Bundesstaat eine Stadt namens Springfield hat. Somit hast du die Post vor ein fast unlösbares Problem gestellt.

Wie kannst du nun mit ihm in Kontakt treten? Da fällt dir ein, dass du noch eine E-Mail-Adresse von ihm hast. Diese sollte er doch auch in den USA erhalten. Während du am Rechner sitzt und die E-Mail schreibst, überlegst du, wie denn die Mail den Weg in die USA findet.

IP-Adressen

Nehmen wir an, dein Freund hat die Adresse karl.itchy@example.com. Nun muss die Post von deinem Rechner den Weg zu dem Rechner example.com finden. Nur wie passiert das?

Ein Weg könnte sein, dass dein Rechner alle anderen Rechner im Internet befragt, wie diese heißen und wenn dann einer mit "example.com" antwortet, sendet er ihm die E-Mail. Bei einem täglichen weltweiten Mailaufkommen von mehreren Milliarden und mehreren Million mit dem Internet verbundenen Rechner ist diese Vorgehensweise reichlich unrealistisch. Weiterhin würde dein Computer wahrscheinlich Probleme mit Antworten aus China oder Russland bekommen ...

Um diese Probleme zu vermeiden, arbeitet der Rechner mit Nummern. Ähnlich wie bei der Post Postleitzahlen Orten zugeordnet werden, werden hier so genannte IP-Adressen den Rechnernamen zugeordnet. IP steht für Internet Protocol und ist ein Standard, der in RfC 791 festlegt ist. Dort wird unter anderen gesagt, dass eine IP-Adresse aus vier Zahlenblöcken besteht, die durch Punkte getrennt sind. Der kleinste Wert ist die 0, der größte ist 255. Somit wäre die kleinstmögliche IP-Adresse 0.0.0.0, die größtmögliche 255.255.255.255 und z.B. 213.7.109.86 liegt irgendwo zwischendrin.

Jeder Rechner, der mit dem Internet verbunden ist, besitzt eine IP-Adresse. Jetzt interessiert dich sicher, wie deine eigene aussieht? Dazu öffnest du ein Kommandozeilenfenster (Windows: Start->Programme->MS-DOS-Eingabeaufforderung oder Start->Ausführen->"cmd"; Linux/Unix: Falls du dich nicht schon in der Konsole befindest, öffnest du ein aterm, xterm, rxvt oder ähnliches). Dort gibst du "ipconfig" (Windows) bzw. "/sbin/ifconfig" (Linux) ein und erhältst eine Ausgabe der folgenden Art:

IP-Konfiguration unter Windows 2000

C:\>ipconfig
Windows 2000-IP-Konfiguration
PPP-Adapter "Internetanbieter":
Verbindungsspezifisches DNS-Suffix:
IP-Adresse. . . . . . . . . . . . : 213.7.109.86
Subnetzmaske. . . . . . . . . . . : 255.255.255.255
Standardgateway . . . . . . . . . : 213.7.109.86

IP-Konfiguration unter Linux

kubi@QBI050102:~$ /sbin/ifconfig
loProtokoll:Lokale Schleife
inet Adresse:127.0.0.1 Maske:255.0.0.0
UP LOOPBACK RUNNING MTU:16436 Metric:1
RX packets:719 errors:0 dropped:0 overruns:0 frame:0
TX packets:719 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:0
RX bytes:471086 (460.0 KiB) TX bytes:471086 (460.0 KiB)

ppp0Protokoll:Punkt-zu-Punkt Verbindung
inet Adresse:213.7.109.86 P-z-P:62.104.207.33 Maske:255.255.255.255
UP PUNKTZUPUNKT RUNNING NOARP MULTICAST MTU:1500 Metric:1
RX packets:770 errors:0 dropped:0 overruns:0 frame:0
TX packets:761 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:3
RX bytes:461407 (450.5 KiB) TX bytes:77014 (75.2 KiB)

Der Eintrag "IP-Adresse" bzw. "inet Adresse" verrät dir deine aktuelle IP-Adresse.

Nun kennst du deine eigene IP-Adresse. Doch woher erfährt der Rechner die des Rechner mit dem Namen "example.com"? Für diesen Zweck existieren spezielle Rechner, so genannte Domain Name Server. Diese haben eine Art Tabelle, wo jedem Rechnernamen eine IP-Adresse zugeordnet ist. Dein Rechner fragt zuerst diesen Computer nach der IP-Adresse von "example.com". Nachdem er die Antwort erhalten hat, kann die E-Mail ohne große Probleme auf die Reise gehen und dein Freund wird dir schon bald antworten.

Ports

Während nun deine E-Mail sich auf den Weg zum anderen Rechner macht, surfst du noch ein wenig im Internet und lädst dir deine neusten Nachrichten herunter. Wie du nun weißt, werden all diese Daten an deine IP-Adresse gesendet. Wie erkennt nun der Computer oder einzelne Programme welche Daten für welche Anwendung bestimmt sind? Kann es vielleicht sein, dass Teile deiner E-Mail zwischen Internetseiten angezeigt werden oder dass Teile der Internetseiten in die Mails gemischt sind? Nein! Die Lösung für dieses Problem sind Ports.

Stell dir zum Vergleich ein großes Bürohaus vor. Dieses Haus hat eine bestimmte Postadresse und in dem Haus arbeiten in verschiedenen Zimmer Leute. Wenn du etwas von denen bearbeiten lassen möchtest, schreibst du zusätzlich zur Adresse die Zimmernummer des Bearbeiters drauf. Deine Post wird dann diesem zugeleitet, der erledigt die Aufgabe und schickt dir wieder etwas zurück. Ganz ähnlich funktioniert dies beim PC.

Jeder der Ports ist wie ein Zimmer, in dem ein Programm sitzt und Daten mit einem anderen Rechner austauscht. Wenn du also surfst, könnte es sein, dass sich dein Browser in das Zimmer mit der Nummer 22563 setzt. Nun möchte dieser die Seite "ip-port.html" vom Computer mit dem Namen "www.kubieziel.de" haben. Also fragt er zunächst den Nameserver nach der IP-Adresse und erhält als Antwort . Nun wird er eine Anfrage an diese Adresse schicken und bittet das Programm (den sog. Webserver) im Zimmer 80 ihm die Seite "ip-port.html" zu schicken. Nachdem diese angekommen ist, schließt der Browser sein Zimmer wieder ab und zeigt dir die Seite an.

So oder so ähnlich läuft auch die Kommunikation im Internet ab. Nur das es eben keine Zimmer, sondern Ports gibt. Diese sind deine Kommunikationskanäle zum Internet. Jeder Rechner kann bis zu 65.536 Ports öffnen und darüber mit anderen Rechnern im Internet kommunizieren. In der Praxis hat ein Rechner meist nur wenige Ports offen. Wenn dich interessiert, welche Ports dein Computer aktiviert hat, öffnest du wieder, wie oben beschrieben ein Kommandozeilenfenster, und gibt dort netstat ein. Dieser Befehl erzeugt unter Windows wie unter Linux (Eventuell solltest du hier die Ausgabe mit der Option "-t" einschränken. Genauere Hinweise kannst du der Man-Page entnehmen.) eine ähnliche Ausgabe:

Ausgabe des Befehls netstat

kubi@QBI050102:~$ netstat -t
Aktive Internetverbindungen (ohne Server)
Proto Recv-Q Send-Q Local AddressForeign AddressState
tcp08 213.6.116.129:3340781.2.134.100:pop3VERBUNDEN
tcp0104 213.6.116.129:3342462.80.124.238:wwwVERBUNDEN
tcp0561 213.6.116.129:33567194.97.5.11:nntpVERBUNDEN

Hier ist es so, dass der Computer mit der IP-Adresse "213.6.116.129" die Ports 33407, 33424 und 33567 geöffnet hat. Er hat z.B. eine Verbindung zu dem Rechner mit den IP-Adresse "81.2.134.100" Port 110 geöffnet. In der obiger Auflistung steht POP3 für Port 110, WWW für Port 80 und NNTP für Port 119. Eine vollständige Zuordnung aller Portnummern zu den entsprechenden Diensten findet man auf den Seiten der IANA.

Weiterführende Literatur

Ich hoffe, du hast durch die Lektüre dieser Seite einiges gelernt und kannst nun einige Vorgänge in deinem PC genauer deuten. Wenn du dich weiter informieren möchtest, sei dir die folgende Liste ans Herz gelegt:

Auf der Seiten der Sendung mit der Maus gibt es eine weitere gute Einführung in das Thema (Hierzu existiert auch ein Video)
http://www.wdrmaus.de/sachgeschichten/internet/
Ein Video zum Thema Internet findet man bei
http://www.warriorsofthe.net/
Von Prof. Jürgen Plate gibt es eine sehr ausführliche Einleitung zum Thema "Sicherheit in Netzen". Hier werden auch die Grundlagen gut erklärt.
http://www.netzmafia.de/skripten/sicherheit/index.html
Kristian Köhntopp hat in der c't Ausgabe 4/93 einen Artikel zu "TCP/IP-Technik" verfasst
http://kris.koehntopp.de/artikel/tcpip-technik/
Auch die Seite der Linux User Group SW hat einen guten Text zu TCP/IP
http://www.lug-sw.de/tcp_ip.html
Dr. Rudolf Strub hat einen Lehrgang geschrieben und konzentriert sich dabei besonders auf den Weg eines IP-Pakets
http://people.ee.ethz.ch/~strub/tcp-ip/tcp-ip.html
Die Newsgruppen de.comp.security.firewall, de.comp.security.misc und microsoft.public.de.security.heimanwender haben eine Liste mit häufig gestellten Fragen
http://www.iks-jena.de/mitarb/lutz/usenet/Firewall.html
http://www.stud.tu-ilmenau.de/~traenk/dcsm.htm
http://faq.underflow.de/ http://www.linkblock.de/
Rusty Russell beschreibt in seinem Netzwerkkonzept-HOWTO (englisch) sehr gut die Zusammenhänge.
http://www.netfilter.org/documentation/HOWTO/networking-concepts-HOWTO.html