
Theoretisch ist jeder Teil einer IP-Adresse eine Zahl zwischen 0 und 255 (insgesamt 256 nutzbare Slots).
Aber warum wird 0
in keiner IP-Adresse der vierte Teil verwendet und warum beginnen IP-Adressberechnungen immer bei 1?
Zum Beispiel:
127.0.0.1 <=== logically this should start from 0 as the first usable IP address.
192.168.0.1 <=== for example even default router IP address is set to 1 rather than to be 0
10.10.0.1
.
.
Warum wird der 0
Slot immer ab dem letzten Teil übersprungen?
Antwort1
Aber warum wird in keinem vierten Teil einer IP-Adresse die 0 verwendet und warum beginnen IP-Adressberechnungen immer bei 1?
Im Hinblick auf dieTitelIhrer Frage 127.0.0.0
ist, zumindest unter Linux, eine vollkommen brauchbare Adresse (die wie jede andere 127.*
Adresse der Loopback-Schnittstelle zugeordnet ist).
Beispielsweise kann ich einen Webserver hier starten 127.0.0.0:8080
:
docker run -d --rm --hostname node1 --name node1 -p 127.0.0.0:8080:8080 alpine \
sh -c "apk add --update darkhttpd; mkdir /srv; hostname > /srv/index.html; darkhttpd /srv --port 8080"
Und starten Sie dann ein weiteres mit der Bindung an 127.0.0.1:8080
:
docker run -d --rm --hostname node2 --name node2 -p 127.0.0.1:8080:8080 alpine \
sh -c "apk add --update darkhttpd; mkdir /srv; hostname > /srv/index.html; darkhttpd /srv --port 8080"
Und jetzt kann ich über die jeweiligen Adressen auf diese Server zugreifen:
$ curl 127.0.0.0:8080
node1
$ curl 127.0.0.1:8080
node2
Antwort2
Bei IPv4 ist die erste Adresse eines Subnetzes reserviert, und zwar aus... unklaren Gründen, aber höchstwahrscheinlich, weilvor sehr langer ZeitFrüher war dies die „Broadcast“-Adresse. (Später wurde die letzte Adresse zur Standard-Broadcast-Adresse.)
Heutzutage ist es zwar technisch möglicherweise möglich, die erste Adresse zu verwenden, die meisten vorhandenen Netzwerkstapel behandeln sie jedoch immer noch als „reserviert“ (ähnlich wie der gesamte ehemalige „Klasse E“-Speicherplatz 240.0.0.0/4 versehentlich unbrauchbar wurde).
Beachten Sie, dass es sich speziell um dieerste Adresse eines Subnetzes,und nicht immer die 0
Adresse. Diese stimmen nur bei einem /24-Subnetz überein. Aber zum Beispiel wird ein /16-Subnetz .0.0
reserviert haben, abernicht .1.0
oder .47.0
– diese liegen in der Mitte von /16 und sind daher vollkommen gültige Hostadressen.
(Andererseits könnte ein kleineres /27-Subnetz nicht nur bei , .0
sondern auch bei .32
oder beginnen .192
– diese wären bei /27 wiederum reserviert, auch wenn sie bei /24 nicht reserviert sind.)
Beachten Sie auch, dass dies nur für Broadcast-Subnetze (z. B. Ethernet) gilt. Solche Adressen können weiterhin in Punkt-zu-Punkt-Verbindungen verwendet oder einzeln als /32 geroutet werden.
Antwort3
In den IPv4-Spezifikationen ist die niedrigste Adresse in jedem IPv4-Netzwerk als Netzwerkadresse reserviert, die einen anderen Zweck hat als die Broadcast-Adresse, die normalerweise die höchste Adresse im Netzwerk ist (obwohl diese, wenn Sie nur Spaß haben wollen, anders konfiguriert werden kann). Die Idee einer Netzwerkadresse machte in der Zeit vor klassenlosen Netzwerken und Subnetzmasken mehr Sinn. Das Konzept hinter Subnetzen und Subnetzmasken war ein Zusatz zu IPv4, der in der ursprünglichen Spezifikation nicht vorhanden war.
Aktualisieren:Die Endung „.0“ hat nichts Magisches an sich, sie bedeutet lediglich, dass es sich um die niedrigste Adresse in einem Subnetz handelt (die nicht immer .0 sein muss).
Ursprünglich war IPv4 klassenorientiert und in 5 Klassen unterteilt: A, B, C, D und E. Netzwerke der Klasse A sind alle IPs, deren höchstwertiges Bit eine 0 ist, oder anders gesagt IPs von 0.0.0.0 bis 127.255.255.255. IPv4-Adressen, deren oberste zwei Bits 10 sind, sind Klasse B, was den Adressen 128.0.0.0 bis 191.255.255.255 entspricht. Klasse C beginnt mit 110xxxxx im ersten Oktett oder den Adressen 192.0.0.0 bis 223.255.255.255. Klasse D hat ein erstes Oktett, das mit 1110xxxx übereinstimmt, was ihnen die IPs 224.0.0.0 bis 239.0.0.0 gibt. Klasse E ist schließlich 1111xxxx oder die IPs 240.0.0.0 bis 255.255.255.255. Adressen der Klasse E gelten als reserviert und haben keine definierte Verwendung, mit der besonderen Ausnahme von 255.255.255.255. Klasse D sind Multicast-Adressen, die verwendet werden, um Pakete gemeinsam an Computergruppen zu senden. Klassen AC sind Ihre normalen Unicast-IPs, bei denen einzelne Geräte eine IP in einem bestimmten Netzwerk erhalten.
Die Größe jedes Netzwerks wird durch seine Klasse bestimmt. Netzwerke der Klasse A sind so definiert, dass die ersten 8 Bit oder das erste Oktett der Netzwerkteil der Adresse sind und die restlichen 24 Bit der hostspezifische Teil der Adresse in einem einzelnen IPv4-Netzwerk. Klasse B teilt es in 16 Bit und 16 Bit oder jeweils 2 Oktette auf. Netzwerke der Klasse C verwenden die ersten 24 Bit als Netzwerkteil und die letzten 8 Bit als Hostteil. In modernen Begriffen hat ein Netzwerk der Klasse A ein /8-Subnetz, Klasse B ein /16- und Klasse C ein /24-Subnetz. Die Trennung zwischen dem Netzwerk- und Hostteil der IPv4-Adresse ist wichtig für das Routing von Paketen und bestimmt, ob jedes Gerät diese direkt an das System im lokalen Netzwerk senden kann oder ob es sie an einen Router senden muss, um sie an einen anderen Ort weiterzuleiten. Bevor IPv4-Netzwerkstapel und -Protokolle Subnetting implementierten, war diese Unterscheidung im IP selbst fest codiert.
Überreste davon sind in Protokollen wie dem Routing-Protokoll RIPv1 zu sehen. Es gibt nur IPs bekannt, keine Subnetzmasken, daher war die Unterscheidung zwischen einer Hostadresse und einer Netzwerkadresse entscheidend. Wenn eine RIPv1-Adresse die Adresse 192.0.0.0 bekannt gab, ist dies die niedrigste Adresse in einem Netzwerk der Klasse B und damit die Netzwerkadresse für das gesamte Netzwerk. Dies würde anderen Geräten mitteilen, dass alle Systeme von 192.0.0.0 bis 192.0.255.255 über diese Route erreichbar sind (da Klasse B die ersten beiden Oktette für das Netzwerk verwendet, in diesem Beispiel 192.0). Wenn jedoch 192.0.0.1 bekannt gegeben wurde, ist dies nicht die niedrigste Adresse in diesem Netzwerk und somit eine Hostadresse. Das bedeutet, dass RIPv1 eine Route für einen einzelnen, bestimmten Host bekannt gibt, nicht für ein ganzes Netzwerk. Vielleicht ist es ein DFÜ-Modem oder es gibt einen anderen Grund, eine eindeutige Route zu erhalten, aber diese Bekanntgabe gilt nur für diesen einen Host.
Da Subnetze mittlerweile weit verbreitet sind und neuere Protokolle wie RIPv2 die Subnetzmaske zusammen mit der IP senden, ist das gesamte Konzept einer Netzwerkadresse etwas überflüssig, aber aus historischen Gründen müssen wir es beibehalten. Eine hostspezifische Route kann mit einer Subnetzmaske von 255.255.255.255 angekündigt werden, aber wir müssen weiterhin die Kompatibilität mit Software aufrechterhalten, die davon ausgeht, dass am unteren Ende des Netzwerkbereichs eine Netzwerkadresse vorhanden ist.
Aktualisieren:Zur weiteren Verdeutlichung hier einige Beispiele. Wenn Sie den IP-Adressbereich 10.xxx in /26-Subnetze aufteilen würden, hätte jedes Subnetz insgesamt 64 Adressen (62 nutzbar für Hosts), da nur 6 Bits der 32-Bit-IP für den Host-Teil übrig bleiben. Die ersten fünf Subnetz-Netzwerkadressen wären 10.0.0.0, 10.0.0.64, 10.0.0.128, 10.0.0.192 und 10.0.1.0. Die Standard-Broadcast-Adressen wären die höchste Adresse im Subnetz und entsprächen jeweils 10.0.0.63, 10.0.0.127, 10.0.0.191 und 10.0.1.63. Wenn stattdessen ein /23-Subnetz verwendet würde, hätte jedes Netzwerk 512 Adressen (510 nutzbar). Die ersten fünf Subnetze sind 10.0.0.0, 10.0.2.0, 10.0.4.0 und 10.0.6.0. Die entsprechenden Broadcast-Adressen sind 10.0.1.255, 10.0.3.255, 10.5.255 und 10.7.255. Beachten Sie, dass in diesem letzten Beispiel 10.0.1.0, 10.0.3.0 usw. keine Netzwerkadressen sind. Sie können problemlos als reguläre IPs für Hosts verwendet werden, da sie sich in der Mitte des Subnetzbereichs befinden. Nur die allererste und letzte Adresse sind speziell. 10.0.0.255 kann ebenfalls als regulärer Host verwendet werden.
Antwort4
Bei IPv4 ist jede IP, die auf .0 endet, eine (Standard-)Netzwerkadresse, wenn Sie das Präfix /24 verwenden. Sie können diese Adresse nicht verwenden und sie einem Computer zuweisen. Die „zulässigen“ IPs, die zugewiesen werden können, reichen von .1 bis .254. Sie können auch nicht .255 verwenden, da diese Adresse als „Broadcast“-Adresse für das Netzwerk verwendet wird.