通常の Ethernet スイッチで EtherCAT フレームをスイッチングするためのスイッチルール

EtherCAT は専用のデイジーチェーンセグメントで動作するよう設計されており、管理された Ethernet インフラ経由ではない。通常の Ethernet スイッチ経由で EtherCAT フレームを転送する必要がある場合(例:リモート EtherCAT セグメント用)、単純な MAC ラーニングは正しく動作しない——明示的なスイッチルールが必要。この記事ではその理由と設定すべきルールを説明する。What is the EtherType for EtherCAT と Which MAC addresses does EtherCAT use as source MAC and destination MAC も参照。

なぜ EtherCAT では MAC ラーニングが機能しないのか

通常の Ethernet スイッチは、そのホスト自身のトラフィックから宛先 MAC を学習したポートへフレームを転送する。EtherCAT ではこれが2つの理由で破綻する:

  • スレーブは Ethernet フレームを決して送信しない。 EtherCAT スレーブはマスタのフレームをオンザフライで処理して通過させる;送信元 MAC は常にマスタの MAC のまま。したがってスイッチは EtherCAT セグメント上で1つの MAC——マスタのもの——しか学習しない。スイッチ背後の他のすべてのデバイスは MAC ラーニングから見えない。
  • 宛先 MAC は学習されるアドレスではない。 マスタによって、宛先はブロードキャスト(FF:FF:FF:FF:FF:FF)、マルチキャスト(01:01:01:01:01:01)、または送信元として現れないユニキャスト MAC。ブロードキャストとマルチキャストフレームは全ポートにフラッディングされる(動作はするが帯域を無駄にし、IGMP スヌーピングやストームコントロールでフィルタされる可能性がある);未知のユニキャスト宛先もフラッディングされるが、いずれかのデバイスがその MAC を主張すると動作しなくなる。

つまり EtherCAT がスイッチ経由で「なんとなく動く」のはフラッディングの偶然によるものだけ——脆弱で、スヌーピング、ストームコントロール、MAC テーブル変更が絡むと壊れうる。

推奨スイッチルール

  1. EtherType でフィルタ。 EtherCAT フレームは EtherType 0x88A4 で識別される。対応するスイッチ(ACL、プロトコルベース VLAN)では EtherType 0x88A4 にマッチして EtherCAT トラフィックを分類する。
  2. EtherCAT を独自の VLAN に分離。 マスタポートと EtherCAT セグメントポートを専用 VLAN に入れ、EtherCAT フラッディングがネットワークの残りに漏れず、通常トラフィックが EtherCAT タイミングを妨害しないようにする。
  3. 宛先 MAC を明示的に転送。 宛先 FF:FF:FF:FF:FF:FF(ブロードキャスト)または 01:01:01:01:01:01(マルチキャスト、マスタ次第)のフレームをその VLAN 内の EtherCAT セグメントポートに転送する静的転送/ACL ルールを作成。
  4. EtherCAT VLAN/ポートで干渉する機能を無効化。 EtherCAT パスで IGMP スヌーピング、マルチキャストフィルタリング、ブロードキャストストームコントロールをオフにし、フラッディングされたフレームをブロックしうる MAC ラーニングベースの制限(ポートセキュリティ)を無効化。
  5. 戻り方向。 フレームはマスタの MAC を宛先(または実装次第で引き続きブロードキャスト)として同じパスでマスタに戻る;ルールがマスタのポートへ対称にトラフィックを転送することを確認。

実際には、最も堅牢な構成は専用 VLAN と EtherType 0x88A4 にマッチする静的ルールの組み合わせ——これにより、マスタがどの宛先 MAC を使うかに関係なく、EtherCAT 転送が意図したポートに正確に固定される。


同じカテゴリの類似記事をチェック: EtherCAT