使用iproute2的mininet中的MPLS,RTNETLINK答案:不支持操作

时间:2017-10-23 14:50:36

标签: linux mininet

我正在尝试在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-通用,任何帮助将不胜感激。

更新

做了一些阅读后我发现我缺少目录/ proc / sys / net / mpls

更新2

在做了更多挖掘之后,不要问我怎么样,我终于安装了丢失的模块,现在我有这个错误:

RTNETLINK answers: Invalid argument

更新3

我仍然有更新2中所述的上一个问题,但我注意到当我尝试添加新路由时,我没有抱怨,它实际上显示在路由表上。但是,当我这样做时:

ip -f mpls route show

我没有结果

1 个答案:

答案 0 :(得分:0)

我认为你必须首先加载内核mpls模块,

$_SESSION = $row['weight'];

然后,允许网络接口处理标有数据包的mpls(默认情况下禁用)

modprobe mpls_router
modprobe mpls_iptunnel

(其中IFNAME是将发送/接收mpls数据包的网络接口的名称)

最后,指定内核应为标签分配的条目数(默认为0)

echo 1 > /proc/sys/net/mpls/conf/IFNAME/input

否则iproute2会很乐意处理你的路线,但是内核却不知道它们中的任何一个(我也有点了)。

参考文献: