linux - 如何调试 'ip link add vrf-blue type vrf table 10' RTNETLINK 答案:不支持操作
问题描述
我正在尝试在 Linux 内核 4.9.135 版本中启用 vrf 并已启用IP_MULTIPLE_TABLES
,NET_L3_MASTER_DEV
并NET_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
如何调试/解决这个问题?
解决方案
您需要探测 vrf 内核模块
# modprobe vrf
推荐阅读
- bash - 如何在curl中使用变量值作为文件名
- python - Python 用线切割提取文本
- google-sheets - 避免多重计算的更有效方法#4?
- java - 双向链表移动项目以结束java
- ruby-on-rails - 将 Rails 应用程序中的模块包含到 rake 任务中
- laravel - 函数名在 Laravel 中必须是字符串
- java - 当java中链表的布尔添加(E元素)方法返回false时
- opayo - 我的 Web 开发人员正在努力将 SagePay 集成到我的 Wordpress 网站中
- javascript - 如何通过与公共 id 的映射来构造 html 列表
- mysql - 如何使联合表在 MariaDB 的重启之间持久化?