Administracion de ancho de banda con MiKroTik

Administracion de ancho de banda con MIKROTIK

Hoy en día la velocidad en el servicio de internet está muy  limitado, todos  los proveedores de servicio wisp y empresas ISP, ofrecen planes de internet con velocidades  altas y bajas , por lo que para un proveedor es imperativo el tener un control del ancho de banda para sus clientes con el fin de evitar caídas en sus clientes ,latencia alta en los servicios y saturacion

Otro de los problemas que genera mucho tráfico en una red son las actualizaciones del sistema operativo, antivirus, así como también las maquinas infectadas por virus, por lo que saturan y reduce el ancho de banda, el tener un control y planes de veosidad  nos puede mitigar este problema.

El objetivo en  de este ejercicio  es ya teniendo la configuracion basica crear dos planes de velosidad   usando (Firewall /Mangle) ,(Firewall/Adress-list) y (Queue/Tree) ya que comunmente  se usa Queue Simples para poder  asignar un ancho de banda a cada cliente ,pero eso nos genera una infinidad de reglas  en nuestro router consumiendo recursos y siento mas dificil administracion  de nuetros clientes y el Adress-list para tener mas organizada nuestra configuracion.

Address-list : nos permite crear listas de usuarios  bajo direcciones ip agrupadas  bajo un nombre comun  este Address.list se puede usar para crear condiciones en el Firewall

Paso 1

Identificamos las interfaces y definimos lo que queremos lograr

Plan a crear

Plan 1 : 2M/512k

Cliente : 172.168.1.254

revisamos que nuestro router tenga la configuracion basica y identificamos la interface a trabajar , en este caso haremos la limitacion a nuestra interface lan  que seria la interface bridge1


  

Paso 2

Identificamo al cliente  que en este caso esta conectado pero podemos apuntar la IP del cliente y tenerlo en cuenta para  la agregacion de esa ip en el addrest list, esto es para tener un orden y control de nuestra configuracion. 




Paso 3

Creamos un Address-list con nombre de  plan1_2M/512k

Crearemos el plan de 2M descarga /512k subida nos bamos  IP/Firewall/Address-list ,si en caso se quiera agregar mas IPs solo se selecciona el  simbolo + y se agrega en Address  la ip que se desea agregar , en Name se selecciona la lista a la que quieras que pertenesca esa IP.

/ip firewall address-list
add address=172.168.1.254 list=Plan1_2M/512k

 

Nos quedaria  algo asi
no prestar atencion a las otras  Adrress-list ya que son ajenas a nuestra configuracion


 

Paso 4
Crearemos nuestras reglas en  IP/Firewall/Mangle para poder identificar el trafico entrante y saliente por nuestra interface lan que vendria ha ser nuestra interface bridge1.
Para mas claridad de la configuracion veremos el consepto basico de tablas  de flujo de trafico en el que trabaja  la  capa 3.



  • Prerouting    : selecciona todo paquete  antes que ingrese al puerto de entrada y  tome la desicion  de ruteo.
  • Prostrouting  : selecciona todo paquete  justo antes  que salga  del puerto de salida
  • Input             : todo paquete entrante  al router.
  • Forward        : todo paquete que atraviese el router, comunmente se selcciona despues de la desicion de ruteo.
  • Output          : todo paquete  saliente del router.

Esquema pictorico
 
Esquema tecnico
 

En esta regla decimos que todo trafico antes que ingrese por el puerto de entrada Bridge 
(o tambien trafico de subida de nuestro cliente)



 con IPs de origen que esten en el Address-list  Plan_1_2M/512k
 


marca la conneccion  con la marca Plan1_conn
ES IMPORTANTE DEJAR MARCADO EL PASSTHROUGH  ESTO  PERMITIRA MACHEAR CON LAS REGLAS
QUE SE ENCUNTRAN DEBAJO DE ELLA.

una ves que marcamos la conexion del trafico entrante por nuestra interface bridge1 marcamos  los paquetes  usando la marca de conexion que nombramos anteriormente,esto nos ayuda a identificar la velosidad de subida  de nuestro(s) cliente(s) . ya que estamos haciendo referencia  a todo lo que ingrese por nuestra interface donde estan conectados nuestros clientes.

esta regla nos dice que  todo trafico antes que ingrese  por la interface bridge con marca de conexion Plan1_conn




marca todos los paquetes con  la marca  Subida_Pan1 (importante   no dejar la opcion de passthrough  marcado  (cuando se   marca el paquete en alguna regla de firewall  ya no es nesesario marcar el  passthrough)

esto nos ayudara a identificar el paquete, cuando creemos las reglas en  Queue tree

  

Paso 5

Ahora crearemos las reglas para identificar el trafico de descarga de nuestro cliente  o el trafico saliente  de nuestra interface  bridge1  esta regla nos dice

todo trafico  antes que salga por la interface de salida bridge1

 
 con direcciones de destino que esten en la lista Plan_1_2M/512k




 marca la conexion con Paln_1_Down_conn(dejar narcado el passtrough)

 

 ahora marcamos los  paquetes usando la marca de conexion que creamos anteriormente

todo trafico antes que salga  por la interface de salida  bridge1 que contengan la marca de conexion Plan_1_Down_conn


marca los paquetes  con la marca Download_Plan1 (no marcar el passthrough)
 


al  final nos quedaran las reglas de esta manera



ahora creamos  la Queue madre donde registramos la velocidad de subida que tenemos en total  siempre teniendo muy encunta el MIR y el  CIR  en nuestro caso siempre tengo 512k  de descarga
 

creamos ahora la Queue Tree de descarga para el cliente ,le asignamos el nombre en Name ,en  Parent  seleccionamos a que Queue padre pertenece en este caso seria a la queue padre Dowload , en Packet Marks elegimos la marca de paquete que pusimos  en el mangle del firewall en la seccion de postrouting que identificaba  el trafico de salida de la interface bridge1 (descarga del cliente) en Queue type  se  selecciona el pcq-download-default la prioridad 2  siempre tiene que se una prioridad menos que el Queue padre ,en  limit at la velocidad  minima que queremos que tenga nuestro cliente y en max limit la velocidad maxima  que queremos que tenga nuestro cliente en el mejor de los casos


crearemos  una Queue Tree para asignarle la velocidad de subida al cliente,le asignamos el nombre en Name ,en  Parent  seleccionamos a que Queue pertenece en este caso seria a la queue madre Dowload , en Packet Marks elegimos la marca de paquete que pusimos  en el mangle del firewall en la seccion de prerouting que identificaba  el trafico de entrada de la interface bridge1 (subida del cliente) en Queue type  se  selecciona el pcq-upload-default la prioridad 2  siempre tiene que se una prioridad menos que el Queue madre ,en  limit at la velocidad  minima que queremos que tenga nuestro cliente y en max limit la velocidad maxima  que queremos que tenga nuestro cliente en el mejor de los casos , en mi caso tengo solo tengo 512k de subida  en total y   como maximo mi cliente tendra en el mejor de de los casos  512k de subida lo minimo no lo he especificado porque asi que todos mis clientes competiran por la velosidad de subida ,el no espesificar indica  que no hay limite minimo que cuando este disponible  pueda usar cualquier usuario que este en nuetra address-list Plan_12M/512k



 /queue tree
add limit-at=4M max-limit=6M name=Dowload parent=global priority=1 queue=pcq-download-default
add limit-at=512k max-limit=512k name=Upload parent=global priority=1 queue=pcq-upload-default
add limit-at=512k max-limit=2M name=plan1 packet-mark="Dowload_Plan1 " parent=Dowload priority=2 queue=pcq-download-default
add max-limit=512k name=plan1_up packet-mark="Subida_Plan1 " parent=Upload priority=2 queue=pcq-upload-default

Hacemos un speedtest  para comprobar que nuestras reglas funcione y vemos  que si nos limita a la velocidad que hemos definido en las reglas,  ahora si se quiere limitar a un grupo de usuarios a la velosidad que definimos en el Queue Tree  solo se le agrega las IPs al address-list y estaran limitados ,todos esos usuarios compartiran  la velocidad menciodad, ahora si se quiere crear otro Plan de 1m/512k solo se repite los pasos , que ya se mensionaron en este ejercicio ,o en caso se necesite reservar una ancho de banda  a un cliente en particular solo se repite  las reglas y se cambian los nombres  de la marca de paquete y los Queue Tree

  


esta es la forma correcta de administrar el ancho de banda hacia nuestros clientes es una tecnica muy usada en la actualidad por Wisp y ISPs dejo el script de la configuracion


/ip firewall address-list
add address=172.168.1.254 list=Plan1_2M/512k

/ip firewall mangle
add action=mark-connection chain=prerouting comment="planes de velosidad Upload" connection-mark=no-mark in-interface=bridge1 new-connection-mark=Plan1_conn \
    src-address-list=Plan1_2M/512k
add action=mark-packet chain=prerouting connection-mark=Plan1_conn in-interface=bridge1 new-packet-mark="Subida_Plan1 " passthrough=no
add action=mark-connection chain=postrouting comment=Dowload dst-address-list=Plan1_2M/512k new-connection-mark=Plan1_Down_conn out-interface=bridge1
add action=mark-packet chain=postrouting connection-mark=Plan1_Down_conn new-packet-mark="Dowload_Plan1 " out-interface=bridge1 passthrough=no


/queue tree
add limit-at=4M max-limit=6M name=Dowload parent=global priority=1 queue=pcq-download-default
add limit-at=512k max-limit=512k name=Upload parent=global priority=1 queue=pcq-upload-default
add limit-at=512k max-limit=2M name=plan1 packet-mark="Dowload_Plan1 " parent=Dowload priority=2 queue=pcq-download-default
add max-limit=512k name=plan1_up packet-mark="Subida_Plan1 " parent=Upload priority=2 queue=pcq-upload-default

Comentarios

  1. en prioridad de los clientes asignas prioridad 2 esta prioridad seria para mas clientes o se puede asignar distinta prioridad a los demas clientes

    ResponderEliminar
    Respuestas
    1. Buenos dias, disculpe por la demora al responder , con respecto a su pregunta se asigna con prioridad 2 a los clientes porque la queue madre y Padre que es Dowloand y Upload es 1 esto hace que las que las queue clientes nunca sobrepasen a las queue Padres , si se peude usar en otras queue clientes poner otra prioridad pero no es recomendable hacerlo, por que con esta configuracion se quiere usar el reuso para poder administrar mejor el ancho de banda y repartirlo equitativamente, en caso quieras priorizar a un cliente su ancho de banda tendrias que hacer las reglas sin el address list mensioanando solo la ip en las reglas de magle.

      Eliminar
  2. Muchas gracias por el aporte, acabo de implementarlo en mi red y me ha funcionado de maravilla!
    Sin embargo he tenido un inconveniente, podría por favor recomendarme alguna alternativa para poder obtener los gráficos y estadística de cada cliente como se podía realizar con las SimpleQueues a través de la funcionalidad Graphs, la verdad he estado buscando mucho y lo mas cercano a ello ha sido un post donde sugerian utilizar utro rb especificamente para este interes, no hallo como podria realizarlo si es que fuese esta la unica salida.
    De antemano muchas gracias por su tiempo.

    ResponderEliminar
    Respuestas
    1. Buenas tardes ante tu pregunta claro que hay soluciones para el monitoreo de red atraves de graficos de consumo, desconexiones cuando estuvo activo un host cuando estubo caido y horas exactas si algun cliente apago o prendio su dispocitivo si tu objetivo es tener estadisticas de consumo de cada cliente, el DUDE te ayuadara de una buena forma ya que es gratuito y sondea snmp o mediante ping esta herramienta hay una version para instalarlo dentro de un mikrotik que se necesita un rb con caracateristicas especiales comunmente tiene un costo elevado pero hay la segunda obcion la version antigua se puede instalar en cualquier pc y solo indicas la ip del dispositivo ha monitorear y te generara graficos de consumo de la hora, dia, año actuamente esta version ya no esta disponible en la web pero yo la he subido para que personas interesadas puedan jugar con ella http://wirelessconnect.eu/articles/files/downloads/dude-install-3.6.zip todo esta en este post que he escrito hace algun tiempo
      http://rizolatti.blogspot.com/2018/05/the-dude-instalacion.html lamentablemente aun estoy en la parte 1 ya que esto tendra 6 partes porque lo pienso detallar ha profuncidad aunque actualmente en internet hay muchos manuales de ellos averigualos, se que te ba servir muy bien.

      Eliminar
    2. Muhcas gracias, muy buena informacion. Se podria usar esta tecnica en conjunto con balanceo de carga como en tu blog http://rizolatti.blogspot.com/2017/10/balanceo-de-carga-mikrotik-diferentes.html?

      Eliminar
    3. Buenos dias J5 en realidad si se puede hacer esto en un solo router tanto la administracion de ancho de banda y el balaceo de carga pero no se debe hacer ya que no funcionaria de la manera adecuada ya que tanto el balanceo como la administracion de ancho de banda usan firewall mangle y queue tree y realizar ambos en un solo router resultaria en conflicto con las reglas entre si ya que mikrotik machea las reglas en orden aparte de cargarias al cpu con mas reglas lo recomendable es poner tu router de borde el balanceo de carga y aparte tener otro router que este debajo del router balanceador y que sea tu administrador y en ese poner los arreglos de ancho de banda y de ese router baya directo a un swicth o directo hacia tus clientes.

      espero haber podido ayudarte y recomienda este sitio a tus compañeros :)

      Eliminar
    4. Buenas noches disculpa hay que aplicar una regla para cada usuario es que la cola hijo si agrega 3 equipos a una misma se reparte los megas de la col hijo y no los megas de la cola padre que estara mal?

      Eliminar
    5. Que tal buenas tardes le encontraste solucion?

      Eliminar
  3. Esto nos permite que se garantice el ancho de banda para una determinada IP? o solo nos sirve para limitar el uso de BW?

    ResponderEliminar

Publicar un comentario

Entradas populares