All of lore.kernel.org
 help / color / mirror / Atom feed
* [LARTC] [LARTC] 2 net´s whitch 2 ADSL conections, 
@ 2003-04-14 14:22 José Luis García López
  0 siblings, 0 replies; only message in thread
From: José Luis García López @ 2003-04-14 14:22 UTC (permalink / raw)
  To: lartc

[-- Attachment #1: Type: text/plain, Size: 343 bytes --]

Hello, I send you me script, the coment hare in spanish, but i thing it´s 
very clery (i hope) plis if somebody caught any bug i this plis alert me.

Thank for all.





_________________________________________________________________
Melodías, logos y mil servicios para tu teléfono en MSN Móviles.  
http://www.msn.es/MSNMovil/

[-- Attachment #2: Trafico --]
[-- Type: text/plain, Size: 22163 bytes --]

#!/bin/bash
#  Este programa se encarga de la limpieza del sistema de rutas, asi como de 
lavantar
#  el sistema de enrutamiento avanzado y el sistema de control de trafico, 
tanto
#  saliente como entrante.
#
#  Cargamos las variables de entorno para facilitar el trabajo. De esta 
forma, si se
#  cambia la IP del router 1, no habria que cambiarla en cada linea que 
aparece, sino
#  tan solo aqui, lo mismo pasa cuando queremos cambiar otros parametros 
(Ej, Velocidad).
ETIP0=192.168.0.200   # Direccion IP de la tarjeta 1
ETIP1=192.168.2.201   #    "               tarjeta 2
ETIP2=10.10.5.200     #    "               tarjeta 3
ETIP3=10.10.5.201     #    "               tarjeta 4
ADSL1=192.168.2.100   # Direccion IP del router 1
ADSL2=10.10.5.1       # Direccion IP del router 2
RED1=192.168.2.0/24   # Subred 1 (192.168.2.0 mascara 255.255.255.0 = (/24)
RED2=10.10.5.0/24     # Subred 2 (10.10.5.0 mascara 255.255.255.0 = (/24)
DS1=eth0              # Dispositivo de salida 1
DE1=eth1              # Dispositivo de entrada 1
DS2=eth2              # Dispositivo de salida 2
DE2=eth3              # Dispositivo de entrada 2
RTS1=450              # Velocidad de subida linea 1
RTD1=1400             # Velocidad de bajada linea 1
RTS2=500              # Velocidad de subida linea 2
RTD2=1500             # Velocidad de bajada linea 2
IP_I=                 # IP de inicio de la sala 2
IP_F=                 # IP final de la sala 2
RAMA="parent 1:0 protocol ip prio 0 u32 match ip src" # Rama de 
coincidencias
# La velocidad Max de subida se ha dejado por debajo de la velocidad Max 
real de la
# linea, asi conseguimos eliminar esperas cuando se produce una bajada de 
capacidad.
# La velocidad de bajada ha sido limitada a este valor para evitar que los 
picos de
# descarga puedan afectar al trafico interactivo. A pesar de ello, la 
velocidad real
# obtenida por este metodo, es de 1510, cuando no hay un trafico 
prioritario.

# Esta primera funcion, nos muestra el estado del sistema de limitacion y 
control de trafico.
status() {

	clear
        echo
	echo
	echo
	echo -en "\033[32m[qdisc]\033[m\014\r"
        tc -s qdisc show dev $DS1 2> /dev/null  # Muestra el estado de las 
colas de paquetes en
        tc -s qdisc show dev imq0 2> /dev/null  # cada uno de los 
dispositivos empleados, siendo
        tc -s qdisc show dev $DS2 2> /dev/null  # $DS1 y $DS2 los 
dispositivos de salida e imq0
        tc -s qdisc show dev imq1 2> /dev/null  # e imq1 los de entrada 
(FIXME: Limitar directa-

	echo -en "\033[32m[class]\033[m\014\r"      # mente en eth1 y eth3 si es 
posible.
        tc -s class show dev $DS1 2> /dev/null  # Identica funcion con las 
clases de cada raiz.
        tc -s class show dev imq0 2> /dev/null
        tc -s class show dev $DS2 2> /dev/null
        tc -s class show dev imq1 2> /dev/null
        echo -en "\033[32m[filter]\033[m\014\r"     # Muestra los filtros 
aplicados.
        tc -s filter show dev $DS1 2> /dev/null
        tc -s filter show dev imq0 2> /dev/null
        tc -s filter show dev $DS2 2> /dev/null
        tc -s filter show dev imq1 2> /dev/null
        echo -en "\033[32m[iptables]\033[m\014\r"   # Muestra la 
configuracion de IPTABLES para cada
        iptables -t mangle -L MYSHAPER-OUT-1 2> /dev/null # una de las 
cadenas existentes.
        iptables -t mangle -L MYSHAPER-IN-1 2> /dev/null
        iptables -t mangle -L MYSHAPER-OUT-2 2> /dev/null
        iptables -t mangle -L MYSHAPER-IN-2 2> /dev/null

}

# Esta funcion se encarga de "poner todo a 0".
stop() {

    # Comienza el Modulo de rutas.
    clear
    echo
    echo -en "\033[32m[Limpiando modulo de rutas]\033[m\014\r"
    echo -en "\033[33mBorrar ruta principal : \033[m\014\r"
    ip route del default via $ADSL1 dev $DS1 &> /dev/null
    ip route del default via $ADSL2 dev $DS2 &> /dev/null
    echo -en "\033[33mBorrar reglas locales : \033[m\014\r"
    ip rule del from $RED1 dev $DE1 table sala1 &> /dev/null
    ip rule del from $RED2 dev $DE2 table sala2 &> /dev/null
    ip rule del from 127.0.0.0/8 dev lo table local &> /dev/null
    echo -en "\033[33mBorrar rutas locales : \033[m\014\r"
    ip route del default via $ADSL1 dev $DS1 table sala1 &> /dev/null
    ip route del default via $ADSL2 dev $DS2 table sala2 &> /dev/null
    ip route del default via $ADSL1 dev $DS1 table local &> /dev/null
    ip route del default via $ADSL2 dev $DS2 table local &> /dev/null
    echo -en "\033[33mBorrar ruta balanceada : \033[m\014\r"
    ip route del default scope global nexthop via $ADSL2 dev $DS2 weight 1 
nexthop via $ADSL1 dev $DS1 weight 1 &> /dev/null
    ip route del default scope global nexthop via $ADSL1 dev $DS1 weight 1 
nexthop via $ADSL2 dev $DS2 weight 1 &> /dev/null
    echo -en "\033[32m[Modulo de rutas limpio]\033[m\014\r"
    # Final del Modulo de rutas.

    # Comienza el Modulo de limitacion-clasificacion.
    echo
    echo -en "\033[32m[Limpiando limitador-clasificador de 
trafico]\033[m\014\r"

    # Sub-Modulo de limitacion saliente.
    echo -en "\033[33mLimpiando limitador de velocidad saliente : 
\033[m\014\r"
    tc qdisc del dev $DS1 root &> /dev/null
    tc qdisc del dev $DS2 root &> /dev/null

    # Sub-Modulo clasificador.
    echo -en "\033[33mLimpiando clasificador : \033[m\014\r"
    iptables -t mangle -D POSTROUTING -o $DS1 -j MYSHAPER-OUT-1 &> /dev/null
    iptables -t mangle -F MYSHAPER-OUT-1 &> /dev/null
    iptables -t mangle -X MYSHAPER-OUT-1 &> /dev/null
    iptables -t mangle -D PREROUTING -i $DS1 -j MYSHAPER-IN-1 &> /dev/null
    iptables -t mangle -F MYSHAPER-IN-1 &> /dev/null
    iptables -t mangle -X MYSHAPER-IN-1 &> /dev/null
    iptables -t mangle -D POSTROUTING -o $DS2 -j MYSHAPER-OUT-2 &> /dev/null
    iptables -t mangle -F MYSHAPER-OUT-2 &> /dev/null
    iptables -t mangle -X MYSHAPER-OUT-2 &> /dev/null
    iptables -t mangle -D PREROUTING -i $DS2 -j MYSHAPER-IN-2 &> /dev/null
    iptables -t mangle -F MYSHAPER-IN-2 &> /dev/null
    iptables -t mangle -X MYSHAPER-IN-2 &> /dev/null

    # Sub-Modulo de limitacion entrante.
    echo -en "\033[33mLimpiando limitador de velocidad entrante : 
\033[m\014\r"
    tc qdisc del dev imq0 root &> /dev/null
    tc qdisc del dev imq1 root &> /dev/null
    ip link set imq0 down &> /dev/null
    ip link set imq1 dwon &> /dev/null
    echo -en "\033[32m[Limitador-clasificador de trafico 
limpio]\033[m\014\r"
    # Final del Modulo de limitacion-clasificacion.

}

# Esta funcion carga todo el sistema de rutas y limitacion de trafico, tanto 
en trante
# como saliente.
start() {

    # Comienza el Modulo de carga.
    stop # Limpiamos el entorno llamando al Modulo de Parada.

    # Comenzamos a cargar las rutas basicas.
    echo
    echo -en "\033[32m[Cargando reglas de rutas y activando filtrado 
inverso]\033[m\014\r"

    echo -en "\033[33mCargando reglas locales : \033[m\014\r"  # Cargamos 
las reglas basicas.
    ip rule add from $RED1 dev $DE1 table sala1 &> /dev/null
    ip rule add from $RED2 dev $DE2 table sala2 &> /dev/null
    ip rule add from 127.0.0.0/8 dev lo table local &> /dev/null

    echo -en "\033[33mActivando Filtrado Inverso : \033[m\014\r"  # 
Activamos el filtrado inverso a todas las tarjetas.
    echo 1 > /proc/sys/net/ipv4/ip_forward

    echo -en "\033[33mCargando rutas Locales : \033[m\014\r"  # Aadimos las 
pasarelas por defecto a las tablas maestras.
    ip route add default via $ADSL1 dev $DS1 table sala1 &> /dev/null
    ip route add default via $ADSL2 dev $DS2 table sala2 &> /dev/null
    ip route add default via $ADSL1 dev $DS1 table local &> /dev/null

    echo -en "\033[33mCargando ruta principal : \033[m\014\r"  # Cargar la 
ruta por defecto (Balanceada).
    ip route add default scope global nexthop via $ADSL1 dev $DS1 weight 1 
nexthop via $ADSL2 dev $DS2 weight 1 &> /dev/null

    echo -en "\033[32m[Reglas de enrutado y filtrado inverso 
activados]\033[m\014\r"
    # Finalizada la carga de rutas basicas.

    echo
    echo -en "\033[32m[Configurando Dispositivos]\033[m\014\r"
    # Cambiamos el tamao de la cola.
    ip link set dev $DS1 qlen 30 2> /dev/null
    ip link set dev $DS2 qlen 30 2> /dev/null
    # Cambiamos el tamao de la MTU.
    ip link set dev $DS1 mtu 1000 2> /dev/null
    ip link set dev $DS2 mtu 1000 2> /dev/null
    echo -en "\033[32m[Configuracion de Dispositivos 
Finalizada]\033[m\014\r"

    echo
    echo -en "\033[32m[Configurando Colas de Trafico de Salida]\033[m\014\r"

    echo -en "\033[33mAnadiendo Cola Maestra : \033[m\014\r"
    # Aadiendo raiz HTB.
    # Sala 1
    tc qdisc add dev $DS1 root handle 1: htb default 26 2> /dev/null
    # Sala 2
    tc qdisc add dev $DS2 root handle 1: htb default 236 2> /dev/null

    echo -en "\033[33mAnadiendo Clase Limitadora Maxima : \033[m\014\r"
    # Aadiendo Clase Limitadora Maestra.
    # Sala 1
    tc class add dev $DS1 parent 1:0 classid 1:1 htb rate ${RTS1}kbit ceil 
${RTS1}kbit 2> /dev/null
    # Sala 2
    tc class add dev $DS2 parent 1:0 classid 1:1 htb rate ${RTS2}kbit ceil 
${RTS2}kbit 2> /dev/null

    echo -en "\033[33mAnadiendo Clases Finales Limitadas : \033[m\014\r"
    # Aadiendo Clases Finales.
    # Sala 1
    tc class add dev $DS1 parent 1:1 classid 1:20 htb rate 160kbit ceil 
${RTS1}kbit prio 0 2> /dev/null
    tc class add dev $DS1 parent 1:1 classid 1:21 htb rate 20kbit ceil 
20kbit prio 1 2> /dev/null
    tc class add dev $DS1 parent 1:1 classid 1:22 htb rate 20kbit ceil 
20kbit prio 2 2> /dev/null
    tc class add dev $DS1 parent 1:1 classid 1:23 htb rate 10kbit ceil 
20kbit prio 3 2> /dev/null
    tc class add dev $DS1 parent 1:1 classid 1:24 htb rate 10kbit ceil 
20kbit prio 4 2> /dev/null
    tc class add dev $DS1 parent 1:1 classid 1:25 htb rate 110kbit ceil 
110kbit prio 3 2> /dev/null
    tc class add dev $DS1 parent 1:1 classid 1:26 htb rate 40kbit ceil 
40kbit prio 6 2> /dev/null
    # Sala 2

for I in `seq $IP_I $IP_F`
do
    tc class add dev $DS2 parent 1:1 classid 1:$I htb rate 14kbit ceil 
${RTS2}kbit prio 0 2> /dev/null
done

    echo -en "\033[33mAnadiendo Disciplinas a las Clases Finales : 
\033[m\014\r"
    # Aadiendo Disciplinas a las clases Finales.
    # Sala 1
    tc qdisc add dev $DS1 parent 1:20 handle 20: sfq perturb 10 2> /dev/null
    tc qdisc add dev $DS1 parent 1:21 handle 21: sfq perturb 10 2> /dev/null
    tc qdisc add dev $DS1 parent 1:22 handle 22: sfq perturb 10 2> /dev/null
    tc qdisc add dev $DS1 parent 1:23 handle 23: sfq perturb 10 2> /dev/null
    tc qdisc add dev $DS1 parent 1:24 handle 24: sfq perturb 10 2> /dev/null
    tc qdisc add dev $DS1 parent 1:25 handle 25: sfq perturb 10 2> /dev/null
    tc qdisc add dev $DS1 parent 1:26 handle 26: sfq perturb 10 2> /dev/null

    # Sala 2
    for I in `seq $IP_I $IP_F`
    do
	tc qdisc add dev $DS2 parent 1:$I handle $I: sfq perturb 10 2> /dev/null
    done

    echo -en "\033[33mAnadiendo Filtrado de Trafico : \033[m\014\r"
    # Sala 1
    tc filter add dev $DS1 parent 1:0 prio 0 protocol ip handle 20 fw flowid 
1:20 2> /dev/null
    tc filter add dev $DS1 parent 1:0 prio 0 protocol ip handle 21 fw flowid 
1:21 2> /dev/null
    tc filter add dev $DS1 parent 1:0 prio 0 protocol ip handle 22 fw flowid 
1:22 2> /dev/null
    tc filter add dev $DS1 parent 1:0 prio 0 protocol ip handle 23 fw flowid 
1:23 2> /dev/null
    tc filter add dev $DS1 parent 1:0 prio 0 protocol ip handle 24 fw flowid 
1:24 2> /dev/null
    tc filter add dev $DS1 parent 1:0 prio 0 protocol ip handle 25 fw flowid 
1:25 2> /dev/null
    tc filter add dev $DS1 parent 1:0 prio 0 protocol ip handle 26 fw flowid 
1:26 2> /dev/null
    # Sala 2


    for I in `seq $IP_I $IP_F`
    do
	tc filter add dev $DS2 $RAMA 213.190.4.$I flowid 1:$I 2> /dev/null
    done

    # Filtramos las peticiones al servidor del Cyber para que tengan Maxima 
prioridad.
    # Sala 1
    tc filter add dev $DS1 parent 1:0 protocol ip prio 0 u32 match ip dst 
213.190.4.53 flowid 1:20 2> /dev/null
    tc filter add dev $DS1 parent 1:0 protocol ip prio 0 u32 match ip src 
127.0.0.1 flowid 1:25 2> /dev/null
    # Sala 2
    tc filter add dev $DS2 parent 1:0 protocol ip prio 0 u32 match ip src 
127.0.0.1 flowid 1:25 2> /dev/null

    # Anadimos marcas a los paquetes segun su tipo.
    # Sala 1
    iptables -t mangle -N MYSHAPER-OUT-1 2> /dev/null
    iptables -t mangle -I POSTROUTING -o $DS1 -j MYSHAPER-OUT-1 2> /dev/null
    iptables -t mangle -A MYSHAPER-OUT-1 -p tcp --sport 0:1024 -j MARK 
--set-mark 23 2> /dev/null # Default for low port traffic
    iptables -t mangle -A MYSHAPER-OUT-1 -p tcp --dport 0:1024 -j MARK 
--set-mark 23 2> /dev/null # ""
    iptables -t mangle -A MYSHAPER-OUT-1 -p tcp --sport 27016 -j MARK 
--set-mark 20 2> /dev/null
    iptables -t mangle -A MYSHAPER-OUT-1 -p tcp --dport 20 -j MARK 
--set-mark 26 2> /dev/null     # ftp-data port, low prio
    iptables -t mangle -A MYSHAPER-OUT-1 -p tcp --dport 5190 -j MARK 
--set-mark 23 2> /dev/null   # aol instant messenger
    iptables -t mangle -A MYSHAPER-OUT-1 -p icmp -j MARK --set-mark 20 2> 
/dev/null               # ICMP (ping) - high prio, impress friends
    iptables -t mangle -A MYSHAPER-OUT-1 -p udp -j MARK --set-mark 21 2> 
/dev/null                # DNS name resolution (small packets)
    iptables -t mangle -A MYSHAPER-OUT-1 -p tcp --dport ssh -j MARK 
--set-mark 22 2> /dev/null    # secure shell
    iptables -t mangle -A MYSHAPER-OUT-1 -p tcp --sport ssh -j MARK 
--set-mark 22 2> /dev/null    # secure shell
    iptables -t mangle -A MYSHAPER-OUT-1 -p tcp --dport telnet -j MARK 
--set-mark 22 2> /dev/null # telnet (ew...)
    iptables -t mangle -A MYSHAPER-OUT-1 -p tcp --sport telnet -j MARK 
--set-mark 22 2> /dev/null # telnet (ew...)
    iptables -t mangle -A MYSHAPER-OUT-1 -p tcp --sport http -j MARK 
--set-mark 25 2> /dev/null   # Local web server
    iptables -t mangle -A MYSHAPER-OUT-1 -p tcp -m length --length :64 -j 
MARK --set-mark 21 2> /dev/null # small packets (probably just ACKs)
    iptables -t mangle -A MYSHAPER-OUT-1 -m mark --mark 0 -j MARK --set-mark 
26 2> /dev/null      # redundant- mark any unmarked packets as 26 (low prio)
    # Sala 2
    iptables -t mangle -N MYSHAPER-OUT-2 2> /dev/null
    iptables -t mangle -I POSTROUTING -o $DS2 -j MYSHAPER-OUT-2 2> /dev/null
    iptables -t mangle -A MYSHAPER-OUT-2 -p tcp --sport 0:1024 -j MARK 
--set-mark 23 2> /dev/null # Default for low port traffic
    iptables -t mangle -A MYSHAPER-OUT-2 -p tcp --dport 0:1024 -j MARK 
--set-mark 23 2> /dev/null # ""
    iptables -t mangle -A MYSHAPER-OUT-2 -p tcp --sport 27016 -j MARK 
--set-mark 20 2> /dev/null
    iptables -t mangle -A MYSHAPER-OUT-2 -p tcp --dport 20 -j MARK 
--set-mark 26 2> /dev/null     # ftp-data port, low prio
    iptables -t mangle -A MYSHAPER-OUT-2 -p tcp --dport 5190 -j MARK 
--set-mark 23 2> /dev/null   # aol instant messenger
    iptables -t mangle -A MYSHAPER-OUT-2 -p icmp -j MARK --set-mark 20 2> 
/dev/null               # ICMP (ping) - high prio, impress friends
    iptables -t mangle -A MYSHAPER-OUT-2 -p udp -j MARK --set-mark 21 2> 
/dev/null                # DNS name resolution (small packets)
    iptables -t mangle -A MYSHAPER-OUT-2 -p tcp --dport ssh -j MARK 
--set-mark 22 2> /dev/null    # secure shell
    iptables -t mangle -A MYSHAPER-OUT-2 -p tcp --sport ssh -j MARK 
--set-mark 22 2> /dev/null    # secure shell
    iptables -t mangle -A MYSHAPER-OUT-2 -p tcp --dport telnet -j MARK 
--set-mark 22 2> /dev/null # telnet (ew...)
    iptables -t mangle -A MYSHAPER-OUT-2 -p tcp --sport telnet -j MARK 
--set-mark 22 2> /dev/null # telnet (ew...)
    iptables -t mangle -A MYSHAPER-OUT-2 -p tcp --sport http -j MARK 
--set-mark 25 2> /dev/null   # Local web server
    iptables -t mangle -A MYSHAPER-OUT-2 -p tcp -m length --length :64 -j 
MARK --set-mark 21 2> /dev/null # small packets (probably just ACKs)
    iptables -t mangle -A MYSHAPER-OUT-2 -m mark --mark 0 -j MARK --set-mark 
26 2> /dev/null      # redundant- mark any unmarked packets as 26 (low prio)

    echo -en "\033[32m[Finalizada la configuracion de Colas de Trafico de 
Salida]\033[m\014\r"

    # Mostramos los Limites.
    echo
    echo -en "\033[mTrafico de Salida en \033[31m$DS1 \033[mlimitado a : 
\033[31m${RTS1}Kbit/sec.\033[m\014\r"
    echo -en "\033[mTrafico de Salida en \033[31m$DS2 \033[mlimitado a : 
\033[31m${RTS2}Kbit/sec.\033[m\014\r"

    # Comenzamos con el trafico de Entrada.
    echo
    echo -en "\033[32m[Configuracion del Trafico de Entrada]\033[m\014\r"
    echo -en "\033[33mConfigurando Dispositivos : \033[m\014\r"
    modprobe imq numdevs=2 2> /dev/null # Creamos 2 dispositivos IMQ
    ip link set imq0 up 2> /dev/null # Arrancamos para la Sala 1
    ip link set imq1 up 2> /dev/null # Arrancamos para la Sala 2

    echo -en "\033[33mConfigurando Colas Maestras : \033[m\014\r"
    # Anadiendo Colas a los Dispositivos.
    tc qdisc add dev imq0 handle 1: root htb default 22 2> /dev/null
    tc qdisc add dev imq1 handle 1: root htb default 22 2> /dev/null

    echo -en "\033[33mAnadiendo Clases Limitadas : \033[m\014\r"
    # Anadiendo Clases Limitadas.
    tc class add dev imq0 parent 1: classid 1:1 htb rate ${RTD1}kbit ceil 
${RTD1} 2> /dev/null
    tc class add dev imq1 parent 1: classid 1:1 htb rate ${RTD2}kbit ceil 
${RTD2} 2> /dev/null

    echo -en "\033[33mAnadiendo Clases Finales : \033[m\014\r"
    # Anadiendo Clases Finales.
    # Sala 1
    tc class add dev imq0 parent 1:1 classid 1:20 htb rate ${RTD1}kbit ceil 
${RTD1}kbit prio 0 2> /dev/null
    tc class add dev imq0 parent 1:1 classid 1:20 htb rate $[$RTD1/2]kbit 
ceil ${RTD1}kbit prio 0 2> /dev/null
    tc class add dev imq0 parent 1:1 classid 1:21 htb rate $[$RTD1/2]kbit 
ceil ${RTD1}kbit prio 1 2> /dev/null
    # Sala 2
    tc class add dev imq1 parent 1:1 classid 1:20 htb rate ${RTD2}kbit ceil 
${RTD2}kbit prio 0 2> /dev/null
    tc class add dev imq1 parent 1:1 classid 1:20 htb rate $[$RTD2/2]kbit 
ceil ${RTD2}kbit prio 0 2> /dev/null
    tc class add dev imq1 parent 1:1 classid 1:21 htb rate $[$RTD2/2]kbit 
ceil ${RTD2}kbit prio 1 2> /dev/null

    echo -en "\033[33mAnadiendo Disciplinas a las Colas Finales : 
\033[m\014\r"
    # Sala 1
    tc qdisc add dev imq0 parent 1:20 handle 20: sfq perturb 10 2> /dev/null
    tc qdisc add dev imq0 parent 1:20 handle 21: sfq perturb 10 2> /dev/null
    tc qdisc add dev imq0 parent 1:21 handle 22: red limit 1000000 min 5000 
max 100000 avpkt 1000 burst 50 2> /dev/null
    # Sala 2
    tc qdisc add dev imq1 parent 1:20 handle 20: sfq perturb 10 2> /dev/null
    tc qdisc add dev imq1 parent 1:20 handle 21: sfq perturb 10 2> /dev/null
    tc qdisc add dev imq1 parent 1:21 handle 22: red limit 1000000 min 5000 
max 100000 avpkt 1000 burst 50 2> /dev/null

    echo -en "\033[33mConfigurando Filtro de Trafico : \033[m\014\r"
    # Sala 1
    tc filter add dev imq0 parent 1:0 prio 0 protocol ip handle 20 fw flowid 
1:21 2> /dev/null
    tc filter add dev imq0 parent 1:0 prio 0 protocol ip handle 21 fw flowid 
1:22 2> /dev/null
    tc filter add dev imq0 parent 1:0 protocol ip prio 0 u32 match ip src 
213.190.4.53 flowid 1:20 2> /dev/null

    iptables -t mangle -N MYSHAPER-IN-1 2> /dev/null
    iptables -t mangle -I PREROUTING -i $DS1 -j MYSHAPER-IN-1 2> /dev/null

    iptables -t mangle -A MYSHAPER-IN-1 -p ! tcp -j MARK --set-mark 20 2> 
/dev/null              # Set non-tcp packets to highest priority
    iptables -t mangle -A MYSHAPER-IN-1 -p tcp -m length --length :64 -j 
MARK --set-mark 20 2> /dev/null # short TCP packets are probably ACKs
    iptables -t mangle -A MYSHAPER-IN-1 -p tcp --dport ssh -j MARK 
--set-mark 20 2> /dev/null    # secure shell
    iptables -t mangle -A MYSHAPER-IN-1 -p tcp --sport ssh -j MARK 
--set-mark 20 2> /dev/null    # secure shell
    iptables -t mangle -A MYSHAPER-IN-1 -p tcp --dport telnet -j MARK 
--set-mark 20 2> /dev/null # telnet (ew...)
    iptables -t mangle -A MYSHAPER-IN-1 -p tcp --sport telnet -j MARK 
--set-mark 20 2> /dev/null # telnet (ew...)
    iptables -t mangle -A MYSHAPER-IN-1 -m mark --mark 0 -j MARK --set-mark 
21 2> /dev/null              # redundant- mark any unmarked packets as 26 
(low prio)
    # Sala 2
    tc filter add dev imq1 parent 1:0 prio 0 protocol ip handle 20 fw flowid 
1:21 2> /dev/null
    tc filter add dev imq1 parent 1:0 prio 0 protocol ip handle 21 fw flowid 
1:22 2> /dev/null
    tc filter add dev imq1 parent 1:0 protocol ip prio 0 u32 match ip src 
213.190.4.53 flowid 1:20 2> /dev/null

    iptables -t mangle -N MYSHAPER-IN-2 2> /dev/null
    iptables -t mangle -I PREROUTING -i $DS2 -j MYSHAPER-IN-2 2> /dev/null

    iptables -t mangle -A MYSHAPER-IN-2 -p ! tcp -j MARK --set-mark 20 2> 
/dev/null              # Set non-tcp packets to highest priority
    iptables -t mangle -A MYSHAPER-IN-2 -p tcp -m length --length :64 -j 
MARK --set-mark 20 2> /dev/null # short TCP packets are probably ACKs
    iptables -t mangle -A MYSHAPER-IN-2 -p tcp --dport ssh -j MARK 
--set-mark 20 2> /dev/null    # secure shell
    iptables -t mangle -A MYSHAPER-IN-2 -p tcp --sport ssh -j MARK 
--set-mark 20 2> /dev/null    # secure shell
    iptables -t mangle -A MYSHAPER-IN-2 -p tcp --dport telnet -j MARK 
--set-mark 20 2> /dev/null # telnet (ew...)
    iptables -t mangle -A MYSHAPER-IN-2 -p tcp --sport telnet -j MARK 
--set-mark 20 2> /dev/null # telnet (ew...)
    iptables -t mangle -A MYSHAPER-IN-2 -m mark --mark 0 -j MARK --set-mark 
21 2> /dev/null              # redundant- mark any unmarked packets as 26 
(low prio)

    iptables -t mangle -A MYSHAPER-IN-1 -j IMQ --todev=0 2> /dev/null # Sala 
1
    iptables -t mangle -A MYSHAPER-IN-2 -j IMQ --todev=1 2> /dev/null # Sala 
2

    echo -en "\033[32m[Finalizada la configuracion de Colas de Trafico de 
Entrada]\033[m\014\r"
    echo
    echo -en "\033[mTrafico de Entrada en \033[31m$DS1 \033[mlimitado a : 
\033[31m${RTD1}Kbit/sec.\033[m\014\r"
    echo -en "\033[mTrafico de Entrada en \033[31m$DS2 \033[mlimitado a : 
\033[31m${RTD2}Kbit/sec.\033[m\014\r"

}

case "$1" in
    start)
	start
	;;
    stop)
	stop
	;;
    status)
	status
	;;
    *)
	echo -en "\033[31m[Los Parametros Aceptados son : start , stop o status 
.]\033[m\014\r"
	exit 1
	;;
esac
exit 0

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2003-04-14 14:22 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2003-04-14 14:22 [LARTC] [LARTC] 2 net´s whitch 2 ADSL conections, José Luis García López

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.