web-dev-qa-db-ja.com

Linuxボンディング(balance-tlb)、KVMゲストとL2スイッチ=ユニキャストフラッディング?

ネットワークにユニキャストフラッディングの問題があります。これは、ソフトウェアを仮想化ゲストに移動したときに始まりました。ここで報告されているものと非常に似ているようです: Linuxでインターフェイスを結合するときのスイッチフラッディング 。その質問は2012年にさかのぼります...したがって、おそらくLinux/KVM側で、より良い解決策があるかもしれません。

以下では、私が実行したアーキテクチャとトラブルシューティング手順について説明します。誰かが私にいくつかのヒントと多分解決策を教えてくれることを願っています!前もって感謝します!

建築

サーバ

PROXMOX4.1といくつかのWindows仮想マシンを備えたLinuxホスト。

ホストには、balance-tlb方式で結合された4ギガビットイーサネットインターフェイス(MACアドレスA、B、C、およびD)があります。

次に、ボンドは仮想マシンにブリッジされます。したがって、各VMには独自のMACアドレスがあります(MACアドレスX、Y、Z、...)。

仮想マシンでホストされているソフトウェアは、フィールド内の多くのデバイスと相互作用します。

通信網

サーバーはジュニパースイッチに接続されており、ジュニパースイッチは幅広いシスコネットワークに接続しています。すべてがレベル2です。

問題

Ciscoネットワークでは、ユニキャストストームが時々見られます。 5分ごとまたはその倍数で開始するようです。トラフィックを分析したところ、突然、一部のデバイスから特定の仮想マシンへのトラフィック(およびその逆ではない)が、スイッチのすべての物理ポート(同じVLAN上)に複製されていることがわかりました。問題は数秒後に単独で解決します。

IDEA

シスコのドキュメント(ユニキャストフラッディングとMACの「エージングタイム」に関する)と前述のリンクを読んだところ、仮想マシンのMACアドレスがネットワーク上にあまり頻繁に表示されないことが原因である可能性があることがわかりました。特定の「エージングタイム」は、ホストがどこにあるかを検出するまで、スイッチがそのようなトラフィックをすべてのポートに転送し始めます。

トラブルシューティング

ネットワーク上のラップトップを接続し、1つの仮想マシンからpingを開始しました。ラップトップでパケットを盗聴しました。

これから私は見ることができました:

  • 独自のMACアドレス(たとえばX)をMACソースとして使用する仮想マシンからのARP要求

  • ラップトップからのARP応答。MAC送信元として独自のMACアドレス(L)を使用し、宛先VM MACアドレス(X))を使用します。

  • 結合された物理イーサネットポートのMACアドレスの1つ(A、B、C、D、および3つのポート間で時々切り替わる)をMACソースとして使用し、MAC宛先Lとして仮想マシンからのping要求

  • ラップトップからのping応答で、MAC送信元LおよびMAC宛先として仮想マシンのMACアドレス(X)を使用します。

基本的に、最初のARP要求を除いて、仮想マシンはラップトップに独自のMACアドレス(X)で表示されることはなく、常にA、B、C、またはD(時間とともに変化)で表示されるようです。ただし、ラップトップは常にXに応答します。

解決?

負荷に応じて異なるインターフェイスからトラフィックが送信されるbalance-tlbモードでは問題ないことを読みました。ただし、この動作と、使用中の物理インターフェイスの送信元MACアドレスを使用して仮想マシンがネット上に表示されるという事実が組み合わさると、報告した問題が発生する可能性があると思います。

これが正しければ、すべての通信で常にVM独自のMACアドレスを使用する)を強制する方法があるかどうかを誰かが知っていますか?(たとえば、ARP要求ですでに発生しているように)または解決策はどこかにありますか?

3分ごとにARPテーブルをリセットするようにWindowsVMをセットアップできると思いました...しかし、これは私には少し強引に思えます... :)

助けてくれてありがとう!

EDIT:フラッディングイベント中に、対応するVMにすばやくログインし、ARPテーブルのリセットを発行した場合、VM(自身のMACアドレスをネットに伝える)からの新しいARP要求が表示され、ストームはすぐに停止します。

2
z2k

Balance-tlb(モード5)およびbalance-alb(モード6)は、仮想ブリッジでは機能しません。それらはブロードキャストループを引き起こす可能性があり、特定の条件下でパケットのソースMACを書き換え、モード6は設計によりARPをインターセプトします。

スイッチ構成なしでアクティブバックアップ(モード1)を使用するか、スイッチ構成付きでbalance-xor(モード2)または802.3ad(モード4)を使用する必要があります。

スイッチ構成でラウンドロビン(モード0)またはブロードキャスト(モード3)を使用することもできますが、これらはTCPストリームのパフォーマンスには適していません。

0
suprjami