Wurde für das Ziel eines IP-Pakets jemals die IP-Adresse des Subnetzes festgelegt?
Ja. Es ist eine gültige IP, so dass es verwendet werden kann.
Wenn ja, in welchen Fällen und warum?
Es ist einfach eine der 255 verwendbaren IPs in a / 24
Wenn nein, geben Sie diese Adresse dann frei, damit sie von einem Host verwendet werden kann.
Wenn Sie alte Hardware haben, müssen Sie prüfen, ob die erste oder die letzte Adresse als Netzwerkadresse verwendet wird. (.0 oder .255 für Netzwerke mit Maske FF.FF.FF.00)
Dies macht es zu einer guten Gewohnheit, diese IP zu überspringen. Und Gewohnheiten, die vor langer Zeit gelernt wurden, sind schwer zu ignorieren.
Und Leute, die den Hintergrund nicht kennen, benutzen ihn nicht, "weil andere ihn auch nicht benutzen, es muss also falsch sein, ihn zu benutzen" oder weil sie nicht erkennen, dass "0" eine erste Zahl sein kann.
[Bearbeiten] Grezzo hat es gerade unter Windows XP getestet, wobei die Windows-Netzwerk-GUI diese Einstellung "hilfreich" verhinderte. Windows 7 hat das gleiche Verhalten. Ich habe es dann auf einem Nicht-Windows-Host versucht, auf dem es nur funktioniert. Wenn Sie Windows verwenden, müssen Sie Ihr Netzwerk möglicherweise manuell über IPconfig konfigurieren, um alle Nullen festzulegen.
[Bearbeiten 2]
Je länger ich damit arbeite, desto verwirrter werde ich.
Rfc4632 - Classless Inter-Domain Routing
scheint es nicht zu verbieten, erlaubt es aber auch nicht explizit.
In diesem ServerFault-Beitrag wird Folgendes erwähnt: "Aus historischen Gründen behandeln viele Betriebssysteme die erste Adresse als Broadcast. Wenn Sie beispielsweise unter OS X, Linux und Solaris in meinem lokalen (/ 24) Netzwerk xxx0 pingen, erhalten Sie Antworten. Windows lässt Sie nicht pingen Standardmäßig die erste Adresse, aber Sie können sie möglicherweise mithilfe der SetIPUseZeroBroadcast-WMI-Methode aktivieren. Ich frage mich, ob Sie die Verwendung von .0 als Hostadresse in einem All-Windows-Netzwerk vermeiden können. " .
Es ist die gleiche Frage, aber keine Antwort.
Die Netzwerkadresse wird auch in Routingtabellen verwendet. Aber ich verstehe nicht, warum es aus diesem Grund nicht funktionieren würde. Dieselbe Notation in den Routingtabellen würde zum richtigen Netzwerk weiterleiten. Sobald es sich im richtigen Netzwerk befindet, kommt es zu einem PC mit IP 0.
(All dies gilt für 192.168.1 / 24.
Wenn Sie 192.168.0 / 23 verwenden, ist 192.168.1.0 ein gültiger und sicherer Wert in der Mitte des Bereichs.)
[Bearbeiten 3]
Noch ein Link zur selben Frage. Beim Stapelaustausch scheint es ein wenig populär zu sein:
/superuser/379451/why-can-a-network-address-not-be-a-valid-host-address
Und ein Gedanke:
Destination_IP wird wahrscheinlich mit dem Netzwerkmast UND- verknüpft (eine schnelle Operation in der Hardware), bevor sie mit den Einträgen in den Routingtabellen verglichen wird. Aber:
(Eine halbzufällige IP) 192.168.0.42 UND 255.255.255.0 würden 192.168.0.0 ergeben,
aber 192.168.0.0 UND 255.255.255.0 würden auch 192.168.0.0 ergeben
[Bearbeiten 4 - Lange nachdem diese Antwort geschrieben wurde - Ich muss den gesamten Beitrag aufgrund dieser neuen Informationen möglicherweise umschreiben. ]
RFC923 besagt auf Seite 3, dass:
In certain contexts, it is useful to have fixed addresses with
functional significance rather than as identifiers of specific
hosts. When such usage is called for, the address zero is to be
interpreted as meaning "this", as in "this network". The address
of all ones are to be interpreted as meaning "all", as in "all
hosts". For example, the address 128.9.255.255 could be
interpreted as meaning all hosts on the network 128.9. Or, the
address 0.0.0.37 could be interpreted as meaning host 37 on this
network.
Zitieren von @ylearn auf unserer Networkengineering-Site
Ich glaube, die erste Dokumentation dazu stammt aus RFC950, das auf RFC943 verweist (das RFC923 oben veraltet hat, aber für spezielle Adressen dieselbe Sprache verwendet):
It is useful to preserve and extend the interpretation of these
special addresses in subnetted networks. This means the values
of all zeros and all ones in the subnet field should not be
assigned to actual (physical) subnets.
ifconfig
beschwert sich nicht, wenn Sie die Host-Adresse eines 24-Net auf 0 oder 255 setzen. Versuchen Sie es einfach.