You are on page 1of 26

Control de trfico con Linux

Ing. Alexis Medina alexismedina@gmail.com

Software Freedom Day 2010 Paraguay - CDE

Agenda

Teora, teora.. Control de trfico Teora, teora.. tc (Traffic Control) Teora, teora.. iptables Ms teora y teora.. Ejemplos (Al fin)

Teora, teora, teora..

Transmisin de datos. Qu es control de trfico? QoS: Quality of Service Para qu? Por qu? Cmo? Cundo? Cmo funciona? (Ver imagen)

Control de Trfico

Priorizar algn servicio (HTTP, Email) Priorizar jerarquas (Comercio) Evitar gente que boludea despedicia ancho de banda (Juegos, Torrent) Cada escenario es particular

Ejemplo de control de trfico

tc (traffic control)

Qu es tc ? Algoritmos de 'shapping'. (CBQ, SFQ, HTB) SFQ (Stochastic Fairness Queueing) HTB (Hierarchy Token Bucket)

SFQ

Distribuye equitativamente por IP Es un algoritmo 'justo' No se determina un ancho de banda. Debe ser el 'dueo' del qdisc

SFQ

perturb: intervalo de tiempo para 'interrumpir' (Por defecto 0) quantum: cantidad de bytes que se pueden encolar (MTU)

SFQ

Ejemplo de SFQ

tc qdisc add dev eth1 parent 1:30 handle 30: sfq

HTB

Hierarchy Token Bucket. Algoritmo basado en jerarquas (rbol) Ms sencillo que CBQ. Se crean clases y qdiscs para construir la jerarqua.

HTB
qdisc: Queue Discipline parent mayor:menor (root de la interfaz) handle mayor: manejador (para clases hijas) default id : trfico no clasificado viene aqu
tc qdisc add dev eth0 root handle 1: htb default 20

HTB
class: Clase de encolado parent: class o qdisc superior classid: identificador de la clase prio: prioridad de la clase rate: lmite mximo de la clase (kbit, mbit) ceil: lmite a prestar de otra clase (ejemplo)

HTB

Ejemplo de HTB

tc qdisc add dev eth0 root handle 1: htb default 20 tc class add dev eth0 parent 1:0 classid 1:1 htb rate 90mbit ceil 90mbit

Iptables

Filtrado de paquetes (procesamiento) Basado en reglas Creacin de firewalls. (Imagen de decisin de ruteo)

Iptables

Manejo de paquetes. Aceptar, rechazar paquetes.


tabla (nat, mangle, filter)

-t

-A append (agregar regla) -s source (ip origen) -d destination (ip destino) -p tcp dport (puerto de destino tcp) -p tcp sport (puerto de origen tcp) -j regla (ACCEPT, DROP, CLASSIFY, etc) (CLASSIFY to-class 1:10)

Ejemplo de iptables
Rechazar todas los paquetes de entrada, que vengan del ip 192.168.1.1 iptables -A INPUT -s 192.168.1.1 -j DROP

iptables

Tabla FILTER (chains)

INPUT: paquetes entrantes OUTPUT: paquetes salientes FORWARD: paquete que cruzan por

Filtros:
ACCEPT DROP REJECT LOG

iptables

Tabla NAT (chains)


PREROUTING POSTROUTING Filtros: CLASSIFY, MARK

Tabla MANGLE (chains)


PREROUTING POSTROUTING (Este vamos a usar) Filtros: CLASSIFY, MARK

iptables

Definir la jerarqua de tc Crear las reglas de iptables

Iptables

Marcando paquetes
iptables -t mangle -A POSTROUTING -d 192.168.1.1 -j CLASSIFY to-class 1:10

Ejemplos..

Vamos a ver unos ejemplos.. Ejemplo 1: limitar la velocidad de una placa de red Ejempo 2: limitar la velocidad a dos mquinas Ejemplo 3: limitar la velocidad a dos mquinas (ceil)

Ejemplo 1

Limitar la velocidad a la placa de red.

Ejemplo 2

Ejemplo 3

FIN

Preguntas?

Ing. Alexis Medina alexismedina@gmail.com

You might also like