|
|
Uso de QoS para equilibrar tráfico por IP y limitar tráfico P2P
(60149 lectures)
Por Daniel Cabezas
kput
(http://jopi.seriousworks.net)
Creado el 24/08/2004 01:44 modificado el 26/08/2004 23:27
|
Publico aquí un mail enviado a varias comunidades inalámbricas que creo que vale también como artículo:
Hace ya bastantes meses que trabajo montando sistemas de QOS para
instalaciones wireless bastante complejas. Me sorprende que nadie en las
listas de correo de ninguna comunidad wireless haya propuesto sistemas para control del tráfico P2P .
Estas notas requieren conocimientos medios de iptables (saberse al dedillo el digrama de paquetes del kernel, en concreto no voy a explicar porque hay que marcar paquetes en POSTROUTING, FORWARD o INPUT) y avanzados del funcionamiento de QOS, particularmente en Linux. Algun punto es muy avanzado, pero será la excepcion. Básicamente bastará con conocer el funcionamiento de schedulers PRIO y HTB, disciplinas de cola, conocer ECN y como funciona el sistema de control de congestión TCP. | Pagina1/2 |
Voy a ser sincero, se que hay gente que se lleva el conocimiento de la comunidad para su uso comercial. No tengo excesivos problemas con eso, pero buena parte de las horas para implementar este tipo de sistemas lo he hecho como profesional, es decir, en jornada laboral, y cobro (o debería cobrar xD) por ello. De modo que voy a dejar la "receta" al alcance de todos, no un script automático que lo haga todo sin haberse tomado la molestia de leer un poco. Cosa que además es imposible, cada instalación es un mundo, asi que ...
En fin, manos a la obra. Queremos un super script que :
a) Nos ajuste la latencia de los servicios importantes (tráfico interactivo, paquetes SYN, ssh, tráfico UDP / ICMP)
b) pueda limitar el tráfico P2P
c) limite el ancho de banda que se otorga a cada cliente POR IP (no por conexion)
d) Reparta EQUITATIVAMENTE el ancho de banda (de forma que los p2p no nos roben mas kbs por usar muchas conexiones a la vez)
e) funcione con NAT
g) limite el número máximo de conexiones concurrentes desde y hacia uno/varios host, para no saturar la tabla MAC de los router
h) Extra: pueda limitar tanto trafico entrante como saliente
i) Extra: haga accounting, para estadisticas y/o facturacion
Instrucciones de como hacer el huevo frito :
Ultimísima versión del kelmer, ahora mismo la 2.6.8.1 , no aceptaremos nada diferente :P
Visitar la cesta de la compra, http://www.netfilter.org/ -> Tenemos la ultima version de iptables aqui :
http://www.netfilter.org/files/iptables-1.2.11.tar.bz2
y del patch-o-matic aqui
http://www.netfilter.org/files/patch-o-matic-ng-20040302.tar.bz2
Tambíén tendréis que bajar el último iproute de
http://developer.osdl.org/dev/iproute2/
Descargamos todo esto y los parches de:
- ESFQ (http://fatooh.org/esfq-2.6/),
- IMQ (http://www.linuximq.net o http://pupa.da.ru/imq/),
- WRR (http://wipl-wrr.sourceforge.net/) ,
- IPP2P (http://rnvs.informatik.uni-leipzig.de/ipp2p/index_en.html) y layer-7 (http://l7-filter.sourceforge.net/), estos dos ultimos intercambiables, recomiendo el segundo porque la firma suele bastante mas correcta para determina los protocolos p2p.
Parcheamos el kernel, iptables e iproute2 todo a base de bien con los
diferentes parches de cada proyecto. Una forma más facil es usar la colección de parches qnet (http://kem.p.lodz.pl/~peter/qnet/) ,
que trae casi todo.
Nota: el parche de IMQ de pupa.da.ru es mas estable y se
puede usar para ingress y en la cadena INPUT de iptables. Además, el WRR no funciona bien para cualquier otra versión del qnet, estáis avisados.
Explicación rápida de que-es-cada-cosa :
- Patch-o-matic-ng, patch-o-matic new generation es la nueva versión del
script de la gente del proyecto netfilter para parchear automáticamente
el kernel y el programa de control del firewall, iptables, con
diferentes mejoras, correción de errores y (esto es lo que nos interesa)
parches experimentales.
- IMQ, Intermediate Queueing device, o dispositivo de cola intermedio,
es un dispositivo virtual de red, que nos permite hacer un "hook" de
nuestras reglas. Dicho de modo sencillo, es un dispositivo al que
podemos enviar paquetes marcados para crear colas y limitar cuanto
trafico puede llegar al dispositvo real (la tarjeta de red o modem).
- ESFQ, Enhanced Stochastic Fairness queueing discipline, o disciplina
estocástica mejorada de imparcialidad. A grosso modo, es una disciplina
de cola para nuestro algoritmo de scheduling para que al llenarse una
cola de prioridad, el ancho de banda se reparta equitativamente entre
todas las conexiones.
- WRR, Weighted Round Robin, o Round Robin por peso, un scheduler con
objetivo parecidos al de ESFQ, aunque a nivel de gestión de las colas.
También permite poner mas "peso" a una ip concreta (mas ancho de banda)
y crear jerarquias balanceadas de trafico.
- IPP2P y layer-7 netfilter. Aunque layer7 tenga muchas mas
posibilidades, las resumo en que ambos sistemas permiten crear "matches"
o correspondencias de un paquete en iptables de acuerdo al protocolo de
este paquete. Nosotros lo usaremos para marcar tráfico p2p (emule,
kazaa, bittorrent...). |
Paginas: 1 2 Abreviatura Siguiente>> |
|
|
|
|
|
|---|
|
|
|
|
Calificacion
    Vots: 46 |
Danos tu opinion:
|
|
|
|
|
|
|
|