RTNETLINK 回答:无效参数,mininet 上的 MPLS

RTNETLINK answers: Invalid argument, MPLS on mininet

我正在尝试在 mininet 上应用 MPLS,并且能够安装 iproute2,但我遇到的问题是当我尝试使用格式为

的任何命令时
ip -f mpls xxx

我总是出错。

我能够插入一条路线

mininet> r1 ip route add 10.0.4.0/24 encap mpls 400 via inet 172.16.1.2
mininet> r1 ip route show
10.0.1.0/24 dev r1-eth0 proto kernel scope link src 10.0.1.1 
10.0.4.0/24  encap mpls  400 via 172.16.1.2 dev r1-eth1 
172.16.1.0/24 dev r1-eth1 proto kernel scope link src 172.16.1.1 

但我无法使用正确的 mpls 命令看到它

mininet> r1 ip -f mpls route show
mininet> 

当我尝试交换标签时,我也收到错误消息

mininet> r5 ip -f mpls route add 400 as 405 via inet 172.16.8.2
RTNETLINK answers: Invalid argument

任何帮助将不胜感激。

更新

我通过更改 /proc/sys/net/mpls/platform_labels 上的值解决了我的问题,此处设置的值将是可以使用的最高标签值

我通过更改 /proc/sys/net/mpls/platform_labels 上的值解决了我的问题,此处设置的值将是可以使用的最高标签值

但请记住,我必须为我的 mininet 网络上的所有设备设置此值以及加载 mpls 模块和任何参数

* modprobe mpls_router
* modprobe mpls_gso
* modprobe mpls_iptunnel
* sysctl -w net.mpls.platform_labels=1048575
* sysctl -w net.mpls.conf.*-eth#.input=1 #for every interface that speaks mpls

我认为在内核中执行此操作会为所有人激活它,但显然它必须在网络上的每个设备中完成