Linux 5.9 VLANインターフェースは、プロミスキャスモードが有効になっていない限りトラフィックを受信しません。

Linux 5.9 VLANインターフェースは、プロミスキャスモードが有効になっていない限りトラフィックを受信しません。

Debian Buster を実行している NAS を Debian Bullseye にアップグレードしました。これには、カーネル 4.19.0 から 5.9.0 へのアップグレードと、systemd 241 から 247.1 へのアップグレードが含まれています (システムは構成に systemd-networkd を使用しています)。

ネットワーク構成は中程度に複雑です。

  • eno1/eno2: デュアルポート Intel I210 オンボード ギガビット イーサネット (igb ドライバーを使用)

  • メイン: eno1/eno2 を物理リンクとして使用する 802.3ad ボンディング インターフェース

  • vlan60/vlan63: メインをベースとして使用するVLANサブインターフェース

main、、にはすべて IPv4 アドレスと IPv6 アドレスがありますが、または にはアドレスがありvlan60ません。vlan63eno1eno2

すべてのインターフェイスはデフォルトの MAC アドレス モードを使用しています。つまり、5 つすべてが の組み込み MAC アドレスを使用していますeno1。この問題を解決しようとして、 と にローカル管理 MAC アドレスを設定しましたvlan60が、vlan63役に立ちませんでした (実際、 の IPv6 サポートが壊れてしまいましたmainが、その理由はわかりませんでした)。

Buster 構成では、すべて正常に動作しました。Bullseye にアップグレードした後はmain正常に動作しますが、vlan60トラフィックvlan63の送受信は行われません。アドレス間の内部トラフィックは正常に動作しますが、外部トラフィックは動作しません。

この問題を解決しようとして、tcpdumpを開始したところvlan63、すぐにトラフィックが流れ始めたことに気付きました。パケット キャプチャを停止すると、トラフィックの流れが再び停止しました。

現時点では、 と を実行してシステムを起動しip link eno1 set promisc onip link eno2 set promisc onすべてのインターフェースがトラフィックを正常に通過させています。上位レベルのインターフェースでプロミスキャス モードを有効にする必要はなく、物理インターフェースでのみ有効にする必要があります。

プロミスキャス モードが有効になっていない場合、VLAN サブインターフェイスはネットワークからブロードキャスト フレームを受信しないため、ARP と NDP が機能しなくなります。

これらのカーネル バージョン間で何らかの動作の変更がありましたか (カーネル バージョンがたくさんあるのは承知しています...)。それがこれに影響を与える可能性がありますか?

答え1

カーネルがどう変更されたかはわかりませんが、カーネル バージョン 5.11.22-1 の Proxmox VE 7.0 (Debian 11) でも同じ問題が発生しました。カーネル バージョンを 5.11.22-3 にアップグレードすると、問題は解消されました。

カーネルの問題かもしれません。カーネルを新しいバージョンにアップグレードするだけで問題はなくなります。

関連情報