web-dev-qa-db-ja.com

tap-bridge-tap:LACPなし

TAPインターフェイスを介して接続された2つのスイッチがあります。各仮想スイッチポートは個別のTAPポートに接続され、TAPポートはブリッジを介して結合されます。

SW1-port1 = TAP 11 <== BR121 ==> TAP 21 = SW2-port1
SW1-port2 = TAP 12 <== BR122 ==> TAP 22 = SW2=port2

スイッチポートを通常のレイヤー3として構成すると、相互にpingを実行できます。つまり、上記のセットアップは機能しますが、LACPパケットがドロップされ、2つの間にポートチャネルを確立できません(教育目的)。

TAPインターフェイスを「tcpdump」すると、ローカルに接続されたスイッチによって生成されたLACPパケットを確認できますが、どういうわけかLACPパケットはもう一方の端(もう一方のTAP I/F)に到達しません。

LACPパケットを吸収するブリッジでしょうか?これを防ぐ方法はありますか?

ありがとう、フランチェスコ

1
Francesco

はい、LACPはグループアドレス01:80:C2:00:00:02を使用します。これは、「リレーしない」範囲にあります。802.1D準拠のブリッジ 転送しないでください これらのフレーム。

Linuxブリッジでは、これに対する例外の構成が許可されていますが( group_fwd_mask 経由)、この機能はLLDPや802.1Xなどの高レベルのプロトコルを対象としており、STP/LACPアドレスのバイパスの追加を明示的に拒否します。

(これらのプロトコルは、直接リンクの両端にある2つのピア間で使用することを特に意図しているため、これは非常に理にかなっていると思います。それ以外の場合は、さまざまな方法で誤動作します。)

2ポートMACリレー として分類されるブリッジは例外です。2つのインターフェイスを正確にリンクするため、LACPに対して透過的である可能性があります。ただし、私が知る限り、Linuxブリッジに1つとして機能するように指示するネイティブな方法はありません。

これは、ユーザースペースプログラムを使用して、socatなどの2つのインターフェイス間でフレームを移動することで実行できます

または、各vswitchとLinuxホストの間でLACPを実行し(ボンディングドライバーまたはチーミングドライバーを使用)、ブリッジを配置することもできます2つのLAG(結合インターフェース)の上部

0
user1686