CAPITULO III 3 MARCO PROPOSITIVO
3.2 Aplicación Práctica
A continuación se presenta los pasos de configuración en una aplicación práctica:
Los equipos Routerboard de la marca Mikrotik, poseen dos formas de configuración y acceso: La primera es a través del acceso web y la segunda es a través de un software propietario llamado winbox. Necesitamos conectarnos al equipo a la interfaz número 2 con un cable de red, configurar la interfaz de nuestro computador con IP dinámica y ya tendremos acceso por esta interfaz.
El equipo cuando viene de fábrica se encuentra pre configurado con la IP 192.168.88.1/24 en la interfaz LAN, por esto si necesitamos acceder por web basta con ingresar en el navegador la dirección IP y tendremos acceso a la siguiente interfaz:
49
Figura 1: Interfaz de Configuración Fuente: El autor
Si bien es cierto a través de la interfaz web es posible realizar toda la configuración del equipo, es más fácil y práctico hacerlos por la segunda opción, para esto una vez dentro de la interfaz web buscamos en el panel derecho el ícono de Winbox para podernos descargar el software necesario.
Figura 2: Descarga de la aplicación winbox Fuente: El autor
50
Este es un archivo ejecutable, no es necesario una instalación si no su ejecución directa. Una vez ejecutado el programo tenemos la siguiente interfaz:
Figura 3: Pantalla para elegir el equipo Fuente: El autor
En la primera línea tenemos el botón que tiene: “…” si hacemos clic en ese botón podremos hacer un escaneo de los equipos conectados a nuestra interfaz y a los que podemos acceder ya sea por MAC o por IP
Figura 4: Pantalla de conexión del equipo Fuente: El autor
51
Basta que hagamos clic en el equipo que necesitamos y podemos acceder a la interfaz completa de Winbox con las opciones de configuración completas.
Figura 5: Interfaz de Wimbox Fuente: El autor
Una vez dentro del equipo podemos a través del menú lateral tener acceso a la configuración completa del equipo la cual detallamos paso a paso:
Paso 1: Crear una interfaz de puente (bridge) entre las interfaces ether2 a ether5 y la interfaz inalámbrica. Para esto en el menú de la parte derecha hacemos clic en Bridge, luego en el menú de la opción Bridge vamos a la pestaña Bridge, y haceos clic en el botón +, ponemos nombre a nuestro bridge y hacemos clic en OK.
52
Figura 6: Pantalla para crear Interfaz de Puente Fuente: El autor
Luego de crear el bridge en la misma ventana seleccionamos la pestaña Ports, en la cual agregamos al bridge los puertos desde eth2 a eth5 y también la interfaz wlan1, esto haciendo clic en el botón más de la misma pestaña, seleccionamos la interfaz y el bridge al cual se va a agregar.
Figura 7: Pantalla para agregar el Bridge Fuente: El autor
53
Paso 2.- Crear el pool de ips que nos permitan asignar a nuestras estaciones. Para esto vamos a crear un pool 192.168.88.100 – 192.168.88.200, esto lo hacemos a través del menú Ip / Pool/ +, ponemos el nombre de nuestro pool e indicamos el segmento de direcciones ya elegido y aplicamos.
Figura 8: Pantalla para crear el pool de IPs Fuente: El autor
Paso 3.- Creamos el servidor DHCP para asignar el ip creado, a través de nuestra interfaz Bridge1, esto lo hacemos a través del menú Ip / DHCP Server /+, deberemos indicar la interfaz, Bridge1, el pool a asignar y aplicamos.
54
Figura 9: Pantalla para craer el Servidor DHCP Fuente: El autor
Si todo está en orden nuestro equipo ya recibe ip desde el equipo configurado, esto podemos revisarlo en el menú Ip / DHCP Server / Leases
Figura 10: Pantalla de Verificación de equipo creado Fuente: El autor
55
Paso 4.- Configuramos puerta de enlace y DNS para nuestras estaciones, esto lo hacemos en el menú Ip /DHCP Server / Networks, aquí indicaremos que nuestra subred 192.168.88.0/24 debe enrutarse por la IP 192.168.88.1, de paso configuramos nuestro DNS como 8.8.8.8 que es el servicio de DNS gratuito de google.
Figura 11: Pantalla para configurar la puerta de enlace Fuente: El autor
Paso 5.- Vamos a configurar el servicio de internet a nuestro equipo, para esto ponemos la ip de nuestro proveedor en la interfaz ether1 a la cual le denominaremos ether1wan eso por el menú interfaces haciendo clic en la interfaz y renombrando. Luego en el menú IP /Adresss/+ agregamos la ip, para nuestro caso 10.10.10.20/24 y seleccionamos la interfaz ether1wan.
56
Figura 12: Pantalla para configurar el servicio de internet Fuente: El autor
A continuación creamos la puerta de enlace de nuestro proveedor, en este caso 10.10.10.1/24 y usaremos el DNS de google ya conocido 8.8.8.8. La primera parte en el menú IP/Routes/+ e indicando en la segunda línea la ip 10.10.10.1 y aplicamos.
Figura 13: Pantalla para crear la puerta de enlace Fuente: El autor
57
Luego vamos al menú IP/DNS en la línea Servers indicamos como primera opción 8.8.8.8 y aplicamos.
Figura 14: Pantalla para ingresar el DNS Fuente: El autor
Una vez concluido estos paso tanto el equipo Mikrotik como nuestro equipo deben tener navegación esto lo podemos probar desde el menú New Terminal haciendo ping directamente a www.google.com y esperando la respuesta. De la misma manera en nuestro equipo abrimos una ventana de comandos y ejecutamos el mismo comando.
58
Figura 15: Pantalla donde comprobamos la conexión de nuestros equipos Fuente: El autor
Creación del QOS
Para la creación de nuestro QOS, nos basaremos en el siguiente esquema de trabajo:
Ilustración 7: Esquema de Creación del QOS
59
En el que claramente vemos que los paquetes que pasan por nuestro servidor tendrán que marcarse para luego dentro de un árbol de colas asignarles las prioridades respectivas que nos permitan que ciertos paquetes y servicios naveguen más rápido. Para esto hemos organizado las prioridades de esta manera:
Prioridad 1: Protocolo ICMP, es decir poder hacer ping a los servicios y páginas.
Prioridad 2: Puertos udp 53 y tcp 1863, el primero corresponde al servicio de resolución de nombres o DNS, y el segundo al puerto para la conexión del servicio de Facebook Messenger.
Prioridad 3: Puertos tcp 443 y 80, estos corresponden los puertos para la navegación http y https es decir los servicios más utilizados para la navegación.
Prioridad 4: Puertos tcp 22, 23, 25, 110, 999, 143, los mismos corresponden a servicios como ssh, ftp, correos entrante y saliente.
Prioridad 5: Los demás servicios no marcados.
Prioridad 7: Descargas > 50 Mbps, es decir que las descargas pesadas tengan prioridad bastante baja.
Prioridad 8: Tráfico P2P, afortunadamente Mikrotik tiene en sus últimas versiones ya el marcado de paquetes P2P y al ponerles al final en el árbol de prioridades lograremos que este tráfico que termina siendo el más pesado se atiendo cuando ninguno de los otros servicios lo necesite.
60
Paso 1.- Seleccionamos dentro del menú Winbox la opción Ip / Firewall / Mangle/+, en la ficha general en el cuadro de selección en el chain: Prerouting, y para nuestro caso el Protocolo: icmp
Figura 16: Pantalla para seleccionar el protocolo Fuente: El autor
Luego de esto en la ficha Action, seleccionamos “mark connection” y en el nombre de la conexión ponemos “priodidad1”. Con esto logramos marcar los paquetes icmp a nivel de conexión.
Figura 17: Pantalla para los paquetes Fuente: El autor
61
Paso 2.- Una vez marcado la conexión el siguiente paso es el marcado de paquete, para esto como en el paso anterior vamos al menú Ip / Firewall / Mangle/+, en la ficha General en la cadena o chain seleccionamos Prerouting. En la marca de conexión “Conecction Mark” seleccionamos la opción que ya creamos “prioridad 1” de la conexión ya creada:
Figura 18: Pantalla para marcar paquetes Fuente: El autor
Luego procedemos en la ficha Action a seleccionar la opción “mark paquet”, y en en nombre de la marca le ponemos igual “prioridad1”:
Figura 19: Pantalla para establecer la prioridad 1 Fuente: El autor
62
Los mismos pasos debemos realizar para el resto de prioridades de nuestro esquema, por ejemplo mostramos la creación de la regla de la prioridad 4 el cual debe marcar varios puertos del protocolo tcp, mostramos la regla como se debe crear:
Figura 20: Pantalla para crear prioridad 4 Fuente: El autor
Una vez creado todas la reglas de marcado de conexiones y paquetes nuestro mangle queda de la siguiente manera, si todo está bien podemos ver el consumo por cada tipo de marcación.
63
Figura 21: Pantalla de verificación del consumo Fuente: El autor
Una vez realizado el marcado de cada tipo de paquete procedemos a la creación del árbol de colas, esta parte es la que hará trabajar el sistema de prioridades que establecimos. Para esto en primer lugar debemos crear dos colas principales para delimitar el ancho de banda máximo tanto de bajada como de subida. Para esto en el menú Queue / Queue Tree /+ y creamos una cola llamada “BAJADA”, en el paren seleccionamos la interfaz de LAN, en nuestro caso “erher2 LAN1” en el tipo de cola “pcq-download-default”, que nos sirve para dividir equitativamente el ancho de banda delimitado para el número de usuarios conectados, en la prioridad le dejamos en 8 y en el Max Limit definimos en 30M, que es nuestra capacidad.
64
Figura 22: Pantalla para crear las colas de bajada Fuente: El autor
De la misma manera hacemos con el tráfico de subida, pero para esto seleccionamos en el Parent “ether10 WAN1 Quinche”, en el tipo de cola “pcq-upload-default” y el ancho debanda de 25M
Figura 23: Pantalla para crear las colas de subida Fuente: El autor
65
Una vez creado las colas principales en nuestro árbol creamos las colas por cada tipo de tráfico con la prioridad establecida. Por ejemplo para la prioridad 1, ponemos como nombre prioridad1-bajada, en el Parent seleccionamos “BAJADA”, de la interfaz LAN y en la marca de paquete prioridad1, que es la marca que creamos en el Mangle, igual en el tipo de cola seleccionamos “pcq-download-default”, en la prioridad establecemos como 1 que es el necesario para que esto paquetes sean atendidos primeramente al entrar en el router:
Figura 24: Pantalla para priorizar las colas de bajada Fuente: El autor
De la misma manera hacemos las colas para las prioridades 2 a 8 de la parte del tráfico de bajada.
Una vez hecho esto hacemos lo respectivo con el tráfico de subida, en este caso creamos una cola con prioridad 1 con el mismo paquete marcado, pero en el parent seleccionamos SUBIDA que corresponde a la interfaz WAN:
66
Figura 25: Pantalla para priorizar las colas de subida Fuente: El autor
De la misma manera procedemos con las prioridades del 2 al 8. Al final nuestro árbol de colas queda de la siguiente manera:
Figura 26: Pantalla donde observamos el árbol de colas Fuente: El autor
67
Con esto lograremos que nuestro sistema funcione, y que logremos el objetivo planteado, el tráfico más importante icmp, dns y navegación http y https tengan las más altas prioridades, y el tráfico pesado que no es necesario sea interactivo, descargas y p2p tengan prioridad más baja. Este es el sentido de hacer un QOS es decir “calidad de servicio”.
Calidad de servicio es la capacidad de dar un buen servicio. Es especialmente importante para ciertas aplicaciones tales como la transmisión de vídeo o voz.
A continuación veremos cómo discriminar el tráfico por cada tipo de servicio (HTTP, FTP, SSH, HTTPs, etc) y por proceso de transferencia de información (DOWNLOAD y UPLOAD), esto es de mucha ayuda a la hora dar prioridad a los servicios críticos.
Antes que nada, en la organización deben existir políticas de red en donde se deben detallar que servicios (o aplicaciones) están permitidos. Luego hay que definir la prioridad que van a tener cada uno de ellos. A continuación vera una tabla con las columnas (Puerto, Servicio, Prioridad y protocolo), en ella vemos que el trafico http, https, dns, SMTP, IMAP, IMAPs y RDP tienen prioridad 1 (la más alta)
Tabla 2: Tabla de Prioridades del Tráfico
Fuente: https://www.taringa.net/posts/linux/10743306/Calidad-de-servicio-qos-sobre- routeros.html
68
Ahora veremos cómo definir todo esto en un ROUTER OS de mikrotik, que es la solución que hemos decidido usar para esta implementación, por cuestiones de recursos se ha decidido identificar la mayoría de los servicios por puerto ya que ocupan menos recursos en el router y son más fáciles de procesar.
La transferencia de información (si es download o upload) en este caso se identificó por puerto de origen y destino, si el paquete tiene en SRC-PORT (Puerto de origen) el puerto de la aplicación el paquete es DOWNLOAD, porque el servidor externo lo está enviando. Análogamente si el paquete tiene en DST-PORT (Puerto de destino) el puerto de la aplicación el paquete es de UPLOAD, porque el cliente está mandando la petición a un servidor externo.
En el mangle de ROUTER OS marcamos los paquetes:
7 ;;; Marco todos los paquetes estos se leen en las colas padre Download y Upload
chain=prerouting action=mark-packet new-packet-mark=all passthrough=no
8 ;;; HTTP DOWNLOAD
chain=postrouting action=mark-packet new-packet-mark=http_download passthrough=no protocol=tcp src-port=80
9 ;;; HTTP UPLOAD
chain=postrouting action=mark-packet new-packet-mark=http_upload passthrough=no protocol=tcp dst-port=80 connection-mark=users-con
69
chain=postrouting action=mark-packet new-packet-mark=https_download passthrough=no protocol=tcp src-port=443
11 ;;; HTTPs UPLOAD
chain=postrouting action=mark-packet new-packet-mark=https_upload passthrough=no protocol=tcp dst-port=443
12 ;;; MSN: Conexi n al Servidor de MSN y Mensajes de Texto /DOWNLOAD/
chain=postrouting action=mark-packet new-packet-mark=msn_texto_download passthrough=no protocol=tcp src-port=1863
13 ;;; MSN: Conexi n al Servidor de MSN y Mensajes de Texto /UPLOAD/
chain=postrouting action=mark-packet new-packet-mark=msn_texto_upload passthrough=no protocol=tcp dst-port=1863
14 ;;; MSN: Transferencia de archivos /DOWNLOAD/
chain=postrouting action=mark-packet new-packet-mark=msn_archivos_download passthrough=no protocol=tcp src-port=6891-6900
15 ;;; MSN: Transferencia de archivos /UPLOAD/
chain=postrouting action=mark-packet new-packet-mark=msn_archivos_upload passthrough=no protocol=tcp dst-port=6891-6900
16 ;;; Skype To Phone - Usando L7
chain=postrouting action=mark-packet new-packet-mark=skype_phone passthrough=no layer7-protocol=skypeout
70 17 ;;; Skype To Skype - Usando L7
chain=postrouting action=mark-packet new-packet-mark=skype_to_skype passthrough=no layer7-protocol=skypetoskype
18 ;;; SMTP DOWNLOAD
chain=postrouting action=mark-packet new-packet-mark=smtp_download passthrough=no protocol=tcp src-port=25
19 ;;; SMTP UPLOAD
chain=postrouting action=mark-packet new-packet-mark=smtp_upload passthrough=no protocol=tcp dst-port=25
20 ;;; FTP DOWNLOAD
chain=postrouting action=mark-packet new-packet-mark=ftp_download passthrough=no protocol=tcp src-port=21,20
21 ;;; FTP – UPLOAD
chain=postrouting action=mark-packet new-packet-mark=ftp_upload passthrough=no protocol=tcp dst-port=21,20
22 ;;; SSH – DOWNLOAD
chain=postrouting action=mark-packet new-packet-mark=ssh_download passthrough=no protocol=tcp src-port=22
23 ;;; SSH – UPLOAD
chain=postrouting action=mark-packet new-packet-mark=ssh_upload passthrough=no protocol=tcp dst-port=22
71 24 ;;; TELNET - DOWNLOAD
chain=postrouting action=mark-packet new-packet-mark=telnet_download passthrough=no protocol=tcp src-port=23
25 ;;; TELNET - UPLOAD
chain=postrouting action=mark-packet new-packet-mark=telnet_upload passthrough=no protocol=tcp dst-port=23
26 ;;; DNS TCP - DOWNLOAD
chain=postrouting action=mark-packet new-packet-mark=dns_tcp_download passthrough=no protocol=tcp src-port=53
27 ;;; DNS TCP – UPLOAD
chain=postrouting action=mark-packet new-packet-mark=dns_tcp_upload passthrough=no protocol=tcp dst-port=53
28 ;;; DNS UDP DOWNLOAD
chain=postrouting action=mark-packet new-packet-mark=dns_udp_download passthrough=no protocol=udp src-port=53
29 ;;; DNS UDP UPLOAD
chain=postrouting action=mark-packet new-packet-mark=dns_udp_upload passthrough=no protocol=udp dst-port=53
30 ;;; POP3 – DOWNLOAD
chain=postrouting action=mark-packet new-packet-mark=pop3_download passthrough=no protocol=tcp src-port=110
72 31 ;;; POP3 - UPLOAD
chain=postrouting action=mark-packet new-packet-mark=pop3_upload passthrough=no protocol=tcp dst-port=110
32 ;;; IMAP - DOWNLOAD
chain=postrouting action=mark-packet new-packet-mark=imap_download passthrough=no protocol=tcp src-port=143
33 ;;; IMAP - UPLOAD
chain=postrouting action=mark-packet new-packet-mark=imap_upload passthrough=no protocol=tcp dst-port=143
34 ;;; IMAP SSL - DOWNLOAD
chain=postrouting action=mark-packet new-packet-mark=imap_ssl_download passthrough=no protocol=tcp src-port=993
35 ;;; IMAP SSL - UPLOAD
chain=postrouting action=mark-packet new-packet-mark=imap_ssl_upload passthrough=no protocol=tcp dst-port=993
36 ;;; PUERTOS TCP DISTINTOS DE LOS ACORDADOS DOWNLOAD
chain=postrouting action=mark-packet new-packet-
mark=puertos_tcp_download_redundantes passthrough=no protocol=tcp src- port=!80,443,1863,25,21,22,23,53,110,143,993,3389,20
73
chain=postrouting action=mark-packet new-packet-
mark=puertos_tcp_upload_redundantes passthrough=no protocol=tcp dst- port=!80,443,1863,25,21,22,23,53,110,143,993,3389,20
38 ;;; Windows Remote Desktop Protocol (RDP) download
chain=postrouting action=mark-packet new-packet-mark=windows_remote_download passthrough=no protocol=tcp src-port=3389
39 ;;; Windows Remote Desktop Protocol (RDP) UPLOAD
chain=postrouting action=mark-packet new-packet-mark=windows_remote_upload passthrough=no protocol=tcp dst-port=3389
40 ;;; PUERTOS UDP DISTINTOS DE LOS ACORDADOS DOWNLOAD
chain=postrouting action=mark-packet new-packet-
mark=puertos_udp_download_redundantes passthrough=no protocol=udp
src-port=!80,443,1863,25,21,22,23,53,110,143,993,3389
41 ;;; PUERTOS UDP DISTINTOS DE LOS ACORDADOS UPLOAD
chain=postrouting action=mark-packet new-packet-
mark=puertos_udp_upload_redundantes passthrough=no protocol=udp dst- port=!80,443,1863,25,21,22,23,53,110,143,993,3389
Ya tenemos los paquetes marcados, ahora tenemos que agregar un tipo de cola pcq. Es el tipo de cola sin clases que sólo se puede hacer limitación. Es una versión mejorada de SFQ sin su naturaleza stohastic. PCQ también crea subcolas, en relación con el parámetro- clasificador PCQ. Cada subcola tiene un límite de velocidad de datos de PCQ-tasa y el
74
tamaño del límite de los paquetes-PCQ. El tamaño total de una cola PCQ no puede ser mayor que PCQ-límite total de los paquetes.
El siguiente ejemplo muestra el uso de PCQ con los paquetes, clasificados por su dirección de origen.
Ilustración 8: Uso de PCQ en los paquetes
Fuente: https://www.taringa.net/posts/linux/10743306/Calidad-de-servicio-qos-sobre- routeros.html
Ilustración 9: Uso de PCQ en los paquetes
Fuente: https://www.taringa.net/posts/linux/10743306/Calidad-de-servicio-qos-sobre- routeros.html
75
Vamos a tipos de cola y agregamos la cola subida con identificador dst-port y descarga con el identificador src-port
/queue type>
name="subida" kind=pcq pcq-rate=0 pcq-limit=50 pcq-classifier=src-port pcq-total- limit=2000
name="descarga" kind=pcq pcq-rate=0 pcq-limit=50 pcq-classifier=dst-port pcq-total- limit=2000
total-limit y limit lo dejamos por defecto.
Una vez que tenemos los tipos de colas creados vamos a arbol de cola y agregamos lo siguiente:
Prestar atención que para download tengo definida la interface local y para upload la publica (la de salida a internet)
/queue tree>
0 name="Download" parent=LOCAL packet-mark=all limit-at=0 priority=8 max- limit=1500k burst-limit=0 burst-threshold=0 burst-time=0s
4 name="http_download" parent=Download packet-mark=http_download limit-at=0 queue=pcq-download priority=1 max-limit=0 burst-limit=0 burst-threshold=0 burst- time=0s
5 name="skype_to_skype_download" parent=Download packet-mark=skype_to_skype limit-at=0 queue=descarga priority=7 max-limit=0 burst-limit=0 burst-threshold=0 burst- time=0s
76
6 name="skype_phone_download" parent=Download packet-mark=skype_phone limit-