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

Netzmaske

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):

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:

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

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.

(Sub-)Netzmaske

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

11111111.11111111.11111111.11111100

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

/23

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.

Berechnungen für die beiden Teilnetze

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.

Erzeugen einer IP-Adressliste

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).

Ausgabe der Subnetzmaske

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,
Netzmaske 255.0.0.0
10.0.0.0/8

172.16.0.0 – 172.31.255.255

16 Netze mit 65.536 Adressen,
Netzmaske 255.255.0.0
172.16.0.0/16–172.31.0.0/16

192.168.0.0 – 192.168.255.255

256 Netze mit 256 Adressen,
Netzmaske 255.255.255.0
192.168.0.0/24–192.168.255.0/24

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

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.

Adressbereich

Netzmaske

Zweck

RFC

0.0.0.0 –
0.255.255.255

255.0.0.0

aktuelles Netz (nur als Quelladresse zulässig)

3232

192.0.0.0 –
192.0.0.255

255.255.255.0

noch reserviert, aber Vergabe vorgesehen

192.0.2.0 –
192.0.2.255

255.255.255.0

Test-Net-1, Dokumentation und Beispielcode

5737

192.88.99.0 –
192.88.99.255

255.255.255.0

Weiterleitungspräfix für 6to4-Anycast

7526

198.18.0.0 –
198.19.255.255

255.254.0.0

Benchmark-Tests

2544, 6201, 6815

198.51.100.0 –
198.51.100.255

255.255.255.0

Test-Net-2, Dokumentation und Beispielcode

5737

203.0.113.0 –
203.0.113.255

255.255.255.0

Test-Net-3, Dokumentation und Beispielcode

5737

224.0.0.0 –
239.255.255.255

weitere
Unterteilungen

Multicasts

5771

240.0.0.0 –
255.255.255.255

weitere
Unterteilungen

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