Ответы RTNETLINK: нет такой ошибки файла или каталога
1. ETH=$1
2. LATENCY=$2
3. LOSS=$3
4. JITTER=$4
5. BW=$5
6. sudo /sbin/tc qdisc del dev eth0 root
7. sudo /sbin/tc qdisc add dev eth0 root handle 1: netem delay $LATENCY $JITTER
8. sudo /sbin/tc qdisc add dev eth0 parent 1:1 handle 10: netem loss $LOSS
9. sudo /sbin/tc qdisc add dev eth0 parent 10:1 handle 20: htb default 1
10.sudo /sbin/tc class add dev eth0 parent 20: classid 0:1 htb rate $BW ceil $BW
11.sudo /sbin/tc qdisc show
Приведенный выше код приводит к:
RTNETLINK answers :No such file or directory
ошибка в строке 8,9,10 после выполнения.
Ответы
Ответ 1
Проблема заключается в отсутствии модулей ядра и/или поддержки ядра. Убедитесь, что вы можете запустить
modprobe sch_netem
Мне также пришлось перестроить ядро после того, как я включил его, потому что там есть что-то встроенное, которое включено после включения сетевой эмуляции.
См. также http://forums.fedoraforum.org/showthread.php?t=285408 и http://www.linuxfoundation.org/collaborate/workgroups/networking/netem
Ответ 2
Ваши дескрипторы и родительские ручки не совпадают. например, изменить на:
7. sudo /sbin/tc qdisc add dev eth0 root handle 1:1 netem delay $LATENCY $JITTER
8. sudo /sbin/tc qdisc add dev eth0 parent 1:1 handle 10:1 netem loss $LOSS
9. sudo /sbin/tc qdisc add dev eth0 parent 10:1 handle 20:1 htb default 1
10.sudo /sbin/tc class add dev eth0 parent 20:1 classid 0:1 htb rate $BW ceil $BW
и он должен работать.
Ответ 3
RTNETLINK answers :No such file or directory
по 2 причинам.
- Выполнение
tc qdisc
с неверными настройками - Или модуль ядра
sch_netem
отсутствует
Поэтому сначала sch_netem
, установлен ли на вашем компьютере lsmod -l
с помощью команды lsmod -l
. Если он отсутствует, установите с помощью команды modprobe sch_netem
.
Даже после установки sch_netem, если вы получаете ту же ошибку, значит, вы выполняете с неправильной опцией. Например, вы можете добавить ухудшение сетевого интерфейса, используя ip qdisc add dev...
Точно так же для удаления этого вы можете сделать ip qdisc delete dev...
Если вы пытаетесь удалить обесценение без каких-либо предварительных средств добавления, эта ошибка также появляется. А также за неправильные параметры также вы получите эту ошибку.
Ответ 4
Я использую Fedora Core 27. Чтобы установить модуль, мне пришлось использовать
sudo dnf install install kernel-modules-extra
Это не интуитивно очевидно.
Ответ 5
К сведению: в Centos 6.7 ошибка также возникает, когда на интерфейсе не определен qdisc.
[root]# tc qdisc add dev em2 root netem delay 100ms
[root]# tc qdisc del dev em2 root ==> no error
[root]# tc qdisc del dev em2 root
RTNETLINK answers: No such file or directory
Рене