Вы находитесь на странице: 1из 11

Calidad de Servicio en Linux

Sistemas Telem aticos para Medios Audiovisuales Departamento de Sistemas Telem aticos y Computaci on (GSyC)

Diciembre de 2010

GSyC - 2010

Calidad de Servicio en Linux

c 2010 Grupo de Sistemas y Comunicaciones. Algunos derechos reservados. Este trabajo se distribuye bajo la licencia Creative Commons Attribution Share-Alike disponible en http://creativecommons.org/licenses/by-sa/2.1/es

GSyC - 2010

Calidad de Servicio en Linux

Contenidos
1 2 3 4 5 6

Introducci on: control de tr aco en Linux Disciplina de cola a la entrada/salida de un router Introducci on: control de admisi on para el tr aco de entrada Token Bucket Filter (TBF) para el tr aco de salida Hierarchical Token Bucket (HTB) para el tr aco de salida Iperf: Generador de tr aco

GSyC - 2010 Introducci on: control de tr aco en Linux

Calidad de Servicio en Linux

Contenidos
1 2 3 4 5 6

Introducci on: control de tr aco en Linux Disciplina de cola a la entrada/salida de un router Introducci on: control de admisi on para el tr aco de entrada Token Bucket Filter (TBF) para el tr aco de salida Hierarchical Token Bucket (HTB) para el tr aco de salida Iperf: Generador de tr aco

GSyC - 2010

Calidad de Servicio en Linux

Introducci on: control de tr aco en Linux

Control de tr aco en Linux


tc (trac control) es una herramienta que permite realizar el control de tr aco en Linux. tc utiliza disciplinas de colas, denominadas qdisc (queueing discipline). Cada vez que el kernel tiene que enviar un paquete a una interfaz, se encola en la qdisc congurada en dicha interfaz. El kernel trata de sacar el m aximo n umero de paquetes de dicha qdisc para entreg arselos al driver de la tarjeta de red. El tipo de qdisc m as simple es FIFO (First In First Out). Si el driver de la tarjeta de red est a ocupado, el paquete se quedar a guardado en la cola.

GSyC - 2010 Disciplina de cola a la entrada/salida de un router

Calidad de Servicio en Linux

Contenidos
1 2 3 4 5 6

Introducci on: control de tr aco en Linux Disciplina de cola a la entrada/salida de un router Introducci on: control de admisi on para el tr aco de entrada Token Bucket Filter (TBF) para el tr aco de salida Hierarchical Token Bucket (HTB) para el tr aco de salida Iperf: Generador de tr aco

GSyC - 2010

Calidad de Servicio en Linux

Disciplina de cola a la entrada/salida de un router

Conguraci on de una disciplina de cola a la entrada/salida de un router


El control de tr aco se puede aplicar en la interfaz de entrada de un router o en la interfaz de salida del router. Cada interfaz de red de un router puede actuar como entrada de paquetes, para los paquetes que se reciben en dicha interfaz, y como interfaz de salida, para los paquetes que se env an a trav es de dicha interfaz. Por tanto, en una determinada interfaz se puede denir:
Disciplinas de cola de entrada: para los paquetes que entran a trav es de dicha interfaz. tc qdisc add dev <interfaz> ingress ... Disciplinas de cola de salida: para los paquetes que salen a trav es de dicha interfaz. tc qdisc add dev <interfaz> root ...

Por defecto, si no se modican las disciplinas de cola a la entrada y a la salida de un router, el router aplicar a una variante de FIFO (pfifo_fast, FIFO mejorado).
GSyC - 2010 Disciplina de cola a la entrada/salida de un router Calidad de Servicio en Linux 7

Descriptor (handle) de una disciplina de cola


Cuando se dene una disciplina de cola se le asocia un descriptor (handle) para poder referenciarla. El handle est a formado por 2 n umeros separados por el caracter :, es decir, X:Y
X : es el n umero mayor. Y : es el n umero menor.

T picamente el handle de la disciplina de la cola de entrada (ingress) es ffff: lo que equivale a ffff:0.
tc qdisc add dev <interfaz> ingress handle ffff:

T picamente el handle de la disciplina de la cola de salida (root) es 1: lo que equivale a 1:0.


tc qdisc add dev <interfaz> root handle 1: ...

GSyC - 2010

Calidad de Servicio en Linux

Disciplina de cola a la entrada/salida de un router

Borrado de una disciplina de cola

El borrado de disciplinas de cola en la entrada y en la salida de un router se hace de la siguiente forma: Borrado de la disciplina de la cola de entrada: tc qdisc del dev <interfaz> ingress Borrado de la disciplina de la cola de salida: tc qdisc del dev <interfaz> root

GSyC - 2010 Introducci on: control de admisi on para el tr aco de entrada

Calidad de Servicio en Linux

Contenidos
1 2 3 4 5 6

Introducci on: control de tr aco en Linux Disciplina de cola a la entrada/salida de un router Introducci on: control de admisi on para el tr aco de entrada Token Bucket Filter (TBF) para el tr aco de salida Hierarchical Token Bucket (HTB) para el tr aco de salida Iperf: Generador de tr aco

GSyC - 2010

Calidad de Servicio en Linux

10

Introducci on: control de admisi on para el tr aco de entrada

Control de admisi on para el tr aco de entrada (policing)


El control de admisi on para el tr aco de entrada se utiliza para garantizar que el router s olo procesa para un determinado ujo de paquetes de entrada un m aximo de ancho de banda. Para garantizar que se cumple el control de admisi on el router debe denir una disciplina de colas en la interfaz de red asociada a la entrada de paquetes. Ejemplo, si los paquetes se reciben en la interfaz eth0:
tc qdisc add dev eth0 ingress handle ffff:

A continuaci on hay que especicar un ltro para cada uno de los ujos de entrada que van a pertenecer a esa cola de entrada en la interfaz eth0 (handle :) indicando el ancho de banda m aximo y el tama no de la cubeta. Si el tr aco de entrada supera esa especicaci on se descarta.

GSyC - 2010 Introducci on: control de admisi on para el tr aco de entrada

Calidad de Servicio en Linux

11

Ejemplo de control de admisi on en el tr aco de entrada


Por ejemplo, limitar a 512 kbps y tama no de cubeta 10k el ujo que viene de la direcci on IP 13.0.0.1 y se recibe en la interfaz eth0 de un router:
tc qdisc add dev eth0 ingress handle ffff: tc filter add dev eth0 parent ffff: protocol ip prio 2 u32 match ip src 13.0.0.1/32 police rate 512kbit burst 10k drop flowid :2

El identicador de ujo que se le asocia al tr aco que cumple las caracter sticas de este ltro queda denido por el handle :2, donde es el n umero mayor de la cola de entrada y 2 es el n umero menor e identica al ujo dentro de esa cola. El campo prio 2 indica el orden en el que el ltro ser a aplicado, primero los ltros de n umeros m as bajos.

GSyC - 2010

Calidad de Servicio en Linux

12

Token Bucket Filter (TBF) para el tr aco de salida

Contenidos
1 2 3 4 5 6

Introducci on: control de tr aco en Linux Disciplina de cola a la entrada/salida de un router Introducci on: control de admisi on para el tr aco de entrada Token Bucket Filter (TBF) para el tr aco de salida Hierarchical Token Bucket (HTB) para el tr aco de salida Iperf: Generador de tr aco

GSyC - 2010 Token Bucket Filter (TBF) para el tr aco de salida

Calidad de Servicio en Linux

13

Token Bucket Filter (TBF) para el tr aco de salida

TBF limita la velocidad del tr aco de salida de una determinada interfaz de un router a trav es de los par ametros ancho de banda, tama no de la cubeta y latencia (tiempo m aximo que un paquete puede permanecer en la cubeta). Aplicar TBF en la interfaz de salida eth1 de un router. Ancho de banda 7Mbps, tama no de cubeta 10k, latencia 50 ms:
tc qdisc add dev eth1 root tbf rate 7Mbit burst 10k latency 50 ms

GSyC - 2010

Calidad de Servicio en Linux

14

Hierarchical Token Bucket (HTB) para el tr aco de salida

Contenidos
1 2 3 4 5 6

Introducci on: control de tr aco en Linux Disciplina de cola a la entrada/salida de un router Introducci on: control de admisi on para el tr aco de entrada Token Bucket Filter (TBF) para el tr aco de salida Hierarchical Token Bucket (HTB) para el tr aco de salida Iperf: Generador de tr aco

GSyC - 2010 Hierarchical Token Bucket (HTB) para el tr aco de salida

Calidad de Servicio en Linux

15

Hierarchical Token Bucket (HTB) para el tr aco de salida


TBF se utiliza cuando se desea que todo el tr aco que sale por una determinada interfaz tenga unas caracter sticas determinadas en cuanto a ancho de banda, tama no de cubeta y latencia. HTB es necesario cuando se quiere clasicar el tr aco que sale por una determinada interfaz en varios ujos, cada uno de ellos con unas caracter sticas diferentes de ancho de banda. HTB requiere una clasicaci on previa de los ujos a los cu ales asignarles el ancho de banda. Si alg un ujo no utiliza todo el ancho de banda que se le ha denido, se podr a utilizar dicho ancho de banda para alg un otro ujo que lo necesite.

GSyC - 2010

Calidad de Servicio en Linux

16

Hierarchical Token Bucket (HTB) para el tr aco de salida

Ejemplo de Hierarchical Token Bucket (HTB) para el tr aco de salida


Denici on de HTB con ancho de banda m aximo de salida de 10Mbps de la interfaz eth0. Se quiere repartir este ancho de banda: usuarioA (4Mbps) que lo usar a para tr aco HTTP (3Mbps) y tr aco de correo (1Mbps) y el usuarioB (6Mbps)

GSyC - 2010 Hierarchical Token Bucket (HTB) para el tr aco de salida

Calidad de Servicio en Linux

17

Ejemplo de Hierarchical Token Bucket (HTB) para el tr aco de salida


tc qdisc add dev eth0 root handle 1:0 htb tc class add dev eth0 parent 1:0 classid 1:1 htb rate 10Mbit tc tc tc tc class class class class add add add add dev dev dev dev eth0 eth0 eth0 eth0 parent parent parent parent 1:1 1:2 1:2 1:1 classid classid classid classid 1:2 htb rate 4Mbit ceil 10Mbit 1:10 htb rate 3Mbit ceil 10Mbit 1:11 htb rate 1Mbit ceil 10Mbit 1:12 htb rate 6Mbit ceil 10Mbit

tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip src 1.1.1.1 match ip dport 80 0xffff flowid 1:10 tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip src 1.1.1.1 match ip dport 25 0xffff flowid 1:11 tc filter add dev eth0 parent 1:0 protocol ip prio 1 u32 match ip src 2.2.2.2 flowid 1:12

GSyC - 2010

Calidad de Servicio en Linux

18

Iperf: Generador de tr aco

Contenidos
1 2 3 4 5 6

Introducci on: control de tr aco en Linux Disciplina de cola a la entrada/salida de un router Introducci on: control de admisi on para el tr aco de entrada Token Bucket Filter (TBF) para el tr aco de salida Hierarchical Token Bucket (HTB) para el tr aco de salida Iperf: Generador de tr aco

GSyC - 2010 Iperf: Generador de tr aco

Calidad de Servicio en Linux

19

Iperf: Generador de tr aco


Iperf es una aplicaci on que permite generar tr aco TCP o UDP y medir el ancho de banda que se est a utilizando entre dos m aquinas nales. Iperf funciona en modo cliente/servidor. Utilizaremos Iperf para generar tr aco UDP desde el cliente al servidor durante 10 segundos a una determinada velocidad y medir el ancho de banda que en realidad se ha utilizado. Arrancaremos Iperf de la siguiente forma:
Servidor iperf -u -s Cliente iperf -u -c <dirIPServidor> -b <anchoDeBanda>

GSyC - 2010

Calidad de Servicio en Linux

20

Iperf: Generador de tr aco

Resultado de la ejecuci on de Iperf


Resultado de ejecuci on de Iperf en 12.0.0.30, en modo servidor:
iperf -s -u --------------------------------------------------Server listening on UDP port 5001 Receiving 1470 byte datagrams UDP buffer size: 108 KByte (default) --------------------------------------------------[3] local 12.0.0.30 port 5001 connected with 11.0.0.10 port 32768 [3] 0.0- 9.7 sec 25.2 MBytes 21.8 Mbits/sec 0.289 ms 4940/22916 (22 %) [3] 0.0- 9.7 sec 1 datagrams received out-of-order

Resultado de ejecuci on de Iperf en 11.0.0.10, en modo cliente:


iperf -u -c 12.0.0.30 -b 100Mbit --------------------------------------------------Client connecting to 12.0.0.30, UDP port 5001 Sending 1470 byte datagrams UDP buffer size: 108 KByte (default) --------------------------------------------------[3] local 11.0.0.10 port 32768 connected with 12.0.0.30 port 5001 [3] 0.0- 10.0 sec 32.1 MBytes 26.9 Mbits/sec [3] Sent 22917 datagrams [3] Server Report: [3] 0.0- 9.7 sec 50.4 MBytes 43.6 Mbits/sec 0.288 ms 4940/2291 (22 %) [3] 0.0- 9.7 sec 1 datagrams received out-of-order
GSyC - 2010 Calidad de Servicio en Linux 21

Вам также может понравиться