Post on 02-Dec-2014
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.
HTBqdisc: Queue Discipline parent mayor:menor (root de la interfaz) handle mayor: manejador (para clases hijas) default id : trfico no clasificado viene aqutc qdisc add dev eth0 root handle 1: htb default 20
HTBclass: 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 iptablesRechazar 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 paquetesiptables -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