ARP et sous-reseaux
Le
Pascal
Bonjour,
Je découvre le fonctionnement de ARP et après avoir lu beaucoup de
docs je me suis livré au test suivant:
Machine A: 82.67.66.131 Masque: 255.255.255.0
Machine B: 82.67.64.88 Masque: 255.255.255.0
J'ai donc deux machines sur un même réseau mais sur deux
sous-réseaux différents.
Quand A fait un ping vers B je ne capture aucune trame de broadcast sur
A alors que c'est le cas si A ping yahoo.fr
Donc A voit B
Or dans la table arp de A, B n'existe pas. Donc si j'ai bien compris, A
"devrait" appliquer son masque sur l'adresse de B (soit 255.255.255.0
sur 82.67.64.88), voir que B n'est pas sur le même sous-réseau
(82.67.66 != 82.67.64) et faire un broadcast sur sa passerelle par
défaut (comme elle le fait parfaitement pour yahoo.fr).
Or, de fait, A ne le fait pas.
Donc quelque chose cloche:
1°/ soit je considère que c'est normal que A voit B puisque qu'elles
sont sur le même réseau père, à savoir 82.67. Mais alors à quoi
servent les masques de sous-réseaux ?
Et d'autre part, on ne fait pas des sous-réseaux pour rien et entre
deux sous-réseaux, il faut une passerelle. Or les requettes arp ne les
passent pas. Comment fait-donc A pour joindre B sans faire de broadcast
?
2°/ Soit je considère que A ne peut pas voir B puisqu'elles sont sur
des sous-réseaux différents et auquel cas c'est anormal que A ne
fasse pas un broadcast sur sa passerelle ?
Si quelqu'un peut me donner des éléments de réponse ?
Pascal
Je découvre le fonctionnement de ARP et après avoir lu beaucoup de
docs je me suis livré au test suivant:
Machine A: 82.67.66.131 Masque: 255.255.255.0
Machine B: 82.67.64.88 Masque: 255.255.255.0
J'ai donc deux machines sur un même réseau mais sur deux
sous-réseaux différents.
Quand A fait un ping vers B je ne capture aucune trame de broadcast sur
A alors que c'est le cas si A ping yahoo.fr
Donc A voit B
Or dans la table arp de A, B n'existe pas. Donc si j'ai bien compris, A
"devrait" appliquer son masque sur l'adresse de B (soit 255.255.255.0
sur 82.67.64.88), voir que B n'est pas sur le même sous-réseau
(82.67.66 != 82.67.64) et faire un broadcast sur sa passerelle par
défaut (comme elle le fait parfaitement pour yahoo.fr).
Or, de fait, A ne le fait pas.
Donc quelque chose cloche:
1°/ soit je considère que c'est normal que A voit B puisque qu'elles
sont sur le même réseau père, à savoir 82.67. Mais alors à quoi
servent les masques de sous-réseaux ?
Et d'autre part, on ne fait pas des sous-réseaux pour rien et entre
deux sous-réseaux, il faut une passerelle. Or les requettes arp ne les
passent pas. Comment fait-donc A pour joindre B sans faire de broadcast
?
2°/ Soit je considère que A ne peut pas voir B puisqu'elles sont sur
des sous-réseaux différents et auquel cas c'est anormal que A ne
fasse pas un broadcast sur sa passerelle ?
Si quelqu'un peut me donner des éléments de réponse ?
Pascal

Poser une question


Pas compris ce que tu voulais dire là.
[...]
Tu as pensé à sortir la passerelle du cache ARP après avoir pingé
Yahoo ? Parce que sinon, tu n'auras pas de requête pour la passerelle,
puisqu'elle est déjà dans le cache.
Si A "voyait" B, alors B serait dans le cache ARP, or ce n'est pas le cas.
C'est quoi ces histoire de broadcast ? Ethernet, IP ? Avec quoi dedans ?
Et puis est-ce que A joins vraiment B ? Le ping, il passe ou pas ?
Modulo cet étrange broadcast, il n'y aura pas de requête ARP si la
passerelle est dans le cache a A.
Amha, il faudrait revoir un peu le protocole de test.
--
Tout ça, c'est de la faute de Microsoft.
Démolissons Microsoft.
Oussama ?
-+- AL in GFA : "À l'aide !!!" -+-
On 18 Apr 2005 06:02:56 -0700, Pascal
Plus précisément, deux machines sur un même réseau niveau 2 mais sur deux
réseaux de niveau 3 différents.
Il faudrait faire le test avec le cache ARP vide dans les deux cas. En
effet, dans un cas comme dans l'autre, A pour joindre B va devoir passer
par le routeur (niveau 3) adapté (passerelle par défaut, en général), et
donc va devoir faire une résolution ARP sur cette adresse (et non pas sur
l'adresse de B, dont il *sait* qu'il n'est pas dans le même réseau). Mais
une fois que cette résolution est faite, elle est conservée en cache, donc
il est normal qu'il n'y en ait pas le deuxième coup.
Non.
Exactement, sauf si la résolution ARP de l'adresse de la passerelle a déjà
eu lieu, et qu'elle n'a pas besoin d'être faite à nouveau.
Jacques.
--
Interactive Media Factory
Création, développement et hébergement
de services interactifs: SMS, SMS+, Audiotel...
http://www.imfeurope.com/
Ton hypothèse m'a traversé l'esprit mais j'ai un souci.
Je suis sous Linux/Debian et je n'arrive pas à effacer le cache arp
J'ai un fichier /proc/net/arp que je n'arrive pas non plus à effacer.
J'ai essayé echo "" > /proc/net/arp mais sans résultat
Je suppose que de rebooter ne servira à rien.
Pascal
Je vais être lourd :)))
man arp :
[...]
-d hostname, --delete hostname
Remove any entry for the specified host. This can be used if
the indicated host is brought down, for example.
Donc :
~# arp -d <IP|hostname>
Par contre, pas de flush complet avec la commande arp, faut virer les
entrées une par une.
Sinon, y'a aussi la commande "ip" qui marche bien pour contrôler le cache
ARP, avec le switch "neigh" :
~# ip neigh del <IP|hostname> dev <iface>
Et là, tu peux tirer la chasse, interface par interface.
~# ip neigh flush dev <iface>
--
je (moi) serait seul juge de l'acceptation ou non de telle
signature dans le GPJ.
-+- SD in Guide du Petit Joueur: je sangsure fassisstement -+-
C'est rentré dans l'ordre. Je ne prenais pas les bonnes valeurs pour
l'@IP
Et effectivement, c'est bien le cache qui posait problème.
Deux petites choses:
1°/ ethereal à un comportement très curieux en ce sens que les deux
trames ARP s'affichent dans la boite de capture au moins 20s après la
fin du ping !
2°/ c'est une petite précision: Jacques m'a répondu "Plus
précisément, deux machines sur un même réseau niveau 2 mais sur
deux réseaux de niveau 3".
Que dois-je comprendre: le même réseau niveau 2 signifie même
réseau ethernet et "deux réseaux de niveau 3" signifiant 2 réseaux
logiques ?
Merci
Pascal