首页 > 解决方案 > 如何调试 'ip link add vrf-blue type vrf table 10' RTNETLINK 答案:不支持操作

问题描述

我正在尝试在 Linux 内核 4.9.135 版本中启用 vrf 并已启用IP_MULTIPLE_TABLES,NET_L3_MASTER_DEVNET_VRF在内核中构建内核。

bash-4.3# zgrep "CONFIG_NET_VRF" /proc/config.gz

  CONFIG_NET_VRF=m

bash-4.3# zgrep "IP_MULTIPLE_TABLES" /proc/config.gz

  CONFIG_IP_MULTIPLE_TABLES=y

bash-4.3# zgrep "NET_L3_MASTER_DEV" /proc/config.gz

  CONFIG_NET_L3_MASTER_DEV=y

我正在使用 iproute2 版本 iproute2-4.9.0-r0.0.x86_64.rpm 也支持 vrf。

但是当我尝试实例化 VRF 设备并将其与表关联时,我得到 RTNETLINK 的答案:不支持操作。

我检查了 strace 并查看了 RTNETLINK 消息:

sendmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"H\0\0\0\20\0\5\6(\20\271\\\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0\0"..., 72}], msg_controllen=0, msg_flags=0}, 0) = 72

recvmsg(3, {msg_name(12)={sa_family=AF_NETLINK, pid=0, groups=00000000}, msg_iov(1)=[{"\\\0\0\0\2\0\0\0(\20\271\\\302i\0\0\241\377\377\377H\0\0\0\20\0\5\6(\20\271\\"..., 32768}], msg_controllen=0, msg_flags=0}, 0) = 92
write(2, "RTNETLINK answers: Operation not"..., 43RTNETLINK answers: Operation not supported

如何调试/解决这个问题?

标签: linuxnetworkinglinux-kernelrouting

解决方案


您需要探测 vrf 内核模块

# modprobe vrf

推荐阅读