將 VRF 介面加入網路命名空間

將 VRF 介面加入網路命名空間

我正在嘗試將 VRF 介面新增到 Linux 中的網路命名空間。我正進入(狀態

RTNETLINK answers: invalid argument.

我使用的核心版本是 kernel.org 上的 4.15.0

以下是我正在運行的命令和相關輸出的確切列表

$IP link add vrf-red type vrf table 10
$IP netns add foo
$IP link set vrf-red netns foo
RTNETLINK answers: Invalid argument

這是不支援的嗎?若有,其理由為何?

用例:我嘗試在同一個 Linux 機器中設定兩個 PE 設備,因此每個 PE 設備都有一個單獨的 netns。現在我想為 PE 添加一個 VRF 設備,netns以便稍後我可以在 PE 中運行 zebra netns,它將使用此命名空間中可用的 VRF。

我有什麼遺漏的嗎?

答案1

是的,確實不可能將 VRF 介面加入到netns

下面是相關程式碼 - (來自我正在使用的內核來源 - 4.15.0drivers/net/vrf.c1257

/* don't allow vrf devices to change network namespaces. */
dev->features |= NETIF_F_NETNS_LOCAL;

答案2

雖然您無法將 VRF 介面移至網路命名空間,但您可以在命名空間中建立:

ip netns add foo
ip -n foo link add vrf-red type vrf table 10

相關內容