TCP/IP und Routing Grundwissen

Aus Linupedia
Wechseln zu: Navigation, Suche

Autor: Martin Breidenbach

Eine TCP/IP-Adresse besteht aus vier Bytes (0..255) und sieht zum Beispiel so aus:

192.168.0.17

d.h. die übliche Schreibweise ist, dass man die vier Bytes durch Punkte voneinander trennt.

Ein Gerät erhält seine TCP/IP-Adresse entweder dadurch, dass sie manuell eingetragen wird, oder sie wird zentral von einem Server vergeben, der die Protokolle BOOTP oder DHCP unterstützt bzw. entsprechende Dienste installiert hat.

Zwei Geräte die TCP/IP verwenden, können nun entweder direkt miteinander kommunizieren (weil sie im Netzwerk direkt miteinander verkabelt sind *UND* im selben IP-Subnetz liegen) oder müssen über einen Router (in diesem Zusammenhang auch oft Gateway genannt) miteinander kommunizieren. Dazu unterteilt man die Adressbereiche in Subnetze. Zwei Geräte die im selben Subnetz liegen, können miteinander direkt kommunizieren. Liegen sie nicht im selben Subnetz, dann müssen die Datenpakete über ein Gateway gesendet werden.

Die Entscheidung, ob zwei TCP/IP-Adressen im selben Subnetz liegen, wird über die Subnetzmaske gefällt. Beide Adressen werden durch ein logisches AND mit der Subnetzmaske verknuepft. Kommt dabei dasselbe heraus liegen sie im selben Subnetz.

Bei der am häufigsten verwendeten Subnetzmaske 255.255.255.0 bedeutet das: wenn die ersten drei Bytes von zwei IP-Adressen identisch sind dann liegen sie im selben Subnetz.

Wenn man nun einen Rechner mit mehreren Netzwerkkarten hat (und sei das 'normale' Netzwerkkarte und WLAN) so sollte man die auch für unterschiedliche Subnetze konfigurieren sonst kommt das Routing durcheinander.

Nun will ich auf die Funktion der Subnetzmasken etwas detaillierter eingehen.

Kurzer Exkurs ins binäre Rechnen

Die AND-Operation funktioniert so:

0 AND 0 = 0
0 AND 1 = 0
1 AND 0 = 0
1 AND 1 = 1

Die Byte-Werte der TCP/IP-Adresse werden wie folgt in Binärwerte umgerechnet:

Jede Stelle einer Binärzahl steht für eine Zweierpotenz (so wie wir üblicherweise Zehnerpotenzen im Dezimalsystem verwenden):

1234 dezimal = 1*1000 + 2*100 + 3*10 + 4*1 = 1*10^3 + 2*10^2 + 3*10^1 + 4*10^0

1010 binär = 1*8 + 0*4 + 1*2 + 0*1 = 1*2^3 + 0*2^2 + 1*2^0 + 0*2^0

147 dezimal = 1*128 + 0*64 + 0*32 + 1*16 + 0*8 + 0*4 + 1*2 + 1*1 =10010011 binär


Subnetzmasken

Hier ein Link mit einer Grafik die die verschiednen Subnetzmasken veranschaulicht:

http://shorewall.net/pub/shorewall/contrib/IPSubNetMask.html


Subnetze, Beispiel 1

Adresse 1 : 192.168.000.001
Adresse 2 : 192.168.000.002
Adresse 3 : 192.168.001.001
Subnetzmaske : 255.255.255.000

Adresse 1 : 192.168.000.001 AND 255.255.255.000 = 192.168.000.000
Adresse 2 : 192.168.000.002 AND 255.255.255.000 = 192.168.000.000
Adresse 3 : 192.168.001.001 AND 255.255.255.000 = 192.168.001.000

Die ersten beiden Adressen liegen also im selben Subnetz.

Subnetze, Beispiel 2

Adresse 1 : 192.168.000.001
Adresse 2 : 192.168.000.002
Adresse 3 : 192.168.000.033
Adresse 4 : 192.168.000.034
Subnetzmaske : 255.255.255.224

Adresse 1 : 192.168.000.001 AND 255.255.255.224 = 192.168.000.000
Adresse 2 : 192.168.000.002 AND 255.255.255.224 = 192.168.000.000
Adresse 3 : 192.168.000.033 AND 255.255.255.224 = 192.168.000.032
Adresse 4 : 192.168.000.034 AND 255.255.255.224 = 192.168.000.032

Die ersten beiden Adressen und die letzten beiden liegen jeweils im selben Subnetz.

Die Subnetzmaske legt also die Größe eines Subnetzes fest (und umgekehrt). Die erste und die letzte Adresse eines Subnetzes können nicht für Geräte verwendet werden, da sie für die Adressierung des Subnetzes selbst und Broadcasts verwendet werden (Broadcasts sind Pakete die 'an Alle' gesendet werden). Bei einer Subnetzmaske von Maske 255.255.255.0 waeren dies die .0 und .255, es stehen also 256-2=254 Adressen zur Verfügung. Im Beispiel 2 (255.255.255.224) sind das 32-2=30 Adressen.

Schreibweise 192.168.0.1/24 für Subnetzmasken

Eine beliebte Schreibweise für IP-Adressen und Subnetzmasken besteht darin dass man einfach die Anzahl der gesetzten Bits (=die Einser in der Binärdarstellung) der Subnetzmaske, die ja für den Netzwerkanteil der Adresse stehen, hinter der Adresse angibt: 192.168.1.1/24 ist also 192.168.1.1 mit einer Subnetzmaske aus 24 Einsen, also 255.255.255.0

Subnetting und Supernetting

Subnetting

Unter Subnetting versteht man die Aufteilung eines gegebenen IP-Netzwerkbereichs in kleinere Segmente. Dies kann notwendig werden aufgrund der nachträglichen räumlichen Aufteilung eines vorhandenen Netzwerks durch z.B. Abteilungsumzug oder durch spätere Umstrukturierung der physikalischen Gegebenheiten innerhalb des Netzwerks, z.B. aufgrund nachträglicher Erweiterung des Netzwerks um per Lichtwellenleiter oder WLAN angebundene Stationen ohne Erweiterung des bereits zur Verfügung stehenden Adressraums. Dazu wird normalerweise dann ein Teil des Hostanteils des Adressraums dem Netzwerkanteil zugeordnet, wodurch sich die Subnetmaske ändert und natürlich auch weitere Netzwerk und Broadcastadressen in Erscheinung treten die so vorher noch nicht vorhanden waren.

So werden beispielsweise im Beispielnetzwerk 192.168.3.0 aus der Subnetmaske 255.255.255.0 mit der Netzwerkadresse 192.168.3.0 und der Broadcastadresse 192.168.3.255 zwei Teilnetzwerke mit den Netzwerkadressen 192.168.3.0 (Teilnetzwerk A) und 192.168.3.128 (Teilnetzwerk B) sowie den Broadcastadressen 192.168.3.127 (Teilnetzwerk A) und 192.168.3.255 (Teilnetzwerk B) mit der jeweiligen Subnetzmaske 255.255.255.128.

Subneting wird realisiert durch bitweise Erweiterung "nach rechts", was klar wird, sobald man die binäre Schreibweisen der Subnetzmaske betrachtet:


Subnetzmaskenbeispiele
Dezimale Langdarstellung Binärdarstellung Kurzschreibweise
255.255.255.0 11111111 11111111 11111111 00000000 /24
255.255.255.127 11111111 11111111 11111111 10000000 /25
255.255.255.192 11111111 11111111 11111111 11000000 /26
255.255.255.224 11111111 11111111 11111111 11100000 /27
255.255.255.240 11111111 11111111 11111111 11110000 /28
255.255.255.248 11111111 11111111 11111111 11111000 /29
255.255.255.252 11111111 11111111 11111111 11111100 /30
255.255.255.254 11111111 11111111 11111111 11111110 /31
255.255.255.255 11111111 11111111 11111111 11111111 /32


Da im Beispiel in der vorletzten Tabellenzeile die ersten 31 der 32 Bit der IPv4 Adresse als Netzwerkanteil definiert wurden, ist dieses Beispiel real nicht für wirkliche Netzwerke zu gebrauchen, da nur noch Platz für die Netzwerkadresse und die Boradcastadresse bleiben, nicht jedoch für eine gültige Hostadresse in diesem "Netzwerksegment". Ähniches gilt für die letzte Subnetzmaske in der Tabelle, die gar keinen Hostantei übrig lässt. De Facto gibt es diese /32 Netzwerkmaske jedoch auch in der Anwendung, nämlich bei einigen Punkt-zu-Punkt Protokollanwendungen wie manchen DSL-Anbindungsarten oder Modemnutzungen als sogenannte Single-Host-Route, nicht jedoch zur direkten Kommunikation zwischen real existierenden Rechnern(=Hosts).

Supernetting

Das Supernetting hingegen dient der Erweiterung von Netzwerkadressräumen bzw. dem Zusammenfassen von Netzwerksegmenten. Dabei wird die Subnetzmaske "nach links" erweitert.


Subnetzmaskenbeispiele
Dezimale Langdarstellung Binärdarstellung Kurzschreibweise
255.255.255.0 11111111 11111111 11111111 00000000 /24
255.255.254.0 11111111 11111111 11111110 00000000 /23
255.255.252.0 11111111 11111111 11111100 00000000 /22
255.255.248.0 11111111 11111111 11111000 00000000 /21
255.255.240.0 11111111 11111111 11110000 00000000 /20
255.255.224.0 11111111 11111111 11100000 00000000 /19
255.255.192.0 11111111 11111111 11000000 00000000 /18
255.255.128.0 11111111 11111111 10000000 00000000 /17

Das Standardgateway

Wenn ein Gerät ein anderes ansprechen will, das in einem anderen Subnetz liegt dann schickt es das TCP/IP-Datenpaket zu einem Gateway (im OSI-Schichtenmodell ist das ein Router). Dieses Gateway wurde so konfiguriert dass es selbst weiß, wie es das Datenpaket weiterzuleiten hat, sodass es am Empfänger ankommt.

Meistens gibt es innerhalb eines Subnetzes ein Standardgateway (oder auch default gateway).

Beispiel:

Vorhanden ist ein Server mit zwei Netzwerkkarten (A und B). Außerdem gibt es einen ISDN-Router, der eine Verbindung zu einem Internet-Zugangsprovider darstellt. Mit Karte A sind 10 Rechner verbunden, mit Karte B 27 Rechner und der ISDN-Router.

Segment A umfasst 11 Adressen (10+Server), Segment B 29 (27+Router+Server). Die Größe der Subnetze sollte also 32 oder mehr sein. Angenommen der Internet-Provider weist einen Adressbereich von 64 Adressen zu, beginnend mit 195.130.37.0. Dann kann eine mögliche Konfiguration so aussehen:

- Der Adressbereich wird in zwei Hälften geteilt (.0 - .31 und .32 - .63) - Die Arbeitsplatz-PCs schicken Pakete deren Empfänger nicht in ihrem Subnetz liegt zum Server - Der Server 'weiß', wie er die beiden Subnetze anzusprechen hat. Alles unbekannte soll er zum ISDN-Router schicken. - Dem ISDN-Router muss mitgeteilt werden, dass er Pakete mit Empfänger im Subnetz 'A' zum Server schickt, der sie dann weiterleitet. Dies geschieht durch den Eintag einer 'Statischen Route'. Wie dies genau geschieht, hängt von der Software des ISDN-Routers ab, jedenfalls wird ihm mitgeteilt dass Pakete an das Subnetz 195.130.037.000 mit der Maske 255.255.255.224 an die Adresse 195.130.037.033 (Karte B im Server) weitergeleitet werden müssen.

Karte A im Server: 195.130.037.001, Subnetzmaske 255.255.255.224, default gateway leer Karte B im Server: 195.130.037.033, Subnetzmaske 255.255.255.224, default gateway 195.130.037.034 (der ISDN-Router) ISDN-Router : 195.130.037.034, Subnetzmaske 255.255.255.224, default gateway Adresse des Routers beim Provider PC im Netz 'A' : 195.130.037.002, Subnetzmaske 255.255.255.224, default 195.130.037.001 (Karte im Server) PC im Netz 'B' : 195.130.037.035, Subnetzmaske 255.255.255.224, default 195.130.037.033 (Karte im Server)

Tests mit PING

Ob das TCP/IP-Routing funktioniert kann man mit dem PING-Befehl testen, der üblicherweise immer installiert wird wenn man TCP/IP-Protokoll installiert. Die Verwendung ist einfach, PING <Zieladresse>. Um im obigen Beispiel zu testen ob ein PC im Subnetz A den ISDN-Router ansprechen kann würde man auf dem PC einfach PING 195.130.037.034 eingeben. Wenn eine Antwort kommt, dann hat es geklappt.

Wenn der Test fehlschlägt dann kann das auch daran liegen daß einer der beteiligten Router den Rückweg nicht kennt.


Class A/B/C Subnetze

Abhängig von ihrer Größe bezeichnet man Subnetze oft als Class A, B oder C: Class A Subnetzmaske 255.0.0.0 Class B Subnetzmaske 255.255.0.0 Class C Subnetzmaske 255.255.255.0


Klasseneinteilung der Netzwerkadressen früher und heute

(großenteils von GAW stammend)

Die Klasseneinteilung in A, B und C ist ganz genau genommen nur noch historisch bedingt und das schon ziemlich lange (1996). Heute leben wir im Zeitalter der klassenlosen IP's (CIDR gesprochen ceider). Aus diesem Grund muß die Netzwerkmaske ja angegeben werden. Trotzdem wenden viele Systemadmins noch diese Begriffe an und wählen Netzmasken die den traditionellen Einteilungen entsprechen.

Die seltsamen Zahlenkombinationen dieser ehemaligen Klassen lassen sich besser verstehen wenn man die IP-Adresse des ersten Byte binär betrachtet.

Klasse A beginnt mit einer 0: von bis 00000000 - 01111111 0-127 (127 ist allerdings reserviert für Loopbackadressen)

Klasse B beginnt mit einer 10 von bis 10000000 -10111111 128 - 191

Klasse C beginnt mit einer 110: von 11011111 - 11011111 192 - 223

Es gibt noch zwei weitere Klassen: Klasse D beginnt mit 1110:

11100000 - 11101111 224 - 239

Diese Klasse dient für Multicastaufrufe. Das bedeutet es lassen sich verschiedene IP-Adressen und einer Adresse gemeinsam ansprechen. Allerdings müssen die zwischenliegenden Router das unterstützen.

Die letzte Klasse E, die mit 1111 anfängt, ist reserviert. Dies stammt noch aus den Zeiten als der Vorläufer vom Internet vom Militär geponsort wurde. Dieser Vorläufer hieß MIL-Net, im Gegensatz zum wissenschaftlichen Internetvorläufer ARPA-Net mit dem die meisten astronomischen Forschungsinstitute damals vernetzt waren als erste großflächige Vernetzung nicht-militärischer Organisationen.

Neben den schon genannten privaten Adressen sind noch die firmeneigenen Adressen zu nennen, die sich MS-System selbst geben, wenn sie weder eine IP-Numer mit DHCP erhalten noch die IP-Adresse per Hand eingerichtet wurde. Dieses Verfahren bezeichnet MS als APIPA Automatic Private IP Adressing. Die entsprechenden Adressen sind bei der IANA eingetragen und daher ebenfalls private Adressen und zwar im folgenden Bereich:

169.254.0.1 bis 169.254.255.254/16.

weitere spezielle Adressen:

Loopback-Netz:

127.0.0.0

Loopback-Host:

127.0.0.1

alle Adressen:

0.0.0.0

Private Klasse D Multicast-Netzwerke

224.0.0.0 - 224.0.0.255

Quelle: http://www.iana.org/assignments/multicast-addresses

Wer sich für die genaue Adressraumvergabe interessiert, der kann ja unter http://www.iana.org nachschauen. Dort sind einige Interessante Dokumente zum Thema IP-Adressräume (IPv4 und IPv6) zu finden (Auflistung dieser Dokumente: http://www.iana.org/ipaddress/ip-addresses.htm)

Reservierte Adressbereiche für private Netze

Für den Fall dass man TCP/IP-Protokoll verwenden muss, aber nicht über einen reservierten offiziellen Adressbereich verfügt, gibt es reservierte private Adressen die nicht im Internet verwendet werden bzw. seitens Anschlußprovidern schon nicht ins Internet geroutet werden dürfen. Diese Bereiche sind:

Class IP-Bereich maximal zulässige Subnetmaske
A 10.0.0.0 255.0.0.0
B 172.16.0.0 - 172.31.0.0 255.240.0.0
C 192.168.0.0 - 192.168.255.0 255.255.0.0
D 224.0.0.0 - 224.0.0.255 255.255.255.0

Ein Spezialfall ist der sogenannte "Link Local Block", der dann benötigt wird, wenn ein DHCP-Server nicht erreichbar ist und das Betriebssystem sich selbst Adressen suchen soll, wie es z.B. im oben bereits erwähnten APIPA Verfahren von Microsoft-Systemen genutzt wird:

IP-Bereich maximal zulässige Subnetmaske
169.254.0.0 - 169.254.255.255 255.255.0.0

Quelle: RFC 3330 Abschnitt Special-Use IPv4 Addresses

P.S. Kommentare, Verbesserungsvorschlaege, Korrekturen und Hinweise wie man den Kram verständlicher machen könnte jederzeit erwünscht.

P.P.S. Teile von GAW und TomcatMJ

eingefügt von --Yehudi 15:18, 7. Sep 2006 (CEST)



zurück zum Netzwerk