3つのラズベリーパイがハブを介してサブネット上で接続されています。すべての静的IPを指定し、1つのメインPiを使用して他の2つのPiにpingを実行しています。
メインのPiが別のPiにpingを開始すると、各pingは完全に正常に戻ります。ただし、最初にpingを開始したとき、最初の応答を受信するまでに約5秒かかる場合があります。これにより、パケット損失が30%以上になり、スクリプトを実行すると、接続しようとするタイムアウトが原因でメッセージの送信に失敗することがよくあります。
これは、一方のpiをpingしてからもう一方のpiをpingしたときのパケット損失の写真です。
私はネットワーキングに非常に慣れていないので、問題をより適切に診断するために提供できる情報を教えてください。
ラズベリーパイ、イーサネットケーブル、ハブを交換してみましたが、まだ運がありません。 Pis Imが認識していない制限があるのか、それともハブサプライヤのハードウェアの問題である可能性があるのか疑問に思っています。
編集:IP neighbor show
を実行すると、次の結果が得られました
pi@raspberrypi:~ $ ip neighbor show
192.168.2.1 dev wlan0 lladdr 40:c7:29:4e:4d:f8 STALE
192.168.3.32 dev enxb827eb9c0ecf lladdr 00:e0:4c:53:44:58 STALE
192.168.2.131 dev wlan0 lladdr 02:0f:b5:87:93:39 REACHABLE
192.168.3.37 dev enxb827eb9c0ecf lladdr 00:e0:4c:53:44:58 STALE
2つの異なるネットワークが表示される理由は、192.168.2
ネットワーク上のwifi経由でインターネットに接続しているためです。そして、イーサネット経由で192.168.3
を介して他の2つのpisに接続しています。両方のPisIPは、それぞれ.3.37
および.3.32
として表示されます。
EDIT2:IP neighbor show
で遊んでいると、piにpingを実行してからIP neighbor show
を実行するとそのpiの横にREACHABLE
と表示されることに気付きました。ただし、他のPiにpingを実行すると、最初にpingを実行したPiはSTALE
と表示され、新しいPiはREACHABLE
になります。これは他のPiにpingを実行するたびに発生します。
この問題は、両方のRaspberryPiが同じMACアドレスを持っているという事実に起因しています。これは、ip neighbor show
の出力からわかります。ここで3.32
と3.37
の両方のMACアドレスは00:e0:4c:53:44:58
です。 pingですでに経験していることを経験するだけでなく、メインのPiと他の両方のPiとの間の通信も同時に問題になります。
MACアドレスはグローバルに一意であると想定されているため、これは当てはまらないはずですが、残念ながら、ここにあります。これを修正するには、MACアドレスを手動で変更する方法を見つける必要があります。 この投稿 Piフォーラムから、これを行う方法を提案しているようです:
基本的に、次の内容のファイル「/etc/systemd/network/00-default.link」を作成します。
[Match] MACAddress=current MAC address [Link] MACAddress=new MAC address
次に、インターフェースのifdownとifupを実行すると、新しいMACアドレスが必要になり、変更は再起動しても保持されます。
MACアドレス番号は12桁の16進文字(0-9、a-f)です。これらは通常、コロンまたはダッシュで2文字ごとに区切られますが、実際にはアドレスの一部ではありません。例えば:
01:23:45:ab:cd:ef
はい、ランダムな文字を使用してください。何かユニークなものが必要です。
最初のpingを開始するときに、次のコマンドを発行します。
ip neighbor show
これにより、ARPキャッシュが表示され、ARP結果が発生したかどうかのヒントが得られます。
質問を編集してそこに出力を配置し、ターゲットRasPIのIPも追加するだけです。