Control de ancho de banda en Linux

En casa tengo la típica línea ADSL, y ya llevaba tiempo dándole vueltas a varios problemas de latencia y velocidad que estaba sufriendo cuando conectaba aMule, Transmission o similares. Cuando estaba usando estos programas P2P, la navegación se ralentizaba hasta extremos desesperantes, muchas veces lo que más le costaba era la resolución DNS de las páginas, algo que tendría que ser lo más rápido posible.

Para mejorar la situación he creado un script basándome en el fantástico Wonder Shaper, un script que usa el algoritmo HTB para asegurar un ancho de banda a las clases que definamos. La principal diferencia es que wonder shaper está pensando para un equipo que tenga conexión directa a Internet con una IP pública asignada, y mi script está diseñado para un equipo con una IP privada dentro de la LAN, que es la configuración habitual de los routers ADSL. Por supuesto, esta aproximación solo funciona bien si nuestro equipo es el único en la red local, ya que si otros hosts están generando tráfico, llenaremos el buffer del router y no conseguiremos nada.

Podéis descargar la última versión aquí: https://raw.github.com/jorti/wondershaper/master/90-wshaper
O clonar el repositorio con:  git clone git://github.com/jorti/wondershaper.git

Para instalarlo hay que copiar el script en /etc/NetworkManager/dispatcher.d  y hacerlo ejecutable. También hay que editarlo y configurar las variables adecuadas, como el interfaz, el rango IP de nuestra red interna y los anchos de banda de la LAN y de Internet, este último es especialmente importante que esté ajustado a un valor algo menor que el real, para no usar el buffer del router si no el de nuestra máquina y de este modo poder controlar la latencia.

Si se ejecuta con el parámetro status, nos muestra toda la información de los qdiscs, classes, filters y reglas iptables. De esta forma podemos ver las estádisticas de uso y asegurarnos que está funcionando bien. Me gustaría también configurar algún tipo de monitorización, pero esto será para más adelante.

Con este script he conseguido reducir la latencia considerablemente y puedo navegar de forma fluida mientras hago uso de programas P2P. Si queréis profundizar más en el tema, es imprescindible el howto de Linux advanced routing and traffic control. Espero que os sirva.

Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s