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
我认为在内核中执行此操作会为所有人激活它,但显然它必须在网络上的每个设备中完成
我正在尝试在 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
我认为在内核中执行此操作会为所有人激活它,但显然它必须在网络上的每个设备中完成