web-dev-qa-db-ja.com

ユニキャストVXLANパケットをVXLANインターフェイスにカプセル化解除する

従来のVXLANUDPユニキャストカプセル化方法を使用して、VXLANカプセル化パケットを選択した宛先に配信する新しい仮想化トラフィックミラーリングサービス(SPANと同様)を評価しようとしています。私の目標は、これらのパケットを2つのインターフェースを備えたLinuxインスタンスに送信し、2番目のインターフェースをこれらのトラフィックフィードの受信専用にすることです。

2つの論理インターフェイスを備えたインスタンスを作成したら、これらのパケットをクリーンなVXLAN仮想インターフェイスに受信して、VXLANラッパーが削除されたパケットのみでセキュリティツール(Suricata、BROなど)を実行できるようにします。これまで、次の2つの簡単なコマンドを実行することで、(マルチキャスト環境で)それを達成することができました。

Sudo ip link add vxlan0 type vxlan id 0 dev ens6 dstport 4789 group 239.1.1.1
Sudo ip link set vxlan0 up

マルチキャスト環境では、デュアルインターフェイスLinuxマシンでのこれらの2つのコマンドは、仮想インターフェイスvxlan0に到達するカプセル化解除されたパケットのクリーンストリームを取得するのに十分でした。つまり、私が実行した場合

Sudo tcpdump -nvi vxlan0 

VXLANヘッダーが削除された後、元のパケットのみが残るパケットが表示されます。そして今、私のセキュリティツールはこのインターフェースを監視するだけで、VXLANパケットを除外することを心配する必要はありません。

ユニキャスト環境に移行すると、マルチキャストグループを除いた同じコマンドで同じ結果が得られると思いますが、そうではないようです。これが私が試していることです。

Sudo ip link add vxlan0 type vxlan id 0 dev ens6 dstport 4789
Sudo ip link set vxlan0 up

この場合、vxlan0インターフェイスでtcpdumpを実行しようとすると、期待するものが表示されません。これは、VXLANヘッダーのないカプセル化解除されたパケットです。

私が試したこと:

  1. セカンダリインターフェイスを無差別モードにします
  2. セカンダリインターフェイスを無差別モードにしないでください
  3. セカンダリインターフェイスのIP
  4. セカンダリインターフェイスをIPしないでください
  5. セカンダリインターフェイスでマルチキャストのオンとオフを切り替えます

誰かが私をここで正しい方向に向けることができますか?

2
Dan Ecott

私はあなたが説明することをしました。私の場合、Suricataを使用してpcapモードでVXLANインターフェースを監視しています。ネットワーク環境はユニキャストのみをサポートします。 VXLANインターフェースを構成する方法は次のとおりです。

auto vxlan-tap
    iface $IFACE inet manual
    pre-up ip link add $IFACE type vxlan id 1000 dev eth0 local 10.20.30.1 dstport 4789
    up ip link set $IFACE up
    up ip link set $IFACE promisc on
    down ip link set $IFACE promisc off
    down ip link set $IFACE down
    post-down ip link del $IFACE

構成に明らかに問題はありませんが、確認する必要があることがいくつかあります。

  1. 論理インターフェースにVXLANトラフィックが表示されていますか(例:tcpdump udp -i ens6 port 4789)?そうでない場合は、すべてのUDPトラフィックをダンプして、送信元が別のポートで送信していないことを確認してください。
  2. 受信したVXLANでキャップされたトラフィックのVNIは、VXLANインターフェースで構成したidと一致しますか?
  3. ポート4789でUDPトラフィックをドロップするiptablesフィルターはありますか?
0
cpowers