Linux의 네트워크 네임스페이스에 VRF 인터페이스를 추가하려고 합니다. 나는 얻고있다
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.0 drivers/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