web-dev-qa-db-ja.com

イーサネットループバックプラグ-pingの実行

作業中のプロジェクトでは、さまざまなイーサネットNICを「ループバックアダプタプラグ」に接続してテストできる必要があります。たとえば、実稼働アセンブリラインから外れるさまざまな組み込みLinuxボクセンの これ です。 1つのイーサネットインターフェイスに2つの異なるIPアドレス(AddressAとAddressB)を設定してから、AddressAからAddressBへのpingを実行できるようにしたいと思います。

Ex:  ping -I AddressA AddressB

これも可能ですか?

また、ループバックプラグを使用してL2/MACアドレスレベルでのみイーサネットインターフェイスをテストするテストはありますか?私が思い出すと、RealTekには8139イーサネットアダプタ用の診断ツールがあり、L2のみのループバックテストを実行していました。同じことを実行するLinuxツールがあるかどうか疑問に思いました。

UPDATE:上記のコメントのボックスをテストしている理由についてのコメントを追加しました。今週末、これらのアイデアのいくつかを試して、何が起こるかを確認する必要があります。キーストーンジャックと金物店のワイヤーを使って自分で「ループバックアダプタープラグ」を作り、オシロスコープやロジックアナライザーを使って信号を覗いて、信号が実際にワイヤーに当たっていることを確認してみてください。これは予想よりも難しいように思われるため、作業中のチームは、小さなホームNATルーターを選択し、ルーターにpingを実行して、それを挿入することにより、Linuxボックスイーサネットポートをテストすることを決定しました。ハードウェアテストフィクスチャ。それでも、私はこれの技術的な側面に興味を持っており、このテーマについて自分で実験したいと思っています。

3
J. Polfer

確かに :)

# 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

実はとてもシンプル。 :)(冗談ですが、すでに知っていればいつでも簡単です)

L2が実際に機能するかどうかはわかりませんが、ip neigh arpキャッシュも変更できるはずです(非常に単純です)

4
serverhorror

arping はarpを使用するため、ネットワークにヒットする可能性が高く、IPスタックを完全に回避することがあります。

3
David Pashley

このシナリオでは、信号が実際に「ワイヤーにぶつかる」ことは疑わしいです。デバイスは両方のIPアドレスが1つのインターフェイスに割り当てられていることを確認するため、すべてのMACルックアップ/ルーティング(2つのインターフェイスが異なるサブネットにある場合)はシステム自体で行われ、物理インターフェイスに到達することはありません。

ループバックコネクタを使用して、ボックスをだましてインターフェイスを「アップ」と見なすことができるため、このテストを実行できますが、通常のケーブルと予備のスイッチポートを使用するだけで同じことができます。

代わりに、同じボックスでeth0をeth1に接続することを意味する場合は、クロスケーブルを使用できますが、上記と同じことが起こる可能性があります。

イーサネットループバックプラグ: http://www.tikkiweb.net/loopback

1
Peter

少し調べてみたところ、イーサネット信号を光に変換し、ループバック構成でテストする方法についてこのページを見つけました: http://ronja.twibright.com/testing/ploss_tetrapolis_ping.php

残念ながら、これは本当のpingではありません。Wireshark/ tcpdumpで同じICMPパケットが2回しか表示されないためです。ただし、信号がワイヤに当たることは保証されます。

1
J. Polfer