OPNsense, que es uno de los mejores cortafuegos de código abierto, tiene una función de modelado del tráfico extremadamente flexible y fiable. Las reglas de modelado se gestionan por separado de las reglas del cortafuegos y otras configuraciones.
La conformación del tráfico, también conocida como conformación de paquetes, es una estrategia de gestión del ancho de banda que retrasa el flujo de paquetes de red específicos para garantizar el rendimiento de la red para aplicaciones de mayor prioridad. Generalmente se utiliza para garantizar que el tráfico de red relacionado con la empresa reciba un alto nivel de servicio. Al retrasar algunos paquetes, la conformación del tráfico puede mejorar o garantizar el rendimiento, reducir la latencia o aumentar el ancho de banda disponible para aplicaciones críticas.
Debido a la limitación de los recursos de red, la conformación del tráfico es una función imprescindible en un cortafuegos de red para garantizar la entrega de datos sensibles al tiempo y el rendimiento de las aplicaciones críticas. Es un potente método de defensa contra los ataques de denegación de servicio distribuidos (DDoS) y para garantizar la calidad del servicio. Protege sus redes contra la congestión de la red, restringe a los clientes abusivos y previene los ciberataques.
Puede que necesite limitar el ancho de banda de Internet para algunos usuarios y, al mismo tiempo, proporcionar el máximo ancho de banda a una aplicación crítica para la empresa, como la voz sobre IP (VoIP), que es especialmente sensible a la latencia.
Traffic Shaper en OPNsense
El tráfico OPNsense se configura mediante tuberías, colas y reglas correspondientes:
- Tuberías (Pipes): Las tuberías se utilizan para definir el ancho de banda permitido.
- Colas (Queues): Las colas establecen un peso dentro de la tubería. El tráfico puede priorizarse creando colas y asignándoles pesos. En otras palabras, cuando el ancho de banda total disponible es limitado, las aplicaciones con mayor peso pueden consumir más ancho de banda que otras.
- Reglas: Las reglas aplican el shaping a un flujo de paquetes específico.
- Interfaz(es)
- origen y destino IP
- dirección del tráfico (entrada/salida)
- número de puerto (aplicación)
Para este ejemplo, dividiremos el tráfico de descarga de Internet entre los usuarios conectados de tal manera que cada usuario reciba hasta un máximo de 1 Mbps.
Paso 1: crear canales de descarga y carga
En la pestaña Pipes, haz clic en el botón + en la esquina inferior derecha. Aparecerá una pantalla Editar Pipe vacía.
Create Pipe For Download
enabled |
Checked |
Check to enable the pipe |
bandwidth |
1 |
Numeric value of the desired bandwidth |
bandwidth Metric |
Mbit/s |
Metric to use with the numeric value |
mask |
destination |
Dynamic pipe per downloading client |
description |
PipeDown-1Mbps |
Free field, enter something descriptive |
Create Pipe For Upload
enabled |
Checked |
Check to enable the pipe |
bandwidth |
1 |
Numeric value of the desired bandwidth |
bandwidth Metric |
Mbit/s |
Metric to use with the numeric value |
mask |
source |
Dynamic pipe per uploading client |
description |
PipeUp-1Mbps |
Free field, enter something descriptive |
Crea siempre canales separados para limitar la descarga y la carga para evitar un comportamiento indefinido al mezclar tráfico bidireccional en un solo canal.
Paso 2: crear reglas
sequence |
21 |
Auto generated number, overwrite only when needed |
interface |
WAN |
Select the interface connected to the internet |
proto |
ip |
Select the protocol, IP in our example |
source |
any |
The source address, leave on any |
src-port |
any |
The source port to shape, leave on any |
destination |
192.168.1.0/24 |
The destination IP to shape, select LAN network |
dst-port |
any |
The destination port to shape, leave on any |
target |
PipeDown-1Mbps |
Select the 1 Mbps download pipe |
description |
ShapeDownload |
Enter a descriptive name |
sequence | 22 | Auto generated number, overwrite only when needed |
interface | WAN | Select the interface connected to the internet |
proto | ip | Select the protocol, IP in our example |
source | 192.168.1.0/24 | The source IP to shape, select LAN network |
src-port | any | The source port to shape, leave on any |
destination | any | The destination address, leave on any |
dst-port | any | The destination port to shape, leave on any |
target | PipeUp-1Mbps | Select the 1 Mbps upload pipe |
description | ShapeUpload | Enter a descriptive name |
Priorizar el uso de colas
App |
Peso |
Minimum Bandwidth |
|---|---|---|
SMTP (port 25) |
9 |
9 Mbps |
HTTP (80) |
1 |
1 Mbps |
HTTPS (443) |
Paso 1 - Crear Download Pipe
En la pestaña Tuberías (Pipes), haz clic en el botón + de la esquina inferior derecha. Aparecerá una pantalla vacía de edición de tuberías.
Crear tubería para descarga (10 Mbps)
enabled |
Checked |
Check to enable the pipe |
bandwidth |
10 |
Numeric value of the desired bandwidth |
bandwidth Metric |
Mbit/s |
Metric to use with the numeric value |
mask |
(empty) |
Leave empty |
description |
PipeDown-10Mbps |
Free field, enter something descriptive |
Paso 2 - Crear Colas ( Queues)
En la pestaña Colas, haz clic en el botón + en la esquina inferior derecha. Aparecerá una pantalla de Editar cola vacía.
Crear cola para SMTP
enabled |
Checked |
Check to enable the pipe |
pipe |
PipeDown-10Mbps |
Select our Pipe |
weight |
9 |
Weight to use with the numeric value |
mask |
(empty) |
Leave empty |
description |
Queue-SMTP |
Free field, enter something descriptive |
Create Queue for HTTP
enabled |
Checked |
Check to enable the pipe |
pipe |
PipeDown-10Mbps |
Select our Pipe |
weight |
1 |
Weight to use with the numeric value |
mask |
(empty) |
Leave empty |
description |
Queue-HTTP |
Free field, enter something descriptive |
Paso 3 - Crear reglas
En la pestaña Reglas, haz clic en el botón + en la esquina inferior derecha. Aparecerá una pantalla de Editar regla vacía.
Cree una regla para el tráfico de descarga SMTP (correo electrónico)
sequence |
11 |
Auto generated number, overwrite only when needed |
interface |
WAN |
Select the interface connected to the internet |
proto |
ip |
Select the protocol, IP in our example |
source |
any |
The source address, leave on any |
src-port |
smtp |
The source port to shape, smtp or 25 |
destination |
any |
The destination IP to shape, leave on any |
dst-port |
any |
The destination port to shape, leave on any |
target |
Queue-SMTP |
Select the SMTP queue |
description |
ShapeSMTPDownload |
Enter a descriptive name |
sequence | 21 | Auto generated number, overwrite only when needed |
interface | WAN | Select the interface connected to the internet |
proto | ip | Select the protocol, IP in our example |
source | any | The source address, leave on any |
src-port | http | The source port to shape, http or 80 |
destination | any | The destination IP to shape, leave on any |
dst-port | any | The destination port to shape, leave on any |
target | Queue-HTTP | Select the HTTP queue |
description | ShapeHTTPDownload | Enter a descriptive name |
sequence | 31 | Auto generated number, overwrite only when needed |
interface | WAN | Select the interface connected to the internet |
proto | ip | Select the protocol, IP in our example |
source | any | The source address, leave on any |
src-port | https | The source port to shape, https or 443 |
destination | any | The destination IP to shape, leave on any |
dst-port | any | The destination port to shape, leave on any |
target | Queue-HTTP | Select the HTTP queue |
description | ShapeHTTPSDownload | Enter a descriptive name |
De esta manera, el tráfico HTTP y HTTPS se tratarán de la misma manera (máximo total de 1 Mbps).
Mejora BufferBloat con Traffic Shaping en Opnsense con IPv6
Pipes
Antes de empezar tenemos que ir a Firewall > Shaper > Pipes en la interfaz de Opnsense. Allí creamos dos tuberías, una para la descarga y otra para la subida. Para crear las tuberías hacemos clic en el pequeño signo más a la derecha. Es importante activar el modo avanzado en la esquina superior izquierda para ver todas las configuraciones posibles. Ahora tenemos que cambiar el ancho de banda de acuerdo a lo que tenemos, activar (FQ-)CoDel ECN, establecer el tipo de programador a FlowQueue-CoDel y establecer la cola a 2. Los valores para el quantum y el límite se calculan después de la fórmula 300 pro 100Mbit / s. Para el 1Gbit/s es entonces 300 * 10 = 3000.
Ahora podemos guardar la primera tubería y continuar con la tubería de subida. Sólo cambiamos Scheduler type y (FQ-)CoDel ECN, como en la tubería de descarga.
Después de guardar tenemos que hacer clic en aplicar y podemos continuar con la siguiente pestaña.
Queues - Colas
A continuación cambiamos a la pestaña Colas de Shaper para crear dos colas. Las colas se pueden crear como antes haciendo clic en el signo más. En ambas colas ponemos el peso a 100 y habilitamos el (FQ-)CoDel ECN. Ambas colas sólo se diferencian por la tubería y la máscara seleccionadas. Para la cola de descarga seleccionamos download on pipe y establecemos mask to destination.
Rules - Reglas
Esta parte difiere de otras guías, porque normalmente establecen las reglas para que coincidan con los paquetes por ip de origen o destino. Esto no es posible con prefijos dinámicos, ya que cambian y tendrías que ajustar las reglas en cada cambio de prefijo. Por lo tanto, estamos comparando los paquetes por dirección de flujo en la interfaz.
Ahora cambiamos a la pestaña Reglas. Creamos dos reglas para descarga y subida. Para ello, hacemos clic en el signo más, como en los pasos anteriores, y creamos nuestra regla de acuerdo con la siguiente captura de pantalla. Importante es activar de nuevo el modo avanzado y elegir dirección en. Como destino utilizamos nuestra cola de descarga creada anteriormente. La interfaz debe ser nuestra interfaz wan, si queremos aplicar esta regla a todo el tráfico de entrada y salida.
La regla de subida es prácticamente la misma, con la única diferencia de la dirección de salida en lugar de la de entrada y el objetivo aquí es, nuestra cola de subida creada anteriormente.
Fuentes:
https://docs.opnsense.org/manual/how-tos/shaper_limit_per_user.html
https://www.zenarmor.com/docs/network-security-tutorials/how-to-set-up-traffic-shaper-in-opnsense
https://maltechx.de/en/2021/03/opnsense-setup-traffic-shaping-and-reduce-bufferbloat/
https://docs.opnsense.org/manual/how-tos/shaper_bufferbloat.html











No hay comentarios:
Publicar un comentario