5 votes

Fiche de bouclage Ethernet - exécution d'un ping

Dans le cadre d'un projet professionnel, je dois être en mesure de tester différentes cartes réseau Ethernet en les connectant à une "fiche d'adaptation de bouclage", comme suit celui-ci sur divers boîtiers Linux embarqués qui sortent d'une chaîne de production. J'aimerais pouvoir configurer deux adresses IP différentes (AdresseA et AdresseB) sur une interface Ethernet, puis exécuter un ping de l'AdresseA à l'AdresseB.

Ex:  ping -I AddressA AddressB

Est-ce que c'est possible ?

Par ailleurs, existe-t-il un test permettant de tester l'interface Ethernet uniquement au niveau de l'adresse L2 / MAC en utilisant la fiche de bouclage ? Si je me souviens bien, RealTek avait un outil de diagnostic pour leurs adaptateurs Ethernet 8139 qui faisait une sorte de test de bouclage L2 uniquement, et je me demandais s'il y avait un outil Linux qui faisait la même chose.

UPDATE : J'ai ajouté des commentaires sur les raisons pour lesquelles je teste les boîtes dans les commentaires ci-dessus. Je vais devoir essayer certaines de ces idées ce week-end pour voir ce qui se passe. Je vais peut-être fabriquer ma propre "fiche adaptatrice de bouclage" en utilisant une prise keystone + quelques fils provenant d'une quincaillerie, et essayer de voir si je peux observer les signaux à l'aide d'un oscilloscope ou d'un analyseur logique pour m'assurer que les signaux atteignent réellement le fil. Comme cela semble être plus difficile que prévu, notre équipe au travail a pris la décision de tester les ports Ethernet de la Linux boxen en récupérant un petit routeur NAT domestique, puis en envoyant un ping au routeur, et en mettant cela dans les montages de test matériels. Néanmoins, je suis intrigué par les aspects techniques de cette question et je veux faire mes propres expériences à ce sujet.

5voto

Martin M. Points 6418

Pour sûr :)

# ip address list dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:1e:4f:9b:4a:ab brd ff:ff:ff:ff:ff:ff
    inet 10.10.141.83/24 brd 10.10.141.255 scope global eth0
    inet6 fe80::21e:4fff:fe9b:4aab/64 scope link 
       valid_lft forever preferred_lft forever
# ip address add 10.10.141.253/24 dev eth0
# ip address list dev eth0
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast state UP qlen 1000
    link/ether 00:1e:4f:9b:4a:ab brd ff:ff:ff:ff:ff:ff
    inet 10.10.141.83/24 brd 10.10.141.255 scope global eth0
    inet 10.10.141.253/24 scope global eth0
    inet6 fe80::21e:4fff:fe9b:4aab/64 scope link 
       valid_lft forever preferred_lft forever
# ping -I 10.10.141.83 10.10.141.253
PING 10.10.141.253 (10.10.141.253) from 10.10.141.83 : 56(84) bytes of data.
64 bytes from 10.10.141.253: icmp_seq=1 ttl=64 time=0.050 ms
64 bytes from 10.10.141.253: icmp_seq=2 ttl=64 time=0.034 ms
64 bytes from 10.10.141.253: icmp_seq=3 ttl=64 time=0.038 ms
^C
--- 10.10.141.253 ping statistics ---
3 packets transmitted, 3 received, 0% packet loss, time 1999ms
rtt min/avg/max/mdev = 0.034/0.040/0.050/0.010 ms
# ip address delete 10.10.141.253/24 dev eth0
# ping -I 10.10.141.83 10.10.141.253
PING 10.10.141.253 (10.10.141.253) from 10.10.141.83 : 56(84) bytes of data.
From 10.10.141.83 icmp_seq=1 Destination Host Unreachable
From 10.10.141.83 icmp_seq=2 Destination Host Unreachable
From 10.10.141.83 icmp_seq=3 Destination Host Unreachable
^C
--- 10.10.141.253 ping statistics ---
4 packets transmitted, 0 received, +3 errors, 100% packet loss, time 3016ms

En fait, c'est très simple. :) (Je plaisante, c'est toujours simple si vous le savez déjà)

Je ne suis pas sûr que la L2 fonctionnerait vraiment mais avec ip neigh vous devriez être en mesure de modifier le cache arp également (tant pis pour la simplicité)

3voto

David Pashley Points 22851

Vous pourriez trouver que arpentage est plus susceptible d'atteindre le câble, car il utilise arp, et évite donc complètement la pile IP.

1voto

Chris Upchurch Points 10484

Dans ce scénario, il est peu probable que le signal "touche le fil". Puisque l'appareil verra que les deux adresses IP sont assignées à une interface, toute la recherche et le routage MAC (si les deux interfaces sont dans des sous-réseaux différents) se feront dans le système lui-même et ne toucheront jamais l'interface physique.

Le connecteur de bouclage peut être utilisé pour tromper le boîtier en lui faisant voir l'interface comme étant "en marche", ce qui vous permet d'effectuer ce test, mais l'utilisation d'un câble normal et d'un port de commutation de rechange permettrait d'obtenir le même résultat.

Si vous voulez plutôt dire que vous allez connecter eth0 à eth1 dans la même boîte, alors vous pouvez simplement utiliser un câble croisé, mais la même chose peut se produire comme ci-dessus.

Fiche de bouclage Ethernet : http://www.tikkiweb.net/loopback

1voto

Jesse C. Slicer Points 11750

J'ai fait quelques recherches et j'ai trouvé cette page sur la conversion des signaux Ethernet en lumière, et le test dans une configuration de bouclage : http://ronja.twibright.com/testing/ploss_tetrapolis_ping.php .

Malheureusement, ce n'est pas un vrai ping, car vous ne voyez que deux fois le même paquet ICMP dans Wireshark/tcpdump. Cela garantit cependant que le signal atteint le câble.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X