Control de tráfico en Linux

En los lugares en que se está enrutando con linux y el ancho de banda no es abundante normalmente se tienen peleas entre los usuarios y el administrador por la saturación de los enlaces, sin embargo existen metodos para asegurar anchos de banda minimos para cada estación conectada en la red.

Un filtro de Calidad de servicio (QoS) permite lograr tener una red mas justa en cuanto a ancho de banda disponible se refiere. La idea principal es asegurar anchos de banda minimos para cada usuario.

Condiciones:
Ancho de banda Bajada Internet 600 kbits/s
Ancho de Banda Subida Internet 256 kbits/s
Interfaces del gateway linux 3 (eth0 Internet , eth1 Lan y eth2 Lan)
Usuarios 3 (1 conetadoa eth1 y 2 conectados a eth2)

Construyendo un Script

  • Aplicando un flush
  • echo "Flush"
    iptables -t mangle -F
    tc qdisc del dev eth0 root 8>/dev/null
    tc qdisc del dev eth1 root 8>/dev/null
    tc qdisc del dev eth2 root 8>/dev/null

  • Aplicando clases a eth0
  • tc qdisc add dev eth0 root handle 1: htb
    tc class add dev eth0 parent 1: classid 1:1 htb rate 230kbit ceil 230kbit
    tc class add dev eth0 parent 1:1 classid 1:10 htb rate 58kbit ceil 230kbit prio 1
    tc class add dev eth0 parent 1:1 classid 1:20 htb rate 58kbit ceil 230kbit
    tc class add dev eth0 parent 1:1 classid 1:30 htb rate 58kbit ceil 230kbit
    tc class add dev eth0 parent 1:1 classid 1:40 htb rate 58kbit ceil 230kbit

    Cuando no se especifica un prio se asume que la prioridad es 0, es decir, máxima.
    La primera clase es para el trafico saliente desde el firewall, por ello la menor prioridad, el resto son para el trafico saliente que viene desde las maquinas de la red.
    Cada host tiene asegurado un minimo de 58kbits/s en el peor de los casos. LA suma de todos los rate debe ser igual al ceil total maximo, es decir 230.

  • Aplicando cuotas SQF para eth0 con revision cada 1 segundo
  • tc qdisc add dev eth0 parent 1:10 handle 10: sfq perturb 1
    tc qdisc add dev eth0 parent 1:20 handle 20: sfq perturb 1
    tc qdisc add dev eth0 parent 1:30 handle 30: sfq perturb 1
    tc qdisc add dev eth0 parent 1:40 handle 40: sfq perturb 1

    Continuará…..

    Subscribe
    Notify of
    guest

    This site uses Akismet to reduce spam. Learn how your comment data is processed.

    1 Comment
    Inline Feedbacks
    View all comments
    ZeuZ
    16 years ago

    Hola, disculpame que te moleste, pero hasta ahora no me queda claro como hacer la medicion para una IP o MAC determinada, o si fuera posible, en una combinacion de ellas…
    Me lei el MAN pero no me di mañana… me podrias dar un apunte mas o menos en como manejar el ancho de banda por IP?

    1
    0
    Would love your thoughts, please comment.x
    ()
    x