8 IPv4 und Subnetze
Im folgenden die wichtigsten Punkte zur IP-Adresse zusammengefasst.
9 IPv4
Das Internet Protocol IPv4 ist im RFC 791 definiert und besteht aus 4 Oktett (Bytes), was pro Oktett einem Wertebereich von 0..255 entspricht. Daraus entstehen rund ~4,3 Milliarden Adressen,was in Bezug zur weltweiten Bevölkerung, nicht gerade üppig ist. Dies war auch der Auslöser für Technologien wie NAT und neuen Adressen wie IPv6.
IP ist eine hierarchische Adresse und arbeitet auf OSI Layer 3. Das bedeutet, dass im Gegensatz zu MAC, auch Informationen wie Netzgrösse, Netzbereiche und auch Broadcast-Adressen beinhaltet sind. Damit diese Information aber hergeleitet werden kann, wird die IP immer durch die Subnetzmaske begleitet.
9.1 Netzadresse, Host- und Broadcastadressen
Die Netzadresse identifiziert ein Subnetz. Damit können Router das weiterleiten von Paketen entscheiden, Firewall regeln setzen oder Teilnehmer können herausfinden, ob ein Ziel im selben Subnetz ist. Hergeleitet wird die Netzadresse über die eigene IP-Adresse und Subnetzmaske.
Die Subnetzmaske definiert, wie viele Bits der IP-Adresse zur Netzadresse gehören. Dies wird durch binäre 1en von Links nach Rechts angegeben.
Beispiel: 255.255.255.0 –> 1111_1111.1111_1111.1111_1111.0000_0000
Das bedeutet, dass die ersten 3 Bytes die Netzadresse beschreiben und das verbleibende Byte für Adressen im Netz genutzt wird. Die Angabe der Subnetzmaske ist sehr mühsam, wesshalb dafür oft die CIDR Notation genutzt wird (Classless Interdomain Routing). Früher gab es fixe Subnetzgrösse, CIDR rührt davon, dass man die Grösse der Subnetzmaske frei wählen möchte. Somit wird hinter der IP nur noch mittels /Bits angegeben, wie viele Bits der IP-Adresse die Subnetzmaske sind.
Beispiel:
255.255.255.0 –> / 24 (Weil die ersten 24 Bits von Links 1 sind).
Für die Herleitung wird die Teilnehmeradresse mit der Subnetzmaske bitweise AND Verknüpft, wie in nachfolgender Tabelle zu erkennen ist:
| Art | Adresse | Binär |
|---|---|---|
| IP | 192.168.10.5 | 1100_0000.1010_1000.0000_1010.0000_0101 |
| SM | 255.255.255.0 | 1111_1111.1111_1111.1111_1111.0000_0000 |
| NA | 192.168.10.0 | 1100_0000.1010_1000.0000_1010.0000_0000 |
Die Netzadresse darf nicht als Teilnehmeradresse verwendet werden (Würde in den meisten Fällen auch zu Problemen führen). Im obigen Netz wurde nun die Netzadresse 192.168.10.0 identifiziert, wovon das letzte Byte dem Hostbereicht entspricht. Wie man erkennen kann, ist die tiefste Adresse (in diesem Fall .0) die Netzadresse. Die höchste Adresse entspricht der Broadcastadresse (192.168.10.255) und die Adressen dazwischen, sind die nutzbaren Teilnehmeradressen (192.168.10.1 - 192.168.10.254).
9.2 Private IP-Bereiche
RFC 1918 definiert IP-Bereiche, welche für nicht-öffentliche Netzwerke genutzt werden dürfen. Die IP-Ranges kennt man als private IPs, da diese im Internet nicht geroutert resp. weitergeleitet werden. Nachfolgend die reservierten IP-Bereiche:
- 10.0.0.0 / 8
- 172.16.0.0 / 12
- 192.168.0.0 / 16
Nutzt man IP’s ausserhalb dieser Bereich, besteht die Gefahr einer Doppeldeutigkeit, was zu Fehlern in der Kommunikation führt.
10 Subnetzbildung
Subnetzbildung erlaubt einen zugeordneten Netzbereich in passende Teilnetze aufzuteilen. Im Folgenden wird dies an einem Beispiel gezeigt (Die Aufteilung ist exemplarisch und nicht zwingend optimal in Bezug auf reale Netzeinteilungen).
Auftrag:
Als Auftragnehmer haben wir für unsere Industrieanlage von der Kunden-IT den IPv4 Bereich 10.0.8.0/22 erhalten. Dieser Bereich ist in der IT unseres Kunden reserviert und dementsprechend hat er sein Netzwerk konfiguriert. Als Netzübergang dient ein Router mit Firewall, um unser OT System von der IT des Kunden sauber zu trennen (Siehe Figure 22.1).
In unserem System erwarten wir folgende Kategorien mit den entsprechenden Teilnehmern:
| ID | Typ | Teilnehmer | Bemerkungen |
|---|---|---|---|
| A | Steuerungen | 130 | Prozessteuerung und Feldbussyteme |
| B | Mobile Roboter | 300 | Mobile Geräte z.B. über Funk |
| C | Bedienung und Benutzer | 40 | HMI’s und Arbeitsstationen |
10.1 Bilden der Teilnetze
Zuerst definieren wir die benötigte Netzgrösse für unsere Kategorien (Reserve ist bereits integriert).
| ID | Teilnehmer | Minimale Subnetzgrösse | CIDR |
|---|---|---|---|
| A | 100 | 2^8 (256) | /24 |
| B | 300 | 2^9 (512) | / 23 |
| C | 40 | 2^6 (64) | / 26 |
Unser Netzbereich von der Kunden-IT 10.0.8.0/22 ergibt einen Netzbereich von 2^10 = 1024 Adressen (Inklusive Netz- und Broadcast). Darin können wir uns bewegen und für die Unterteilung nutzen. Wir halten uns grob an folgende Regeln:
- Teilnehmerzahl bestimmen inklusive Reserve (20-30%)
- Minimale Subnetzgrösse bestimmen
- Einteilung von Gross nach Klein
- Dokumentieren
In den folgenden Tabellen ist der veränderte Netzanteil fett hervorgehoben.
Unser zugeteiltes Netz:
| Netz | Binär | IP | CIDR |
|---|---|---|---|
| IT-Netzbereich | 0000_1010.0000_0000.0000_1000.0000_0000 | 10.0.8.0 | /22 |
Schritt 1
Unser erstes Netz ist B mit einer Subnetzmaske von /23. Somit unterteilen wir unser /22 Netz in zwei Bereiche:
| Netz | Binär | IP | CIDR |
|---|---|---|---|
| Teilnetz T1 | 0000_1010.0000_0000.0000_1000.0000_0000 | 10.0.8.0 | /23 |
| Teilnetz T2 | 0000_1010.0000_0000.0000_1010.0000_0000 | 10.0.10.0 | /23 |
Damit legen wir unser erstes Teilnetz 10.0.8.0/23 für B fest. Damit bleibt uns nur noch 10.0.10.0/23 für weitere Unterteilungen.
Schritt 2
Das nächstgrössere Subnetz ist A mit einer /24 Subnetzmaske. Wir verfahren gleich und opfern eine weitere Bitstelle zur Netzadresse:
| Netz | Binär | IP | CIDR |
|---|---|---|---|
| Teilnetz T3 | 0000_1010.0000_0000.0000_1010.0000_0000 | 10.0.10.0 | /24 |
| Teilnetz T4 | 0000_1010.0000_0000.0000_1011.0000_0000 | 10.0.11.0 | /24 |
Somit legen wir 10.0.10.0/24 für A fest.
Schritt 3
Nun bleibt nur noch unser letztes Netz /26. Wir könnten nun einfach das übrige /24 direkt auch für dieses Netz nutzen. Wir möchten aber optimale Netzgrössen und den Rest als Reserve behalten. Somit opfern wir 2 weiter Bitstellen für die Netzadresse, dies ergibt folgende 4 Teilnetze:
| Netz | Binär | IP | CIDR |
|---|---|---|---|
| Teilnetz T5 | 0000_1010.0000_0000.0000_1011.0000_0000 | 10.0.11.0 | /26 |
| Teilnetz T6 | 0000_1010.0000_0000.0000_1011.0100_0000 | 10.0.11.64 | /26 |
| Teilnetz T7 | 0000_1010.0000_0000.0000_1011.1000_0000 | 10.0.11.128 | /26 |
| Teilnetz T8 | 0000_1010.0000_0000.0000_1011.1100_0000 | 10.0.11.192 | /26 |
Damit definieren wir 10.0.11.0/26 für C und haben T6, T7 und T8 als Reserve.
10.2 Routing der Teilnetze
Im vorherigen Kapitel haben wir die Teilnetze für unseren Auftrag gebildet:
| Zweck | Netzadresse |
|---|---|
| A | 10.0.10.0 / 24 |
| B | 10.0.8.0 / 23 |
| C | 10.0.11.0 / 26 |
Auf unserer Seite hat der Router 3 Schnittstellen bekommen. Aus Kundenperspektive hat sich aber nichts geändert - Für diesen ist immernoch das Netz 10.0.8.0/22 hinter dem Router, die einzelne Aufteilung spielt für ihn keine Rolle.