3.5 IPv4-Adressen
Die IPv4-Adressen bestehen aus 32 Bit, die zu vier Blöcken (Oktetts) gruppiert werden (4 Byte). Die Werte werden als Dezimalzahlen geschrieben, mit einem zulässigen Bereich von 0 bis 255.
Aufbau von IPv4-Adressen
NNN.NNN.NNN.NNN
Eine IPv4-Adresse besitzt einen Netzwerk- und einen Teilnehmeranteil (Host). Welches der Bytes allerdings zu welchem Teil gehört, hängt wiederum von der Netzwerkklasse ab. Sollen Ihre Rechner alle miteinander kommunizieren, müssen deren IP-Adressen denselben Netzwerkteil aufweisen.
Die IPv4-Adressen sind seit 1981 in RFC 791 definiert. In den RFCs 2474, 3168, 3260, 4301, 6040, 7619, 8311 und 8436 finden Sie einige Weiterentwicklungen und Verweise auf weitere beteiligte RFCs.
Mit IPv4 werden Sie noch lange arbeiten. Vor allem nicht öffentliche Bestandsnetze werden es sicher bis auf Weiteres anwenden. Viele Netzwerkgeräte (z. B. Printserver) können nicht auf die neue IP-Version aktualisiert werden. Daher sollten Sie also die theoretischen Grundlagen dieser Version kennen.
3.5.1 Netzwerkklassen im IPv4
Anhand der IP-Adresse erkennen Sie normalerweise nicht mehr, wie weit sich der Netzwerkanteil erstreckt. Hierbei hilft Ihnen die (Sub-)Netzmaske.
Zusammen mit der (Sub-)Netzmaske, die im nächsten Abschnitt erklärt wird, können Sie Netze mit einer verschieden hohen Anzahl von Teilnehmern definieren. Allerdings gilt dies nur für private Netze. Wenn Sie Netze betreuen, die »draußen« im Internet existieren, müssen Sie unbedingt die Vorgaben Ihres Providers (= LIR) einhalten, weil es sonst zu großen Störungen kommt. Konkret bedeutet dies, dass Sie Ihre Einteilungen nur »unterhalb«, also »rechts« vom Netzwerkanteil, vornehmen dürfen.
Früher konnten Sie einer IP-Adresse bereits ansehen, welcher Netzklasse sie angehörte (Tabelle 3.7). Das erste Byte zeigte dies an. Jedoch wurde diese Einteilung seit Längerem aufgehoben, um der Adressknappheit etwas abzuhelfen.
Klasse |
Bereich |
1. Byte binär |
Nutzbare Adressen |
|
---|---|---|---|---|
A |
0.0.0.0 – 127.255.255.255 |
00000000 |
16.777.214 |
255.0.0.0 |
B |
128.0.0.0 – 191.255.255.255 |
10000000 |
65.534 |
255.255.0.0 |
C |
192.0.0.0 – 223.255.255.255 |
11000000 |
254 |
255.255.255.0 |
Tabelle 3.7 Einteilung von Netzwerkklassen
Beachten Sie bitte einige Anmerkungen zur Einteilung in Netzwerkklassen (Tabelle 3.7):
-
Die Zahl der mathematisch möglichen Adressen wird stets um zwei vermindert. Sie benötigen diese für die Netz- und Broadcast-Adresse (z. B. 192.168.0.0 und 192.168.0.255).
-
Während Sie die Bereichsangaben als mehr oder weniger historisch betrachten müssen, sind die Einteilung hinsichtlich der nutzbaren Adressen und die Angabe der Subnetzmaske in der Tabelle weiterhin gültig.
-
Die in der Tabelle nicht aufgeführte Klasse D dient zu Multicast-Zwecken (bei Datenstreams, z. B. Video). Hier klinken sich Rechner passiv ein. Die Klasse E dient zu Test- und Forschungszwecken. Sie werden in der Praxis in der Regel mit beiden Klassen kaum in Berührung kommen.
Zur Verdeutlichung der Aufteilung einer IP-Adresse betrachten Sie folgende Angaben:
Anteile von Netz (N)- und Host-Anteilen (H) nach Netzwerkklassen
Klasse A: NNN.HHH.HHH.HHH
Klasse B: NNN.NNN.HHH.HHH
Klasse C: NNN.NNN.NNN.HHH
3.5.2 Netz- und Subnetzmaske, Unterteilung von Netzen
Eine Netz- oder Subnetzmaske besteht wie die IPv4-Adresse aus vier Bytes. Mit ihr unterteilen Sie IP-Adressen in den Netzwerk- und den Host-Anteil.
Die Unterteilung eines Netzes in Subnetze bringt Ihnen verschiedene Vorteile:
-
Mit dadurch verkleinerten Broadcast-Domänen verringern Sie die Netzlast durch Rundsendungen (Broadcasts).
-
Sie können organisatorische Gegebenheiten durch die aufgeteilten Adressräume abbilden.
Sie können (in der Regel innerhalb privater Netze) durch die Netzmaske aber auch z. B. zwei Klasse-C-Netze nach alter Denk- und Sprachweise miteinander verbinden.
Netzmaske und Subnetzmaske
-
Umfasst die Maske alle möglichen Adressen eines Netzes, handelt es sich um eine Netzmaske (siehe Tabelle 3.8).
-
Unterteilt sie jedoch den Adressraum, spricht man von der Subnetzmaske.
-
Technisch bestehen zwischen der Netzmaske und der Subnetzmaske keine Unterschiede.
-
Der Netzanteil wird stets mit 1, die Host-Anteile mit 0 belegt.
-
Netz- und Subnetzmasken bestehen somit stets aus führend gesetzten Bits. Es treten keine »0-Lücken« auf.
-
Weitere Normen: RFCs 950, 4632, 6918
Im Rahmen des Classless Inter-Domain Routings (CIDR) wurde auch eine neue Schreibweise für die Netzmaske eingeführt. Anstelle der byteweisen Angabe (z. B. 255.255.0.0) werden hier die führenden gesetzten Bits zusammengezählt und per Schrägstrich an die IP-Adresse angehängt.
Die Angabe 192.168.0.36/24 beinhaltet die Netzmaske 255.255.255.0. Binär wird die Netzmaske in diesem Fall so dargestellt:
11111111.11111111.11111111.00000000
Zählen Sie die gesetzten Bits (oder rechnen Sie einfach 3 Oktets mal 8 Bits), erhalten Sie hier die 24.
Für Ihre tägliche Arbeit sind die Angaben in Tabelle 3.8 und Tabelle 3.9 sicher nützlich. Sie finden in ihnen eine Gegenüberstellung der binären, klassischen und der CIDR-Schreibweise. In Tabelle 3.9 ist die Anzahl der Hosts je Netzmaske angegeben.
Binär |
Dezimal |
CIDR-Notation |
---|---|---|
00000000.00000000.00000000.00000000 |
0.0.0.0 |
/0 (Ein einziges Netz, kein Router möglich!) |
11110000.00000000.00000000.00000000 |
240.0.0.0 |
/4 |
11111111.00000000.00000000.00000000 |
255.0.0.0 |
/8 |
11111111.10000000.00000000.00000000 |
255.128.0.0 |
/9 |
11111111.11000000.00000000.00000000 |
255.192.0.0 |
/10 |
11111111.11100000.00000000.00000000 |
255.224.0.0 |
/11 |
11111111.11110000.00000000.00000000 |
255.240.0.0 |
/12 |
11111111.11111000.00000000.00000000 |
255.248.0.0 |
/13 |
11111111.11111100.00000000.00000000 |
255.252.0.0 |
/14 |
11111111.11111110.00000000.00000000 |
255.254.0.0 |
/15 |
11111111.11111111.00000000.00000000 |
255.255.0.0 |
/16 |
11111111.11111111.10000000.00000000 |
255.255.128.0 |
/17 |
11111111.11111111.11000000.00000000 |
255.255.192.0 |
/18 |
11111111.11111111.11100000.00000000 |
255.255.224.0 |
/19 |
11111111.11111111.11110000.00000000 |
255.255.240.0 |
/20 |
11111111.11111111.11111000.00000000 |
255.255.248.0 |
/21 |
11111111.11111111.11111100.00000000 |
255.255.252.0 |
/22 |
11111111.11111111.11111110.00000000 |
255.255.254.0 |
/23 |
11111111.11111111.11111111.00000000 |
255.255.255.0 |
/24 |
11111111.11111111.11111111.10000000 |
255.255.255.128 |
/25 |
11111111.11111111.11111111.11000000 |
255.255.255.192 |
/26 |
11111111.11111111.11111111.11100000 |
255.255.255.224 |
/27 |
11111111.11111111.11111111.11110000 |
255.255.255.240 |
/28 |
11111111.11111111.11111111.11111000 |
255.255.255.248 |
/29 |
255.255.255.252 |
/30 |
|
11111111.11111111.11111111.11111110 |
255.255.255.254 |
/31 |
11111111.11111111.11111111.11111111 |
255.255.255.255 |
/32 |
Tabelle 3.8 Subnetzmasken
Die binäre Darstellung benötigen Sie bei der Berechnung von Netzadressen und Subnetzmasken.
CIDR-Notation |
Subnetzmaske |
Nutzbare Host-Adressen |
Hinweise |
---|---|---|---|
/0 |
0.0.0.0 |
4.294.967.294 |
nur Netz ohne Verbindung nach außen, kein Router möglich! |
/4 |
240.0.0.0 |
268.435.454 |
|
/8 |
255.0.0.0 |
16.777.214 |
|
/9 |
255.128.0.0 |
8.388.606 |
|
/10 |
255.192.0.0 |
4.194.302 |
|
/11 |
255.224.0.0 |
2.097.150 |
|
/12 |
255.240.0.0 |
1.048.574 |
|
/13 |
255.248.0.0 |
524.286 |
|
/14 |
255.252.0.0 |
262.142 |
|
/15 |
255.254.0.0 |
131.070 |
|
/16 |
255.255.0.0 |
65.534 |
|
/17 |
255.255.128.0 |
32.766 |
|
/18 |
255.255.192.0 |
16.382 |
|
/19 |
255.255.224.0 |
8.190 |
|
/20 |
255.255.240.0 |
4.094 |
|
/21 |
255.255.248.0 |
2.046 |
|
/22 |
255.255.252.0 |
1.022 |
|
255.255.254.0 |
510 |
||
/24 |
255.255.255.0 |
254 |
|
/25 |
255.255.255.128 |
126 |
|
/26 |
255.255.255.192 |
62 |
|
/27 |
255.255.255.224 |
30 |
|
/28 |
255.255.255.240 |
14 |
|
/29 |
255.255.255.248 |
6 |
|
/30 |
255.255.255.252 |
2 |
|
/31 |
255.255.255.254 |
2 |
Punkt-zu-Punktverbindung nach RFC 3021 |
/32 |
255.255.255.255 |
1 |
Tabelle 3.9 Subnetzmaske und Adressräume
3.5.3 Berechnungen
Sie können einen (zugewiesenen) Adressbereich in Teilsegmente unterteilen, allerdings in dem in Tabelle 3.9 gezeigten Mengenraster. Die Unterteilung zeige ich Ihnen anhand eines Beispiels.
Ihr Netz soll in zwei Teile segmentiert werden. In einem werden sich künftig 19 Teilnehmer aufhalten, im anderen 80. Sie verwenden das Netzwerk 192.168.1.0. Sie wollen unter anderem wissen, in welches der Teilnetze das Gerät mit der IP-Adresse 192.168.1.25 gehört. Außerdem interessiert Sie natürlich der IP-Adressbereich, der vergeben werden kann. Bei den Berechnungen verwenden Sie die logische Addition (AND). Sie hat folgende Regeln (Wahrheitstabelle):
Logische Addition (AND)
0 + 0 = 0
0 + 1 = 0
1 + 0 = 0
1 + 1 = 1
Wenn bei zwei Binärzahlen also jeweils die 1 aufeinandertrifft, bekommen Sie wiederum eine 1 als Ergebnis.
Sehen Sie zunächst den manuellen Lösungsweg zur Frage, wohin 192.168.1.25 gehört:
Manuelle Berechnungen
-
Entnehmen Sie aus der Tabelle die passende Netzmaske, hier:
/27, ausgeschrieben 255.255.255.224. -
Schreiben Sie die IP-Adresse und Netzmaske binär untereinander, und führen Sie die logische Addition durch:
11000000.10101000.00000001.00011001 192.168.1.25
11111111.11111111.11111111.11100000 255.255.255.224
11000000.10101000.00000001.00000000 192.168.1.0
Die Netzadresse lautet also 192.168.1.0, in der 192.168.1.25 Mitglied ist.
Sie können natürlich auch ein Rechenprogramm wie ipcalc für die IP-Adressen und Netzmasken benutzen. Die Ausgaben einer Berechnung für die beiden Teilnetze sehen Sie in Abbildung 3.2. Dabei soll der Rechner mit der IP-Adresse 192.168.1.25 zum ersten, kleineren Netz gehören.
Abbildung 3.2 Berechnungen für die beiden Teilnetze
Um nun herauszubekommen, ab welcher Adresse das zweite Teilnetz beginnt, führen Sie die Berechnung für die Netzadresse 192.168.1.0 zweimal aus: einmal mit der zutreffenden Netzmaske 255.255.255.224 und für das zweite Teilnetz mit 255.255.255.128. Sie können dann die höchste vorkommende Adresse ablesen (Broadcast). Deren Wert erhöhen Sie um 1 und nehmen das Ergebnis als Startwert für die dritte Berechnung. Zusammen mit der richtigen Netzmaske (/25) erhalten Sie alle notwendigen Angaben für das zweite Teilnetz mit den 80 Teilnehmern.
Im Ergebnis erhalten Sie jeweils die Netzadresse, die niedrigste und höchste für Netzwerkteilnehmer verwendbare Adresse (HostMin und HostMax), deren Anzahl (Hosts/Net) und die Broadcast-Adresse.
Mit prips steht Ihnen ein weiteres Werkzeug zur Verfügung, das die gewünschten Werte weniger ausführlich liefert. Wenn Sie eine Liste der möglichen IP-Adressen eines Netzes benötigen (z. B. in einem Shellskript), so erzeugt das Programm diese wie in Abbildung 3.3 gezeigt.
Abbildung 3.3 Erzeugen einer IP-Adressliste
Mit diesem Aufruf können Sie in einem Shellskript zusammen mit anderen Netzwerkdiagnosewerkzeugen (ping, nmap) eine Übersicht über die Netzwerkteilnehmer anfertigen.
Die Subnetzmaske erhalten Sie mit der Option -c. Sie sehen das Ergebnis in der CIDR-Schreibweise (Abbildung 3.4).
Abbildung 3.4 Ausgabe der Subnetzmaske
3.5.4 Private Adressen des IPv4
Für den Aufbau Ihrer privaten, d. h. nicht mit dem Internet direkt verbundenen Netze benutzen Sie die durch RFC 1918 und das Update-RFC 6761 definierten Adressbereiche (Tabelle 3.10). Diese Adressen werden auch nicht in das öffentliche Internet weitergeleitet.
Adressbereich |
Anzahl der IP-Adressen |
---|---|
10.0.0.0 – 10.255.255.255 |
ein Netz mit 16.777.216 Adressen, |
172.16.0.0 – 172.31.255.255 |
16 Netze mit 65.536 Adressen, |
192.168.0.0 – 192.168.255.255 |
256 Netze mit 256 Adressen, |
Tabelle 3.10 Adressbereiche privater Netzwerke
3.5.5 Zeroconf – konfigurationsfreie Vernetzung von Rechnern
Neben den drei klassischen IPv4-Privatnetzen stehen Ihnen auch noch die Adressen von 169.254.1.0 bis 169.254.254.255 zur Verfügung. Auch sie werden nicht in das Internet durchgeroutet. In diesem reservierten Bereich, genannt Zeroconf, können Sie Rechner ohne weitere Konfiguration vernetzen. Sie müssen weder manuell noch per DHCP eine IP-Adresse zuweisen. Die Nutzung von DHCP widerspricht sogar dem Wesen von Zeroconf und darf deshalb nicht angewendet werden. Der Adressbereich ist für das Automatic Private IP Addressing (APIPA) nach RFC 3927 reserviert, das auch als Zeroconf oder Auto-IP bekannt ist. Die Netzmaske lautet 255.255.0.0, die ersten und letzten 256 Adressen dürfen nicht verwendet werden. Somit verbleiben Ihnen immerhin 65.024 Adressen zur Nutzung.
Die automatische Adresskonfiguration greift dabei auch auf die Sicherungsschicht (Layer 2) des OSI-Schichtenmodells zu. Wenn Sie Ihren Rechner einschalten, berechnet er zunächst aus seiner MAC-Adresse zusammen mit einem Zufallsgenerator seine IP-Adresse. Weil eine IP-Adresse in einem Netz nur einmal vorhanden sein darf, prüft Ihr Rechner, ob die Adresse nicht schon von einem anderen Gerät benutzt wird. Er bildet dazu ein ARP-Paket (ARP-Probe), in dem er die Absenderadresse mit 0.0.0.0 und als Empfängeradresse die eigene angibt. Ihr Rechner sendet das Paket insgesamt dreimal alle 1 bis 2 Sekunden aus. Erhält Ihr Rechner innerhalb eines Zeitraums von 2 Sekunden nach dem Absetzen der letzten ARP-Probe ein ARP-Paket, bei dem die errechnete IP-Adresse mit der Absenderadresse übereinstimmt, muss er nochmals eine neue Adresse berechnen. Befinden sich zum gleichen Zeitpunkt besonders viele Rechner am Netz, die ihre Adressen berechnen, müssen Sie mit solchen Adresskonflikten rechnen. Damit das Netzwerk nicht mit zu vielen ARP-Paketen überfrachtet wird, werden die sich gerade konfigurierenden Rechner nach zehn Fehlversuchen nur noch einen Versuch je Minute starten. Für Sie und die anderen Benutzer können also durchaus fühlbare Wartezeiten auftreten.
Gehört Ihrem Rechner »seine« Adresse, macht er diese allen anderen per doppeltem ARP-Announcement im Abstand von 2 Sekunden bekannt. Hierbei verwendet er als Absender- und Empfänger-IP diese eben berechnete Adresse. Im Zeroconf-Netz herrscht hinsichtlich der IP-Adresse trotzdem eine trügerische Ruhe für Ihren Rechner. Er muss jetzt ständig auf Adresskonflikte achten, die durch andere Rechner verursacht werden. Diesen Fall erkennt er, wenn ARP-Pakete von anderen Teilnehmern eintreffen, die »seine« Adresse als Absenderadresse benutzen.
Ihr Rechner reagiert darauf auf verschiedene Weise. Hat er offene TCP-Verbindungen und noch keine kollidierenden ARP-Pakete empfangen, also nur ein ARP-Probe, sendet er ein klarstellendes ARP-Announcement. In allen anderen Fällen wird er sich eine neue Adresse berechnen und damit eine »Schlacht um die IP-Adresse« mit viel Netzlast durch Endlosschleifen vermeiden.
Zeroconf bietet eine eigene Namensauflösung und Diensterkennung an, was in Abschnitt 4.2.4, »Zeroconf«, gezeigt wird.
Zeroconf finden Sie bei allen gängigen Betriebssystemen. Für Apple-Rechner ist es unter bonjour bekannt, Linux und Unix-Derivate verwenden hauptsächlich den avahi-Daemon. Microsoft nennt das Verfahren Automatic Private IP Addressing (APIPA).
Fakten zu Zeroconf
-
automatische Adresszuweisung ohne DHCP-Server
-
Namensauflösung ohne DNS-Server
-
automatische Erkennung von Netzwerkdiensten
-
Sicherheit: Die automatische Konfiguration greift tief in das jeweilige Betriebssystem ein. Vom Einsatz in sicherheitsrelevanten Umgebungen wird deshalb abgeraten.
-
Norm: RFC 3927
3.5.6 Localnet und Localhost
Moderne Betriebssysteme benötigen ein »internes Netzwerk«, um verschiedene Aufgaben zu erledigen. Im Bereich Unix/Linux greifen unter anderem die Druckdienste und das X11- bzw. Xorg-Grafiksystem darauf zurück. Für diese Loopback-Adressen wurde der Adressbereich von 127.0.0.0 bis 127.255.255.255 reserviert. Für jede Netzwerkkarte Ihres Rechners wird diese (zusätzliche) Adresse mehr oder weniger von selbst vergeben. Datenpakete an eine Adresse aus diesem Bereich werden nicht in das Netzwerk geleitet, sondern wieder zurück an den Rechner.
Sie können für viele kritische Anwendungen die Sicherheit erheblich erhöhen, wenn diese ausschließlich auf dieser Loopback-Adresse »lauschen«. Natürlich ist das nur sinnvoll, wenn diese Anwendung ausschließlich für diesen einzigen Rechner ihre Dienste anbieten soll, z. B. ein eigener, rechnerlokaler Nameserver oder eine Datenbank. Angriffe auf diesen Rechner über das lokale Netzwerk sind damit ausgeschlossen.
Auch für den Test von Serveranwendungen greifen Entwickler gerne auf den localhost zurück. Sie vermeiden Netzlast und natürlich auch das Ausnutzen von Sicherheitslücken in den noch unfertigen Anwendungen durch Dritte.
Auszug der Ausgabe von »ifconfig« für die superprivate Adresse
lo
Link encap:Lokale Schleife
inet Adresse:127.0.0.1 Maske:255.0.0.0
inet6-Adresse: ::1/128 Gültigkeitsbereich:Maschine
UP LOOPBACK RUNNING MTU:16436 Metrik:1
RX packets:433140 errors:0 dropped:0 overruns:0 frame:0
TX packets:433140 errors:0 dropped:0 overruns:0 carrier:0
Kollisionen:0 Sendewarteschlangenlänge:0
RX bytes:50267351 (47.9 MiB) TX bytes:50267351 (47.9 MiB)
Auf diesem Linux-Rechner wird das Loopback-Gerät als lo bezeichnet. Vergleichen Sie die Angaben zu den gesendeten (TX) und empfangenen (RX) Daten. Sie zeigen stets die gleichen Werte. Die RFCs 2606, 6598, 6761, 6890 und 8190 beschreiben den Einsatz dieses besonderen Adressbereichs.
3.5.7 Weitere reservierte Adressen
Sie finden in Tabelle 3.11 weitere reservierte Adressbereiche (RFC 6890 und 8190). Die Anwendungen sind sehr unterschiedlich. So finden Sie IP-Bereiche, die Sie für Anleitungen und Dokumentationen verwenden können, ohne damit Betriebs- und Sicherheitsgeheimnisse auszuplaudern.
Netzmaske |
Zweck |
RFC |
|
---|---|---|---|
0.0.0.0 – |
255.0.0.0 |
aktuelles Netz (nur als Quelladresse zulässig) |
3232 |
192.0.0.0 – |
255.255.255.0 |
noch reserviert, aber Vergabe vorgesehen |
|
192.0.2.0 – |
255.255.255.0 |
Test-Net-1, Dokumentation und Beispielcode |
5737 |
192.88.99.0 – |
255.255.255.0 |
Weiterleitungspräfix für 6to4-Anycast |
7526 |
198.18.0.0 – |
255.254.0.0 |
Benchmark-Tests |
2544, 6201, 6815 |
198.51.100.0 – |
255.255.255.0 |
Test-Net-2, Dokumentation und Beispielcode |
5737 |
203.0.113.0 – |
255.255.255.0 |
Test-Net-3, Dokumentation und Beispielcode |
5737 |
224.0.0.0 – |
weitere |
Multicasts |
5771 |
240.0.0.0 – |
weitere |
reserviert |
1112 Sect. 4, 2236, 3376, 4604 |
255.255.255.255 |
255.255.255.255 |
Broadcast |
919 und 922 |
Tabelle 3.11 Weitere reservierte IPv4-Adressbereiche