Warum werden öffentliche IP-Adressen nicht immer mit ihrer Subnetzmaske angezeigt?

489
Radioreve

Mir wurde gesagt, dass eine öffentliche IP-Adresse ohne die entsprechende Subnetzmaske bedeutungslos ist, weil man nicht wissen konnte, wie die Netzwerk-ID von der Host-ID getrennt werden sollte, was für mich absolut sinnvoll ist.

Meistens sehe ich jedoch IP-Adressen (DNS, findmyip.com usw.). Es geht nur um IP ohne die CIDR-Nummer. Zum Beispiel habe ich einer Website nur eine IP-Adresse eingegeben und sie gab mir den richtigen Domainnamen zurück.

Was vermisse ich ? Ich vermute, es gibt ein paar andere Protokolle, die nur mit IP-Adressen funktionieren, aber davon habe ich noch nichts gehört.

Wenn meine Frage zeigt, dass ein grundlegendes Verständnis der Funktionsweise von Netzwerken fehlt, werden Ressourcen sehr geschätzt. Ich bin ein Entwickler, der mir all das beibringt, und außer fünfminütigen Tutorials oder mehr als 1000 obskuren Büchern (Hi TCP Illustrated) kann ich nicht das Material finden, nach dem ich suche.

0
Die effektive Subnetzmaske für eine IP-Adresse außerhalb Ihres lokalen Netzwerks lautet immer / 32 (für IPV4; es ist / 128 für IPV6), so dass die Angabe dieses Feldes überflüssig wäre Mike Scott vor 6 Jahren 1
Ich glaube, ich weiß was du meinst, danke Radioreve vor 6 Jahren 0

3 Antworten auf die Frage

3
jcbermu

Die Subnetzmaske ist für den Host selbst und für das Routing-Gerät nützlich.

Ihr PC muss nicht die Subnetzmaske eines Remote-Geräts kennen, er muss nur die Adresse kennen und mit seiner eigenen Adresse und seiner eigenen Subnetzmaske vergleichen, wenn er weiß, ob die Adresse lokal oder remote ist.

Wenn es lokal ist, werden die Pakete direkt gesendet. Wenn es remote ist, werden die Pakete an das Standardgateway gesendet.

2
LawrenceC

Alle Systeme, die TCP / IP verwenden, um mit anderen Systemen zu kommunizieren, konsultieren eine lokale "Fowarding Information Base" oder eine lokale Routingtabelle, die vom System verwaltet wird.

Ein Routing-Tabelleneintrag sieht im Grunde so aus:

Zielnetzwerk / Gateway / Zielsubnetzmaske / Metrik

Hier ist meine aktuelle Routingtabelle:

Kernel IP routing table Destination Gateway Genmask Flags Metric Ref Use Iface default gateway 0.0.0.0 UG 100 0 0 eth2 link-local 0.0.0.0 255.255.0.0 U 1000 0 0 eth2 172.16.160.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet8 192.168.2.0 0.0.0.0 255.255.255.0 U 100 0 0 eth2 192.168.87.0 0.0.0.0 255.255.255.0 U 0 0 0 vmnet1 

Jedes Mal, wenn das System Datenverkehr an eine IP senden möchte, durchsucht es diese Tabelle. Wenn ein Zielnetzwerk gefunden wird, das mit der Subnetzmaske übereinstimmt und in diese passt, sendet es Datenverkehr von dem von Iface angegebenen Netzwerkadapter .

Alle diese Netzwerkadapter sind "direkt verbunden" - deswegen sehen Sie 0.0.0.0 für Gateway. Das heißt, wenn das System etwas an 192.168.2.80 senden möchte, kann es beispielsweise direkt über die Schnittstelle eth2 an 192.168.2.80 gesendet werden.

Aufgrund der Subnetzmaske würde 192.168.87.80 jedoch nicht über eth2, sondern über vmnet1 ausgegeben.

Wenn eine IP-Adresse in zwei Einträge passt, wird die IP-Adresse mit der größeren CIDR-Subnetzmaske (die "spezifischere") verwendet. Wenn es zwei mit derselben Subnetzmaske gibt, wird die Metrik verwendet, um die Verbindung zu lösen, und wenn dies der Fall ist, kann das System eine auswählen und dabei bleiben oder die Lastverteilung zwischen ihnen halten.

z.B

192.168.2.0 0.0.0.0 255.255.255.0 U 100 0 0 eth2 192.168.2.0 0.0.0.0 255.255.255.240 U 100 0 0 ethX 

255.255.255.240 ist ein CIDR / 28 und 255.255.255.0 ist ein CIDR / 24. Wenn also die beiden Einträge vorhanden wären, würde etwas, das nach 192.168.2.1 geht, das Interface ethX verlassen, aber etwas, das nach 192.168.2.241 geht, würde das Interface eth2 verlassen.

Was ist, wenn nichts passt? Dann wird das Standard-Gateway verwendet. Beachten Sie, dass es die "niedrigste" Subnetzmaske von 0.0.0.0 (was ein Schrägstrich / 0 ist) hat.

Deshalb ist das Subnetz dafür gedacht. Teilen Sie dem System mit, welche Netzwerke über welche Schnittstelle erreichbar sind. Ihr System verwendet dies beim Senden von Datenverkehr (zur Ermittlung des Unterschieds zwischen Internet und lokalem Netzwerk), und Router verwenden dies zur Weiterleitung von Datenverkehr.

Außerhalb dieser Situationen wird die Subnetzmaske nicht benötigt. Es ist im Grunde nicht über die Netzwerk-Routing-Schicht hinaus erforderlich. HTTP ist die Anwendungsschicht.

0
davidgo

Both the above answers are correct - here is a more detailed non technical one-

A computer only needs to know if an IP address belongs to a computer which connects directly to it - and computers going through a hub/switch/wifi in the same "lan") are considered directly connected.

For anything else, the computer only needs to know where to send the packet to next - ie the address of the router (which in turn knows where to send packets next). When you do a traceroute you are seeing this path.

The subnet mask is used to group machines which are directly connected - so for machines which are not directly connected a subnet mask is not required to reach them.

Notably a subnet mask can also be used by a firewall or other software to specify a group of IP addresses to be treated the same way - which is why they are sometimes relevant outside a LAN - but not necessary for generally communicating on the Internet.

Formelle Anmerkung: Jeder Benutzer (oder Gast) kann die Reihenfolge der Antworten ändern (Sortieren nach aktiven, ältesten, Stimmen). Der Satz "beide Antworten" macht dann wenig Sinn. Kamil Maciorowski vor 6 Jahren 1