
Mir wurde gesagt, dass eine öffentliche IP-Adresse ohne die entsprechende Subnetzmaske bedeutungslos ist, weil man nicht wüsste, wie man die Netzwerk-ID von der Host-ID trennt, was für mich absolut Sinn ergibt.
Meistens sehe ich jedoch IP-Adressen (DNS, findmyip.com usw.), aber es handelt sich nur um die IP ohne die CIDR-Nummer. Ich habe beispielsweise einer Website nur eine IP-Adresse eingegeben und sie hat mir den richtigen Domänennamen zurückgegeben.
Was übersehe ich? Ich vermute, es gibt noch andere Protokolle, die nur mit IP-Adressen funktionieren, aber davon habe ich noch nichts gehört.
Wenn meine Frage zeigt, dass Sie nicht über grundlegende Kenntnisse zur Funktionsweise von Netzwerken verfügen, sind Ressourcen sehr willkommen. Ich bin ein Entwickler, der sich all diese Dinge selbst beibringt, und außer 5-minütigen Tutorials oder über 1000 obskuren Büchern (Hi TCP Illustrated) kann ich das gesuchte Material nicht finden.
Antwort1
Beide Antworten sind richtig. Hier ist eine detailliertere, nicht technische Antwort:
Ein Computer muss nur wissen, ob eine IP-Adresse zu einem Computer gehört, der direkt mit ihm verbunden ist – und Computer, die über einen Hub/Switch/WLAN im selben „LAN“ laufen, gelten als direkt verbunden.
Für alles andere muss der Computer nur wissen, wohin das Paket als nächstes gesendet werden soll – also die Adresse des Routers (der wiederum weiß, wohin die Pakete als nächstes gesendet werden sollen). Wenn Sie einen Traceroute ausführen, sehen Sie diesen Pfad.
Die Subnetzmaske wird zum Gruppieren direkt verbundener Maschinen verwendet. Um nicht direkt verbundene Maschinen zu erreichen, ist daher keine Subnetzmaske erforderlich.
Insbesondere kann eine Subnetzmaske auch von einer Firewall oder anderer Software verwendet werden, um eine Gruppe von IP-Adressen anzugeben, die auf dieselbe Weise behandelt werden sollen – weshalb sie manchmal außerhalb eines LAN relevant sind –, aber für die allgemeine Kommunikation im Internet nicht erforderlich sind.
Antwort2
Alle Systeme, die TCP/IP zur Kommunikation mit anderen Systemen verwenden, konsultieren eine lokale „Forwarding Information Base“ oder lokale Routing-Tabelle, die vom System verwaltet wird.
Ein Routing-Tabelleneintrag sieht grundsätzlich folgendermaßen 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-Adresse senden möchte, durchsucht es diese Tabelle. Wenn es ein Zielnetzwerk findet, das mit der Subnetzmaske übereinstimmt und in diese passt, sendet es Datenverkehr über den Netzwerkadapter, der durchIface.
Alle diese Netzwerkadapter sind „direkt verbunden“ – deshalb sehen Sie 0.0.0.0 für Gateway. Das bedeutet, wenn das System beispielsweise etwas an 192.168.2.80 senden möchte, kann es es einfach direkt über die Schnittstelle eth2 an 192.168.2.80 senden.
Aufgrund der Subnetzmaske würde 192.168.87.80 jedoch nicht über eth2, sondern über vmnet1 ausgehen.
Wenn eine IP in zwei Einträge passt, wird die mit der größeren CIDR-Subnetzmaske (die „spezifischere“) verwendet. Wenn es zwei mit derselben Subnetzmaske gibt, wird die Metrik verwendet, um das Unentschieden aufzulösen, und wenn das der Fall ist, kann das System eine auswählen und dabei bleiben oder die Last zwischen ihnen ausgleichen.
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 ein Ausgang an 192.168.2.1 aus der Schnittstelle ethX kommen, ein Ausgang an 192.168.2.241 jedoch aus der Schnittstelle eth2.
Was ist, wenn nichts übereinstimmt? Dann wird das Standard-Gateway verwendet. Beachten Sie, dass es die „niedrigste“ Subnetzmaske von 0.0.0.0 hat (das ist ein Schrägstrich /0).
Dafür ist das Subnetz da. Es teilt dem System mit, welche Netzwerke über welche Schnittstelle erreicht werden können. Ihr System verwendet es, wenn es Datenverkehr aussendet (um den Unterschied zwischen Internet und lokalem Netzwerk zu bestimmen), und Router verwenden es, um Datenverkehr weiterzuleiten.
Außerhalb dieser Situationen wird die Subnetzmaske nicht benötigt. Grundsätzlich wird sie ab der Netzwerkroutingschicht nicht mehr benötigt. HTTP ist die Anwendungsschicht.
Antwort3
Die Subnetzmaske ist für den Host selbst und für die Routing-Ausrüstung nützlich.
Ihr PC muss die Subnetzmaske eines Remote-Geräts nicht kennen, er braucht nur die Adresse und vergleicht sie mit seinereigene Adresseund seineigene SubnetzmaskeDadurch wird erkannt, 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 Standard-Gateway gesendet.