【发布时间】:2018-04-20 00:00:53
【问题描述】:
我正在尝试在 mininet 上使用 MPLS,我能够安装 iproute2,当我尝试这样的事情时
ip route add 192.168.10.187/32 encap mpls 101 via 10.10.0.187
我得到错误:
Error: either "to" is duplicate, or "encap" is a garbage.
当我尝试这样的事情时
ip -f mpls route add 101 dev lo
我得到错误:
RTNETLINK answers: Operation not supported
我检查了我的配置文件并设置了所有这些,但没有成功:
CONFIG_NETFILTER_NETLINK=y
CONFIG_NETFILTER_NETLINK_QUEUE=y
CONFIG_NETFILTER_NETLINK_LOG=y
CONFIG_NF_CT_NETLINK=y
CONFIG_SCSI_NETLINK=y
CONFIG_IP_ADVANCED_ROUTER=y
CONFIG_NET_SCH_INGRESS=y
CONFIG_NET_SCHED=y
CONFIG_IP_MULTIPLE_TABLES=y
CONFIG_NETFILTER_XT_TARGET_MARK=y
我有 linux 映像 4.4.0-97-generic,任何帮助将不胜感激。
更新
阅读后发现我缺少目录 /proc/sys/net/mpls
更新 2
不知何故做了更多的挖掘之后,不要问我如何,我终于安装了缺少的模块,现在我遇到了这个错误:
RTNETLINK answers: Invalid argument
更新 3
我仍然有更新 2 中所述的先前问题,但我注意到当我尝试添加新路由时,我没有收到任何抱怨,它实际上显示在路由表上。但是,当我这样做时:
ip -f mpls route show
我没有得到任何结果
【问题讨论】:
-
ENOTSUP消息通常是因为该模块在内核中不可用。没有提到该配置中的 MPLS 模块(它们是MPLS_变量)。假设它们被编译为可加载模块,请尝试使用modprobe mpls_routing加载路由模块 -
@Petesh 我试过了,我收到了这条消息:
modprobe: FATAL: Module mpls_routing not found in directory /lib/modules/4.4.0-97-generic -
您似乎找到了该模块。所有命令都有一个很好的答案:stackoverflow.com/questions/31926342/…
-
@Petesh 谢谢我实际上正在阅读该帖子,并且当我添加路由时它可以工作,但是 show 命令没有显示任何内容,并且在尝试解封装或交换标签时遇到相同的错误