2012-03-01 25 views
12
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 

Los resultados de código anterior en:rtnetlink respuestas: Ningún archivo o directorio, error

RTNETLINK answers :No such file or directory 

error en la línea 8,9,10 después de la ejecución.

+0

duplicado de http://stackoverflow.com/questions/4803069/rtnetlink-answers-no-such-file-or-directory?rq=1? –

+0

¿Has probado usar 'tc qdisc list' para ver qué está en efecto? Este error a veces significa que se está refiriendo a una entrada inexistente. – Neil

+0

Para cualquier otra persona que obtenga esto en 'tc qdisc del dev ...' y ejecute esta pregunta, el problema también puede ser que todo ya fue eliminado. –

Respuesta

2

Sus manijas y controladores originales no coinciden. Por ejemplo, cambie a:

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 

y debería funcionar.

+0

No, eso tampoco funcionó –

10

El problema es que faltan módulos de kernel y/o compatibilidad con kernel. Asegúrese de que puede ejecutar

modprobe sch_netem 

También tuve que reconstruir el kernel después de activar porque hay algo incorporado que se habilita después de habilitar la emulación de red.

Ver también http://forums.fedoraforum.org/showthread.php?t=285408 y http://www.linuxfoundation.org/collaborate/workgroups/networking/netem

+15

Por cierto, en mi caso también recibí un error frustrante que se ve idéntico a este. Pero estaba tratando de usar 'tc qdisc change ...' cuando quise usar 'tc qdisc add ...'. El mensaje de error es el mismo Imagínate. –

+1

Puedo ejecutar el comando modprobe 'sch_netem', no da ningún error. También 'lsmod | grep -i sch_netem' devuelve 'sch_netem 17306 0'. Pero aún el comando 'qdisk change' me da error:' RTNETLINK responde: No existe ese archivo o directorio' –

+0

@DavidDombrowsky, gracias por detectarlo, solo estaba probando la segunda línea de ejemplo de http://www.linuxfoundation.org/collaborate/workgroups/networking/netem, que "cambia" s en lugar de "agregar" ing. –

0

RTNETLINK answers :No such file or directory viene por 2 razones.

  • Ejecución tc qdisc con opciones equivocadas
  • o módulo del kernel sch_netem falta

a fin de comprobar primero sch_netem está instalado en el equipo mediante comandos lsmod -l. Si falta, instale usando el comando modprobe sch_netem.

Incluso después de instalar sch_netem, si obtiene este mismo error significa que se está ejecutando con la opción incorrecta. Por ejemplo, puede agregar un deterioro en una interfaz de red usando ip qdisc add dev .... Del mismo modo para eliminar esto, puede hacer ip qdisc delete dev.... Si intentas eliminar un impedimento sin ningún medio de agregarlo antes, entonces también obtienes este error. Y también para las opciones equivocadas también obtienes este error.

Cuestiones relacionadas