Question d'école sur la résolution d'adresse d'une passerelle.
2 réponses
ALLAIN Norbert
Bonjour.
Soit un réseau avec un pc A 192.168.0.1/255.255.255.0 et une passerelle
avec comme adresse eth0 192.168.1.1/255.255.255.0
Le pc A et la passerelle appartiennent au même réseau physique mais pas
au même réseau logique.
Les paquets envoyés par pc A pour un autre réseau que le sien vont être
envoyés à la passerelle.
Ma question: le pc A va-t-il chercher à savoir si la passerelle
appartient au même réseau logique que le sien, ce qui n'est pas le cas.
Ou va-t-il directement envoyer une requête ARP avec comme adresse
192.168.1.1 à résoudre ?
Cette action est irreversible, confirmez la suppression du commentaire ?
Signaler le commentaire
Veuillez sélectionner un problème
Nudité
Violence
Harcèlement
Fraude
Vente illégale
Discours haineux
Terrorisme
Autre
Kns
ALLAIN Norbert a écrit:
Bonjour.
Soit un réseau avec un pc A 192.168.0.1/255.255.255.0 et une passerelle avec comme adresse eth0 192.168.1.1/255.255.255.0 Le pc A et la passerelle appartiennent au même réseau physique mais pas au même réseau logique.
mais vaudrait mieux t'il pas un netmask en 255.255.254.0 tout simplement?
ALLAIN Norbert a écrit:
Bonjour.
Soit un réseau avec un pc A 192.168.0.1/255.255.255.0 et une passerelle
avec comme adresse eth0 192.168.1.1/255.255.255.0
Le pc A et la passerelle appartiennent au même réseau physique mais pas
au même réseau logique.
mais vaudrait mieux t'il pas un netmask en 255.255.254.0 tout simplement?
Soit un réseau avec un pc A 192.168.0.1/255.255.255.0 et une passerelle avec comme adresse eth0 192.168.1.1/255.255.255.0 Le pc A et la passerelle appartiennent au même réseau physique mais pas au même réseau logique.
mais vaudrait mieux t'il pas un netmask en 255.255.254.0 tout simplement?
Annie D.
[Repost & supersedes]
ALLAIN Norbert wrote:
Soit un réseau avec un pc A 192.168.0.1/255.255.255.0 et une passerelle avec comme adresse eth0 192.168.1.1/255.255.255.0 Le pc A et la passerelle appartiennent au même réseau physique mais pas au même réseau logique.
Vous avez de drôles d'idées. Juste par curiosité, vous pourriez fournir la table de routage des deux machines ?
Les paquets envoyés par pc A pour un autre réseau que le sien vont être envoyés à la passerelle.
Vous êtes très optimiste.
Ma question: le pc A va-t-il chercher à savoir si la passerelle appartient au même réseau logique que le sien, ce qui n'est pas le cas.
Oui. Et il ne va pas attendre d'avoir un paquet à envoyer pour cela. C'est au moment où vous allez configurer l'adresse de passerelle qu'il va vérifier dans sa table de routage que cette adresse est joignable directement sur une de ses interfaces. Et dans votre cas, ça risque de ne pas le faire, comme on dit, car la table de routage standard pour 192.168.0.1/24 ne contient pas la destination 192.168.1.1.
Ou va-t-il directement envoyer une requête ARP avec comme adresse 192.168.1.1 à résoudre ?
Le PC A, il va regarder sa table de routage. En fonction de ce qu'il trouve, il va au choix :
- envoyer une requête ARP avec l'adresse IP de destination si celle-ci est directement joignable par l'interface ethernet ; ensuite il enverra les paquets avec l'adresse MAC et l'adresse IP de la destination ;
- envoyer une requête ARP avec l'adresse IP de la passerelle correspondante si la destination est joignable via une passerelle ; ensuite il enverra les paquets avec l'adresse MAC de la passerelle et l'adresse IP de la destination ;
- retourner une erreur "unreachable" si la destination est inconnue de la table de routage.
Pour revenir à vos moutons, examinons la table de routage du PC A. Après configuration d'IP sur eth0, par exemple avec la commande suivante :
# ifconfig eth0 192.168.0.1 mask 255.255.255.0
la table de routage standard devrait ressembler à ça :
Seules les adresses de son sous-réseau 192.168.0.0/24 sont joignables, et ceci directement par eth0 sans passer par une passerelle.
Maintenant, si vous voulez ajouter 192.168.1.1 comme passerelle par défaut :
# route add default gw 192.168.1.1 SIOCADDRT: Network is unreachable
le système proteste en disant que qu'il ne sait pas joindre cette adresse et que par conséquent cette passerelle serait inutilisable. Normal, dans l'état actuel de sa table de routage il ne sait pas joindre autre chose que son propre sous-réseau et cette adresse n'en fait pas partie.
Si vous voulez absolument faire ça, il faut d'abord la rendre joignable en disant qu'elle accessible directement sur l'interface eth0 :
Cependant, ce n'est pas encore fini. D'accord, le PC A peut envoyer des paquets via la passerelle, mais cela ne sert pas à grand chose si la passerelle ne sait pas comment lui renvoyer les paquets reçus en réponse. Et je soupçonne que le même problème que ci-dessus va se poser pour la passerelle dont la table de routage n'a aucune raison de contenir par défaut 192.168.0.1 parmi les destinations joignables par eth0 puisque les deux machines ne sont pas dans le même sous-réseau. Il suffit de lui ajouter une route directe comme on l'a fait pour PC A :
# route add 192.168.0.1 dev eth0
[Repost & supersedes]
ALLAIN Norbert wrote:
Soit un réseau avec un pc A 192.168.0.1/255.255.255.0 et une passerelle
avec comme adresse eth0 192.168.1.1/255.255.255.0
Le pc A et la passerelle appartiennent au même réseau physique mais pas
au même réseau logique.
Vous avez de drôles d'idées. Juste par curiosité, vous pourriez fournir
la table de routage des deux machines ?
Les paquets envoyés par pc A pour un autre réseau que le sien vont être
envoyés à la passerelle.
Vous êtes très optimiste.
Ma question: le pc A va-t-il chercher à savoir si la passerelle
appartient au même réseau logique que le sien, ce qui n'est pas le cas.
Oui. Et il ne va pas attendre d'avoir un paquet à envoyer pour cela.
C'est au moment où vous allez configurer l'adresse de passerelle qu'il
va vérifier dans sa table de routage que cette adresse est joignable
directement sur une de ses interfaces. Et dans votre cas, ça risque de
ne pas le faire, comme on dit, car la table de routage standard pour
192.168.0.1/24 ne contient pas la destination 192.168.1.1.
Ou va-t-il directement envoyer une requête ARP avec comme adresse
192.168.1.1 à résoudre ?
Le PC A, il va regarder sa table de routage. En fonction de ce qu'il
trouve, il va au choix :
- envoyer une requête ARP avec l'adresse IP de destination si celle-ci
est directement joignable par l'interface ethernet ; ensuite il enverra
les paquets avec l'adresse MAC et l'adresse IP de la destination ;
- envoyer une requête ARP avec l'adresse IP de la passerelle
correspondante si la destination est joignable via une passerelle ;
ensuite il enverra les paquets avec l'adresse MAC de la passerelle et
l'adresse IP de la destination ;
- retourner une erreur "unreachable" si la destination est inconnue de
la table de routage.
Pour revenir à vos moutons, examinons la table de routage du PC A. Après
configuration d'IP sur eth0, par exemple avec la commande suivante :
# ifconfig eth0 192.168.0.1 mask 255.255.255.0
la table de routage standard devrait ressembler à ça :
Seules les adresses de son sous-réseau 192.168.0.0/24 sont joignables,
et ceci directement par eth0 sans passer par une passerelle.
Maintenant, si vous voulez ajouter 192.168.1.1 comme passerelle par
défaut :
# route add default gw 192.168.1.1
SIOCADDRT: Network is unreachable
le système proteste en disant que qu'il ne sait pas joindre cette
adresse et que par conséquent cette passerelle serait inutilisable.
Normal, dans l'état actuel de sa table de routage il ne sait pas joindre
autre chose que son propre sous-réseau et cette adresse n'en fait pas
partie.
Si vous voulez absolument faire ça, il faut d'abord la rendre joignable
en disant qu'elle accessible directement sur l'interface eth0 :
Cependant, ce n'est pas encore fini. D'accord, le PC A peut envoyer des
paquets via la passerelle, mais cela ne sert pas à grand chose si la
passerelle ne sait pas comment lui renvoyer les paquets reçus en
réponse. Et je soupçonne que le même problème que ci-dessus va se poser
pour la passerelle dont la table de routage n'a aucune raison de
contenir par défaut 192.168.0.1 parmi les destinations joignables par
eth0 puisque les deux machines ne sont pas dans le même sous-réseau. Il
suffit de lui ajouter une route directe comme on l'a fait pour PC A :
Soit un réseau avec un pc A 192.168.0.1/255.255.255.0 et une passerelle avec comme adresse eth0 192.168.1.1/255.255.255.0 Le pc A et la passerelle appartiennent au même réseau physique mais pas au même réseau logique.
Vous avez de drôles d'idées. Juste par curiosité, vous pourriez fournir la table de routage des deux machines ?
Les paquets envoyés par pc A pour un autre réseau que le sien vont être envoyés à la passerelle.
Vous êtes très optimiste.
Ma question: le pc A va-t-il chercher à savoir si la passerelle appartient au même réseau logique que le sien, ce qui n'est pas le cas.
Oui. Et il ne va pas attendre d'avoir un paquet à envoyer pour cela. C'est au moment où vous allez configurer l'adresse de passerelle qu'il va vérifier dans sa table de routage que cette adresse est joignable directement sur une de ses interfaces. Et dans votre cas, ça risque de ne pas le faire, comme on dit, car la table de routage standard pour 192.168.0.1/24 ne contient pas la destination 192.168.1.1.
Ou va-t-il directement envoyer une requête ARP avec comme adresse 192.168.1.1 à résoudre ?
Le PC A, il va regarder sa table de routage. En fonction de ce qu'il trouve, il va au choix :
- envoyer une requête ARP avec l'adresse IP de destination si celle-ci est directement joignable par l'interface ethernet ; ensuite il enverra les paquets avec l'adresse MAC et l'adresse IP de la destination ;
- envoyer une requête ARP avec l'adresse IP de la passerelle correspondante si la destination est joignable via une passerelle ; ensuite il enverra les paquets avec l'adresse MAC de la passerelle et l'adresse IP de la destination ;
- retourner une erreur "unreachable" si la destination est inconnue de la table de routage.
Pour revenir à vos moutons, examinons la table de routage du PC A. Après configuration d'IP sur eth0, par exemple avec la commande suivante :
# ifconfig eth0 192.168.0.1 mask 255.255.255.0
la table de routage standard devrait ressembler à ça :
Seules les adresses de son sous-réseau 192.168.0.0/24 sont joignables, et ceci directement par eth0 sans passer par une passerelle.
Maintenant, si vous voulez ajouter 192.168.1.1 comme passerelle par défaut :
# route add default gw 192.168.1.1 SIOCADDRT: Network is unreachable
le système proteste en disant que qu'il ne sait pas joindre cette adresse et que par conséquent cette passerelle serait inutilisable. Normal, dans l'état actuel de sa table de routage il ne sait pas joindre autre chose que son propre sous-réseau et cette adresse n'en fait pas partie.
Si vous voulez absolument faire ça, il faut d'abord la rendre joignable en disant qu'elle accessible directement sur l'interface eth0 :
Cependant, ce n'est pas encore fini. D'accord, le PC A peut envoyer des paquets via la passerelle, mais cela ne sert pas à grand chose si la passerelle ne sait pas comment lui renvoyer les paquets reçus en réponse. Et je soupçonne que le même problème que ci-dessus va se poser pour la passerelle dont la table de routage n'a aucune raison de contenir par défaut 192.168.0.1 parmi les destinations joignables par eth0 puisque les deux machines ne sont pas dans le même sous-réseau. Il suffit de lui ajouter une route directe comme on l'a fait pour PC A :