You are on page 1of 4

Charla : Simulacin de trfico para clculo de QoS en redes WAN/LAN : - Conceptos bsicos de QoS - Trfico Ingress / Egress - Un dibujito

de como viaja un paquete por todas las cadenas de proceso del Kernel ( KNTPD). http://www.docum.org/docum.org/kptd/ - Donde acta el QOS - El porque de la latencia en el trfico y su relacin con el ancho de banda , explicacin de escalado de ventana TCP * (ojo, mirar los apuntes que me lio) - Schedulers: Tocken Bucket Filter Simplest Prio Scheduler Tocken Bucket Filter Class Based Queing (CBQ) Hierarchichal Tocken Bucket (HTB) Hierarchical Fair Scheduler (HFSC) Random Early Drop (RED) GRED

- Disciplinas de cola : Algoritmo que se encarga del sistema de reparticin bajo e l planificador.

- Inciso : explicar el Intermediate Queing Device (IMQ) y el ECN (Explicit Conge stion Notificacion Protocol) - SFQ - ESFQ #limitamos las conexiones que vayan a cualquier ip de fuera # Enviaremos tcp-reet a las ips origen, como si la red esdtuviese saturada. iptables --t filter -A FORWARD -s 192.168.0.0/24 -o eth1 -p tcp --syn --dport 22 -m connlimit --connlimit-above 2 -j REJECT --reject-with tcp-reset #limitamos las conexiones a la propia maquina (eugenia) iptables -I INPUT -p tcp --dport 22 -m connlimit --connlimit-above 2 -j REJECT -reject-with tcp-reset # Trfico Ingress

# esto en la gateway de una red de ips publicas, no trabajamos en PREROUTING sin o en la cadena de FORWARD # con destino la ip 80.81.113.212, no deja llegar los datos a mas # velocidad /usr/local/sbin/iptables -t mangle -A FORWARD -i eth0 -dIMQ - Simulacin de trfico con el mdulo netem Supongamos que queramos simular congestin y retardo de la conexiones tcp/udp entr e nuestros ordenadores. NIST-Net National Institure of Standards and Technology http://snad.ncsl.nist.gov/itg/nistnet/ Network Emulator http://developer.osdl.org/shemminger/netem/

Netem es una disciplina de cola que adjuntamos como cualquier scheduler (planifi cador) a nuestro rbol raz (root qdisc), con lo cual es mucho mas secillo de implem entar en nuestro esquema de trabajo de QoS estndar. Ejemplos Este es el ejemplo mas simple. Simplemente aadimos un retardo fijo de 100 miliseg undos a todos los paquetes que salgan de la red # tc qdisc add dev eth0 root netem delay 100ms Retardo de trfico variable Las redes reales tienen latencia variable. Es posible aadirle variacin de la pseud oaleatoriedad # tc qdisc change dev eth0 root netem delay 100ms 10ms y aadimos una latencia variable de 100 milisegundos 10 . la variacin no puede ser aleatoria pura, claro est. # tc qdisc change dev eth0 root netem delay 100ms 10ms 25% Con esta instruccin aadimos un retardo variable de 100 milisegundos y otros 10 mil isegundos variables, esta segunda variable con un orden de aleatoriedad del 25% dependiente del anterior paquete enviado. Ojo, el emulador netem no usa correlacin estadstica, asi que no podemos esperar di

stribucin homogenea, pero nos hacemos una idea aproximada de variacin aleatoria. Distribucin del retardo En una red de verdad, lo normal es que la latencia tenga "saltos" de ms a menos. El emulador sera bastante inexacto si trabajamos con valores fijos. Es ms lgico emp lear una distribucin normal para describir la variacin en el retardo. Podemos utilizar una tabla para especificar una distribucin no uniforme en la sim ulacin. # tc qdisc change dev eth0 root netem delay 100ms 20ms distribution normal Las tablas disponible (normal, pareto, paretonormal) vienen con la distribucin es tndar de traffic control. Nada nos impide crear nuestra propia distribucin Prdida de paquetes pseudoaleatoria Podemos crear un tanto por ciento de prdida de paquetes pseudoaleatorio, la frecu encia de ajuste mximo es 1/232 = .0000000232% y depende la frecuencia del timer que hayamos especificado en el kernel al compi larlo (100 Hz por defecto). # tc qdisc change dev eth0 root netem loss .1% Tambin le podemos adjuntar un parmetro de correlacin Duplicacin de paquetes Podemos duplicar paquetes. La sintaxis es la misma que acabamode de ver de la prd ida de paquetes. # tc qdisc change dev eth0 root netem duplicate 1% Reordenacin de paquetes Netem tambien implemententa reordenacin de paquetes, lo que significa que uno de cada N paquetes sufra el retardo que le indiquemos. # tc qdisc change dev eth0 root netem gap 5 delay 10ms "gap" es hueco, as que de cada vez, el quinto paquete del grupo (5, 10, 15, ...) ten dr un retraso extra de 10 milisegundos. El resto de paquetes pasar sin ninguna mod ificacin. Control de flujos de datos No hay control de tasa de transferencia ? La verdad es que teniendo todo el sistema QoS del kernel Linux, sera una tontera i mplementarlo en la disciplina netem. En vez de eso, usemo una de las muchas disc

iplinas que controlan la velocidad de red. En el ejemplo de la FAQ de netem, utilizamos un T oken Bucket Filter (TBF) para limitar la velocidad de salida. # tc qdisc add dev eth0 root handle 1:0 netem delay 100ms # tc qdisc add dev eth0 parent 1:1 handle 10: tbf rate 256kbit buffer 1600 limit 3000 # tc -s qdisc ls dev eth0 qdisc netem 1: limit 1000 delay 100.0ms Sent 0 bytes 0 pkts (dropped 0, overlimits 0 ) qdisc tbf 10: rate 256Kbit burst 1599b lat 26.6ms Sent 0 bytes 0 pkts (dropped 0, overlimits 0 ) Ejemplos avanzados : Simulacin de retardo hacia un host especfico. En este ejemplo limitaremos el trfico con destino a una sola IP, algo muy til en i mplementaciones de trfico de VoIP, servidores de juegos o cualquier otro servicio que dependa en gran manera de la latencia del trfico # tc qdisc add dev eth0 root handle 1: prio # tc qdisc add dev eth0 parent 1:6 handle 30: netem \ delay 200ms 10ms distribution normal Este comando crea una disciplina de cola de prioridad simple y le adjunta una di sciplina netem al handler de prioridad 6 # tc qdisc add dev eth0 parent 30:1 tbf rate 20kbit buffer 1600 limit 3000 Ahora aadimos un scheduler TBF como clase hija para la gestin de la tasa de transf erencia de trfico. # tc filter add dev eth0 protocol ip parent 1:0 prio 3 u32 \ match ip dst 192.168.0.5/32 flowid 10:6 y para terminar, un filtro clasifica todos los paquetes que salen a la ip 192.16 8.0.5 con mscara /32 (uno solo host) con prioridad 6

Como funciona generar una latencia o prdida aleatoria pero que cumpla una regla? Generamos un nmero aleatorio para hacer un busqueda en una tabla de distribucin, g enerando un valor "nmero de desviacin estndar" (multiplicado por un factor de escal a para hacerla integral. El valor de la latencia queda as retardo esperado + (# de desviacon estndar)*(tamao de la desviacin estndar)/escal a DANIEL@SERIOUSWORKS.NET http://jopi.seriousworks.net

You might also like