Resultados 1 al 20 de 41

QoS estático (Queue Tree + Mangle) para Mikrotik

Esta es una discusión para el tema QoS estático (Queue Tree + Mangle) para Mikrotik en el foro Cabinas y LAN Centers, bajo la categoría Comunidad; Redacto esta guía en favor de aquellos que hayan tenido problemas, como a mi me pasó, con lo poco de ...
Página: 1


Ver modo hilado

  1. #1
    Dead Man Terra Admin
    Staff
    Avatar de Miyagui
    Fecha de ingreso
    24 abr, 03
    Ubicación
    Lima
    Mensajes
    2,705

    Predeterminado QoS estático (Queue Tree + Mangle) para Mikrotik

    Redacto esta guía en favor de aquellos que hayan tenido problemas, como a mi me pasó, con lo poco de información que se tiene en la web y el tacto intermedio del procedimiento.
    No hago configuraciones. Simplemente escribí esa guía para entusiastas que deseen entender la idea y aplicarla.

    Si bien mi configuración no es la óptima, estoy escribiendo el manual de una forma más generalizada, para aquellos usuarios que tengan necesidades más avanzadas. La guía consta de 2 partes, ésta tratará de explicar el QoS básico que comúnmente se podrá usar. La segunda parte tratará sobre PCQ y un QoS dinámico, para los que manejen grandes cantidades de usuarios.

    Comenzaré con unos términos básicos y lo que utilizaremos para este tipo de QoS, debido a que en esta parte expondré los beneficios de cada opción por sobre otras distintas, comúnmente usadas, si es que se da el caso.

    Utilizaremos:

    Queue Tree: Utilizaremos Queue Tree por sobre Simple Queue debido en gran parte a la organización jerárquica que da el routerOS en este último. El problema más grande de usar Simple Queue es que debido a este tipo de organización, en caso se tenga una gran cantidad de reglas, éstas se irán cumpliendo una por una en el orden que se tiene configurado.



    Como se muestra en la siguiente imagen: La jerarquía se va cumpliendo de arriba para abajo en ese orden, en caso tengamos 100 reglas en el Simple Queue, éste utilizará recursos y tiempo para llegar a la centésima regla ya que se hace en ese orden.
    En cambio, el uso de Queue Tree todo el control de tráfico es simultáneo y especialmente da la posibilidad de usar los HTB (Heriarchical Token Bucket) que en el caso del routerOS se soportan 3 tipos: global-in, global-out y global-total.
    Global-in, todo el tráfico ingresante al router.
    Global-out, todo el tráfico saliente del router.
    Global-total, todo el tráfico.

    FW/Mangle: Aplicaremos reglas por cada tipo de conexión utilizando puertos comunes, marcándolas para poder procesarlas luego en nuestro Queue Tree.

    Cadena Prerouting: Utilizaremos Prerouting en este caso, pero también es posible utilizar Forward en el Mangle. Esta vez, utilizaremos prerouting (Rojo) debido a que para la siguiente parte de la guía, ya que según el orden del flujo del QoS, este se aplicará un paso pal de Forward lo cual en la siguiente guía utilizaremos para un QoS basado en PCQ (Verde).

    Mark Connection: Utilizaremos mark connection para de esta forma poder monitorear los IPs a los que nos estamos conectando y especialmente para agregar modificadores especiales POR conexión, como el tamaño de la conexión o de paquetes, para luego marcar dichas conexiones con el Mark Packet.

    Mark Packet: Utilizaremos mark packet para poder trabajar con las conexiones marcadas en el Queue Tree.



    Guía de aplicación

    Comenzaremos entonces creando las conecciones y sus respectivos Packet Marks en el Mangle

    Dentro del Winbox Ingresamos a IP > Firewall > Pestaña Mangle > [+]



    Procedemos con la identificación del puerto (revisar siguiente post) con los puertos comúnmente usados, (en contínua actualización).

    Como ejemplo utilizaré el puerto 80 que es el usado para todo el tráfico de la Web y con unos modificadores extras para diferenciar web browsing (500kbytes o menos) de las descargas (500kbytes o más).

    En la ventana de New Mangle Rule, pestaña General:
    Chain seleccionamos Prerouting Ya explicado arriba
    Protocol seleccionamos 6 (TCP). Se puede usar 17 (UDP) también, dependiendo de lo que queramos marcar. En este caso TCP es lo que va al caso
    Dst Port seleccionamos el puerto al que la marca apuntara en este caso: 80



    En la misma ventana, pero pestaña Advanced
    Connection Bytes seleccionaremos el rango del tamaño de archivo: 0-512000 eso quiere decir que como máximo las conexiones con 512kb van a ser marcadas para esta regla. Luego optaremos en marcar las conexiones de más de 512kb pero con otra marca (descarga)



    En la misma ventana, pero pestaña ]Action
    Action seleccionaremos mark connection
    New Connection Mark seleccionaremos un nombre que identifique esta conexión de menos de 512kb por ejemplo: http_conn
    Passthrough, Check activado



    Para terminar con nuestra primera regla de marca le dejamos un comentario para saber a donde apunta, en este caso un simple HTTP basta.



    Luego para finalizar le damos a Apply y luego Ok


    Ahora pasaremos a marcar el paquete de la conexión que acabamos de marcar para tener acceso a este a través del Queue Tree.

    Empezamos dándole nuevamente a [+]

    En la ventana New Mangle Rule, pestaña General:
    Chain seleccionamos Prerouting
    Connection Mark seleccionamos la conexión antes marcada: http_conn



    En la misma ventana, pestaña Action
    Action seleccionamos Mark Packet
    New Packet Mark seleccionamos un nombre distintivo para este paquete por ejem: http
    Passthrough en este caso le quitamos el check porque el trafico ya está siendo redirigido a través de la anterior marca y quitamos el check para evitar redundancias.



    La idea es configurar nuestras reglas con los puertos más usados (ver post siguiente)
    Para ello, tener en mente:
    Se puede escoger el protocolo ICMP (Ping), TCP o UDP, dependiendo de cual es el que está en uso.
    Se pueden escoger más que un solo puerto. Revisar la siguiente imagen con todos los datos que he usado yo en mi caso. Soy bastante quisquilloso en lo que refiere a juegos por lo que manualmente he agregado los puertos que estos utilizan para darles una prioridad mayor que a las demás. Definitivamente se puede englobar todo dentro de uno solo, pero para fines educativos los puse separados.



    Para finalizar está parte cabe recalcar la última regla Otras Conexiones
    Si alguna conexión no llega a marcarse en ninguna de las reglas anteriores creamos como regla FINAL una que englobe lo que queda del tráfico.

    Para ello crearemos una nueva regla con Chain: Prerouting y en Action: Mark Connection con passthrough activado.



    Como antes, con cualquier otra regla. Creamos una nueva para marcar el paquete: Prerouting, Connection Mark apuntando a la marca de conexión del anterior paso y Mark Packet sin passthrough como en la imagen:




    Para los que le gusta todo fácil, acá el código de mi mangle. Solo pegarlo en un Nuevo Terminal

    Código:
    /ip firewall mangle
    add action=mark-connection chain=prerouting comment="ICMP (Ping)" disabled=no new-connection-mark=icmp_conn passthrough=yes protocol=icmp
    add action=mark-packet chain=prerouting comment="" connection-mark=icmp_conn disabled=no new-packet-mark=icmp passthrough=no
    add action=mark-connection chain=prerouting comment=DNS disabled=no dst-port=53 new-connection-mark=dns_conn passthrough=yes protocol=udp
    add action=mark-packet chain=prerouting comment="" connection-mark=dns_conn disabled=no new-packet-mark=dns passthrough=no
    add action=mark-connection chain=prerouting comment=Http connection-bytes=0-500000 disabled=no dst-port=80 new-connection-mark=http_conn passthrough=yes protocol=tcp
    add action=mark-packet chain=prerouting comment="" connection-mark=http_conn disabled=no new-packet-mark=http passthrough=no
    add action=mark-connection chain=prerouting comment="Http Descarga" connection-bytes=500000-5000000 disabled=no dst-port=80 new-connection-mark=http_conn_descarga passthrough=yes protocol=tcp
    add action=mark-packet chain=prerouting comment="" connection-mark=http_conn_descarga disabled=no new-packet-mark=http_descarga passthrough=no
    add action=mark-connection chain=prerouting comment=Https disabled=no dst-port=443 new-connection-mark=https_conn passthrough=yes protocol=tcp
    add action=mark-packet chain=prerouting comment="" connection-mark=https_conn disabled=no new-packet-mark=https passthrough=no
    add action=mark-connection chain=prerouting comment=WoW disabled=no dst-port=3724,6112-6114,6881-6999 new-connection-mark=wow_conn passthrough=yes protocol=tcp
    add action=mark-packet chain=prerouting comment="" connection-mark=wow_conn disabled=no new-packet-mark=wow passthrough=no
    add action=mark-connection chain=prerouting comment="" disabled=no dst-port=3724 new-connection-mark=wow_udp_conn passthrough=yes protocol=udp
    add action=mark-packet chain=prerouting comment="" connection-mark=wow_udp_conn disabled=no new-packet-mark=wow_udp passthrough=no
    add action=mark-connection chain=prerouting comment=LoL disabled=no dst-port=2099,5222,5223,8393-8400 new-connection-mark=lol_conn passthrough=yes protocol=tcp
    add action=mark-packet chain=prerouting comment="" connection-mark=lol_conn disabled=no new-packet-mark=lol passthrough=no
    add action=mark-connection chain=prerouting comment="" disabled=no dst-port=5000-5500 new-connection-mark=lol_udp_conn passthrough=yes protocol=udp
    add action=mark-packet chain=prerouting comment="" connection-mark=lol_udp_conn disabled=no new-packet-mark=lol_udp passthrough=no
    add action=mark-connection chain=prerouting comment=Ventrilo disabled=no dst-port=30572 new-connection-mark=vent_conn passthrough=yes protocol=tcp
    add action=mark-packet chain=prerouting comment="" connection-mark=vent_conn disabled=no new-packet-mark=ventrilo passthrough=no
    add action=mark-connection chain=prerouting comment=MSN disabled=no dst-port=1863 new-connection-mark=msn_conn passthrough=yes protocol=tcp
    add action=mark-packet chain=prerouting comment="" connection-mark=msn_conn disabled=no new-packet-mark=msn passthrough=no
    add action=mark-connection chain=prerouting comment=Winbox disabled=no dst-port=8291 new-connection-mark=winbox_conn passthrough=yes protocol=tcp
    add action=mark-packet chain=prerouting comment="" connection-mark=winbox_conn disabled=no new-packet-mark=winbox passthrough=no
    add action=mark-connection chain=prerouting comment="Dragon Nest" disabled=no dst-port=14300,14301,14403,7000,14500 new-connection-mark=dragon_nest_conn passthrough=yes protocol=tcp
    add action=mark-packet chain=prerouting comment="" connection-mark=dragon_nest_conn disabled=no new-packet-mark=dragon_nest passthrough=no
    add action=mark-connection chain=prerouting comment="" disabled=no dst-port=15100-15110 new-connection-mark=dragon_nest_udp_conn passthrough=yes protocol=udp
    add action=mark-packet chain=prerouting comment="" connection-mark=dragon_nest_udp_conn disabled=no new-packet-mark=dragon_nest_udp passthrough=no
    add action=mark-connection chain=prerouting comment=Otros disabled=no new-connection-mark=otras_conn passthrough=yes
    add action=mark-packet chain=prerouting comment="" connection-mark=otras_conn disabled=no new-packet-mark=other passthrough=no
    ----------------------------------------------------------------------------------------------------------------------------

    Ahora lo que queda es ir al Queue Tree para así escoger los límites y prioridades de las distintas conexiones.

    Para esto comenzamos por:

    Entrar Queues > Queue Tree > [+]

    Lo que se hará primero es crear una nueva cola (Queue), como Padre (Parent) de las subsiguientes solamente para tener un orden y se haga más fácil las limitaciones. Utilizaremos 2: una de descarga y una de subida.

    La cola padre de descarga la configuraremos de la manera siguiente, donde el Parent de esta cola es el Puerto FÍSICO del que sale toda nuestra información del router (Osea el puerto LAN).



    La siguiente cola que crearemos la configuraremos de la misma manera, solo que el Parent nuevo es el creamos en el paso anterior, pero dirigido a la conexión que marcamos en el Mangle. Hacemos uno por cada Conexión marcada en el Mangle inclusive la que engloba todas. En mi caso hice nuevas subdivisiones extra, esto depende del uso de cada persona. Por otro lado, se tiene que ingresar la prioridad que tendrá cada conexión, como en mi caso priorizo juegos por sobre todo lo demás, le he dado más prioridad que http, pero no menos prioridad que los VoIP.



    Al finalizar con todas las colas deberían tener algo parecido al mio:



    Para copy/paste sobre el terminal OJO modificar "LAN ether5" con el puerto de salida que estén usando y WAN por el de entrada (el puerto conectado a su router con modo bridge).
    Código:
    /queue tree
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=QoS_down parent="LAN ether5" priority=1
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=2M max-limit=2350k name=3QoS_down_Web parent=QoS_down priority=5
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=2QoS_down_Games parent=QoS_down priority=2
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=1QoS_down_VoIP parent=QoS_down priority=1
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=QoS_up parent=WAN priority=1
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=1QoS_up_VoIP parent=QoS_up priority=1
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=2QoS_up_Games parent=QoS_up priority=2
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=400k max-limit=512k name=3QoS_up_Web parent=QoS_up priority=5
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name="ICMP_(Ping)_up" packet-mark=icmp parent=1QoS_up_VoIP priority=1 queue=default
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=DNS_up packet-mark=dns parent=3QoS_up_Web priority=5 queue=default
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=Http_up packet-mark=http parent=3QoS_up_Web priority=5 queue=default
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=Https_up packet-mark=https parent=3QoS_up_Web priority=5 queue=default
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=Otros_up packet-mark=other parent=3QoS_up_Web priority=6 queue=default
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=WinBox packet-mark=winbox parent=1QoS_down_VoIP priority=2 queue=default
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=MSN packet-mark=msn parent=3QoS_down_Web priority=5 queue=default
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=LoL_udp packet-mark=lol_udp parent=2QoS_down_Games priority=2 queue=default
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=Ventrilo_up packet-mark=ventrilo parent=1QoS_up_VoIP priority=1 queue=default
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=WinBox_up packet-mark=winbox parent=1QoS_up_VoIP priority=2 queue=default
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name="Dragon Nest" packet-mark=dragon_nest parent=2QoS_down_Games priority=2 queue=default
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=MSN_up packet-mark=msn parent=3QoS_up_Web priority=5 queue=default
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name="Dragon Nest_up" packet-mark=dragon_nest parent=2QoS_up_Games priority=2 queue=default
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name="Dragon Nest_udp" packet-mark=dragon_nest_udp parent=2QoS_down_Games priority=2 queue=default
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name="Dragon Nest_udp_up" packet-mark=dragon_nest_udp parent=2QoS_up_Games priority=2 queue=default
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=LoL_up packet-mark=lol parent=2QoS_up_Games priority=2 queue=default
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=LoL_udp_up packet-mark=lol_udp parent=2QoS_up_Games priority=2 queue=default
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=WoW_up packet-mark=wow parent=2QoS_up_Games priority=2 queue=default
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=WoW_udp_up packet-mark=wow_udp parent=2QoS_up_Games priority=2 queue=default
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=Http_Descarga packet-mark=http_descarga parent=3QoS_down_Web priority=6 queue=default
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name="ICMP_(Ping)" packet-mark=icmp parent=1QoS_down_VoIP priority=1 queue=default
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=DNS packet-mark=dns parent=3QoS_down_Web priority=5 queue=default
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=Http packet-mark=http parent=3QoS_down_Web priority=5 queue=default
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=Https packet-mark=https parent=3QoS_down_Web priority=5 queue=default
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=WoW packet-mark=wow parent=2QoS_down_Games priority=2 queue=default
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=WoW_udp packet-mark=wow_udp parent=2QoS_down_Games priority=2 queue=default
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=LoL packet-mark=lol parent=2QoS_down_Games priority=2 queue=default
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=Ventrilo packet-mark=ventrilo parent=1QoS_down_VoIP priority=1 queue=default
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=Otros packet-mark=other parent=3QoS_down_Web priority=7 queue=default
    Nótese que la única limitación que use fue a la web y todo lo restante lo he dejado para juegos.
    Nótese que el Parent de QoS_up es WAN en vez de Ether5
    Esta última parte la hice más ínfima, la continuaré más tarde que ya estoy de salida.
    Está sujeta a modificaciones, en caso me haya equivocado en algo favor de avisar para editarlo.



    -- En continua actualización--

    Basado en el diseño QoS por Megis en el MUM 09 en EEUU: http://mum.mikrotik.com/presentation.../megis_qos.pdf
    Última edición por Miyagui; 23/02/2012 a las 11:31


LinkBacks (?)

  1. 03/09/2018, 09:50
  2. 16/01/2018, 08:12
  3. 02/04/2017, 15:13
  4. 06/03/2017, 12:09
  5. 03/08/2016, 12:34
  6. 23/07/2016, 20:44
  7. 03/11/2015, 23:31
  8. 20/10/2015, 12:23
  9. 28/09/2015, 14:44
  10. 26/09/2015, 16:43
  11. 21/09/2015, 14:22
  12. 10/09/2015, 10:18
  13. 07/09/2015, 23:39
  14. 11/04/2015, 14:24
  15. 18/03/2015, 02:07
  16. 24/10/2014, 12:50
  17. 07/10/2014, 00:55
  18. 22/04/2014, 17:31
  19. 11/04/2014, 12:53
  20. 26/02/2014, 21:38
  21. 16/02/2014, 12:12
  22. 03/11/2013, 07:24
  23. 15/10/2013, 16:34
  24. 13/10/2013, 21:44
  25. 10/09/2013, 09:28
  26. 07/09/2013, 01:46
  27. 27/08/2013, 18:37
  28. 23/08/2013, 15:47
  29. 14/08/2013, 19:33
  30. 30/07/2013, 23:54
  31. 09/07/2013, 03:25
  32. 14/06/2013, 19:55
  33. 05/06/2013, 17:23
  34. 27/05/2013, 20:51
  35. 13/05/2013, 07:39
  36. 03/05/2013, 17:40
  37. 30/04/2013, 23:26
  38. 27/04/2013, 09:52
  39. 31/03/2013, 01:00
  40. 29/03/2013, 00:17
  41. 27/03/2013, 21:59
  42. 17/03/2013, 17:42
  43. 13/03/2013, 07:54
  44. 18/01/2013, 17:56
  45. 14/01/2013, 12:17
  46. 23/11/2012, 13:11
  47. 12/11/2012, 21:52
  48. 02/11/2012, 18:23
  49. 13/10/2012, 11:33
  50. 08/10/2012, 23:06

Temas similares

  1. One Tree Hill
    Por CoLzeR- en el foro TV
    Respuestas: 45
    Último mensaje: 03/06/2012, 21:59
  2. router Mikrotik Rb750 para lan center
    Por atila en el foro Cabinas y LAN Centers
    Respuestas: 13
    Último mensaje: 29/08/2011, 02:35
  3. QoS and Traffic Shaping
    Por ctcda6v en el foro Linux
    Respuestas: 0
    Último mensaje: 24/08/2010, 19:21
  4. Talent tree varios WOTLK
    Por sczor en el foro WoW
    Respuestas: 30
    Último mensaje: 13/08/2008, 23:23
  5. Mages talent tree - Patch 1.11
    Por Miyagui en el foro WoW
    Respuestas: 0
    Último mensaje: 05/05/2006, 11:23

Permisos de publicación

  • No puedes crear nuevos temas
  • No puedes responder temas
  • No puedes subir archivos adjuntos
  • No puedes editar tus mensajes
  •