私の組み込みシステムは、2つの「内部」デバイス(内部とは物理的に同じボード上にあることを意味します)とLANに接続されたMicrelKSZ8995Mスイッチを使用しています。
デバイス1は、Busybox Linuxを実行しているARMv5プロセッサであり、LAN IPはDHCPまたは静的に構成されてeth0
おり、リンクローカル/APIPA169.254.137.10
アドレスはにありeth0:0
ます。
169.254.137.11
デバイス2は、ARTOSを実行している小さなチップであり、リンクローカル/ APIPAアドレスのみを使用して、他に何を知っているかを知っています。
+----------------------------+
| +----------+ +----------+ |
| | Device 1 | | Device 2 | |
| +-----+----+ +-----+----+ |
| | | | <-- a "unit"
| +-----+-------------+----+ |
| | Micrel KSZ899M switch | |
| +-----------+------------+ |
+-------------|--------------+
|
+--+--+
| LAN |
+ - +
デバイス1とデバイス2は、LAN上の他のデバイス(または再帰的に接続されたネットワーク)がデバイス2を認識したり、2つの間を行き来するデータを確認したりすることなく、TCP/IPを介して相互に通信できるようにすることを目的としています。デバイス。
また、ネットワーク上にユニット全体の複数のインスタンスが存在する可能性があり、リンクローカルアドレスがユニット間で衝突してはなりません。
私の理解では、RFC 3927で定義されているリンクローカルアドレッシングは「内部」通信のみを対象としており、リンクローカルアドレッシングを使用してインターフェイス間でディスパッチされたパケットはスイッチやルーターによって転送されるべきではありません。
残念ながら、システム全体がLANに接続されていると、より広いネットワーク上の複数のデバイスからデバイス2へのARP応答が見られます。これは、リンクローカルIPが表示され、ネットワーク全体で衝突していることを意味します。つまり、Micrelはこれらを転送しているように見え、停止させるための構成がわかりません。
APIPAアドレッシングが機能する方法を誤解しましたか?
または、私が正しいのに、Micrelがそれらを適切にサポートしていない場合、強制的に準拠させることはできますか?
参照: