RTNETLINK answers: No such file or directory

2020-07-05 20:29发布

问题:

When I run this cmd:

tc qdisc add dev eth0 root red limit 51200000 min 128000 max 512000 avpkt 1024 burst 200 ecn probability 0.5

i get

RTNETLINK answers: No such file or directory

I have configured the kernel for netfilters, and all the networking options in menuconfig.

I don't understand why this error occurs. I'm using iproute2-2.6.23 and Fedora 8.

This was working fine on my laptop, but not on my Desktop PC?

回答1:

On my system your command autoloads the sch_red module. The question is rather old so on a modern system the autoloading should work fine if you have the required module. Check if you miss the kernel module by running:

modprobe sch_red

If it prints nothing, then retry running tc command and see if it helps.

If not, ensure you have CONFIG_NET_SCH_RED (Random Early Detection) compiled in your kernel. More info at kernel documentation.



回答2:

The error could be due to a lack of support for traffic control in Linux kernel.

Here is an excerpt from documentation that lists kernel compilation options needed for proper operation of traffic control functionality in Linux:

Source: Traffic Control HOWTO - Kernel requirements

#
# QoS and/or fair queueing
#
CONFIG_NET_SCHED=y
CONFIG_NET_SCH_CBQ=m
CONFIG_NET_SCH_HTB=m
CONFIG_NET_SCH_CSZ=m
CONFIG_NET_SCH_PRIO=m
CONFIG_NET_SCH_RED=m
CONFIG_NET_SCH_SFQ=m
CONFIG_NET_SCH_TEQL=m
CONFIG_NET_SCH_TBF=m
CONFIG_NET_SCH_GRED=m
CONFIG_NET_SCH_DSMARK=m
CONFIG_NET_SCH_INGRESS=m
CONFIG_NET_QOS=y
CONFIG_NET_ESTIMATOR=y
CONFIG_NET_CLS=y
CONFIG_NET_CLS_TCINDEX=m
CONFIG_NET_CLS_ROUTE4=m
CONFIG_NET_CLS_ROUTE=y
CONFIG_NET_CLS_FW=m
CONFIG_NET_CLS_U32=m
CONFIG_NET_CLS_RSVP=m
CONFIG_NET_CLS_RSVP6=m
CONFIG_NET_CLS_POLICE=y

A kernel compiled with the above set of options will provide modular support for almost everything discussed in this documentation. The user may need to modprobe module before using a given feature.



标签: linux netlink