qos megis spanish ryohnosuke

31
1 http://www.ryohnosuke.com/ MikroTik RouterOS Taller de Prácticas Qos Fuente original: http://mum.mikrotik.com/presentations/CZ09/QoS_Megis.pdf Traducido por el usuario: fran_almeria para el foro de Ryohnosuke

Upload: diego5258

Post on 26-Oct-2014

2.216 views

Category:

Documents


17 download

TRANSCRIPT

Page 1: QoS Megis Spanish Ryohnosuke

1 http://www.ryohnosuke.com/

MikroTik RouterOS

Taller de Prácticas Qos

Fuente original: http://mum.mikrotik.com/presentations/CZ09/QoS_Megis.pdf

Traducido por el usuario: fran_almeria para el foro de Ryohnosuke

Page 2: QoS Megis Spanish Ryohnosuke

2 http://www.ryohnosuke.com/

Preguntas y Respuestas

P: ¿Es posible priorizar el trafico por tipo para cada cliente mientras se limita por cada usuario en el mismo router? R: Si !

P: ¿Qué necesito para lograrlo? R: Necesitaras:

1. Diagrama de flujo de paquete 2. HTB (Árbol de colas) 3. Mangle 4. PCQ 5. Lista de direcciones (Address list)

Page 3: QoS Megis Spanish Ryohnosuke

3 http://www.ryohnosuke.com/

Mangle

Mangle le permite marcar los paquetes IP con marcas especiales. Estas marcas son utilizadas por otras funciones del propio router, como el enrutamiento

(routing) o el QoS (Quality of Service) Además, la implementación de mangle se utiliza para modificar algunos campos en el

encabezado IP como TOS (DSCP) y TTL.

Hierarchical Token Bucket (HTB)

Todas las implementaciones de gestión de ancho de banda en RouterOS, están basadas en HTB

HTB permite crear estructuras de colas Jerárquicas y determinar relaciones entre colas.

RouterOS soporta 3 HTBs virtuales (global-in, global-total y global-out) y uno más justo antes de cada interfaz de salida.

Page 4: QoS Megis Spanish Ryohnosuke

4 http://www.ryohnosuke.com/

Flujo de paquetes QoS

Este diagrama ha sido creado desde el diagrama de flujo de RouterOS. http://wiki.mikrotik.com/wiki/Packet_Flow

Page 5: QoS Megis Spanish Ryohnosuke

5 http://www.ryohnosuke.com/

Doble QoS

Es posible marcar y ajustar el tráfico dos veces en el mismo router: Mangle cadena Prerouting – Para un primer marcado Global-in HTB – Para el primer ajuste Mangle cadena Forward o Postrouting – Para un segundo marcado

El doble QoS solamente se puede usar mediante el árbol de colas (Queue Tree)

¿Por qué no usar colas simples (Simple Queues)?

Las colas simples son ordenadas, similar a las reglas de firewall. Con el fin de llegar a la cola numero 999 tendrán que ser revisadas las 998 colas

anteriores. Cada cola simple puede apoyarse sobre 3 colas separadas: Una en Global-In (parte “Directa”) Una en Global-Out (parte “Reversa”) Una en Global-Total (parte “Total”)

Page 6: QoS Megis Spanish Ryohnosuke

6 http://www.ryohnosuke.com/

Las colas simples y Mangle

Page 7: QoS Megis Spanish Ryohnosuke

7 http://www.ryohnosuke.com/

Árbol de colas (Queue Tree)

El árbol de colas es unidireccional y puede colocarse en cualquiera de los HTB disponibles.

El árbol de colas no tiene ningún orden, todo el tráfico se procesa simultáneamente. Todas las colas “hijas”, deben de tener marcas de paquete desde “/ip firewall mangle”. Si se coloca en el mismo HTB, la cola simple tomará todo el tráfico desde el árbol de

colas

¿Utilizar Global-Out o una interfaz HTB?

Hay dos diferencias fundamentales:

En el caso de src-nat (masquerade) Global-Out estará al tanto de las direcciones IP privadas de los clientes, pero la interfaz HTB no. La interfaz HTB está después de src-nat.

Cada interfaz HTB solo recibe tráfico que va a dejar a través de una interfaz en particular. No hay necesidad de separar el upload o download en mangle.

Page 8: QoS Megis Spanish Ryohnosuke

8 http://www.ryohnosuke.com/

Conclusiones

Usaremos mangle y el árbol de colas para: Marcar trafico por tipo de trafico y en la cadena de mangle prerouting Priorizar y limitar el trafico por tipo en Global-In HTB Remarcar el trafico por clientes en la cadena Forward de mangle Limitar el trafico por cliente en la interfaz HTB

Es necesario mantener la cantidad de reglas en mangle y colas al mínimo para aumentar el rendimiento de esta configuración

Page 9: QoS Megis Spanish Ryohnosuke

9 http://www.ryohnosuke.com/

Limitaciones de cliente

Tenemos una línea ADSL de +/- 40 Mbps Tenemos más de 400 clientes y 3 tipos conexiones diferentes: Empresarial (4Mbps/1Mbps) Estándar (750Kbps/250Kbps) Básica (375Kbps/125Kbps)

PCQ

Per Connection Queue es un tipo de cola capaz de dividir el trafico en sub-flujos basados en los clasificadores seleccionados

Cada sub-flujo pasara a través de la cola FIFO con el tamaño de la cola especificado por la opción “pcq-limit” y maximal rate, especificadas por la opción “pcq-rate”.

Page 10: QoS Megis Spanish Ryohnosuke

10 http://www.ryohnosuke.com/

Page 11: QoS Megis Spanish Ryohnosuke

11 http://www.ryohnosuke.com/

PCQ Parte 2

Para asegurar que cada sub-flujo PCQ representa un cliente particular, necesitamos crear 2 tipos diferentes de PCQ: PCQ_upload – Dirección de origen como clasificador PCQ_download – Dirección de destino como clasificador

PCQ repartirá el tráfico disponible igualmente entre las sub colas hasta que el pcq-

rate sea alcanzado (si se ha especificado)

Page 12: QoS Megis Spanish Ryohnosuke

12 http://www.ryohnosuke.com/

Page 13: QoS Megis Spanish Ryohnosuke

13 http://www.ryohnosuke.com/

Page 14: QoS Megis Spanish Ryohnosuke

14 http://www.ryohnosuke.com/

Tipos de PCQ – Vista desde Winbox

Page 15: QoS Megis Spanish Ryohnosuke

15 http://www.ryohnosuke.com/

Listas de direcciones (Address Lists)

Las listas de direcciones se introdujeron para asignar múltiples direcciones IP/rangos a la misma regla de firewall, para así reducir el numero total de reglas del cortafuegos e incrementar el rendimiento del router.

Las listas de direcciones se pueden crear: Manualmente Automáticamente desde el perfil PPP; especificando la opción address-list, y en el

momento que el cliente se conecte, la dirección será añadida a la lista. Automáticamente desde RADIUS – Atributo “Mikrotik:19”

Page 16: QoS Megis Spanish Ryohnosuke

16 http://www.ryohnosuke.com/

Page 17: QoS Megis Spanish Ryohnosuke

17 http://www.ryohnosuke.com/

¿Dónde?

Page 18: QoS Megis Spanish Ryohnosuke

18 http://www.ryohnosuke.com/

Marcado de paquetes

Use la acción “connection-mark” para clasificar todas las conexiones basadas en clientes de la lista de direcciones

Use la acción “packet-mark” para clasificar todo el tráfico basado en marcas de conexión.

Preguntas que te harás. ¿Qué velocidad debería de disponer para un cliente empresarial si descargo desde un

cliente básico? ¿Aun tienes el tráfico sin marcar?

Page 19: QoS Megis Spanish Ryohnosuke

19 http://www.ryohnosuke.com/

Regla de “Marcado de conexión (connection-mark)”

Page 20: QoS Megis Spanish Ryohnosuke

20 http://www.ryohnosuke.com/

Regla de “Marcado de paquete (packet-mark)”

Page 21: QoS Megis Spanish Ryohnosuke

21 http://www.ryohnosuke.com/

Mangle trabajando – Vista desde Winbox

Page 22: QoS Megis Spanish Ryohnosuke

22 http://www.ryohnosuke.com/

Mangle trabajando – Vista de exportación /ip firewall mangle add chain=forward src-address-list=Basic_class_client action=mark-connection new-connection-mark=Basic_client_conn passthrough=yes comment=”mark basic client traffic” disabled=no add chain=forward connection-mark=Basic_client_conn action=mark-packet new-packet-mark=Basic_client_traffic\ passthrough=no comment=”” disabled=no add chain=forward src-address-list=Standard_class_client action=mark-connection \ new-connection-mark=Standard_client_conn passthrough=yes comment=”mark Standard \ client traffic” disabled=no add chain=forward connection-mark=Standard_client_conn action=mark-packet \ new-packet-mark=Standard_client_traffic passthrough=no comment=”” disabled=no

add chain=forward src-address-list=Bussiness_class_client action=mark-connection \ new-connection-mark=Bussiness_client_conn passthrough=yes comment=”mark basic \ client traffic” disabled=no add chain=forward connection-mark=Bussiness_client_conn action=mark-packet \ new-packet-mark=Bussiness_client_traffic passthrough=no comment=”” disabled=no add chain=forward action=log log-prefix”” comment=”Check for unmarked traffic” disabled=no

Page 23: QoS Megis Spanish Ryohnosuke

23 http://www.ryohnosuke.com/

Árbol de colas – Vista desde Winbox

Page 24: QoS Megis Spanish Ryohnosuke

24 http://www.ryohnosuke.com/

Árbol de colas – Vista de exportación

/queue tree add name=”Total_download” parent=local_ether1 packet-mark”” limit-at=0 queue default priority=1 max-limit=0 \ burst-limit=0 burst-threshold=0 burst-time=0s disabled=no add name=”basic_client_download” parent=Total_download packet-mark=Basic_client_traffic limit-at=0 \ queue=PCQ_down_375k priority=8 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s disabled=no add name=”standard_client_download” parent=Total_download packet-mark=Standard_client_traffic limit-at=0 \ queue=PCQ_down_375k priority=8 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s disabled=no add name=”bussiness_client_download” parent=Total_download packet-mark=Bussiness_client_traffic limit-at=0 \ queue=PCQ_down_375k priority=8 max-limit=0 burst-limit=0 burst-threshold=0 burst-time=0s disabled=no

add name=”Total_upload” parent=public_ether3 packet-mark=”” limit-at=0 queue=default priority=8 max-limit=0 \ burst-limit=0 burst-threshold=0 burst-time=0s disabled=no add name=”basic_client_upload” parent=Total_upload packet-mark=Basic_client_traffic limit-at=0 \ queue=PCQ_up-125k priority08 max-limit=0 burst-limit=0 burst-thershold=0 burst-time=0s disabled=no add name=”standard_client_upload” parent=Total_upload packet-mark=Standard_client_traffic limit-at=0 \ queue=PCQ_up-125k priority08 max-limit=0 burst-limit=0 burst-thershold=0 burst-time=0s disabled=no add name=”bussiness_client_upload” parent=Total_upload packet-mark=Bussiness_client_traffic limit-at=0 \ queue=PCQ_up-125k priority08 max-limit=0 burst-limit=0 burst-thershold=0 burst-time=0s disabled=no

Page 25: QoS Megis Spanish Ryohnosuke

25 http://www.ryohnosuke.com/

PCQ Queue Size (Tamaño de cola)

> Puede tomar solo 40 usuarios para rellenar la cola (porque total_limit/limit = 2000/50 = 40 usuarios)

> Si es necesario, aumentar “total_limit” y/o disminuir el valor “limite”

> Debe de haber al menos entre 10 y 20 lugares de paquete en la cola disponibles por usuario.

Total_limit = X puede tomar hasta X*(2000 bytes + 200 bytes) de memoria RAM

2000 bytes – buffer para 1 paquete 200 bytes – servicio de datos para 1 paquete

total_limit = 2000 =< 4,2 Mb de memoria RAM total_limit = 5000 =< 10,5 Mb de memoria RAM

Page 26: QoS Megis Spanish Ryohnosuke

26 http://www.ryohnosuke.com/

Page 27: QoS Megis Spanish Ryohnosuke

27 http://www.ryohnosuke.com/

Ajustes PCQ

Hay ~340 clientes de clase básica para: pcq_limit = 40 pcq_total_limit = 7000 (~20*340)(~ 15Mb)

Hay ~40 clientes de clase estándar para: pcq_limit = 30 pcq_total_limit = 1000 (~20*40)(~ 2Mb)

Hay ~20 clientes de clase empresarial para: pcq_limit = 20 (!!!) pcq_total_limit = 500 (~20*20)(~ 1Mb)

Page 28: QoS Megis Spanish Ryohnosuke

28 http://www.ryohnosuke.com/

Priorización de tráfico

Disponemos de una línea ADSL de ~40Mbps/5Mbps Tenemos problemas con las comunicaciones on-line (video, audio, VoIP, juegos…) Tareas: Priorizar el tráfico

Page 29: QoS Megis Spanish Ryohnosuke

29 http://www.ryohnosuke.com/

Pero…¿Dónde?

Page 30: QoS Megis Spanish Ryohnosuke

30 http://www.ryohnosuke.com/

Y…¿Como?

Page 31: QoS Megis Spanish Ryohnosuke

31 http://www.ryohnosuke.com/

Prioridades

Crear marcas de paquete (packet-mark) en la cadena “Prerouting” de mangle para la priorización del tráfico en la cola Global-In. Servicios prioritarios (Prioridad=1) Solicitudes de usuario (Prioridad=3) Servicios de comunicación (Prioridad=5) Servicios de descarga (Prioridad=7) Servicios P2P (Prioridad=8)