Priorización de Trafico QoS y control de ancho de banda por IP

Tema en 'Queues' comenzado por MikrotikPeru, 26 de Diciembre de 2015.

  1. MikrotikPeru

    MikrotikPeru Well-Known Member

    [​IMG]
    QoS es la priorización de tráfico y la garantía de un ancho de banda mínimo.
    La aplicación de QoS es un requisito básico para poder implantar servicios interactivos (por ejemplo voip).

    Por que es importante?

    Porque se puede manejar tasas de errores, ancho de banda, rendimiento, retraso en la transmisión, disponibilidad, jitter, etc.

    Que Tipo de Trafico es Importante?
    1. ICMP
    2. DNS,TELNET,SSH
    3. HTTP,HTTPS,
    4. SMTP,POP3,IMAP
    5. OTROS
    6. HTTP > 20MB
    7. P2P
    [​IMG]

    Mikrotik puede marcar conexion y darle una prioridad

    Como hacemos esto pues con Mangle, Queues Tree y Types

    Mangle: Nos marcara el trafico puede ser de origen por IP como Puerto Origen o Destino, L7.
    Queues Tree: Nos Encolara el Trafico dando Carriles y una prioridad.
    Queues Type: En cada Carril nos dara la Disciplina deseada SFQ PFIFO PCQ.

    Bueno Manos a la Obra:
    Pegar en Mangle

    Código (Text):
    /ip firewall mangle
    add action=mark-connection chain=prerouting comment=P2P disabled=no new-connection-mark="PRIO 8" p2p=all-p2p passthrough=yes

    add action=mark-packet chain=prerouting comment="" connection-mark="PRIO 8" disabled=no new-packet-mark="PRIO 8" passthrough=yes

    add action=jump chain=prerouting comment="" disabled=no jump-target="TERMINO DE PROCESAR" packet-mark="PRIO 8"
    add action=mark-connection chain=prerouting comment="PRIO - 7 MULTIDESCARGAS" connection-bytes=50000000-0 disabled=no new-connection-mark="PRIO 7" passthrough=yes protocol=tcp

    add action=mark-packet chain=prerouting comment="" connection-mark="PRIO 7" disabled=no new-packet-mark="PRIO 7" passthrough=yes

    add action=jump chain=prerouting comment="" disabled=no jump-target="TERMINO DE PROCESAR" packet-mark="PRIO 7"
    add action=mark-connection chain=prerouting comment="MARCO PRIO 1" disabled=no new-connection-mark="PRIO 1" passthrough=yes protocol=icmp

    add action=mark-connection chain=output comment="" disabled=no dst-port=53 new-connection-mark="PRIO 1" passthrough=yes protocol=udp

    add action=mark-connection chain=prerouting comment="" disabled=no dst-port=53 new-connection-mark="PRIO 1" passthrough=yes protocol=udp

    add action=mark-packet chain=prerouting comment="" connection-mark="PRIO 1" disabled=no new-packet-mark="PRIO 1" passthrough=yes

    add action=jump chain=prerouting comment="" disabled=no jump-target="TERMINO DE PROCESAR" packet-mark="PRIO 1"
    add action=mark-connection chain=prerouting comment="MARCO PRIO 2 , STREAMING - JUEGOS,VOIP" disabled=no dst-port=5060-5061 new-connection-mark="PRIO 2" passthrough=yes protocol=udp

    add action=mark-connection chain=prerouting comment="" disabled=no dst-port=1863,5190,777 new-connection-mark="PRIO 2" passthrough=yes protocol=tcp

    add action=mark-packet chain=prerouting comment="" connection-mark="PRIO 2" disabled=no new-packet-mark="PRIO 2" passthrough=yes

    add action=jump chain=prerouting comment="" disabled=no jump-target="TERMINO DE PROCESAR" packet-mark="PRIO 2"
    add action=mark-connection chain=prerouting comment="marco prio 3 navegacion" disabled=no dst-port=80,443,8000-9000 new-connection-mark="PRIO 3" passthrough=yes protocol=tcp

    add action=mark-packet chain=prerouting comment="" connection-mark="PRIO 3" disabled=no new-packet-mark="PRIO 3" passthrough=yes

    add action=jump chain=prerouting comment="" disabled=no jump-target="TERMINO DE PROCESAR" packet-mark="PRIO 3"
    add action=mark-connection chain=prerouting comment="PRIO 4 - PUERTOS LABORALES" disabled=no dst-port=25,110,143,3389,1723,21-23 new-connection-mark="PRIO 4" passthrough=yes protocol=tcp

    add action=mark-packet chain=prerouting comment="" connection-mark="PRIO 4" disabled=no new-packet-mark="PRIO 4" passthrough=yes

    add action=jump chain=prerouting comment="" disabled=no jump-target="TERMINO DE PROCESAR" packet-mark="PRIO 4"
    add action=mark-connection chain=prerouting comment="MARCO PRIO 5" disabled=no new-connection-mark="PRIO 5" passthrough=yes

    add action=mark-packet chain=prerouting comment="" connection-mark="PRIO 5" disabled=no new-packet-mark="PRIO 5" passthrough=yes

    add action=accept chain="TERMINO DE PROCESAR" comment="" disabled=no
    En este ejemplo marcamos conexion y marcamos paquetes que es la forma correcta de un QoS por que existe la forma de trabajar a nivel de paquetes pero por 2 razones marcamos.
    1.- bajo uso de procesador.
    2.- re-uso del connection tracking.


    El plan de QoS lo Trabajamos de esta manera:

    1.- PRIO1 : ICMP ,UDP53
    2.- PRIO2 : UDP 5060-5061 | TCP 1863,5190,777 | 10000-20000 (VozIP)
    3.- PRIO3 : TCP 80,443,8000-9000
    4.- PRIO4 : TCP 25,110,143,3389,1723,21-23
    5.- PRIO5 : Resto
    6.- PRIO7 : Descargas o Hilos que dicha conexion pase mas de 50 MB
    8.- PRIO8 : P2P


    Pegar en queue type
    Usamos el Qdiscs Stochastic Fairness Queueing (SFQ) para que el trafico pasante por el QoS sea ecualizado tambien.

    Código (Text):
    /queue type
    add kind=sfq name=BAJADA sfq-allot=1514 sfq-perturb=5
    add kind=sfq name=SUBIDA sfq-allot=1514 sfq-perturb=5  
    Código (Text):
    /queue tree
    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=Download parent=ether5 priority=1

    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=PRIO1 packet-mark="PRIO 1" parent=Download priority=1 queue=BAJADA

    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=PRIO2 packet-mark="PRIO 2" parent=Download priority=2 queue=BAJADA

    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=PRIO3 packet-mark="PRIO 3" parent=Download priority=3 queue=BAJADA

    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=PRIO4 packet-mark="PRIO 4" parent=Download priority=4 queue=BAJADA

    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=PRIO5 packet-mark="PRIO 5" parent=Download priority=5 queue=BAJADA

    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=PRIO7 packet-mark="PRIO 7" parent=Download priority=7 queue=BAJADA

    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=PRIO8 packet-mark="PRIO 8" parent=Download priority=8 queue=BAJADA

    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=Upload parent=pppoe-out1 priority=1

    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=PRIO.1 packet-mark="PRIO 1" parent=Upload priority=1 queue=SUBIDA

    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=PRIO.2 packet-mark="PRIO 2" parent=Upload priority=2 queue=SUBIDA

    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=PRIO.3 packet-mark="PRIO 3" parent=Upload priority=3 queue=SUBIDA

    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=PRIO.4 packet-mark="PRIO 4" parent=Upload priority=4 queue=SUBIDA

    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=PRIO.5 packet-mark="PRIO 5" parent=Upload priority=5 queue=SUBIDA

    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=PRIO.7 packet-mark="PRIO 7" parent=Upload priority=7 queue=SUBIDA

    add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=PRIO.8 packet-mark="PRIO 8" parent=Upload priority=8 queue=SUBIDA
    Finalmente agregamos las reglas que haran que nuestro QoS sea una maravilla este ejemplo esta hecho para una linea de internet , Hay muchas formas de Hacer QoS esta es la forma por Interfaces Fisicas es muy recomendada Pronto subire usando interfaces Virtuales Global IN - Global OUT.
     
    Última modificación: 10 de Abril de 2016
    A selvan le gusta esto.
  2. Bryly

    Bryly New Member

    Buen dia estimados, en este caso en el QUEUE TREE, el ether5 vendria a ser la LAN por donde sale el Internet a los clientes??
     
  3. MikrotikPeru

    MikrotikPeru Well-Known Member

    Correcto ether5 es la Interface LAN y pppoe-out1 seria la WAN
     
  4. selvan

    selvan New Member

    exelente aporte, que pasa si tengo balanceada dos o 3 lineas me sirve el mismo script?
     
  5. rifranco202325

    rifranco202325 New Member

    no tiene nada q ver el balanceo porq esto va en el administrador no en el balanceo
     
    A selvan le gusta esto.
  6. rifranco202325

    rifranco202325 New Member

    estoy usando por pcq no tendria problema usar este sistema... y como seria hay

    a y no veo q en el qtree alla puesto un ancho de banda global
     

    Archivos adjuntos:

    • JOSE.png
      JOSE.png
      Tamaño de archivo:
      173,9 KB
      Visitas:
      88
    Última modificación: 10 de Abril de 2016
  7. darkhammer

    darkhammer New Member

    y si tengo varias interfaces lan. como va las reglas
     
  8. lantiano

    lantiano Member

    Tienes q crear una regla por cada interface
     
  9. lantiano

    lantiano Member


    Hola , que pasa si ya tengo asignado el puerto 53 al dns cache ,tengo que usar otro puerto o normal ???
     
  10. MikrotikPeru

    MikrotikPeru Well-Known Member

    El 53 puede estar direccionado al Mikrotik (INPUT) o puede estar hacia internet (FORWAR), el trafico hacia cualquier de los dos puedes marcarlo y pasarlo por HTB(QueuesTree)
    Como ejemplo te dijera si tus clientes o Nano estan apuntando como DNS al mikrotik entonces es una marca (INPU), si no fuera y seria 8.8.8.8 entonces seria trafico Forware.
     
  11. MikrotikPeru

    MikrotikPeru Well-Known Member

  12. MikrotikPeru

    MikrotikPeru Well-Known Member

  13. lantiano

    lantiano Member


    Hola para hacerlo para varias eternet , se hace solo el /queue tree o tengo q hacerlo todo ???
     
  14. lantiano

    lantiano Member

    Por cierto , esta periodización de paquetes , no afecta si se tiene algún servidor cache ???
     
  15. MikrotikPeru

    MikrotikPeru Well-Known Member

  16. darkhammer

    darkhammer New Member

    osea estas reglas solo van en el balanceador, nunca en el administrador y si hay mas rb detras tampoco, podrias explicar porque?

    Linea1 __ MikrotikLoadBalanced + QoS /(solo aca va) ______ MikrotikAdmin/(aca noo ____ OTROs ROUTERs CABEZERAs(aca tampoco?)____Clientes
     
  17. MikrotikPeru

    MikrotikPeru Well-Known Member

    Correcto, a menos que quieras dar QoS a algo en especial, por ejemplo tal cliente que tiene SXTLITE le instalo un qos en sus equipo para darle 3megas como techo pero que priorize sobre esos 3 megas en el mejor caso juegos sobre HTTP o HTTPS. Eso seria un ejemplo.
     
  18. rukanet

    rukanet New Member

    Si tengo una lista con Simple Qeueus y Type PCQ-UPLOAD-DEFAULT y PCQ-DOWNLOAD-DEFAULT, le puedo asignar a Type las reglas montadas en esta guia? o debo manejar el QUEUES Type segun el manual del foro en Migración??? de ante mano Gracias y buen material
     
  19. MikrotikPeru

    MikrotikPeru Well-Known Member

    El queues Type que usamos es SFQ es una ecualizacion de conexiones por puerto deacuerdo, a lo que estamos marcando en mangle, ahora si lo cambias podrias usar PCQ pero el toma ya por IP no por sesiones NAT.
     
  20. ronaldroberto21

    ronaldroberto21 New Member

    tengo un rb 750gl funcionando balanceo de carga marcando PPOE cliente
    4 lineas de 10mbps y ether5 es mi LAN + un administrador rb 850gx2 en modo bridge
    lo que necesito hacer Balanceo por prioridad de tráfico 3 para multimedia y una para paginas
    se puede
     

Comparte esta página