Je me demande si j'ai un ordinateur dans le sous-réseau A avec adresse IP 192.168.123.1
et un ordinateur avec adresse IP 192.168.124.1
dans un sous-réseau différent.
Les deux réseaux sont liés à un routeur. Si je veux maintenant envoyer un package de Computer A à l'ordinateur B, je devrai utiliser ARP pour obtenir leur adresse MAC pour envoyer le cadre (supposant le cache ARP vide).
Ma question est maintenant: à quoi ressemblerait cette demande d'ARP, j'ai deux méthodes possibles que je peux penser:
L'ordinateur A, voit que l'adresse IP de l'ordinateur B est en dehors de son propre sous-réseau. Il décide d'envoyer le paquet à sa passerelle par défaut (routeur) et envoie une demande ARP avec l'adresse IP du routeur. Suivant: Le routeur répond avec son adresse MAC et le cadre est envoyé au routeur, ce qui prendra soin du cadre.
L'ordinateur A, est "stupide" et envoie une demande ARP avec l'adresse IP de B. Le routeur est suffisamment intelligent et voit que l'adresse IP est dans la ligne de route. Et répond avec sa propre adresse MAC. Ensuite, l'ordinateur A envoie le cadre au routeur, pensant qu'il est ordinateur B. Le routeur envoie le package à l'ordinateur B.
L'inconvénient que je vois avec la deuxième approche, est que lorsque vous surfez sur Google, il effectuera une demande ARP avec l'adresse IP de Google. Le routeur répondra avec elle-même, car il sait aller à Google. La prochaine fois que vous surfez sur un autre site Web, vous devrez faire la même chose à nouveau et envoyer une demande ARP avec la propriété intellectuelle de ce site Web. Cela entraînera de nombreuses demandes d'ARP (une pour chaque site Web). Et le cache ARP sera très grand.
Je n'ai vraiment pas konw la réponse. J'ai trouvé deux vidéos YouTube - celui-ci et celui-ci - chacun me dit différentes choses:
J'espère que quelqu'un peut m'aider.
c'est "méthode A". Demandes ARP pour adresses à l'extérieur du sous-réseau ne sera pas expédiée du tout. La seule demande ARP sera pour le la passerelle Adresse IP.
Si vous venez de configurer 192.168.123.1/24
pour ordinateur A et ne faites rien d'autre, il aura une table de routage comme celle-ci:
192.168.123.0/24
au périphérique ETH00.0.0.0/0
à passerelle 192.168.123.254
Appareil Eth0Dans une telle table de routage, la première entrée déclare que le 192.168.123.0/24
est local - accessible sur Eth0 sans passerelle - tellement tenter de contacter 192.168.123.42
donnerait en effet une demande d'ARP pour 192.168.123.42
.
Cependant, la deuxième entrée a une passerelle définie, elle est donc supposée être non locale, et le système d'exploitation ne tente pas d'envoyer des demandes d'ARP pour ces autres adresses IP, car elle le sait déjà qu'il ne peut pas les atteindre. Il enverra donc directement une demande ARP pour le la passerelle adresse et rien d'autre.
(Vous pouvez vérifier cela en regardant simplement le cache ARP; ip neigh
_ ou arp -a
selon le système d'exploitation; ou en utilisant un outil de capture de paquets comme tcpdump
ou wifshark. )
Dans la plupart des systèmes d'exploitation, vous pouvez, bien entendu, ajouter des itinéraires explicitement à dire à l'OS que certains sous-réseaux sont locaux (par exemple ip route add 192.168.124.0/24 dev eth0
).
Les protocoles de résolution d'adresses et protocole de découverte de voisinage (IPv6) ne sont utilisés que lorsqu'il n'y a pas d'autre voie, mais une route d'interface correspond. S'il y a un itinéraire correspondant, que ce soit par défaut ou explicite, la passerelle spécifiée sera contactée. La résolution de l'adresse de la passerelle utilise toujours ARP/NDP, bien sûr.