Wie kann ich die Netzmaske von einer IP-Adresse erhalten?

9

Wie erhalte ich eine Netzmaske von der IP-Adresse? Gibt es einen Befehl, um es zu bekommen?

fronthem
quelle

Antworten:

14

Das ist nicht möglich. Wenn es möglich wäre, gäbe es keinen Grund, überhaupt eine Netzmaske zu haben, da diese automatisch bestimmt werden könnte.

Die Netzmaske wird verwendet, um den IP-Bereich anzugeben, bei dem ein 'Netzwerk' beginnt und endet. Dieser Bereich ist beliebig.

Zum Beispiel mit der IP-Adresse 192.168.0.140:
Mit der Netzmaske 255.255.255.0( /24in CIDR-Notation) wäre der IP-Bereich 192.168.0.1 - 192.168.0.254.
Mit einer Netzmaske von 255.255.255.128( /25in CIDR-Notation) wäre der IP-Bereich 192.168.0.129 - 192.168.0.254.

Patrick
quelle
3

In den meisten Fällen ist dies aufgrund klassenloser Netzwerke nicht möglich . Eine bestimmte IPv4-Adresse kann 30 verschiedene Netzmasken haben.

SquareRootOfTwentyThree
quelle
In welchem ​​Fall können Sie dies in modernen Systemen tun?
Karlson
Ich verstehe die Frage nicht ganz, aber im Grunde verwenden heutzutage alle Systeme und Geräte CIDR.
SquareRootOfTwentyThree
@Karlson: Wie Patrick sagte, gibt es keine Möglichkeit, automatisch festzustellen, wann ein Fall vorliegt, der von dieser Regel ausgenommen ist. Sie können sich das erste Oktett der Adresse ansehen und blind anhand der obersten paar Bits erraten, dass es Teil einer Klasse A, B, C ... oder eines anderen Netzwerks ist, aber Sie können nicht sicher sein , dass die Adresse dieser Klasse angehört , daher kennen Sie die Netzmaske. Tatsächlich ist es bei einigen Adressen eine kluge Wette, dass die "Klasse" einer Adresse im alten Stil irrelevant ist: Adressen, die mit 10 beginnen, sind fast nie Klasse A (/ 8), weil sie fast immer unterversetzt sind.
Warren Young
@SquareRootOfTwentyThree Die Frage ist, ob es eine Möglichkeit gibt, basierend auf einer IP des Zielsystems die verwendete Netzmaske zu bestimmen.
Karlson
@WarrenYoung Ich kenne die IP-Adressklassen, aber Sie können davon ausgehen, dass die IP-Maske der Klasse (und ich vermute hier) eine Wahrscheinlichkeit von über 99% hat, falsch zu liegen.
Karlson
2

Obwohl Sie die Netzmaske nicht direkt aus der IP-Adresse in Centos 7 ermitteln können, können Sie "IP-Anzeige" eingeben, die die IP-Adresse mit der entsprechenden Subnetznummer zurückgibt.

-bash-4.2 $ ip ad 1: lo: mtu 65536 qdisc noqueue state UNBEKANNT qlen 1

link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00

inet 127.0.0.1/8 scope host lo

   valid_lft forever preferred_lft forever

inet6 ::1/128 scope host 

   valid_lft forever preferred_lft forever

2: eth0: mtu 1500 qdisc pfifo_fast state UP qlen 1000

link/ether 00:16:3e:77:ca:e9 brd ff:ff:ff:ff:ff:ff

**inet 10.1.0.11/24** brd 10.1.0.255 scope global eth0

   valid_lft forever preferred_lft forever

inet6 fe80::216:3eff:fe77:cae9/64 scope link 

   valid_lft forever preferred_lft forever

Die Subnetznummer wird auch in der folgenden Datei gespeichert

/ etc / sysconfig / network-scripts / ifcfg-eth0 (wobei eth0 von Ihrem Netzwerkkartentyp abhängt)

Suchen Sie nach der Einstellung PREFIX. Die angegebene Nummer ist die Subnetzmaske

zB PREFIX = 24

Wenn die obige Datei keine PREFIX-Nummer enthält, wird in Ihrer Servernetzwerkeinstellung standardmäßig eine Subnetzmaske von 8 verwendet, die wiederum in Ihrem Befehl "ip ad" angezeigt wird.

Wenn Sie die PREFIX-Nummer ändern möchten, denken Sie daran, den Netzwerkdienst mit systemctl restart network neu zu starten.

culzeanman
quelle
1

Netzmasken werden hauptsächlich verwendet, um lokale Adressen im selben Subnetz von Adressen außerhalb zu unterscheiden, die nur über ein Gateway erreichbar sind.

Wenn Sie also alle (= aktuell oder in Zukunft verwendeten) IP-Adressen im selben Subnetz kennen, können Sie eine Netzmaske erstellen, die alle enthält. Wenn sich beispielsweise 192.168.2.4 und 192.168.2.253 im selben Subnetz befinden sollen, funktioniert die Netzmaske 255.255.255.0 (entspricht dem IP-Bereich 192.168.2.0-255 oder in der CIDR-Notation 192.168.2.0/24).

Jofel
quelle
@ WarrenYoung Danke, dass du darauf hingewiesen hast. Ich habe meine Antwort klargestellt.
Jofel
Entschuldigung, aber "Netzmaske 255.255.255.0" bedeutet nicht 192.168.2.1-255, sondern 192.168.2.0-255 (wenn wir Netzwerk und Broadcast einschließen) oder 192.168.2.1-254 (wenn wir nicht einschließen)
Lazy Badger