Connection Rate es un comparador de firewall que permite capturar tráfico en función de la velocidad actual de la conexión.
Teoría
Cada entrada en la tabla de seguimiento de conexiones representa una comunicación bidireccional. Cada vez que un paquete se asocia a una entrada específica, el valor del tamaño del paquete (incluido el encabezado IP) se suma al valor de «bytes de conexión» de esta entrada. (En otras palabras, «bytes de conexión» incluye tanto la carga como la descarga).
La velocidad de conexión calcula la velocidad de conexión basándose en la variación de los bytes de conexión. La velocidad de conexión se recalcula cada segundo y no tiene promedios.
Las opciones «bytes de conexión» y «velocidad de conexión» solo funcionan con tráfico TCP y UDP (debe especificar un protocolo para activarlas). En «velocidad de conexión», puede especificar el rango de velocidad que desea capturar:
ConnectionRate ::= [!]From-To
From,To ::= 0..4294967295 (integer number)
Ejemplo de regla
Estas reglas capturarán el tráfico TCP/UDP que pasaba por el enrutador cuando la velocidad de conexión era inferior a 100 kbps:
/ip firewall filter
add action=accept chain=forward connection-rate=0-100k protocol=tcp
add action=accept chain=forward connection-rate=0-100k protocol=udp
Ejemplo de aplicación: Priorización del tráfico
La velocidad de conexión se puede utilizar de varias maneras, que aún deben implementarse, pero la configuración más común será detectar y priorizar las conexiones de alta velocidad (conexiones que mantienen una velocidad rápida durante largos períodos, como descargas P2P, HTTP y FTP). De esta manera, se puede priorizar el resto del tráfico, que suele incluir navegación VoIP y HTTP, y juegos en línea.
El método descrito en este ejemplo puede utilizarse junto con otras formas de detectar y priorizar el tráfico. Dado que la opción de velocidad de conexión no tiene promedios, debemos determinar cuál será el margen que identifica las «conexiones pesadas». Si asumimos que una conexión de navegación HTTP normal tiene una longitud inferior a 500 kB (4 MB) y VoIP no requiere más de 200 kbps, entonces cualquier conexión que, después de los primeros 500 kB, siga superando los 200 kbps puede considerarse «pesada».
(Es posible que tenga diferentes «bytes de conexión» para la navegación HTTP y diferentes «velocidades de conexión» para VoIP en su red; por lo tanto, realice su propia investigación antes de aplicar este ejemplo)
Para este ejemplo, supongamos que tenemos una conexión de carga y descarga de 6 Mbps al ISP.
Inicio rápido para impacientes
/ip firewall mangle
add chain=forward action=mark-connection connection-mark=!heavy_traffic_conn new-connection-mark=all_conn
add chain=forward action=mark-connection connection-bytes=500000-0 connection-mark=all_conn connection-rate=200k-100M new-connection-mark=heavy_traffic_conn protocol=tcp
add chain=forward action=mark-connection connection-bytes=500000-0 connection-mark=all_conn connection-rate=200k-100M new-connection-mark=heavy_traffic_conn protocol=udp
add chain=forward action=mark-packet connection-mark=heavy_traffic_conn new-packet-mark=heavy_traffic passthrough=no
add chain=forward action=mark-packet connection-mark=all_conn new-packet-mark=other_traffic passthrough=no
/queue tree
add name=upload parent=public max-limit=6M
add name=other_upload parent=upload limit-at=4M max-limit=6M packet-mark=other_traffic priority=1
add name=heavy_upload parent=upload limit-at=2M max-limit=6M packet-mark=heavy_traffic priority=8
add name=download parent=local max-limit=6M
add name=other_download parent=download limit-at=4M max-limit=6M packet-mark=other_traffic priority=1
add name=heavy_download parent=download limit-at=2M max-limit=6M packet-mark=heavy_traffic priority=8
Explicación
En Mangle, necesitamos separar todas las conexiones en dos grupos y luego marcar los paquetes de esos dos grupos. Dado que hablamos del tráfico del cliente, el lugar más lógico para marcar sería la cadena Mangle hacia adelante.
Tenga en cuenta que en cuanto una conexión «pesada» tenga menor prioridad y la cola alcance el límite máximo, la velocidad y la tasa de conexión disminuirán. Esto resultará en un cambio a una prioridad más alta y la conexión podrá recibir más tráfico por un corto tiempo, para luego volver a aumentar la tasa de conexión, lo que resultará en un cambio a una prioridad más baja. Para evitar esto, debemos asegurarnos de que, una vez detectadas, las «conexiones pesadas» permanezcan marcadas como tales para siempre.
Destruir el firewall de IP
Esta regla garantizará que las conexiones «pesadas» sigan siendo pesadas y marcará el resto de las conexiones con la marca de conexión predeterminada:
/ip firewall mangle
add chain=forward action=mark-connection connection-mark=!heavy_traffic_conn new-connection-mark=all_conn
Estas dos reglas marcarán todas las conexiones pesadas según nuestros estándares, de modo que cualquier conexión que después de los primeros 500 kB aún tenga una velocidad superior a 200 kbps puede considerarse «pesada»:
add chain=forward action=mark-connection connection-bytes=500000-0 \
connection-mark=all_conn connection-rate=200k-100M new-connection-mark=heavy_traffic_conn protocol=tcp
add chain=forward action=mark-connection connection-bytes=500000-0 \
connection-mark=all_conn connection-rate=200k-100M new-connection-mark=heavy_traffic_conn protocol=udp
Las dos últimas reglas en mangle simplemente marcarán todo el tráfico de las conexiones correspondientes:
add chain=forward action=mark-packet connection-mark=heavy_traffic_conn new-packet-mark=heavy_traffic passthrough=no
add chain=forward action=mark-packet connection-mark=all_conn new-packet-mark=other_traffic passthrough=no
Cola
Este es un árbol de colas simple que se coloca en la interfaz HTB: «pública» es la interfaz donde se conecta su ISP y «local» es donde se encuentran sus clientes. Si tiene más de una interfaz «pública» o más de una «local», deberá manipular la carga y la descarga por separado y colocar el árbol de colas en la salida global.
/queue tree
add name=upload parent=public max-limit=6M
add name=other_upload parent=upload limit-at=4M max-limit=6M packet-mark=other_traffic priority=1
add name=heavy_upload parent=upload limit-at=2M max-limit=6M packet-mark=heavy_traffic priority=8
add name=download parent=local max-limit=6M
add name=other_download parent=download limit-at=4M max-limit=6M packet-mark=other_traffic priority=1
add name=heavy_download parent=download limit-at=2M max-limit=6M packet-mark=heavy_traffic priority=8
Creado por Artūrs C., actualizado por última vez por GG el abr 26, 2024
Ayuda de Mikrotik
Ilustración propia, generada con IA