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驅動)

  • main:使用 eno1/eno2 作為實體連結的 802.3ad 綁定介面

  • vlan60/vlan63:使用 main 作為基礎的 vlan 子接口

mainvlan60、 和上都有 IPv4 和 IPv6 位址,但或vlan63上沒有位址。eno1eno2

所有介面均使用預設 MAC 位址模式,即所有 5 個介面均使用 的內建 MAC 位址eno1。在嘗試解決此問題時,我在 上配置了本地管理的 MAC 位址vlan60vlan63但這並沒有幫助(事實上它破壞了 上的 IPv6 支持main,但我從未弄清楚原因)。

使用 Buster 配置,這一切都運作良好。升級到 Bullseye 後,main工作正常,但vlan60vlan63發送或接收任何流量。進出其位址的內部流量運作正常,但外部流量則不然。

在嘗試解決此問題時,我開始tcpdump使用vlan63,並立即註意到流量開始流動。停止資料包擷取會導致流量再次停止流動。

目前,我已經透過執行 和 使系統啟動並運行ip link eno1 set promisc onip link eno2 set promisc on並且所有介面都在愉快地傳遞流量。無需在更高層級的介面上啟用混雜模式,只需在實體介面上啟用即可。

如果未啟用混雜模式,VLAN 子介面似乎不會從網路接收任何廣播幀,因此這會導致 ARP 和 NDP 無法運作。

這些核心版本之間是否存在一些行為變化(我知道,有很多核心版本...),這可能會影響這一點?

答案1

我不確定核心發生了什麼變化,但我在 Proxmox VE 7.0 (Debian 11) 上遇到了同樣的問題,核心版本為 5.11.22-1。當我將核心版本升級到 5.11.22-3 時,問題就消失了。

可能是內核問題。只要升級到新版本的核心就不會出現問題了。

相關內容