Récemment, j'ai eu affaire à un site qui semblait avoir un problème avec le lien entre leur module et un de leurs commutateurs Ethernet. Pour tester, l'administrateur du système, appelé Fred, a envoyé un ping au commutateur et comme tous les pings ont reçu une réponse, Fred a conclu que le problème était ailleurs.
Le problème de cette conclusion est que les pings ne passaient pas par le lien du module avec l'interrupteur.
Permettez-moi de décrire la configuration du réseau. J'ai changé les adresses IP en réseaux privés, mais la relation entre les interfaces et les réseaux est similaire.
Le module a deux interfaces, #enet10 et #enet192. L'adresse IP de #enet10 est 10.1.1.1, c'est l'interface qui est connectée au commutateur sur le lien problématique. L'adresse IP de #enet192 est 192.168.1.1, et est connectée à un autre commutateur sur un autre lien. La passerelle par défaut est 192.168.1.254 et aucune autre route n'est configurée. L'adresse IP de gestion du commutateur est 172.16.100.100.
Pour atteindre le 172.16.100.100, le module doit utiliser la passerelle par défaut et pour atteindre la passerelle par défaut, il doit envoyer les paquets à partir de l'interface #enet192. Le commutateur voit la source des paquets ping comme étant l'adresse de #enet192, 192.168.1.1, et répond donc à cette adresse. A aucun moment, les paquets ne quittent ou n'arrivent à #enet10. Le fait que #enet10 soit directement connecté au switch n'a pas d'importance ; la seule chose qui compte est l'adresse de destination du paquet et la table de routage du module.
Alors, y a-t-il un moyen pour Fred de tester le lien entre #enet10 et l'interrupteur ? Non, le mieux que Fred puisse faire est de pinger un autre hôte sur le sous-réseau 10. Les paquets seraient alors transmis depuis #enet10 et passeraient par le lien vers l'hôte cible. Les réponses reviendraient de la même manière, mais il s'agirait de tester à la fois le lien entre #enet10 et le switch et tout autre lien entre le switch et l'hôte cible.
Fred pourrait utiliser la commande "netstat -interface #enet10" pour voir si le matériel ou le pilote signale des erreurs de bas niveau sur la liaison. Le switch a également des commandes qui signaleront les comptes d'erreurs sur le port connecté à la liaison connectée à #enet10. Mais il n'y a aucun moyen de tester la liaison entre #enet10 et le switch.