我正在嘗試將 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.c
行1257
)
/* 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