it-swarm.com.de

Berechnen des IP-Bereichs aus der Subnetzmaske

Angenommen, ich habe ein Subnetz von 255.255.255.242 und ich habe eine bekannte IP innerhalb dieses Subnetzes: 192.168.1.101.

So berechne ich den Bereich der IPs:

Suchen Sie in der Subnetzmaske das erste Oktett, das nicht 255 ist. In meinem Beispiel ist es das 4. Oktett und das 242. Nehmen Sie also 256 und subtrahieren Sie 242, was uns 14 ergibt. Nun wissen wir, dass diese Netzwerke das 192.168 sind .1.x Netzwerke, alle haben eine Reichweite von 14. Also fangen Sie einfach an, sie aufzulisten ...

192.168.1.0
192.168.1.14
192.168.1.28
....42
....56
....70
....84
....98
....112

Hier können wir aufhören. Meine Adresse, 192.168.1.101, fällt in das .98-Netzwerk. .98 umfasst alle IP-Adressen von 192.168.1.98 bis 192.168.1.111, da wir wissen, dass 192.168.1.112 das nächste Netzwerk startet.

Ich möchte bestätigen, ob dies der richtige und einfachste Prozess ist.

14
dig_123

Eine Netzmaske besteht aus einer Reihe von 1 Bits. Die Bits müssen sequentiell sein, ohne Lücken von 0. Alles, was ein 1-Bit verwendet, ist Teil des Netzwerks. Alles, was übrig bleibt, gilt für die Host-Zuweisung innerhalb dieses Netzwerks. Ein 255.255.255.224 hat 27 "1" Bits, was bedeutet, dass es ein/27-Netzwerk ist.

Um dieses Recht zu berechnen, müssen Sie IPs in eine numerische Darstellung konvertieren. Beispielsweise ist 255.255.255.224 11111111 11111111 11111111 11100000, also 4294967264. 192.168.1.101 ist 3232235877 (11000000 10101000 00000001 01100101).

Wenn Sie die IP und bitweise UND mit der Netzmaske nehmen, erhalten Sie die Netzwerkadresse. Dies ist das untere Ende des Bereichs:

11111111 11111111 11111111 11100000  (mask)
11000000 10101000 00000001 01100101  (ip)
-----------------------------------
11000000 10101000 00000001 01100000  = 192.168.1.96  (network address)

Das Komplement (bitweise NICHT) der Maske gibt die Größe des Bereichs an:

00000000 00000000 00000000 00011111  = 31

Daher liegt der Bereich für diese IP zwischen 192.168.1.96 - 192.168.1.127. (127 = 96 + 31)

34
Joe

Vielen Dank an euch beide, Joe und Dig_123, aber Joes Antwort hätte mit einem/28-Subnetz anstelle der angegebenen/27 geklärt werden können, das seinem Beispiel näher gekommen wäre und zwischen 92-112 gefallen wäre.

also, Joe, wenn ich Ihren Punkt richtig verstanden habe, sagen Sie, dass Sie das subnettierte Oktett nehmen. Bestimmen Sie den Wert des Inkrementbits und fügen Sie ihn zum Subnetzwert im SN-Oktett hinzu. Dies sollte den Bereich und die Werte für die Adressen Netzwerk, erster Host, letzter Host und Broadcast angeben. Ist das korrekt? dh in meinem Beispiel wäre das 4. Oktett ein 240 und das Inkrement wäre 16. Da der Wert im 4. Oktett 96 ist, fällt er in den berechneten Bereich für ein 16-Bit-Inkrement, tatsächlich liegt er zwischen 96 und 112 einer der 16-Bit-Bereiche, sodass wir daraus schließen können, dass unsere Netzwerkadresse für dieses Beispiel lautet:

0-15
15-31
32-47
48-63
64-79
80-95
96-111
112-127
128
NW 192.168.1.96 /28
1st 192.168.1.97 /28
Last 192.168.1.110 /28
Bcast 192.168.1.111 /28
0
Rhys

Um etwas zu Joes Antwort hinzuzufügen: Wenn Sie die Operationen programmgesteuert ausführen möchten (setzt Kenntnisse über bitweise Operatoren voraus).

Sie wissen bereits, dass sich nur die letzte Zahl ändert. Diese Methode kann jedoch für andere Fälle etwas anders verwendet werden, wie ich es später zeige.

Number from mask: 224
Number from IP:   101

Verwendung von z.B. Python oder Ihr Lieblingsrechnerprogramm:

  • Start address byte: 224 & 101 = 96
  • End address byte: (~224 & 255) | 96 = 127

(~224 & 255) setzt jedes Bit, das in 244 nicht eins war (nur die letzten 5 Bits), auf eins; ODER das Ergebnis mit 96 zu bearbeiten, kopiert nur die ersten 3 Bits von der ersten Adresse.

Das Ergebnis ist also das erwartete Ergebnis: 192.168.1. 96 - 192.168.1. 127 .


Wenn die Maske vor der letzten Zahl endet, gibt es ein sehr ähnliches Verfahren. Lass uns ein Beispiel machen:

Verwenden wir 255. 224 . 0.0 als Maske und dieselbe IP-Adresse (192. 168 . 1.101).

Wieder gibt es nur eine Nummer, auf die man achten muss, die jetzt auf Position zwei steht: 168.

  • Start address byte: 224 & 168 = 160
  • End address byte: (~224 & 255) | 160 = 191

Nun bleibt die Zahl links (erste Position) gleich (192) und der Rest der rechten Zahl reicht von 0 bis 255 (je nachdem, was sie fragen, kann sie auch zwischen 1 und 254 liegen).

Die Lösung wäre also: 192. 160 . 0.0 - 192. 191 . 255.255

0
jp48