IP im Ethernet-LAN

Aus DebianforumWiki
Zur Navigation springen Zur Suche springen
Baustelle.png Baustelle: Dieser Artikel ist eine Baustelle. Das heißt, jemand hat sich dieses Artikels angenommen und überarbeitet ihn gerade.


Ein Ethernet-Link

Ein Link ist eine direkte Verbindung. Die Einfachste ist ein Kabel. Um mehrere Kabel zu einem Link zu verbinen gibt es Hubs, Repeater und Switches. So kann ein Link mehr als zwei Enden haben. (Wobei es auch einfache Kabel mit mehr als 2 Enden gibt.) Eine seltener genutzte Methode ist es die 2 Link an 2 Netzwerkkarten mit einer sogenanten Bridge zu einem einzigen zusammenzuschließen. Ein WLAN-netzwerk funktioniert ähnlich wie ein Link. Viele Heimrouter schließen eien eingebauten Switch und das WLAN-Netzwerk zu einem Link zusammen.

Warnung.png Warnung: Ein Link darf niemals einen Kreis enthalten.


Hinweis.png Hinweis: Switches verbinden mehrere Links zu einem, Router haben Verbindungen zu mehreren unterschiedlichen Links.


Interface-Adressen

Jede Netzwerkschnittstelle (Interface) kann eine oder mehrere Adressen haben. Eine auflistung könnte so aussehen:

user@debian:~$ ip addr list
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 16436 qdisc noqueue state UNKNOWN 
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
    inet 127.0.0.1/8 scope host lo
    inet6 ::1/128 scope host 
       valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:0c:de:ad:be:ef brd ff:ff:ff:ff:ff:ff
    inet 141.70.9.90/24 brd 141.70.9.255 scope global eth0
    inet 192.168.1.2/24 scope global eth0
    inet6 2001:db8::cafe:babe/48 scope global 
       valid_lft forever preferred_lft forever
    inet6 fe80::cafe:babe/64 scope link 
       valid_lft forever preferred_lft forever
3: eth1: <BROADCAST,MULTICAST> mtu 1500 qdisc noop state DOWN qlen 1000
    link/ether 00:1d:ba:dc:ab:1e brd ff:ff:ff:ff:ff:ff

Zu sehen sind 3 Interfaces:

  • eth1: Eine ungenutzte Netwerkkarte
  • lo : Diese Schnittstelle ist in jedem Computer vorhanden und ermöglicht die Kommunikation eine Rechners mit sich selbst. Viele Anwendungen nutzen das als Betriebssystemunabhängige Möglichkeit miteinander zu kommunizieren.
  • eth0: Eine Netzwerkkarte die über einen Link mit diversen anderen Geräten verbunden sind, ihre Konfiguration wird nachfolgend genauer erklärt.

Mac-Adressen – Ethernet

Hinweis.png Hinweis: Ethernet funktioniert meisten ohne weitere Konfiguration. Wenn du dich nicht weiter für die Hintergründe interessierst kannst du diesen Abschnitt überspringen. Merken solltest du dir lediglich, dass Ethernet für die Kommunikation innerhalb eines Links zuständig ist.


Um innerhalb eines Links zu kommunizieren wird meist Ethernet genutzt. Im privaten Bereich sogar praktisch ausschließlich. Da mehr als ein Interface an einem Link hängen kann. Besitzt jedes eine eindeutige MAC-Adresse, mit der der Absender sagen kann an wen er das Paket verschicken kann. Damit es keine Verwechslungen gibt, werden sie typischerweise (hoffentlich weltweit eindeutig) vom Hersteller des Interfaces vergeben. Man kann sie aber auch selbst vergeben. Außerdem gibt es noch einige besondere MAC-Adressen wie z.B. ff:ff:ff:ff:ff:ff damit ist gemeint, dass das Paket schlicht an alle Interfaces am Link gehen soll. In der Ausgabe von ip sind sie mit link/ether gekennzeichnet. Im oberen Beispiel ist die Adresse von eth0 also 00:0c:de:ad:be:ef von eth1 00:1d:ba:dc:ab:1e. Will man lediglich eine Übersicht über die MAC-Adressen kann man auch folgenden Befehl benutzen:

user@debian:~$ ip link list

Im Normalfall wird das Paket nun an alle Knoten am Link verschickt. Jedes Interface fischt sich dann die Pakete die für es selbst bestimmt sind heraus. Switches sind etwas intelligenter. Kam aus einer Ecke mal ein Paket von einer bestimmten Adresse, merkt er sich das und sendet in Zukunft nur noch in diese Richtung.

Normalerweise Kommuniziert man allerdings nie direkt mit einer Bestimmten MAC-Adresse. Man kennt für gewöhnlich nur die IP-Adresse. Um die MAC-Adresse zu einer IP-Adresse zu finden, werden die Protokolle arp oder NDP benutzt, auf die hier nicht weiter eingegangen wird. Wichtig ist auch sie funktionieren wie alles in diesem Abschnitt beschriebene lediglich auf einem Link.

Eine Liste mit Zuordnungen von IP- zu MAC-Adressen, die ein Computer schon kennt, gibt folgender Befehl

user@debian:~$ ip neigh

IP-Adressen

Neben den MAC-Adressen sind in der Obigen Auflistungen noch IP-Adressen zu sehen. IP-Adressen gibt es im Moment in 2 Versionen:

  • Version 4 (IPv4): In der Ausgabe von ip Gekennzeichnet durch inet.
  • Version 6 (IPv6): In der Ausgabe von ip Gekennzeichnet durch inet6.

Die Beiden Versionen unterscheiden sich im Prinzip kaum. Der Hauptunterschied ist, dass IPv4 deutlich älter ist und 32 Binärstellen hat während IPv6 128 Binärstellen hat.

Darstellung

Zuerst sind IP Adressen am besten als Sequenzen von Nullen und Einsen (Binärstellen zu verstehen). Da eine Sequenz von 128 Nullen und Einsen (bei IPv6) relativ unübersichtlich ist, wird das typischerweise nicht so aufgeschrieben. Bei IPv4 werden typischerweise immer 8 zusammengefasst als Zahl im Zweiersystem aufgefasst und dann ins Zehnersystem umgerechnet und punkte zwischen die 4 so entstandenen Zahlen gesetzt. Es ist aber auch legitim einfach alle stellen auf einmal umzurechen. Entsprechend sind 144.76.154.165 und 2420939429 die gleiche IP-Adresse des Debianforums.

Die Umrechnerei von IPv4 Adressen ist nicht ganz einfach. Wenn es benötigt wird ist ggf. einer der vielen fertigen Umrechner hilfreich. Im Normalfall reicht es allerdings zu wissen, dass zwischen 2 Punkten immer 8 Bit liegen.

Bei IPv6 werden stattdessen immer 16 Stellen genommen und ins Hexadezimalsystem umgerechnet. Dazwischen kommen Doppelpunkte. Eine beliebig lange Sequnez aus Nullen darf durch :: ersetzt werden. Führende Nullen dürfen wie bei jeder anderen normalen Zahl weggelassen werden. Entsprechend ist 2001:db8::cafe:babe das gleiche wie 2001:0db8:0000:0000:0000:0000:cafe:babe. Der Vorteil von der letzten Schreibweise ist, dass dort eine Ziffer immer genau 4 Binärstellen entspricht, was die Nutzung (Siehe dazu nächster Abschnitt) deutlich einfacher macht.

Präfix und Host

Jede IP-Adresse besteht aus zwei teilen. Einem Präfix oder Netzteil und einem Suffix oder Hostteil. Die vorderen Bits Entsprechen dem Netzteil, die hinteren dem Hostteil. Wie viele Bits zum Netzteil gehören, wird hinter der Adresse nach einem Schrägstrich angegeben. Der Hostteil enthält logischerweise die restlichen Bits.


Veranschaulichung

/24 Bei IPv4 Heißt entsprechend, 25Bit für den Netzteil, die letzten 32-24=8 Bit für den Hostteil. /64 bei IPv6 ebenfalls 128-64=64 für den Hostteil.

Bei IPv6 ist das im Normalfall sehr einfach. Praktisch alle IPs sind /64. Entsprechend sind die ersten 4 Blöcke Netzteil, die anderen 4 Hostteil.

Bei IPv4 ist das nicht so einfach. Das relativ häufig verwendete /24 ist noch einfach: Die ersten drei Blöcke sind Netzteil, der letzte ist der Hostteil. Bein /8 ist der erste Netzteil Teil und die letzte Host-Teil. Kompliziert wird es z.B. bei /20. Die ersten beiden Blöcke sind offensichtlich Netzteil. Der letzte Hostteil. Aber der Vorletzte ist eine Mischung aus beidem. Eine genaue Zuordnung kann erst nach der Umrechnung in's Binärsystem getroffen werden.


Der Netzteil Bezeichnet jeweils den Link. Wichtigstes Gebot: Haben zwei Adressen den gleichen Netzteil, Sitzen sie am gleichen Link. Zwei unterschiedliche Links dürfen also Weltweit nie den Gleichen Netzteil haben.

Aber keine Regel ohne Ausnahme:

  • ::1/128 und 127.0.0.0/8 Sind Netzteile, die schlicht den eigenen Computer Bezeichnen. Sie existieren (Siehe lo-Interface im Obigen Beispiel.) also auf jedem Computer neu.
  • Die Privaten IPv4-Netze 10.0.0.0/8, 172.16.0.0/12 und 192.168.0.0/16 sind für den Gebrauch außerhalb des Internets gedacht. Da sie mit anderen Netzen nicht interferieren können, können sie können entsprechend in jedem vom Internet abgetrennten Netz erneut genutzt werden. Weiter unten wird gezeigt wie solche Adressen trotzdem Verwendet werden können um beispielsweise Webseiten aus dem Internet abzurufen.
  • fe80::/64 Ein fertig eingerichtetes IPv6 Netz das automatisch auf jedem Link konfiguriert wird. Es wird zur Konfiguration des Netzwerks benutzt und ist für die direkte Nutzung ziemlich ungeeignet.
  • Anycast und Multicast Adressen. Sie spielen im LAN allerdings (noch) keine Rolle.

Umgekehrt geht das allerdings schon: Man kann auf einem Link mehrere unterschiedliche Netzteile haben. Z.B hat der Rechner im obigen Beispiel die Adresse 141.70.9.90/24 (Also Netzteil 141.70.9.0/24) für die Kommunikation im Internet und 192.168.1.2/24 (Also Netzteil 192.168.1.0/24) für die Kommunikation mit Rechnern, die zwar am Gleichen Link hängen aber kein Internet nutzen. Dazu kommt noch die IPv6 Adresse 2001:db8::cafe:babe/48 (Also Netzteil 2001:db8::/48).

Während der Netzteil also den Link angibt, braucht man den Hostteil um das Interface eindeutig zu identifizieren. Schließlich will man ja typischerweise mit einem bestimmten und nicht mit allen Computer an einem Link kommunizieren. Da MAC-Adressen das ja schon machen ist es bei IPv6 eine übliche Praxis schlicht die MAC-Adresse als Hostteil zu nehmen. Wer seine MAC-Adresse geheim halten will, oder sich schlicht cafe:babe besser merken kann, kann natürlich auch etwas anderes nehmen. Wichtig ist nur, dass zwei vollständig gleiche IP-Adressen auftauchen. Will man im übrigen doch mit allen Geräten an einem Link sprechen geht das auch: Die größte IP im Netz ist immer die für alle Geräte am Link. Sie darf also auch nicht an einen Bestimmten Computer vergeben werden.

Autokonfiguration - Oder woher kommt die IP

Forwarding Tabellen