Zunächst ein paar Grundlagen zur IP-Adressierung. IP-Adressen sind 32-Bit Zahlen, die aus zwei Anteilen bestehen, dem Netzanteil und dem Rechnerteil. Es gibt drei verschieden Arten von IP-Netzklassen, Class-A, Class-B und Class-C.
Class-A Netze haben eine 8-Bit Netzwerkadresse und eine 24-Bit Rechneradresse. Das erste Bit in der Netzadresse zeigt an, daß es sich um ein Klasse-A Netz handelt, die übrigen 7 ergeben die Netznummer. Das bedeutet, daß es 128 mögliche Klasse-A Netze gibt. Das Netz mit der Nummer 0 gibt es nicht, das Netz 127 ist für die sog. Loopback-Adresse reserviert. Also gibt es 126 Klasse-A (1.x.x.x-126.x.x.x) Netze mit jeweils 16777214 Rechnern.
Netze der Klasse B haben einen 16bittigen Netzwerk- und einen ebenfalls 16bittigen Rechnerteil. Die ersten beiden Bits im Netzteil zeigen die Klasse an, sie sind (10). Mit anderen Worten, eine Klasse B Adresse liegt im Bereich von 128.x.x.x bis 191.x.x.x. Mit den 14 Bits des Netzteils können 16384 mögliche Netznummern gebildet werden, und mit den 16 Bits des Rechnerteils 65536 Rechner Adressen.
Ein Klasse C Netz schließlich ist besitzt ein 24-Bit langes Feld für die Netzadresse und ein 8-bit langes Rechner Feld. Die beiden höchsten Bits der Netzadresse sind auf 1 gesetzt, d.h. die Netzadresse liegt im Bereich 192.x.x.x-223.x.x.x. Die restlichen Netze sind für kleine grünen Männchen vom Mars reserviert.
Nochmal zusammengefaßt:
Klasse IP-Adresse, N=NetzBit, R=RechnerBit Erstes Byte Klasse A 0NNNNNNN.RRRRRRRR.RRRRRRRR.RRRRRRRR 1-126 Klasse B 10NNNNNN.NNNNNNNN.RRRRRRRR.RRRRRRRR 128--191 Klasse C 110NNNNN.NNNNNNNN.NNNNNNNN.RRRRRRRR 192--223
Ein wichtiger Grundsatz ist, daß niemals alle Bits eines Teils 0 oder 1 sein dürfen. Die Rechneradresse, bei der alle Bits des Rechnerteils auf 1 gesetzt sind, hat eine besondere Bedeutung; sie ist die sogenannte Broadcast-Adresse, unter der sich alle Rechner des entsprechenden Netzwerkes angesprochen fühlen. Sie wird z.B. für BOOTP-Anfragen genutzt.
Um nun intern die Rechnernetze weiter zu strukturieren und z.B. abteilungsweise aufzuteilen, kann ein Netzwerk mit subnetting weiter unterteilt werden. Dazu wird ein Teil der Rechnerportion als Subnetz definiert. In einem Class-B Netz können die ersten vier Bits der Rechneradresse für das Subnetz gewählt werden. Damit bekommt man 24=16 Subnetze. Von denen können aber nur 14 genutzt werden, da auch hier wieder die Regel gilt, daß nicht alle Bits gleich 0 oder gleich 1 sein können. Jedes dieser Subnetze kann 212-2=4094 Rechner umfassen. Hier an der Uni (mit dem Klasse-B Netz 134.147.0.0) wird inzwischen dazu übergegangen, von eine 8 Bit Subnetzen auf 10 Bit umzustellen. Damit haben wir bis zu 210-2=1022 Subnetze mit bis zu 26-2=62 Rechnern. Die maximale Anzahl von vernetzten Rechnern an der Uni beträgt damit 63364, statt 65534 in einem nicht-unterteilten Klasse-B Netz. Der Vorteil ist, daß eben nicht 65534 Rechner auf einem physischen Netz liegen, sondern maximal 62.
Eine IP-Adresse an der Uni Bochum setzt sich also so zusammen: 10NNNNNN.NNNNNNNN.SSSSSSSS.SSRRRRRR, wobei S nun für ein Bit des Subnetzes steht.
Das Netz des Lehrstuhls für Strömungsmechanik hat die IP-Adresse 134.147.204.x, 0<x<64. Die Broadcast-Adresse hat alle R's gleich 1, also 134.147.204.63.
Damit nun ein Rechner weiß, welcher Teil seiner IP-Adresse zum Subnetz und welcher zu ihm gehört, benötigt er in diesem Fall noch die Subnetzmaske. In ihr werden einfach alle Teile der Netz- und der Subnetzadresse auf 1 gesetzt. Im obigen Beispiel also 255.255.255.192(=128+64). Daraus kann der Rechner erkennen, ob eine andere Maschine im gleichen Subnetz liegt, also direkt erreicht werden kann oder ob er ein Gateway bemühen muß.
Ein weiteres Beispiel: Das Klasse C-Netz 222.173.190.0 soll in zwei Subnetze mit je 126 Rechnern aufgeteilt werden. Die IP-Adresse würde also grundsätzlich so aussehen: 110NNNNN.NNNNNNNN.NNNNNNNN.SRRRRRRR. Das einzelne S kann 0 oder 1 sein, damit wird aber gegen die Regel verstoßen, daß nicht alle N, S oder R gleich 0 oder 1 sein dürfen. Diese Aufteilung ist daher nicht möglich! Jedenfalls nicht, wenn die RFCs strikt befolgt werden. Keine Regel ohne Ausnahme, einige Routerhersteller waren der Meinung, daß diese Regel eine Verschwendung von IP-Adressen bedeutet. Es gibt Implementationen, die die obige Unterteilung erlauben (Linux wohl auch), sobald man aber eine Maschine hat, die korrekt arbeitet, hat man Probleme.
Das ganze Thema wird in den RFCs 917, 932, 940, 950 und 1219 behandelt.