我正在尝试在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上的值解决了我的问题,此处设置的值将是可以使用的最高标签值
答案 0 :(得分:0)
我通过更改/ 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
我认为在内核中执行它会为所有人激活它,但显然它必须在网络上的每个设备中完成