我正在尝试在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_标签上的值解决了我的问题这里设置的值将是可以使用的最高标签值

最佳答案

我通过更改/proc/sys/net/mpls/platform_标签上的值解决了我的问题这里设置的值将是可以使用的最高标签值
但请记住,我必须为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

我以为在它的内核中做这件事会激活它,但显然它必须在网络上的每一个设备中完成

09-11 04:57