PLCのケーブルが接続され、スイッチのリンクLEDが点灯していても、HMIからPLCにアクセスできないことがあります。物理リンクが正常であれば信号伝送は成立していますが、IPv4エンドポイントにはネクストホップのEthernetアドレスも必要です。ARPはローカルのIPv4アドレスをMACアドレスに対応付けます。実際の要求処理の順序を追うことで、アドレス解決、キャッシュ更新、IP重複障害の仕組みを理解できます。

業務フレームを送信する前にネクストホップを選択
IPアドレスはネットワーク層のアドレッシングに使用され、MACアドレスはEthernetのリンク層で宛先を識別します。Ethernetインターフェースは通常、48ビットのMACアドレスを使用し、スイッチはそのアドレスに基づいて出力ポートを選択します。PLCのIPアドレスを設定しても、HMIがそのMACアドレスをすでに把握しているとは限りません。リンクLEDが点灯していても、アドレス設定やアプリケーションサービスが正しいことの証明にはなりません。
HMIのアドレスが192.168.10.20/24、PLCのアドレスが192.168.10.10/24で、同じVLAN内にあるとします。プレフィックス /24は、先頭の24ビットがネットワークを識別することを意味し、マスク255.255.255.0に相当します。HMIはルーティングテーブルを参照し、PLCが直接接続された宛先であると判断して、自身のARPキャッシュを確認します。本記事のすべてのアドレスと省略されたMACラベルは説明用の例であり、FCTELの現場測定値ではありません。
192.168.20.10のような宛先に対して、HMIは通常、192.168.10.1のようなゲートウェイを使用します。解決するのはリモートPLCのMACアドレスではなく、ローカルゲートウェイのMACアドレスです。フレームの宛先MACアドレスはゲートウェイのものですが、パケットの宛先IPは引き続きリモートPLCのものです。ルーターは次のリンクで新たにEthernetカプセル化を行います。そのため、MACアドレスはホップごとに変わることがありますが、通常のルーティングでは最終宛先のIPは維持されます。
問い合わせはブロードキャスト、応答はユニキャスト
使用可能なキャッシュエントリがない場合、HMIはARP要求を送信します。Ethernetの宛先はブロードキャストMACアドレスFF:FF:FF:FF:FF:FFで、EtherType 0x0806がARPペイロードを示します。EthernetとIPv4の場合、ARPヘッダーには通常、ハードウェアタイプ1、プロトコルタイプ0x0800、ハードウェアアドレス長6、プロトコルアドレス長4、オペレーションコード、送信元およびターゲットのアドレスが指定されます。要求のオペレーションコードは1、応答のオペレーションコードは2です。
要求にはHMIのIPとMACアドレスが含まれ、どの機器が192.168.10.10を使用しているかを問い合わせます。ターゲットのハードウェアアドレスはまだ不明なため、要求内では通常ゼロになります。スイッチはブロードキャストを、そのVLAN内で転送対象となる他のポートに複製します。すべてのVLANに送信するわけではありません。無関係なカメラは通常応答しません。PLCはターゲットのIPが自分のものであると認識し、応答を準備します。
通常の応答はHMIにユニキャストされ、送信元であるPLCのIPとMACアドレスを通知します。これによりHMIは192.168.10.10をそのMACアドレスに対応付け、送信待ちの業務フレームをカプセル化できます。アドレス探索にはブロードキャストが必要ですが、その後の業務パケットごとに必要なわけではありません。再試行、タイムアウト、キャッシュのエージングはエンドポイントの実装によって異なり、単一の固定タイマーですべてのPLC、コンピューター、ゲートウェイを説明することはできません。

エンドポイントのARPキャッシュとスイッチのMACテーブルを区別
ARPキャッシュは通常、IPv4エンドポイントまたはレイヤー3インターフェースに属し、IPv4のネクストホップにどのMACアドレスを使用するかを示します。スイッチの転送データベース(FDB)は、特定のVLAN内で、どのポートから宛先MACアドレスに到達できるかを示します。両方のテーブルが1回の通信に関与することはありますが、キーと値が異なるため、互いに代用できません。
HMIのフレームがポート1に入ると、スイッチはその送信元MACアドレスを当該ポートで学習します。宛先MACアドレスがポート2に対応していれば、スイッチはそこに接続されたPLCへフレームを転送します。送信元MACアドレスの学習に使用するのはEthernetの送信元アドレスであり、ARPペイロード内の送信元IPではありません。宛先MACアドレスがまだ学習されていない場合、未知のユニキャストはVLAN内で転送対象となる他のポートにフラッディングされることがあります。これはARP要求のブロードキャストとは原因が異なります。
光メディアコンバーターや光アップリンクは、このレイヤー2の経路を延長できますが、エンドポイントのIPアドレスを自動的に解決するものではありません。ARPを転送するからといって、純粋なレイヤー2スイッチがすべてのPLCのARPキャッシュを持つわけではありません。スイッチの管理用IP、ルーティングインターフェース、専用のセキュリティ機能が、それぞれ別途ARPを使用する場合があります。調査対象の機器、テーブル、VLANを必ず特定してください。

IPアドレスの重複によって通信が断続的になる理由
PLC-AとPLC-Bがどちらも192.168.10.10を使用し、MACアドレスが異なる場合、同じ要求に両方が応答する可能性があります。HMIがどちらの対応関係を受け入れるか、また後から変更するかは、到着順序、キャッシュのルール、実装によって異なります。Aへの対応関係があれば業務フレームはAに送信され、後でBへの対応関係に変わると、送信先がBに切り替わることがあります。症状には、断続的なアクセス、誤った機器との通信、接続確立の繰り返しなどがあります。IPアドレスが重複していても、必ず一定の周期で交互に切り替わるわけではありません。
スイッチはAとBを別々のポートで正しく学習し、両方の物理リンクLEDも正常なままである場合があります。障害はIPによる識別が一意でないことであり、必ずしも光損失やポートの損傷ではありません。Gratuitous ARPやその他の要求なしの通知は、正常な起動時やアドレス変更時にも発生します。通知が1件あるだけでは攻撃の証拠になりません。同一の送信元IPが複数のMACアドレスに対応する証拠を繰り返し収集し、資産台帳と照合してください。
ARPをキャプチャし、ターゲットのIP、応答の送信元IP、送信元MACアドレス、時刻を記録してください。その後、各MACアドレスをスイッチポートおよび実際の機器に対応付けます。競合する対応関係が繰り返し確認される場合は、固定アドレス、交換機器の設定、保守用ノートPCを確認する必要があります。pingが1回失敗しただけでは証拠として不十分です。機器の切り離しやアドレス変更は、稼働中の生産ラインで安易に行うのではなく、承認された保守時間帯に実施するよう計画しなければなりません。
観測可能な証拠で障害を絞り込む
まず、IP設定、マスク、経路、VLANへの所属を確認してください。次に、通信を開始するエンドポイントのキャッシュを調べ、意図的にアクセスを試みてキャプチャします。要求が見えない場合は、キャッシュ済みの対応関係が使用されている、別のインターフェースが使用されている、キャプチャ位置が誤っているといった可能性があります。要求に応答がない場合は、ターゲットの稼働状況、同じVLAN内の転送経路、ターゲットのアドレス設定を確認する必要があります。対応関係が安定しているのにアプリケーション通信ができない場合は、アプリケーションポート、アクセス制御、機器のサービスを確認する必要があります。
キャッシュエントリを消去する前に、元の対応関係とキャプチャした証拠を保存してください。消去は、許可されたエンドポイントの対象エントリだけに限定し、その後の解決を再度観察します。キャッシュの消去によって一時的に復旧することもあれば、誤った機器を直ちに再学習することもあり、恒久的な対策にはなりません。サブネットをまたぐ場合は、ゲートウェイへの到達性、ルーティング、戻り経路を確認してください。リモートエンドポイントを解決するためにローカルでブロードキャストすることは、通常のネクストホップ選択には従っていません。
FCTELの公式資料では、ギガビット電気ポート24基とギガビット光/電気コンボポート4基を備えた管理型産業用スイッチについて、VLAN、ポートミラーリング、ポート統計、MACフィルタリング/バインディング機能が記載されています。VLANはブロードキャスト範囲の確定に役立ち、ミラーリングはキャプチャを支援し、MACテーブルと統計はトラフィックを物理ポートに対応付けるのに役立ちます。メニューの詳細、ファームウェア、ミラーリング機能については、対象機器のマニュアルで確認する必要があります。これらの機能が、あらゆるIP重複障害の自動検出や修復を意味するわけではありません。
ポートトポロジー、アドレス台帳、ARP応答の対応関係、実際のアプリケーションの読み書き結果を受入検証の証拠として保存してください。通常起動、承認された機器交換、停電復旧も検証に含めます。すべてのIPが意図した機器に解決されることを確認してください。これにより、リンクLEDや1回のping成功を産業用通信の受入検証の代わりにするのではなく、物理リンク、アドレス解決、アプリケーションサービスを個別に検証できます。
技術参考資料: RFC 826:Ethernetアドレス解決。関連するFCTEL資料: 技術記事 および 産業用スイッチ製品資料(中国語).


