Cómo utilizar IPtables para limitar el tráfico de red
Script de límite de velocidad:
#!/bin/sh
#Definir dispositivo de acceso (interfaz de red interna IDEV, interfaz de red externa ODEV) p >
IDEV="br-lan "
ODEV="pppoe-wan "
#Definir el ancho de banda superior e inferior total
UP = " 0.45Mbit"
DOWN = " 3.7Mbit"
#Defina el ancho de banda superior e inferior para cada IP restringida.
#Calificar ancho de banda inicial (límite predeterminado, IP única limita el ancho de banda)
UPLOAD="0.1mbit "
Descargar=" 0.5Mbit"
p>
#ceil Ancho de banda máximo (el ancho de banda máximo que una sola IP puede tomar prestado cuando hay exceso de ancho de banda, que también es el ancho de banda total de todas las IP restringidas)
MUP load = " 0,2 Mbit"
MDOWNLOAD="1mbit "
#Segmento IP de red interna
INET = " 192.168.1."
# Rango de IP restringido, IP inicial, IP final IPE.
IPS="140 "
IPE="142 "
#Borrar la regla de cola original de la tarjeta de red
tc qdisc del dev $ ODEV root 2 >/dev/null
tc qdisc del dev $IDEV root 2 >/dev/null
#Defina la regla de cola de nivel superior (raíz) y especifique el número de categoría predeterminado.
tc qdisc add dev $ODEV identificador raíz 10: valor predeterminado de htb 256
tc qdisc add dev $IDEV identificador raíz 10: valor predeterminado de htb 256
# Defina la clase 10:1 para la primera capa (ancho de banda total de enlace ascendente/descendente)
tc class add dev $ODEV parent 10:classid 10:1 htb rate $ UP ceil $ UP
tc class add development$IDEV parent 10:classid 10:1 htb rate$límite inferior$límite inferior
#Inicie la etiqueta iptables y establezca reglas específicas.
i = $IPS
Y [ $i -le $IPE ]
do
tc class add dev $ODEV parent 10 :1 classid 10:2 $ I htb rate $ UPLOAD ceil $ MUP load prio 1
TC qdisc add dev $ ODEV parent 10:2 $ Manejo 100 $ I:p FIFO
Filtro TC agregar dev $ ODEV padre 10: protocolo IP prio 100 manejar 2 $ I fw classid 10:2 $ I
tc clase agregar dev $ IDEV padre 10:1 classid 10:2 $ I htb rate $ DESCARGAR ceil $ MDOWNLOAD prio 1
TC q disco agregar dev $ IDEV padre 10:2 $ Manejo 100 $ I:p FIFO
Filtro TC agregar dev $ IDEV padre 10: protocolo IP prio 100 handle 2 $ I fw classid 10:2 $ I
iptables-t mangle-A pre enrutamiento-s $ INET $ I-j MARK-set-MARK 2 $ I
iptables-t mangle-A PREROUTING-s$INET$I-j RETURN
iptables-t mangle-A post enrutamiento-d $ INET $ I-j MARK-set-MARK 2 $ I
iptables -t mangle -A post enrutamiento -d $INET $I-j return
I = ' expr $I+1 '
Completado