Was ist der Zweck der Konfiguration der Netzmaske auf einer IPv4-Schnittstelle auf einem Linux-Computer?

522
user6668153

Ich frage mich, was ist die Netzmaske, die im Linux-Netzwerkstack verwendet wird.

Nehmen wir an, ich habe eine Schnittstelle eth0, die auf ip 1.1.1.1 und netmask 255.255.255.0 konfiguriert ist

jetzt sende ich ein Paket an 1.1.1.2 und ein Paket an 1.2.3.4. Warum muss mein Linux-Rechner die Netzwerkarchitektur kennen, um diese beiden Anforderungen bedienen zu können?

Ich würde erwarten, dass in beiden Fällen eine arp-Anfrage gesendet wird. Zum ersten wird der echte Host antworten, und zum zweiten wird der qualifizierende Router antworten.

0

2 Antworten auf die Frage

2
RedGrittyBrick

Ich würde erwarten, dass in beiden Fällen eine arp-Anfrage gesendet wird. Zum ersten wird der echte Host antworten, und zum zweiten wird der qualifizierende Router antworten.

Nein, der Router liefert nur dann eine ARP-Antwort, wenn die ARP-Anfrage die IP-Adressen einer eigenen Schnittstelle des Routers betrifft.

Der Client verwendet die Netzmaske, um zu entscheiden, ob die Ziel-IP lokal ist oder geroutet werden muss.

Wenn der Client feststellt, dass sich das Ziel außerhalb des LAN befindet, wählt er einen geeigneten Router aus seiner Routing-Tabelle aus. Häufig handelt es sich hierbei um ein "Standardgateway", das statisch oder, was heutzutage mit DHCP wahrscheinlich ist, beim Start konfiguriert wird.

Der Client sendet dann eine ARP-Anfrage, um die MAC-Adresse für die IP-Adresse des Routers zu finden. Nachdem er die arp-Antwort empfangen hat, kann er Pakete an den Router senden, die die MAC-Adresse des Routers und die IP-Adresse des Endziels haben. Der Client speichert außerdem die MAC-Adresse und IP-Adresse des Routers in seinem ARP-Cache, um weitere ARP-Anfragen für die gleichen Informationen zu sparen.

0
MSalters

Ihr lokaler Computer verfügt über einen ARP-Cache. Dies ist die Tabelle der ARP-Antworten für jede IP-Adresse. Sie möchten keine 4 Milliarden Einträge in diesem Cache. Die Netzmaske zeigt an, welche Adressen zwischengespeichert werden sollen.

Allerdings hat der qualifizierende Router (Gateway) auch eine lokale Adresse, da diese erreichbar sein muss. (Sie können dies auch explizit konfigurieren). Damit Pakete nach 1.2.3.4 tatsächlich eine ARP-Anfrage für die konfigurierte Gateway-Adresse auslösen (z. B. 1.1.1.254). Da es sich um einen Router handelt, wird 1.1.1.254 nicht überrascht, wenn er ein Paket für 1.2.3.4 erhält.

Ich hasse Downvoting, also werde ich Ihnen dies nicht antun, aber diese Antwort ist wirklich falsch und RedGrittyBrick's ist richtig: Die Netzmaske wird verwendet, um zu unterscheiden, welche IP-Adressen direkt erreichbar sind (* dh *, sie gehören zu demselben physischen Segment und damit brauchen kein Gateway) von den IP-Adressen, die ein oder mehrere Gateways überqueren müssen, die dann ** Routing ** benötigen. Nichts mit einem ARP-Cache zu tun (auch wenn das natürlich nützlich ist). MariusMatutiae vor 8 Jahren 0