Está en la página 1de 179

MikroTik Certified

Traffic Control Engineer


(MTCTCE)

© MikroTik, www.mikrotik.com. All rights reserved. Reprinted with permission.

MikroTik Solutions International


Miguel Ojeda Flores
miguel.Ojeda@mikrotiksolutions.com
MikroTik Certified Trainer
MikroTik Trainer ID #TR0151

© MikroTik 2011
Horario
• 09:00 – 10:30 Sesión I
• 10:30 – 11:00 Break
• 11:00 – 13:00 Sesión II
• 13:00 – 14:00 Lunch
• 14:00 – 15:30 Sesión III
• 15:30 – 16:00 Break
• 16:00 – 17:30+ Sesión IV

2
Objetivos del curso
• Proporcionar el conocimiento y las habilidades
en el manejo de MikroTik RouterOS y las
capacidades de control de tráfico avanzado en
redes de pequeña y gran escala.
• Luego de completar el curso usted estará en
capacidad de planear, implementar, afinar y
corregir configuraciones de control de tráfico
implementadas con MikroTik RouterOS

3
Introducción personal
• Presentarse individualmente
– Nombre
– Compañía
– Conocimiento previo sobre RouterOS
– Conocimiento previo sobre networking
– Qué espera de este curso?
• Recuerde su número XY de clase
– (X = número de fila, Y = número de asiento en fila)
Mi número es: _____

4
Configurar Laboratorio en clase
• Configurar una red Ethernet 192.168.XY.0/24
entre la laptop (.1) y el router (.254)
• Asignar la dirección IP 10.1.1.XY/24 a la interfaz
wlan1
• Obtener acceso a internet desde la laptop.
Gateway = 10.1.1.254, DNS1=___.___.___.___,
DNS2=___.___.___.___
• Crear un nuevo usuario “RBXY” con password
“mikrotikXY” para el router y cambiar los
derechos de acceso de “admin” a “read”
5
Configurar Laboratorio en clase (cont.)
• Configurar la identidad del equipo
“XY_<su_nombre>”. Ej: “00_miguel”
• Configurar los nombres de las interfaces
“XY_<su_nombre>_<nombre_interface>”
Ej: “00_miguel_wan”
• Actualice su router a la versión RouterOS 5.x
• Actualice su versión de Winbox Loader
• Configurar el router como cliente NTP
• Crear una configuración backup y copiarla a su
laptop (será la configuración default)
6
ISP pequeño

Situación: Primeros Clientes:


Solo una dirección IP pública. “Conectarlos a Internet”
El ISP no tiene un DNS Server
con problemas periódicos de Web-server
virus en la red
Requerimientos: Requerimientos
 Masquerade
 DHCP server

 Basic IP filter
 DNS cache

 Port forwarding

 uPnP

7
DNS

Domain Name System

8
Situación típica

INTERNET

Situación
· Solo una IP pública
· ISP no tiene DNS Server
· ISP tiene periódicos problemas
con virus en su red

Requerimientos
· Masquerade
· Filtro IP básico
· DHCP server
· DNS cache
· Port forwarding
· uPnP

9
DNS Cache - Configuración

10
DNS cliente y cache
• El Cliente DNS es usado por el Router solo en caso de
configuración web-proxy o hotspot
• Se debe habilitar la opción “Allow Remote Requests”
para transformar el cliente DNS en DNS Cache.
• DNS cache permite usar el router en lugar de un Server
DNS, minimizando el tiempo de resolución
• El DNS cache tambien puede actuar como un DNS
Server para la resolución de direcciones de redes
locales.
• Cuando existen requerimientos remotos, el RouterOS
responde a los requerimientos TCP y UDP en el puerto
53.

11
DNS Cache - Configuración
• allow-remote-requests: especifica si se debe permitir
el requerimiento de las redes
• cache-max-ttl: máximo time-to-live de los registros
guardados en cache. Los registros expirarán
incondicionalmente luego que se cumpla el timepo
cache-max-ttl
• cache-size: (512 a 10240) especifica el tamaño del
cache DNS en KiB
• cache-used: muestra el tamaño usado en KiB
• primary-dns: Server DNS primario
• secondary-dns: server DNS secundario

12
Nota
• Si se usa use-peer-dns=yes, entonces el DNS Primario
cambiará a la dirección DNS dada por el DHCP Server

13
Ejemplo DNS
• Para configurar 159.148.60.2 como DNS
Server Primario, y permitir al Router ser usado
como DNS Server:

• ip dns set primary-dns=159.148.60.2 allow-remote-requests=yes

14
Monitoreo del Cache (ip dns cache)
• Lista de todas los registros de direcciones
(DNS tipo A) almacenadas en el server
• address: Dirección IP del host
• name: nombre DNS del host
• ttl: tiempo de vida del registro

15
Monitoreo del Cache (ip dns cache)
ip dns cache pr
Flags: S - static
# NAME ADDRESS TTL
0 a.l.google.com 74.125.53.9 20h36m25s
1 b.l.google.com 74.125.45.9 20h36m3s
2 d.l.google.com 74.125.77.9 20h37m59s
3 e.l.google.com 209.85.137.9 20h18m18s
4 f.l.google.com 72.14.203.9 20h36m25s
5 g.l.google.com 74.125.95.9 20h37m44s
6 ns2.acresso.com 64.14.29.53 1d19h48m24s
7 glb01.ams1.tfbn... 69.63.191.219 1h5m57s
8 glb01.ash1.tfbn... 69.63.185.11 47m41s
9 glb01.lhr1.tfbn... 69.63.191.91 49m58s
10 glb01.sf2p.tfbn... 69.63.176.101 47m41s
11 glb01.snc1.tfbn... 69.63.179.22 1m53s

16
Monitoreo del Cache (ip dns cache)

17
Monitoreo del Cache (ip dns cache all)
• Lista completa de todos los registros DNS
almacenados en el server
• data: Campo de dato DNS
• address: Dirección IP del host
• name: nombre DNS del host
• ttl: tiempo de vida del registro

18
Monitoreo del Cache (ip dns cache all)
ip dns cache all pr
Flags: S - static, N - negative
# NAME TYPE DATA TTL
0 l.google.com NS b.l.google.com 19h52m9s
1 l.google.com NS d.l.google.com 19h52m9s
2 l.google.com NS g.l.google.com 19h52m9s
3 l.google.com NS a.l.google.com 19h52m9s
4 l.google.com NS e.l.google.com 19h52m9s
5 l.google.com NS f.l.google.com 19h52m9s
6 a.l.google.com A 74.125.53.9 20h35m18s
7 b.l.google.com A 74.125.45.9 20h34m56s
8 d.l.google.com A 74.125.77.9 20h36m52s
9 e.l.google.com A 209.85.137.9 20h17m11s
10 f.l.google.com A 72.14.203.9 20h35m18s
11 g.l.google.com A 74.125.95.9 20h36m37s
12 installshiel... NS ns1.acresso.com 1d23h34m32s

19
DNS Estático
• Mikrotik RouterOS tiene un DNS Server
embebido en DNS Cache.
• Permite enlazar los nombres de dominio con
IPs para avisar a los clientes DNS.
• Se puede usar tambien para dar información
“falsa” a los clientes. Ej: cuando se resuelva
cualquier requerimiento DNS (o a todo el
internet) se redireccione a su propia página

20
DNS Estático
• El Server es capaz de resolver requerimientos
DNS basados en expresiones regulares POSIX. Por
lo tanto múltiples requerimientos pueden
coincidir con la misma entrada.
• En caso de que una entrada no esté acorde con
los estándares DNS, es considerada una
expresión regular y se la marca con “R”
• La lista es ordena y chequeada de arriba hacia
abajo
• Las expresiones regulares se chequean primero, y
luego los regisrtos planos.
21
DNS Estático

22
Borrando el DNS Cache
/ip dns cache flush

flush: limpia el DNS cache

23
Laboratorio DNS Cache
• Configure el router como DNS Cache. Use
10.1.1.254 como Server Primario
• Añada la entrada DNS estática www.XY.com a la
dirección IP local de su router (XY es su número)
• Añada la entrada DNS estática www.XY.com a la
dirección IP pública de router de su vecino (XY es
el número asignado a su vecino)
• Cambie las direcciones de los Server DNS de su
laptop a las direcciones de sus routers
• Pruebe la configuración y monitoree la lista
cache.
24
DHCP

Dynamic Host Configuration Protocol

25
DHCP
• DHCP se usa para la distribución dinámica de
configuraciones de red tales como:
– IP address y netmask
– Default Gateway
– Direcciones de servidores DNS y NTP
– Más de 100 otras opciones (soportadas
únicamente por clientes DHCP específicos)
• DHCP es inseguro y debería ser usado
únicamente en redes confiables

26
DHCP
• DHCP Server siempre escucha en UDP 67
• DHCP Cliente escucha en UDP 68
• La negociación inicial involucra la
comunicación entre direcciones broadcast.
• En algunas fases el “sender” usa dirección
origen 0.0.0.0 y/o direcciones destino
255.255.255.255
• Se debe tener cuidado de esto cuando se
construye un firewall
27
Escenario de comunicación DHCP
• DHCP Discovery
– src-mac=<client>, dst-mac=<broadcast>, protocol=udp,
src-ip=0.0.0.0:68, dst-ip=255.255.255.255:67
• DHCP Offer
– src-mac=<DHCP-server>, dst-mac=<broadcast>, protocol=udp,
src-ip=<DHCP-server>:67, dst-ip=255.255.255.255:67
• DHCP Request
– src-mac=<client>, dst-mac=<broadcast>, protocol=udp,
src-ip=0.0.0.0:68, dst-ip=255.255.255.255:67
• DHCP Acknowledgment
– src-mac=<DHCP-server>, dst-mac=<broadcast>, protocol=udp,
src-ip=<DHCP-server>:67, dst-ip=255.255.255.255:67
28
Identificación de cliente DHCP
• DHCP Server puede rastrear la asociación con un
cliente particular basado en su identificación
• La identificación puede ser ejecutada en 2 formas
– Basado en la opción “caller-id” (RFC2132)
– Basado en la MAC address, si la opción “caller-id” no
está disponible
• La opción “hostname” permite a los clientes
RouterOS enviar identificación adicional al server

29
RouterOS - DHCP Client
• Solo puede haber un cliente DHCP activo por interface
• El cliente aceptará
– 1 dirección
– 1 netmask
– 1 default gateway
– 2 direcciones DNS server
– 2 direcciones NTP server
• La IP recibida con el netmask será añadido a la interfaz
correspondiente
• El default gateway será añadido a la tabla de ruteo como una
entrada dinámica
• Si ya existe una ruta por default instalada antes de que el cliente
DHCP obtenga una, la ruta obtenida por el cliente DHCP se mostrará
como inválida

30
DHCP Client

31
DHCP Server
• Solo puede haber un DHCP Server por
combinación interface/relay
• Para crear un DHCP Server se debe tener
– Dirección IP en la interface DHCP Server deseada
– Pool de direcciones (address pool) para los clientes
– Información sobre la red DHCP
• Los 3 requerimientos deben corresponder
• “Lease on Disk” debería ser usado para reducir el
número de escrituras en el drive (útil con flash
drives)

32
DHCP Server

33
DHCP Networks
• En el menú DHCP Networks se puede configurar
opciones específicas DHCP para una red particular
• Algunas de las opciones están integradas en el
RouterOS, otras pueden ser asignadas en forma
“cruda”
• Información adicional:
http://www.iana.org/assignments/bootp-dhcp-parameters/
• DHCP Server está habilitado para enviar cualquier
opción
• DHCP Client puede recibir únicamente las opciones
implementadas
34
DHCP Networks

35
DHCP Options
• Opciones DHCP implementadas
– Subnet-mask (opction 1) – netmask
– Router (option 3) – gateway
– Domain-Server (option 6) – dns-server
– Domain-Name (option 15) – domain
– NTP-Servers (option 42) – ntp-server
– NETBIOS-Name-Server (option 44) – wins-server
• Opciones DHCP configurables (Ejemplo)
– Classless Static Route (option 121) –
“0x100A270A260101”=“network=10.39.0.0/16
gateway=10.38.2.2”

36
DHCP Options

37
IP Address Pool
• Los IP Address Pool son usados para definir el
rango de direcciones IP para distribución
dinámica (DHCP, PPP, HotSpot)
• Los Address Pool deben excluir las direcciones
ya ocupadas (direcciones estáticas o de
servers)
• Es posible asignar más de un rango a un Pool
• Es posible encadenar varios Pools usando la
opción “Next Pool”
38
IP Address Pools

39
Address Pool en acción
1 2 3 4 5 6 7 8 9 10 11 12 13 14

1 2 3 4 5 6 7 8 9 10 11 12 13 14

1 2 3 4 5 6 7 8 9 10 11 12 13 14
. . .
1 2 3 4 5 6 7 8 9 10 11 12 13 14

1 2 3 4 5 6 7 8 9 10 11 12 13 14

. . .
1 2 3 4 5 6 7 8 9 10 11 12 13 14

1 2 3 4 5 6 7 8 9 10 11 12 13 14

próxima dirección dirección en uso

dirección no usada dirección reservada pero sin usar

40
Otras configuraciones DHCP Server
• Src.address: Es la dirección a la cual el DHCP Client debe enviar los
requerimientos para renovar un IP address lease. Si solo hay una
dirección estática en la interface DHCP Server y el source-address es
dejado como 0.0.0.0, entonces la dirección estática será usada. Si
existen múltiples direcciones en la interface, se debe usar una
dirección en la misma subnet del rango de direcciones a asignar
• Delay threshold: Prioriza un DHCP Server sobre otro. A mayor delay
menor prioridad
• Add ARP For Leases: Permite añadir entradas ARP para “leases” si
la interface ARP=reply-only
• Always Broadcast: Permite la comunicación con clientes non-
standard como por ejemplo pseudo-bridges
• Bootp Support: Soporte para clientes BOOTP
• Use Radius: Especifica si se usa RADIUS Server para asignación de
leases dinámicos

41
Authoritative DHCP Server
• Authoritative: Permite al DHCP Server
responder a los broadcasts de cliente no
conocidos y pide al cliente renovar el lease.
• El cliente envía un broadcast solo si el unicast
al server falla cuando se renueva el lease
• Athoritative permite
– Prevenir las operaciones de Rogue DHCP Servers
– Una adaptación más rápida de la red a cambios de
configuración DHCP

42
DHCP Server Autoritativo

43
DHCP Relay
• DHCP Relay es un proxy que permite recibir un
DHCP Discovery y un DHCP Request y reenviarlos
al DHCP Server
• Solo puede haber un DHCP Relay entre el DHCP
Server y el Cliente DHCP
• La comunicación DHCP con Relay no requiere de
dirección IP en el Relay, sin embargo la opción
“local address” del Relay debe ser la misma que
la configurada en la opción “relay address” del
Server.
44
DHCP Relay

45
Laboratorio DHCP
• Crear 3 configuraciones independientes
– Crear DHCP Server para su laptop
– Crear DHCP Server y relay para su laptop vecina
(usar la opción relay)
– Crear una red “bridged” con 2 DHCP Servers y 2
DHCP Cients (laptops) y probar las opciones
“authoritative” y “delay threshold”

46
DHCP Relay – Lab2
DHCP-Server
Name=To-DHCP-Relay
192.168.0.1/24

2 Pools
Pool1 range=192.168.1.11-192.168.1.100
Pool2 range=192.168.2.11-192.168.2.100

Name=To-DHCP-Server
192.168.0.2/24

DHCP-Relay
Name=Local1 Name=Local2
192.168.1.1/24 192.168.2.1/24

192.168.1.0/24 192.168.2.0/24

DHCP Client DHCP Client


47
DHCP Relay – Lab2
DHCP Server

/ip pool add name=Pool1 ranges=192.168.1.11-192.168.1.100


/ip pool add name=Pool2 ranges=192.168.2.11-192.168.2.100

/ip dhcp-server add interface=To-DHCP-Relay relay=192.168.1.1 address-pool=Pool1 name=DHCP-1 disabled=no


/ip dhcp-server add interface=To-DHCP-Relay relay=192.168.2.1 address-pool=Pool2 name=DHCP-2 disabled=no

/ip dhcp-server network add address=192.168.1.0/24 gateway=192.168.1.1 dns-server=159.148.60.20


/ip dhcp-server network add address=192.168.2.0/24 gateway=192.168.2.1 dns-server 159.148.60.20

DHCP-Relay

/ip dhcp-relay add name=Relay1 interface=Local1 dhcp-server=192.168.0.1 local-address=192.168.1.1 disabled=no


/ip dhcp-relay add name=Relay2 interface=Local2 dhcp-server=192.168.0.1 local-address=192.168.2.1 disabled=no

48
DHCP Relay – Lab2.1
internet

Name=Public
DHCP-client
NAT

DHCP-Server
Name=To-DHCP-Relay
2 Pools 192.168.0.1/24
Pool1 range=192.168.1.11-192.168.1.100
Pool2 range=192.168.2.11-192.168.2.100

Name=To-DHCP-Server
192.168.0.2/24

DHCP-Relay
Name=Local1 Name=Local2
192.168.1.1/24 192.168.2.1/24

192.168.1.0/24 192.168.2.0/24

DHCP Client DHCP Client

49
Firewall

50
Estructura de Filtros de Firewall
• Las reglas de filtros de firewall estan organizadas
en “chains”
• Existen “default chains” y “user-defined chains”
• 3 “default chains”
– Input: procesa los paquetes enviados al router
– Output: procesa los paquetes enviados por el router
– Forward: procesa los paquetes enviados a traves del
router
• Cada “user-defined chain” debe estar
subordinada a al menos una de las “chains” de
default.
51
Diagrama de Estructura de Filtros de Firewall

52
Connection Tracking
• Conntrack System: es el corazón del firewall.
Obtiene y maneja la información de TODAS las
conexiones activas
• Si se dehabilita el conntrack system se perderá la
funcionabilidad del NAT y tambien la mayoría de
los filtros y de las conexiones de mangle
• Cada entrada en la tabla conntrack representa un
intercambio bidireccional de datos
• Conntrack hace uso de gran cantidad de recursos
de CPU. Solo debe ser desahibilitado si no se usa
el firewall
53
Ubicación del ConnTrack

54
Conntrack System

55
Condition: Connection State
• Connection State es un estatus asignado a cada
paquete por el sistema ConnTrack
– New: el paquete está abriendo una nueva conexión
– Established: el paquete perteneces a una conexión ya
conocida
– Invalid: el paquete no pertenece a ninguna de las
conexiones conocidas
– Related: el paquete está también abriendo una nueva
conexión, pero está en algún tipo de relación a una
conexión ya conocida
• Connection state ≠ TCP state

56
Ejemplo de Regla Básica
/ip firewall filter add chain=input connection-state=invalid action=drop
comment=“Descartar paquetes invalidos”

57
Chain Input
Protección del router - permitiendo solamente
los servicios necesarios de fuentes confiables
con carga satisfactoria

58
Chain Input – Conexiones Válidas
• Estas reglas aseguran que solo las conexiones válidas vayan al
router y hará un "drop" a las inválidas

/ip firewall filter


add chain=input connection-state=established action=accept
comment="acepta los paquetes de conexiones establecidas"
disabled=no
add chain=input connection-state=related action=accept
comment="acepta los paquetes de conexiones relacionadas"
disabled=no
add chain=input connection-state=invalid action=drop
comment="descarta los paquetes inválidos" disabled=no

59
Chain Input – Address List
• Esta regla permite el acceso total al router para ciertas direcciones
IP

/ip firewall filter


add chain=input src-address-list=safe action=accept
comment="permite el acceso al router desde la red"
disabled=no

60
Connection State - Laboratorio
• Crear 3 reglas para asegurar que solamente los nuevos
paquetes connection-state procederán a pasar a traves
del filtro input
– “Drop” todos los paquetes inválidos connection-state
– “Accept” todos los paquetes relacionados connection-state
– “Accept” todos los paquetes establecidos connection-state
• Crear 2 reglas para asegurar que solamente usted
estará habilitado para conectarse al router
– “Accept” todos los paquetes desde su red local
– “Drop” todos los demás paquetes

61
Próximos problemas

Problemas:
 Algunas veces usted obtiene bastante
tráfico inusual y paquetes que pasan a
través de su router
 Algunos de sus clientes regulares usan
routers para compartir la conexión con
sus vecinos
 Algunos de sus clientes regulares usan
el puerto 80 de HTTP para tráfico P2P
encriptado

62
Tipos de Network Intrusion
• Network Intrusion es un riesgo de seguridad muy
serio que podría resultar no solo en una
denegación temporal sino también en un rechazo
total del servicio de red
• Podemos hablar de 4 tipos principales de
Network Intrusion
– Ping flood
– Port scan
– DoS attack
– DDoS attack

63
Ping Flood
• Ping flood usualmente
consiste de volúmenes
de mensajes ICMP
aleatorios
• Con la condición “limit”
es posible limitar la
regla para que coincida
con un límite dado
• Esta condición se usa
frecuentemente con la
acción “log”

64
Tipos de mensaje ICMP
• El router típico usa solamente 5 tipos de
mensajes ICMP (type:code)
– Para PING: mensajes 0:0 y 8:0
– Para TRACEROUTE: mensajes 11:0 y 3:3
– Para Path MTU discovery: mensaje 3:4
• Otros tipos de mensajes ICMP deberían ser
bloqueados

65
Ejemplo de regla de mensaje ICMP

66
Chain Input – Jump
• “Salta" a cadenas que ya se han creado.
• "jumping" es muy útil porque permite reusar la misma regla en
diferentes cadenas
• Input y Forward pueden "saltar" al mismo "chain" y ejecutar las
mismas reglas

/ip firewall filter


add chain=input protocol=icmp action=jump jump-target=ICMP
comment="jump al chain ICMP" disabled=no

67
Laboratorio ICMP Flood
• Cree un nuevo chain ICMP
– (Accept) Acepte los 5 mensajes ICMP necesarios
– (Set) Configure el match rate a 5pps con
posibilidad de 5 packet burst
– (Drop) Descarte todos los otros paquetes ICMP
• Mueva todos los paquetes ICMP al chain ICMP
– Cree una regla de acción “jump” en el chain Input
– Ubíquela adecuadamente

68
Chain ICMP
• Estas reglas forman el "chain" ICMP a las cuales se saltara hacia y desde.
• Se limita varios paquetes ICMP para detener el ping flooding
/ip firewall filter
add chain=ICMP protocol=icmp icmp-options=0:0-255 limit=5,5
action=accept comment="0:0 and limit for 5pac/s" disabled=no
add chain=ICMP protocol=icmp icmp-options=3:3 limit=5,5
action=accept comment="3:3 and limit for 5pac/s" disabled=no
add chain=ICMP protocol=icmp icmp-options=3:4 limit=5,5
action=accept comment="3:4 and limit for 5pac/s" disabled=no
add chain=ICMP protocol=icmp icmp-options=8:0-255 limit=5,5
action=accept comment="8:0 and limit for 5pac/s" disabled=no
add chain=ICMP protocol=icmp icmp-options=11:0-255 limit=5,5
action=accept comment="11:0 and limit for 5pac/s" disabled=no
add chain=ICMP protocol=icmp action=drop comment="Drop everything
else" disabled=no

69
Port Scan
• Port Scan es una
“indagación” secuencial
de puertos TCP (UDP)
• PSD (Port Scan
Detection) es posible
solo para el protocolo
TCP
• Puertos bajos
– De 0 a 1023
• Puertos altos
– De 1024 a 65535
70
Ataques DoS
• El principal objetivo de los ataques DoS es el
consumo de recursos, como el tiempo de CPU o
el ancho de banda, por lo que los servicios
estándares obtendrán un Denial of Services (DoS)
• Usualmente el router es inundado con paquetes
TCP/SYN (requerimiento de conexión).
Ocasionando que el server responda con un
paquete TCP/SYN-ACK, y esperando por un
paquete TCP/ACK
• La mayoría de atacantes DoS son clientes
infectados de virus

71
Protección contra ataques DoS
• Todas las IPs con más de 10 conexiones al router
deberían ser consideradas como atacantes DoS
• Con cada conexión TCP descartada (dropped) se
permitirá al atacante crear una nueva conexión
• Deberíamos implementar la protección DoS en 2
pasos
– Detection: creando una lista de atacantes DoS en base
a la conexión límite
– Suppression: aplicando restricciones a los atacantes
DoS detectados

72
Detección de ataques DoS

73
Supresión de ataques DoS
• Para detener al
atacante de crear
nuevas conexiones se
usa la opción “tarpit”
• Se debe ubicar esta
regla antes de la regla
de detección o sino la
entrada del address-list
la reescribirá todo el
tiempo

74
Laboratorio DoS - PSD
• Crear protección PSD
– Crear una regla PSD Drop en el chain Input
– Ubicarla adecuadamente
• Crear protección DoS
– Crear una regla para suprimir DoS en el chain Input
– Ubicarla adecuadamente
– Crear una regla para detectar DoS en el chain Input
– Ubicarla adecuadamente

75
Chain Input – Port Scanning - DoS
• Estas reglas son reactivas a intentos de DoS y port scanning.
• Port scanning es dado de baja, pero un ataque DoS es "tarpited"

/ip firewall filter


add chain=input protocol=tcp psd=21,3s,3,1 action=drop
comment="detecta and descarta las conexiones de port scan"
disabled=no
add chain=input protocol=tcp connection-limit=3,32 src-address-
list=black_list action=tarpit comment="suprime los ataques
DoS" disabled=no
add chain=input protocol=tcp connection-limit=10,32 action=
add-src-to-address-list address-list=black_list address-
list-timeout=1d comment="detecta ataques DoS" disabled=no

76
Ataques DDoS
• Un ataque Distributed
Denial of Service es
muy similar al ataque
DoS, y ocurre desde
múltiples sistemas
comprometidos
• La única cosa que
podría ayudar es la
opción “TCPSyn
Cookie” en el
Conntrack System
77
Chain Input – Broadcast
• Esta regla permite el tráfico broadcast al router
• Esto es necesario algunas veces por servicios como NTP

/ip firewall filter


add chain=input dst-address-type=broadcast action=accept
comment="permitir trafico Broadcast" disabled=no

78
Servicios de RouterOS

79
Chain Services
• Los siguientes son servicios que permite a CUALQUIERA acceder al router.
• La mayoría están deshabilitados por default
• Usualmente los siguientes servicios deberían estar siempre disponibles
– MAC Telnet
– Bandwidth Test Server
– MT Discovery

/ip firewall filter


add chain=services src-address-list=127.0.0.1 dst-address=127.0.0.1
action=accept comment="accept localhost" disabled=no
add chain=services protocol=udp dst-port=20561 action=accept comment="allow
MACwinbox " disabled=no
add chain=services protocol=tcp dst-port=2000 action=accept
comment="Bandwidth server" disabled=no
add chain=services protocol=udp dst-port=5678 action=accept comment=" MT
Discovery Protocol" disabled=no
add chain=services protocol=tcp dst-port=161 action=accept comment="allow
SNMP" disabled=yes

80
Chain Services
/ip firewall filter
add chain=services protocol=udp dst-port=123 action=accept comment="Allow
NTP" disabled=yes
add chain=services protocol=tcp dst-port=1723 action=accept comment="Allow
PPTP" disabled=yes
add chain=services protocol=gre action=accept comment="allow PPTP and EoIP"
disabled=yes
add chain=services protocol=tcp dst-port=53 action=accept comment="allow
DNS request" disabled=yes
add chain=services protocol=udp dst-port=53 action=accept comment="Allow
DNS request" disabled=yes
add chain=services protocol=udp dst-port=1900 action=accept comment="UPnP"
disabled=yes
add chain=services protocol=tcp dst-port=2828 action=accept comment="UPnP"
disabled=yes
add chain=services protocol=udp dst-port=67-68 action=accept comment="allow
DHCP" disabled=yes
add chain=services protocol=tcp dst-port=8080 action=accept comment="allow
Web Proxy" disabled=yes
add chain=services protocol=tcp dst-port=443 action=accept comment="allow
https " disabled=yes
add chain=services action=return comment="" disabled=no

81
Servicios RouterOS - Laboratorio
• Crear un “chain” servicios
• Crear reglas para permitir que los servicios
necesarios al RouterOS sean accedidos
• Crear un a regla “jump” desde la cadena
“input” a la cadena “services”
• Escribir un comentario para cada regla de
firewall
• Verificar la comunicación con su vecino
82
Chain Input – Final
• Esta regla deniega todos los accesos al router
• Si el trafico no ha sido aceptado por uno de las reglas anteriores,
entonces se da de baja

/ip firewall filter


add chain=input action=log log-prefix="Filter:" comment=""
disabled=no
add chain=input action=drop comment= "descartar todo lo demas"
disabled=no

83
Chain Forward
Protección a los clientes de virus y Protección
del internet de los clientes

84
Chain Forward – Conexiones Válidas
• Estas reglas aseguran que solo se acepten las conexiones válidas
QUE PASAN A TRAVES del router y hará un "drop" a las inválidas

/ip firewall filter


add chain=forward connection-state=established action=accept
comment="acepta los paquetes de conexiones establecidas"
disabled=no
add chain=forward connection-state=related action=accept
comment="acepta los paquetes de conexiones relacionadas"
disabled=no
add chain=forward connection-state=invalid action=drop
comment="descarta los paquetes inválidos" disabled=no

85
Control de Virus
• Filtro para descartar todos los paquetes no-deseados que parezcan
venir de equipos infectados.
• En lugar de añadir esta regla en el chain forward, vamos a crear un
nuevo chain para todo el trafico netbios (y similar)

/ip firewall filter


add chain=virus protocol=tcp dst-port=135-139 action=drop
comment="Drop Blaster Worm"
add chain=virus protocol=udp dst-port=135-139 action=drop
comment="Drop Messenger Worm"
add chain=virus protocol=tcp dst-port=445 action=drop
comment="Drop Blaster Worm"
add chain=virus protocol=udp dst-port=445 action=drop
comment="Drop Blaster Worm"

86
Control de Virus
/ip firewall filter
add chain=virus protocol=tcp dst-port=593 action=drop comment="________"
add chain=virus protocol=tcp dst-port=1024-1030 action=drop
comment="________"
add chain=virus protocol=tcp dst-port=1080 action=drop comment="Drop
MyDoom"
add chain=virus protocol=tcp dst-port=1214 action=drop comment="________"
add chain=virus protocol=tcp dst-port=1363 action=drop comment="ndm
requester"
add chain=virus protocol=tcp dst-port=1364 action=drop comment="ndm server"
add chain=virus protocol=tcp dst-port=1368 action=drop comment="screen
cast"
add chain=virus protocol=tcp dst-port=1373 action=drop comment="hromgrafx"
add chain=virus protocol=tcp dst-port=1377 action=drop comment="cichlid"
add chain=virus protocol=tcp dst-port=1433-1434 action=drop comment="Worm"
add chain=virus protocol=tcp dst-port=2745 action=drop comment="Bagle
Virus"
add chain=virus protocol=tcp dst-port=2283 action=drop comment="Drop
Dumaru.Y"

87
Control de Virus
/ip firewall filter
add chain=virus protocol=tcp dst-port=2535 action=drop comment="Drop Beagle"
add chain=virus protocol=tcp dst-port=2745 action=drop comment="Drop Beagle.C-K"
add chain=virus protocol=tcp dst-port=3127-3128 action=drop comment="Drop MyDoom"
add chain=virus protocol=tcp dst-port=3410 action=drop comment="Drop Backdoor
OptixPro"
add chain=virus protocol=tcp dst-port=4444 action=drop comment="Worm"
add chain=virus protocol=udp dst-port=4444 action=drop comment="Worm"
add chain=virus protocol=tcp dst-port=5554 action=drop comment="Drop Sasser"
add chain=virus protocol=tcp dst-port=8866 action=drop comment="Drop Beagle.B"
add chain=virus protocol=tcp dst-port=9898 action=drop comment="Drop Dabber.A-B"
add chain=virus protocol=tcp dst-port=10000 action=drop comment="Drop Dumaru.Y"
add chain=virus protocol=tcp dst-port=10080 action=drop comment="Drop MyDoom.B"
add chain=virus protocol=tcp dst-port=12345 action=drop comment="Drop NetBus"
add chain=virus protocol=tcp dst-port=17300 action=drop comment="Drop Kuang2"
add chain=virus protocol=tcp dst-port=27374 action=drop comment="Drop SubSeven"
add chain=virus protocol=tcp dst-port=65506 action=drop comment="Drop PhatBot,
Agobot, Gaobot"

88
Chain Forward – Jump
• La lista anterior contiene los puertos y protocolos “malos” usados
por varios virus y troyanos.
• Se puede saltar a esta lista desde el chain forward usando
action=jump

/ip firewall filter


add chain=forward action=jump jump-target=virus comment=“saltar
al virus chain“

• Si el paquete no concuerda con ninguna de la reglas del virus-chain, el


procesamiento se regresa al chain-forward

89
Chain Forward – HTTP/SNMP
• Bloquear todo el trafico excepto el que especificamente se permite
pasar.
• Permitir HTTP y SMTP, algunos TCP y UDP, e ICMP (ping)

/ip firewall filter


add chain=forward action=accept protocol=tcp dst-port=80
comment="permitir HTTP"
add chain=forward action=accept protocol=tcp dst-port=25
comment="permitir SMTP"
add chain=forward protocol=tcp comment="permitir TCP"
add chain=forward protocol=icmp comment="permitir ping"
add chain=forward protocol=udp comment="permitir udp"
add chain=forward action=drop comment="drop todo lo demas"

90
Laboratorio Chain Forward
• Crear 3 reglas para asegurar que solamente los
paquetes connection-state=new pasarán a través
del filtro forward
– “Drop” todos los paquetes connection-state=invalid
– “Accept” todos los paquetes connection-state=related
– “Accept” todos los paquetes connection-state=established
• Crear una regla “jump” para el chain “viruses”

91
Bogon IPs
• Hay aproximadamente 4,3 billones de direcciones IPv4
• Hay varios rangos de direcciones IP restringidas en la red pública
• Hay varios rangos de IP reservados (que no se usan hasta el
momento) para propósitos específicos
• Hay muchos rangos de IP sin usar

http://www.iana.org/assignments/ipv4-address-space/

92
Bogon IPs
0.0.0.0/8 reserved for self-identification [RFC3330]

10.0.0.0/8 (10.x.x.x)

127.0.0.0/8 is reserved for Loopback [RFC3330]

169.254.0.0/16 reserved for Link Local [RFC3330]

172.16.0.0/12 reserved for Private-Use Networks [RFC1918]


(172.16.x.x - 172.31.x.x)

192.0.2.0/24 reserved for TEST-NET-1 [RFC-iana-ipv4-examples-02.txt]


192.88.99.0/24 reserved for 6to4 Relay Anycast [RFC3068]
192.168.0.0/16 reserved for Private-Use Networks [RFC1918]

198.18.0.0/15 reserved for Network Interconnect Device Benchmark Testing


198.51.100.0/24 reserved for TEST-NET-2 [RFC-iana-ipv4-examples-02.txt]

203.0.113.0/24 reserved for TEST-NET-3 [RFC-iana-ipv4-examples-02.txt]

93
Opciones Address List

• En lugar de crear una


regla de filtrado para
cada dirección de red
IP, usted puede crear
una única regla de lista
de direcciones IP
• Use las opciones
“Src./Dst. Address List
• Cree un Address List
en el menú
“/ip firewall address-list”
94
Laboratorio Address List
• Haga un Address List de Bogon IPs más comunes

95
Address List - Laboratorio
• Permitir que solo los paquetes de direcciones válidas de internet
ingresen a la red
• Permitir que solo los paquetes de direcciones de clientes
conocidos ingresen a la red
• Permitir que solo los paquetes de direcciones de cientes válidos
salgan de la red
• Permitir que solo los paquetes a direcciones válidas de internet
salgan de la red
• Ubicar las reglas adecuadamente

96
Network Address Translation
(NAT)
Destination NAT, Source NAT, NAT Traversal

97
Tipos de NAT
• Puesto que hay solo 2 direcciones IP y 2 puertos
en una cabecera de paquete IP, solo hay 2 tipos
de NAT
– El uno, re-escribe la direccion IP origen y/o el puerto =
source NAT (src-nat)
– El otro, re-escribe la dirección IP destino y/o el puerto
= destination NAT (dst-nat)
• Las reglas de Firewall NAT solo procesan el primer
paquete de cada conexión (Paquetes de
Conecction State = “new”)

98
Firewall NAT Structure
• Dstnat – procesa el trafico que se envia a y a
traves del router, antes de dividirlo en las
cadenas “input” y “forward” de los filtros de
firewall
• Srcnat – procesa el trafico que se envia desde
y a traves del router, despues de que se ha
fusionado de los chains “output” y “forward”
de los filtros de firewall

99
Dst-nat
• Las reglas de Firewall NAT están organizadas en
cadenas (chains)
• Existe 2 chains por default
– Dstnat: procesa el tráfico enviado hacia y a través del
router, antes de dividirlo en los chain “input” y
“forward” del firewall filter
– Srcnat: procesa el tráfico enviado desde y hacia el
router, después que ha sido fusionado de los chain
“output” y “forward” del firewall filter
• Existen tambien chains definidos por el usuario

100
Diagrama de IP Firewall

101
Dst-nat
• La acción “dst-nat” cambia la dirección y
puerto destino del paquete a una dirección y
puerto especificado
• Esta acción solo puede hacerse en el chain
dstnat
• Aplicación típica: asegurar el acceso a los
servicios de red local desde redes públicas

102
Ejemplo de dst-nat

103
Redirect
• Cambia la dirección destino del paquete a la
dirección y puerto especificado del router
• Esta acción solo puede ejecutarse en el chain
“dstnat”
• Aplicación típica: hacer proxy transparente de
servicios de red (DNS, HTTP)

104
Ejemplo de Regla Redirect

105
Redirect - Laboratorio
• Capturar todos los paquetes TCP y UDP en el
puerto 53 originados en su red privada
192.168.XY.0/24 y redireccionarla al router
• Configurar los DNS Server de las laptops para
que tome las direcciones automáticamente
• Limpiar los cache de los DNS de los routers y
de los browsers
• Intentar navegar a internet
• Revisar el DNS cache del router
106
Dst-nat Laboratorio
• Capturar todos los paquetes TCP en puerto 80
originados en la red privada 192.168.XY.0/24 y
cambiar la dirección destino a 10.1.1.254
usando la regla dst-nat
• Limpiar el cache del browser y de las laptops
• Intentar navegar a internet

107
Universal Plug-and-Play
• Mikrotik RouterOS permite habilitar el soporte
UPnP para el router
• UPnP permite establecer conectividad en ambas
direcciones incluso si el cliente esta detrás de un
NAT. El cliente debe tener tambien soporte UPnP
• Existen 2 tipos de interfaces de tipo UPnP
habilitados en el router
– Internal: a la que estan conectados los clientes locales
– External: a la que esta conectada Internet

108
Universal Plug-and-Play

109
Primeros clientes VIP

Clients:
Situación: “I love my ISP”
Usted tiene direcciones IP privadas y
direcciones públicas /30. Web-server
Usted algunas veces alcanza la velocidad
límite del ISP (5Mbps/5Mbps)
Requerimientos:
VIP client 2
Direcciones IP públicas para clientes VIP

Garantizar la velocidad para los clientes

VIP
VIP client 1

110
Inconvenientes del Source NAT
• Los hosts atrás de un router NAT-enabled no
tienen una verdadera conectividad end-to-end
– No se puede iniciar una conexión desde afuera
– Algunos servicios TCP trabajarán en modo pasivo
– El src-nat detrás de varias direcciones IP es
impredecible
– Algunos protocolos requerirán los llamados NAT
Helpers para poder trabajar correctamente (NAT
Traversal)

111
NAT Helpers
• Se puede especificar puertos para los NAT Helpers que
ya existen, pero no se puede añadir nuevos Helpers

112
Laboratorio src-nat
• Se le ha asignado una dirección IP pública
10.1.1.XY/24
• Añada la regla src-nat para “ocultar” su red
privada 192.168.XY.0/24 detrás de la red pública
• Conéctese desde su laptop usando Winbox, SSH,
o Telnet a través de su router al gateway principal
10.1.1.254
• Verifique la dirección IP desde la cual se está
conectando (use “/user active print” en el
gateway principal)
113
Firewall Mangle

Marcado de paquetes IP y ajuste de campos de


cabecera IP

114
Que es Mangle?
• Permite marcar los paquetes IP con marcas
especiales
• Estas marcas son usadas por otros recursos
como ruteo y admistración de ancho de banda
para identificar los paquetes
• Adicionalmente el Mangle se usa para
modificar algunos campos en la cabecera IP,
como los campos TOS (DSCP) y TTL

115
Estructura del Mangle
• Las reglas del mangle están organizadas en
cadenas
• Existen 5 cadenas predeterminadas
– Prerouting: hace una marca antes del queue Global-In
– Postrouting: hace una marca antes del queue Global-
Out
– Input: hace una marca antes del filtro Input
– Output: hace una marca antes del filtro Output
– Forward: hace una marca antes del filtro Forward
• Se pueden añadir nuevos chains definidos por el
usuario, tantos como sean necesarios
116
Diagrama de Mangle y Queue

117
Acciones del Mangle
• Mark-connection: marca la conexión (solo el
primer paquete)
• Mark-packet: marca un flujo (todos los paquetes)
• Mark-routing: marca los paquetes para políticas
de ruteo
• Change MSS: cambia el máximo tamaño del
segmento del paquete
• Change TOS: cambia el tipo de servicio
• Change TTL: cambia el time-to-live
• Strip IPv4 options

118
Marcando Conexiones
• Se usa mark-connection para identificar uno o
un grupo de conexiones
• Las marcas de conexiones son almacenadas in
tabla connection tracking
• Solo puede haber una marca de conexión para
una conexión
• Connection Tracking ayuda a asociar cada
paquete a una conexión específica
(connection mark)
119
Regla de Marcado de Conexión

120
Marcado de Paquetes
• Los paquetes pueden ser marcados
– Indirectamente: usando el recurso Connection
Tracking, basado en conecction marks creados
previamente (es más rápido)
– Directamente: sin el Connection Tracking. No se
necesitan connection marks, el router comparará
cada paquete en base a una conexión dada. Este
proceso imita algo de las características del
connection tracking

121
Regla del Marcado de Paquetes

122
Mangle Packet Mark - Laboratorio
• Marcar todas las conexiones de 192.168.XY.1
(VIP1_conn)
• Marcar todos los paquetes de las conexiones
VIP1_conn
• Marcar todas las conexiones de 192.168.XY.2
(VIP2_conn)
• Marcar todos los paquetes de las conexiones
VIP2_conn
• Marcar todas las otras conexiones (other_conn)
• Marcar todos los paquetes de las otras conexiones
other_conn

123
Vista del Mangle

124
Mangle Action “change-ttl”
• TTL es un límite de dispositivos de Capa 3 (L3)
que el paquete IP puede experimentar antes de
que sea descartado
• El valor por default del TTL es 64 y cada router
reduce el valor en uno justo antes de la hacer el
forwarding
• El router no pasará el tráfico al siguiente
dispositivo si recibe un paquete IP con TTL=1
• Aplicación útil: eliminar la posibilidad a los
clientes de crear redes enmascaradas
125
Cambiando el TTL

126
HTB

Hierarchical Token Bucket

127
HTB
• Toda la implementación de Calidad de Servicio
(QoS) en RouterOS está basado en HTB
• HTB permite crear una estructura de cola
jerárquica y determinar relaciones entre colas
padres e hijos, y la relación entre las colas
hijos
• RouterOS soporta 3 HTBs virtuales (global-in,
global-total, global-out) y una más justo antes
de cada interface

128
Mangle y HTBs

129
HTB (cont.)
• Cuando el paquete viaja a través del router,
pasa todos los 4 árboles HTB
• Cuando el paquete viaja hacia el router, pasa
solamente los HTB global-in y global-total
• Cuando el paquete viaja desde el router pasa
por global-out, global-total y la interface HTB

130
HTB - Estructura
• Tan pronto como una cola tiene por lo menos un
hijo, se vuelve una cola padre
• Todas las colas hijos (no importa cuantos niveles
de padres ellos tengan) están en el mismo nivel
bajo de HTB
• Las colas hijo son las que efectúan el consumo de
tráfico, las colas padre son responsables
únicamente de la distribución del tráfico
• Las colas hijo obtendrán primero el limit-at y
luego el resto del tráfico será distribuido por los
padres
131
HTB - Estructura

132
HTB – Dual Limitation
• HTB tiene 2 límites de tasa
– CIR (Committed Information Rate) – (limit-at en
RouterOS): en el peor escenario el flujo de datos tendrá
esta cantidad de tráfico sin importar que (asumiendo que
se pudiera enviar tal cantidad de datos)
– MIR (Maximal Information Rate) – (max-limit en
RouterOS): en el mejor escenario, es la tasa que el flujo
puede obtener, si es que el padre de la cola (queue) tiene
ancho de banda de reserva
• En primera instancia el HTB tratará de satisfacer cada
limit-at de las colas hijos, solamente entonces tratará
de alcanzar el max-limit

133
Dual Limitation
• La tasa máxima (maximal rate) del padre debe
ser igual o mayor que la suma de los CIR de los
hijos
– MIR (parent) >= CIR (child1)+…+CIR(child N)
• La tasa máxima de cualquier hijo debería ser
menor o igual al maximal rate del padre
– MIR (parent) >= MIR (child 1)
– MIR (parent) >= MIR (child 2)
– MIR (parent) >= MIR (child N)

134
HTB limit-at

135
HTB – limit-at
• Queue01 limit-at=0Mbps max-limit=10Mbps
• Queue02 limit-at=4Mbps max-limit=10Mbps
• Queue03 limit-at=6Mbps max-limit=10Mbps priority=1
• Queue04 limit-at=2Mbps max-limit=10Mbps priority=3
• Queue05 limit-at=2Mbps max-limit=10Mbps priority=5

Resultado

• Queue03 recibirá 6Mbps


• Queue04 recibirá 2Mbps
• Queue05 recibirá 2Mbps

Clarification: HTB was build in a way, that, by satisfying all limit-ats, main
queue no longer have throughput to distribute

136
HTB – max-limit

137
HTB – max-limit
• Queue01 limit-at=0Mbps max-limit=10Mbps
• Queue02 limit-at=4Mbps max-limit=10Mbps
• Queue03 limit-at=2Mbps max-limit=10Mbps priority=3
• Queue04 limit-at=2Mbps max-limit=10Mbps priority=1
• Queue05 limit-at=2Mbps max-limit=10Mbps priority=5

Resultado

• Queue03 recibirá 2Mbps


• Queue04 recibirá 6Mbps
• Queue05 recibirá 2Mbps

Clarification: After satisfying all limit-ats HTB will give throughput to queue
with highest priority.

138
Características HTB - Priority
• Trabaja solo en las colas hijos
• 8 = prioridad más baja
• 1 = prioridad más alta
• La cola con la prioridad más alta tendrá la
oportunidad de satisfacer su max-limit antes
que las otras colas
• La priorización del tráfico actual trabajará
únicamente si los límites son especificados.
Las colas sin límites no priorizarán NADA
139
HTB - limit-at del Padre

140
HTB – limit-at del Padre
• Queue01 limit-at=0Mbps max-limit=10Mbps
• Queue02 limit-at=8Mbps max-limit=10Mbps
• Queue03 limit-at=2Mbps max-limit=10Mbps priority=1
• Queue04 limit-at=2Mbps max-limit=10Mbps priority=3
• Queue05 limit-at=2Mbps max-limit=10Mbps priority=5

Resultado

• Queue03 recibirá 2Mbps


• Queue04 recibirá 6Mbps
• Queue05 recibirá 2Mbps

Clarification: After satisfying all limit-ats HTB will give throughput to queue with
highest priority. But in this case inner queue Queue02 had limit-at specified, by
doing so, it reserved 8Mbps of throughput for queues Queue04 and Queue05.
From these two Queue04 have highest priority, that is why it gets additional
throughput.

141
HTB – limit-at > max-limit del Padre

142
HTB – limit-at > max-limit del Padre
• Queue01 limit-at=0Mbps max-limit=10Mbps
• Queue02 limit-at=4Mbps max-limit=10Mbps
• Queue03 limit-at=6Mbps max-limit=10Mbps priority=1
• Queue04 limit-at=2Mbps max-limit=10Mbps priority=3
• Queue05 limit-at=12Mbps max-limit=15Mbps priority=5

Resultado

• Queue03 recibirá ~3Mbps


• Queue04 recibirá ~1Mbps
• Queue05 recibirá ~6Mbps

Clarification: Only by satisfying all limit-ats HTB was forced to allocate 20Mbps -
6Mbps to Queue03, 2Mbps to Queue04, 12Mbps to Queue05, but our output
interface is able to handle 10Mbps. As output interface queue is usually FIFO
throughput allocation will keep ratio 6:2:12 or 3:1:6

143
Queue Tree

Estructura Avanzada de Colas

144
Queue Tree
• Es una implementación directa de HTB
• Cada cola en “queue tree” puede ser asignada únicamente
en un HTB
• Cada “cola hijo” DEBE tener un “packet mark” asignado a él

145
Queue Tree y Simple Queues
• El Queue Tree puede ser ubicado en 4 lugares
diferentes:
– Global-in (la parte “direct” de los simple queues son
ubicados aquí automáticamente)
– Global-out (la parte “reverse” de los simple queues son
ubicados aquí automáticamente)
– Global-total (la parte “total” de los simple queues son
ubicados aquí automáticamente)
– Interface queue
• Si se implementa en el mismo lugar Simple Queue, éste
tomará el tráfico antes que el Queue Tree

146
HTB Lab
• Crear un Queue Tree del laboratorio anterior
• Extender la configuración del Mangle y del Queue Tree para
priorizar el tráfico ICMP y HTTP sobre todo el resto de tráfico
SOLAMENTE para clientes válidos
– Reemplace el “packet-mark” de los clientes válidos con 3 marcas
específicas de tipo de tráfico
– Cree 3 colas hijo para las colas de clientes válidos en queue tree
– Asigne marcas de paquetes a las colas
• Cree el mismo Queue Tree pero para Upload
• Consuma todo el tráfico disponible usando el bandwidth-test
(a través del router) y verifique los tiempos de respuesta del
PING
• Cambie la configuración del ICMP a la más alta
• Verifique los tiempos de respuesta del PIN
147
ISP de tamaño mediano

Situación:
Su red está creciendo rápidamente y
ahora oferce IPs públicas a sus clientes
Requerimientos:
Transferir todos los viejos clientes
de las direcciones locales a
direcciones públicas
Incrementar el desempeño de la

navegación
148
NAT Action “Netmap”
• Puede ser usado en ambos chains src-nat y dst-
nat
• Permite crear un NATeo de un rango de
direcciones a otro rango de direcciones con solo
una regla
• Se puede enmascarar 192.168.0.3-192.168.0.103
(100 direcciones) a 88.188.32.3-88.188.32.103
con solo una regla
• Es posible redireccionar 88.188.32.3-
88.188.32.103 (100 direcciones ) a 192.168.0.3-
192.168.0.103 con una segunda regla
149
NAT Action “same”
• Puede ser usado en ambos chains src-nat y dst-
nat
• Asegura que el cliente será NATeado a la misma
dirección del rango especificado cada vez que
intente comunicarse con un destino que fue
usado antes
• Si el cliente obtiene la IP 88.188.32.104 del rango
cuando se comunicó a un server específico, cada
vez que se comunique con ese Server usará la
misma dirección
150
Característica “Burst” del QoS
• Burst es una de las mejores formas de
incrementar el desempeño HTTP
• Los Bursts son usados para permitir altas tasas de
datos por un período corto de tiempo
• Si una tasa de datos promedio es menor que el
burst-threshold, el burst puede ser usado (la tasa
de datos actual puede alcanzar el burst-limit)
• La tasa de datos promedio se calcula del últimos
segundos de burst-time
151
Burst – Tasa de datos promedio
• La tasa de datos promedio (average data rate) se
calcula de la siguiente forma:
– Burst-time se divide en 16 períodos
– El router calcula average data rate de cada clase sobre
esos pequeños períodos
• Note que el actual burst period no es igual al burst-
time. Puede ser varias veces más corto que el burst-
time dependiendo del histórico de los parámetros
max limit, burst-limit, burst-threshold, y actual data
rate (ver el gráfico ejemplo en el siguiente slide)
• longest-burst-time = burst-threshold * burst-time / burst-limit
152
Burst

153
Burst (Parte 2)

154
Web proxy
• Web-proxy tiene 3 carácterísticas principales
– Caching de tráfico HTTP y FTP
– Filtro de nombres DNS
– Redireccionamiento de DNS
• Web-proxy tiene dos modos de operación
– Regular: el browser debe ser configurado para
usar este proxy
– Transparent: este proxy no es visible a los clientes
y se deben aplicar reglas de NAT

155
Web-proxy Caching

No caching
Max-cache-size = none
Cache to RAM
Max-cache-size ≠ none
Cache-on-disk = no
Cache to HDD
Max-cache-size ≠ none
Cache-on-disk = yes
Cache drive

156
Opciones Web-Proxy
Maximal-client-
connections - number of
connections accepted
from clients
Maximal-server-
connections - number of
connections made by
server

157
Opciones Web-proxy
• Serialize-connections: usa solo una conexión
para la comunicación proxy y server (si el server
soporta conexión HTTP persistente)
• Always-from-cache: ignora las peticiones
“refresh” del cliente si el contenido es “fresco”
• Max-fresh-time: especifica cuánto tiempo los
objetos sin un tiempo de expiración explícita
serán considerados “frescos”
• Cache-hit-DSCP: especifica el valor DSCP para
todos los paquetes generados desde el web-
proxy cache
158
Estadísticas Web-proxy

159
Proxy Rule Lists
• Web-proxy soporta 3 conjuntos de reglas para
peticiones de filtrado HTTP
– Access List: dicta la política de si permitir o no
requerimientos HTTP específicos
– Direct Access List: trabaja solo si se especifica el
parent-proxy . Dicta la política de si hacer
“bypass” el parent proxy por un requerimiento
específico HTTP, o no.
– Cache List: dicta la política de si permitir o no que
un requerimiento HTTP específico sea “cached”

160
Proxy Rules
• Es posible interceptar
requerimientos HTTP
basados en
– Información TCP/IP
– URL
– Método HTTP
• Access List también
permite redireccionar
peticiones denegadas a
una página específica

161
URL Filtering
http://www.mikrotik.com/docs/ros/2.9/graphics:packet_flow31.jpg

Destination host Destination path

• Caracteres especiales
– “*” cualquier número de caracteres
– “?” cualquier carácter
• www.mi?roti?.com
• www.mikrotik*
• *mikrotik*

162
Expresiones Regulares
• Ubique “:” al comienzo para habilitar un modo de
expresión regular
– “^” mostrar que ningún símbolo es permitido antes
del patrón dado
– “$” mostrar que ningún símbolo es permitido después
del patrón dado
– “[….]” una clase de caracter concuerda con un simple
caracter de todas las posibiliades ofrecidas por la clase
de caracteres
– \ (backslash) seguido de cualquier [\^$.|?*+()
suprime su significado especial

163
Laboratorio Web-Proxy
• Habiltar el transparent web-proxy en su
router haciendo caching a la memoria
• Crear reglas en el access list para chequear su
funcionalidad
• Crear reglas en el direct access list para
chequear su funcionalidad
• Crear reglas en el cache list para chequear su
funcionalidad

164
Tipos de Queue
• RouterOS tiene 4 tipos de colas:
– FIFO: First In First Out (para Bytes o para Paquetes)
– RED: Random Early Detect (o Drop)
– SFQ: Stochastic Fairness Queuing
– PCQ: Per Connection Queuing (Propietario de
MikroTik)
• Cada Queue Type tiene 2 aspectos
– Aspecto de Scheduler
– Aspecto de Shaper

165
100% Shaper

www.mikrotikxperts.com 166
100% Scheduler

www.mikrotikxperts.com 167
Default Queue Types

168
FIFO (comportamiento)
Lo que llega primero se maneja primero, lo que llega
después espera hasta que el primer paquete es finalizado.
El número de unidades de espera (Paquetes o Bytes) es
limitado por la opción “queue size”. Si el queue está lleno
las siguientes unidades son descartadas

169
170
171
RED (comportamiento)
• Similar a FIFO con la carácterística
de que existe la probabilidad de un
drop adicional incluso si el queue
no está lleno
• Esta probabilidad se basa en la
comparación del promedio de la
longitud del queue sobre algún
período de tiempo para un
threshold mínimo o máximo.
Mientras más cercano esté al
máximo Threshold es más grande
la probabilidad de que se haga un
drop

172
173
SFQ (comportamiento)
• Basado en el valor hash de las direcciones origen y
destino, el SFQ divide el tráfico en 1024 sub-streams
• Entonces el algoritmo Round Robin distribuirá igual
cantidad de tráfico a cada sub-stream

174
175
Ejemplo SFQ
• SFQ debería ser usado para balancear
conexiones similares
• SFQ se debe usar para administrar el flujo de
información hacia o desde los servers, por lo
tanto puede ofrecer servicios a cada cliente
• Ideal para la limitación de tráfico P2P. Es
posible ubicar límites estrictos sin hace “drop”
a las conexiones

176
PCQ (comportamiento)
• El tráfico se divide en sub-streams. Cada sub-stream
puede ser considerado como una cola FIFO con un
tamaño de queue especificado por la opción “limit”
• Después este PCQ puede ser considerado como un
FIFO queue donde el queue size es especificado por la
opción “total-limit”

177
178
179

También podría gustarte