[ Introducción ] [ Caso-Estudio ] [ Instalación ] [ Configuración base ] [ Alias ] [ NAT ] [ Reglas ] [ DNS ] [ DHCP ] [ Caudal ] [ OpenVPN ] [ Portal ]
[ OpenVPN sin DHCP ] [ spamd ]

Regulador de caudal ALTQ

El regulador de caudal ALTQ (Alternate Queuing) forma parte de Packet Filter (PF), originario de OpenBSD. Packet Filter (PF) está presente como estándar en FreeBSD desde noviembre del 2004. pfSense es una distribución basada en FreeBSD.

ALTQ es un conjunto de herramientas de calidad de servicio (QoS) que permiten montar colas de tráfico, asignando caudales y prioridades. ALTQ dispone de distintos modelos de funcionamiento.

pfSense emplea colas HFSC (Hierarchical Fair Service Curve) con funcionalidades ACK, RED (Random Early Detection) y ECN (Explicit Congestion Notification).

Cada cola HFSC (Hierarchical Fair Service Curve) tiene los siguientes parámetros encargados de garantizar su caudal:

En las ventanas que pfSense tiene para las colas estos parámetros se presentan en forma de tabla, excepto BandWidth que figura como primer parámetro de la cola:

 
  m1 d m2
UpperLimit      
RealTime      
LinkShare      


ALTQ
es algo complejo de configurar y ajustar, por lo que pfSense incorpora un asistente y herramientas de monitorización de las colas.


[Firewall] [Traffic Shaper] [Wizard]

Colas creadas por el asistente
Ajuste del regulador de caudal 
La otra solución para controlar P2P


[Firewall] [Traffic Shaper] [Wizard]

La primera vez que entramos aquí se ejecutará el asistente ...

¡Atención! Cuando ya tengamos configurado Traffic Shaper la simple entrada al asistente desmonta toda la configuración de Traffic Shaper. Si hacemos clic sobre el logotipo de pfSense se cancela la acción.

Hacemos clic sobre el botón para continuar con el asistente ...

Ahora tendremos que indicar:

Si se puede medir la ADSL empleando una herramienta como MRTG, mejor. En el caso expuesto se ha podido comprobar con  MRTG que "la cosa" no da para más de 1.300/250 kbit/s.

Hacemos ...

A continuación se nos pide si queremos un tratamiento especial para comunicaciones de voz sobre IP. Como que no es nuestro caso, nos saltamos la pantalla con ...

Ahora es el momento de ocuparse de las conexiones P2P. Marcamos aquí las dos primeras casillas, la de habilitar un tráfico menor para las aplicaciones P2P (Enable) y la de considerar P2P todo aquello que no esté previsto (p2pCatchAll):

 Le damos a para continuar ..

La siguiente pantalla del asistente permite otorgar tráfico prioritario a varios juegos. Hacemos de nuevo ...

Ahora se nos pedirá si deseamos activar el control de prioridades para el resto de tráfico. Lo activamos, con lo que todos los tipos de tráfico configurables (en esta ventana) tomarán la prioridad por defecto (Default priority). Una vez hecho esto le damos de nuevo a ...

Y tendremos la pantalla final del asistente ...

Aquí se dice simplemente que la activación de las colas afectará sólo a las nuevas conexiones y que si se quiere que se aplique a todas habrá que reiniciar la tabla de estados (con posible pérdida de conexiones), yendo a [Diagnostics] [States] [Reset States].

Una vez hayamos hecho clic en el botón veremos cómo se recargan las reglas (ahora hay muchas y toman su tiempo):

Y cuando termina se ofrece la posibilidad de ir directamente a ver  el estado de las colas creadas (Queue Status):

 

Colas creadas por el asistente

El asistente habrá creado las siguientes colas, con los siguientes caudales, prioridades y curvas de tráfico:

Colas-hijas de qwanRoot (Cola-madre de WAN) Colas-hijas de qAlumnesRoot (Cola-madre de Alumnes)
  Caudal Prioridad Curva   Caudal Prioridad Curva
qwandef es la cola por defecto (la mayoría del tráfico). 1 % 1
     
    1%
     
qAlumnesdef es la cola por defecto (la mayoría del tráfico). 1 % 1
     
    1%
     
qwanacks es la cola de acuse de recibo (ACK). No puede haber pérdidas (drops), ya que ello cortaría/ralentizaría las conexiones. 25 % 7
     
    10%
     
qAlumnesacks es la cola de acuse de recibo (ACK). No puede haber pérdidas (drops), ya que ello cortaría/ralentizaría las conexiones. 25 % 7
     
    10%
     
qP2PUp es la cola de subida a Internet empleando aplicaciones P2P (Emule, Ares, ...) 1 % 1
     
    1kb
     
qP2PDown es la cola de bajada de Internet empleando aplicaciones P2P (Emule, Ares, ...) 1 % 1
     
    1kb
     
qOthersUpH es la cola de otras subidas a Internet con prioridad alta (High). ¡No la necesitamos! 25 % 4
     
    1kb
     
qOthersDownH es la cola de otras bajadas de Internet con prioridad alta (High). ¡No la necesitamos! 25 % 4
     
    1kb
     
qOthersUpL es la cola de otras subidas a Internet con prioridad baja (Low). ¡No la necesitamos! 1 % 2
     
    1kb
     
qOthersDownL es la cola de otras bajadas de Internet con prioridad baja (Low). ¡No la necesitamos! 1 % 2
     
    1kb
     

Podremos ver con más detalle qué ha hecho el asistente yendo a [Firewall][Trafic Shaper] y mirando:

Observemos que las colas qOthers no las necesitamos porqué hemos dejado todos los protocolos que no son P2P en Default priority, con lo que van todos por qwandef y qAlumnesdef.


Ajuste del regulador de caudal

Yendo a [Status][Queues] del cortafuegos podremos ver gráficos en tiempo real (pfSense utiliza RRDtool como herramienta estadística) y estadísticas que nos dicen:

Yendo a [Firewall] [Traffic Shaper] [Queues] dejamos las colas de la siguiente forma, después de bastantes pruebas:

Colas-hijas de qwanRoot (Cola-madre de WAN) Colas-hijas de qAlumnesRoot (Cola-madre de Alumnes)
  Caudal Prioridad Curva   Caudal Prioridad Curva
qwandef 79 % 3
     
    35%
     
qAlumnesdef 84 % 3
     
    60%
     
qwanacks 20 % 7
     
    10%
     
qAlumnesacks 15 % 7
     
    10%
     
qP2PUp 1 kb/s 1
1kb 5000 1kb
     
     
qP2PDown 1 kb/s 1
1kb 5000 1kb
     
     

Los cambios hechos son suficientes para garantizar que no hay pérdidas de paquetes en ninguna cola, salvo en las de P2P, que es lo que nos interesa.


La otra solución para controlar los accesos P2P

La otra solución para evitar las conexiones P2P es adoptar reglas de cortafuegos y no usar ALTQ.

Para hacer esto desactivaremos Traffic Shaper en [Firewall][Traffic Shaper] y definiremos primero los siguientes alias:

Y a continuación, en la interfase de Alumnes, donde nuestra última regla es:

cambiaremos esta regla por las siguientes:

Con esto autorizaremos sólo la navegación por Internet, FTP, la actualización de la fecha/hora de los ordenadores de la red y las herramientas ICMP (PING y otras). Los puertos de 8000 a 8100 son empleados normalmente para streaming (audio y/o vídeo) o como puertos alternativos en servidores web.

Evidentemente esta solución es más segura que emplear ALTQ pero también es mucho más restrictiva.

 

Autor: Josep Pujadas i Jubany
© 2007. Todos los derechos reservados