Administración y Gestión de Redes Lic. en Sistemas de Información Laboratorio de REDES Recuperación de Información y Estudios de la Web Calidad de servicio (Quality of Service - QOS) Fernando Lorge florge@unlu.edu.ar - 2015 - Mecanismos QoS Calidad de servicio ● ● ● ● Problema de optimización: Maximizar satisfacción del usuario final minimizando costos Capacidad de la red de garantizar los recursos requeridos para un requerimiento de servicio a la red Conjunto de técnicas para administrar los recursos de la red. (manejando delay, jitter, bandwith, packet loss) Capacidad de la red de proveer mejor servicio a tráfico seleccionado sobre varias tecnologías. Mecanismos QoS Funciones de un ruteador (repaso) ● Validar header ● Decrementar TTL ● Recalcular checksum ● Buscar ruta ● Fragmentar si es necesario (ipv4) ● Procesar opciones si es necesario ● Descartar paquetes ante congestión Mecanismos QoS Funciones de un ruteador ● Clasificar paquetes ● Filtrar paquetes ● Marcar paquetes ● NAT ● Priorizar tráfico ● Verificar conformidad de tráfico Mecanismos y arquitecturas QoS Mecanismos QoS Data Plane Clasificación ● En Flows, Streams. Traffic Classes ● Implícita (Interfaz, VC) ● Compleja (campo/s no específicos pasa classificación) ● ● Inspección profunda de paquetes/con estado (deep Packet Inspection/statefull inspection) Simple (TOS, DS, IPv6 traffic class, MPLS Exp, L2) Mecanismos QoS Data Plane Acondicionamiento de tráfico ● Asegurar que un determinado flujo de tráfico no exceda una tasa máxima de transmisión determinada. ● Policing ● Shaping ● Marking ¿Cómo se implementa? Token Bucket – Leaky Bucket Mecanismos QoS Data Plane Policing ● ● ● Asegurar que determinado tráfico (stream) no supere una tasa máxima definida Controla la tasa de envío marcando o descartando paquetes que superan el máximo establecido. Se implementa mediante Token bucket Mecanismos QoS Data Plane Token Bucket ● ● Mecanismo para limitar la tasa media de transferencia de un flujo, permitiendo “ráfagas” hasta un tamaño máximo admitido. Genéricamente: ● CIR: Commited Information Rate - Tasa de Caudal Comprometido. ● CBS: Commited Burst Size – Tamaño de ráfaga comprometido ● T: Time Interval - Intervalo Mecanismos QoS Data Plane Token Bucket simple ● ● ● ● ● Bucket de tamaño B (Burst) Tasa o Rate (R) a la cual se llena el bucket con tokens Al “llegar” un paquete se compara su tamaño en bytes con los tokens-bytes que hay en el bucket. Si hay suficientes se decrementan tantos tokens-bytes como bytes del paquete (paquete “en conformidad”) Si no el paquete “no esta en conformidad” Mecanismos QoS Data Plane Single Rate Three Color Marker (SR-TCM, rfc2697) CIR CBS C EBS E CIR: Commited information rate CBS: Commited burst size EBS: Excess burst size Al arribar paquete de tamaño B bytes: ● ● ● Si B < tokens en C → decrementar B tokens de C, acción verde, sino Si B < tokens en E → decrementar B tokens de E, acción amarilla, sino Acción roja. Mecanismos QoS Data Plane Two Rate Three Color Marker CIR CBS C PIR PBS P (TR-TCM, rfc2698) CIR: Commited information rate CBS: Commited burst size PIR: Peak information rate EBS: Peak burst size Al arribar paquete de tamaño B bytes: ● ● ● Si B > tokens en P → acción roja, sino Si B > tokens en C → decrementar B tokens de P, acción amarilla, sino Decrementar B tokens de C y P, acción verde Mecanismos QoS Data Plane Traffic Shaping ● ● ● ● ● Asegurar que determinado tráfico (stream) no supere una tasa máxima definida Controla la tasa de envío A diferencia de policing que marca o dropea paquetes que superan el máximo establecido, shaping retrasa Policing actúa para “acotar” picos de tráfico, mientras que shaping “suaviza” Técnicas: ● Token bucket ● Leaky bucket Mecanismos QoS Data Plane Leaky Bucket J. Turner (1986) Mecanismos QoS Data Plane Policing vs Shaping: Mecanismos QoS Data Plane Encolado y planificación ● ● ● ● ● Manejar los paquetes recibidos y planificar su envío en una interfaz de salida. Función del administrador de colas (“queue manager”) de un ruteador. Debe ser eficiente a la vez de poder dar prioridad a determinados paquetes. Para acomodar ráfagas (“bursts”) se utilizan buffers. Los buffers son de tamaño finito. Puede ser necesario descartar paquetes. (En parte problemática similar a la planificación de procesos de un SO!) Mecanismos QoS Data Plane Encolado y planificación ● Clásico FIFO (o FCFS) ● Fácil de implementar. ● Retardo máximo conocido. (Tamaño búffer/capacidad del enlace) ● No provee QoS!!. Mecanismos QoS Data Plane Encolado y planificación ● Solución → Planificación con prioridades: ● Strict Priority Queueing ● Weighted Bandwidth Scheduling: ● Weighted Round Robin ● Weighted Fair Queuing ● Deficit Round Robin Características deseadas: ● justo, acotar peor caso, simplicidad Mecanismos QoS Data Plane Encolado y planificación Strict priority queeing: ● ● Pre-emptive (Packet level o Quantum level) Non pre-emptive Mecanismos QoS Data Plane Descarte de paquetes (drop) ● ● ● ¿Cuándo? Buffer lleno ¿Por qué no buffers mas grandes? → Crece también el retardo en la cola. Técnicas: ● ● ● ● Tail Drop Head Drop Weighted Tail Drop Random Early Detection Mecanismos QoS Data Plane Random Early Detection (RED) Probabilidad 1 pmax 0 qmin qmax Tamaño de la cola Mecanismos QoS Data Plane Weighted Random Early Detection (WRED) Probabilidad 1 pmax rojo pmax amarillo pmax verde 0 qmin Rojo qmax Rojo qmin amarillo qmax qmin amarillo verde qmax amarillo Tamaño de la cola Mecanismos QoS Data Plane Descarte de paquetes Interacción con TCP ● ● Implícita: Descarte de paquetes para que el emisor infiera que existe congestión. Explícita: Notificar explícitamente situación de congestión mediante el marcado de paquetes. ECN - “Explicit Congestion Notification” Mecanismos QoS Data Plane ECN Explicit Congestion Notification ● ● ● RFC 3168 A nivel IP: ● Campo ECN: ● Bit ECT: ECN capable Transport ● Bit CE: Congestion Experienced A nivel TCP: ● TCP Headers: ● ECE: ECN-Echo ● CWR: Congestion Window Reduced Control de tráfico en Linux Control de Tráfico en Linux Módulo TC (Traffic Control) Capa IP → TC → Driver ● ● Shaping Scheduling ● ● Policing Dropping Control de tráfico en Linux Control de tráfico en Linux Módulo TC Definición de políticas de Control de Tráfico: ● ● Queuing disciplines (tc qdisc) ● Clases (tc class) ● Filtros que relacionan paquetes con las clases (tc filter) Control de tráfico en Linux Módulo TC ● Classless Queueing Disciplines: ● ● ● ● ● ● Pfifo, bfifo Pfifo_fast (default) RED - Random Early Detection Stochastic Fairness Queueing (SFQ) Token Bucket Filter (TBF) Classfull Disciplines: ● ● ● PRIO HTB - Hierarchical Token Bucket CBQ - Class-based queuing Control de tráfico en Linux PFIFO Fast Control de tráfico en Linux SFQ - Stochastic Fairness Queuing Control de tráfico en Linux TBF Token Bucket Filter Control de tráfico en Linux Módulo TC Definición Classless qdisc: tc qdisc add dev eth0 parent root handle 1:0 pfifo Definición Classfull qdisc: tc qdisc add dev eth0 parent root handle 1: htb default 1 tc class add dev eth0 parent 1:0 classid 1:1 htb rate 2mbit tc class add dev eth0 parent 1:0 classid 1:2 htb rate 2mbit ceil 1mbit Control de tráfico en Linux Módulo TC Definición de filtros: u32 [u16 u8] selector: tc filter add dev eth0 parent 1:0 protocol ip u32 match ip sport 80 0xffff classid 1:10 Netfilter CLASSIFY target: iptables ­t mangle ­A POSTROUTING ­o eth0 ­p tcp ­­sport 80 ­j CLASSIFY ­­set­class 1:10 Netfilter MARK target: iptables ­t mangle ­A POSTROUTING ­o eth2 ­p tcp ­­sport 80 ­j MARK ­­set­ mark 1 tc filter add dev eth0 protocol ip parent 1:0 prio 1 handle 1 fw classid 1:10 Control de tráfico en Linux Bibliografía Bibliografía: Deploying IP and MPLS QoS for Multiservice Networks: Theory & Practice. John Evans and Clarence Filsfils. Morgan Kaufmann, 2007. Network Routing: Algorithms, Protocols, and Architectures. Deepankar Medhi,Karthikeyan Ramasamy. Morgan Kaufmann, 2007. http://wiki.linuxwall.info/doku.php/en:ressources:dossiers:networking:traffic_control Próxima: QoS 2