QOS com Iptables
Publicado por Júlio César Mauro 24/10/2005
[ Hits: 24.569 ]
Este script tem a funcao de limitar a banda do usuario em 1/4 da banda
especificada na variavel RATEUP. Caso a banda total nao esteja sendo utilizado,
o usuario que estiver utilizando o sistema, pode utilizar a banda total
#!/bin/sh #chkconfig: 2345 11 89 # Autor: Julio Cesar Mauro <julio.mauro<at>gmail.com # Data: 23/10/2004 # Versao: 1.0 # Descricao: Este script tem a funcao de limitar a banda do usuario em 1/4 da banda # especificada na variavel RATEUP. Caso a banda total nao esteja sendo utilizado, # o usuario que estiver utilizando o sistema, pode utilizar a banda total. . /etc/rc.d/init.d/functions . /etc/sysconfig/network [ ${NETWORKING} = "no" ] && exit 0 DEV=eth0 RATEUP=256 RATEDN=700 IPT="/sbin/iptables" TC="/sbin/tc" HOSTS="172.16.24.0/24" case "$1" in start) ################################################################################################ # Add HTB root qdisc $TC qdisc add dev $DEV root handle 1: htb default 26 2> /dev/null > /dev/null $IPT -A FORWARD -t mangle -p udp --sport 1024:49151 -j TOS --set-tos Maximize-Throughput $IPT -A FORWARD -t mangle -p udp --dport 1024:49151 -j TOS --set-tos Maximize-Throughput $IPT -A FORWARD -t mangle -p tcp --sport 1:65535 -j TOS --set-tos Minimize-Delay $IPT -A FORWARD -t mangle -p tcp --dport 1:65535 -j TOS --set-tos Minimize-Delay # Adiciona root qdisc $TC qdisc add dev $DEV root handle 1: htb default 50 2> /dev/null > /dev/null $TC class add dev $DEV parent 1: classid 1:1 htb rate ${RATEUP}kbit 2> /dev/null > /dev/null # Classes # $TC class add dev $DEV parent 1:1 classid 1:20 htb rate $[$RATEUP/4]kbit ceil ${RATEUP}kbit prio 0 2> /dev/null > /dev/null # Sqf # $TC qdisc add dev $DEV parent 1:20 handle 20: sfq perturb 10 2> /dev/null > /dev/null # Filtros # $TC filter add dev $DEV parent 1:0 prio 0 protocol ip handle 20 fw flowid 1:20 2> /dev/null > /dev/null $TC filter add dev $DEV parent 1:0 protocol ip prio 0 u32 match ip dst $HOSTS classid 1:20 2> /dev/null > /dev/null # Marca pacotes # $IPT -A FORWARD -t mangle $IPT -A PREROUTING -t mangle -d 172.16.24.0/24 -j MARK --set-mark 1 $IPT -t nat -I POSTROUTING -s 172.16.24.0/24 -d 0/0 -o $DEV -j MASQUERADE $IPT -A FORWARD -t mangle -p tcp --dport 1:65535 -j MARK --set-mark 23 $IPT -A FORWARD -t mangle -p tcp --sport 1:65535 -j MARK --set-mark 23 $IPT -A FORWARD -t mangle -p icmp -j MARK --set-mark 20 $IPT -A FORWARD -t mangle -p udp -j MARK --set-mark 21 $IPT -A FORWARD -t mangle -m mark --mark 0 -j MARK --set-mark 26 echo "Adicionado Regras de QoS:" ; ;; ################################################################################################# stop) $TC qdisc del dev $DEV root 2> /dev/null > /dev/null $IPT -D FORWARD -t mangle -p udp --sport 1024:49151 -j TOS --set-tos Maximize-Throughput $IPT -D FORWARD -t mangle -p udp --dport 1024:49151 -j TOS --set-tos Maximize-Throughput $IPT -D FORWARD -t mangle -p tcp --sport 1:65535 -j TOS --set-tos Minimize-Delay $IPT -D FORWARD -t mangle -p tcp --dport 1:65535 -j TOS --set-tos Minimize-Delay $IPT -D FORWARD -t mangle $IPT -D FORWARD -t mangle -p tcp --dport 1:65535 -j MARK --set-mark 23 $IPT -D FORWARD -t mangle -p tcp --sport 1:65535 -j MARK --set-mark 23 $IPT -D FORWARD -t mangle -p icmp -j MARK --set-mark 20 $IPT -D FORWARD -t mangle -p udp -j MARK --set-mark 21 $IPT -D FORWARD -t mangle -m mark --mark 0 -j MARK --set-mark 26 echo "Removendo Regras de QoS:" ; ;; ################################################################################################# status) echo "[qdisc]" $TC -s qdisc show dev $DEV echo "[class]" $TC -s class show dev $DEV echo "[filter]" $TC -s filter show dev $DEV exit ;; *) echo "Usage: qos {start|stop|restart|status}" exit 1 esac # EOF # ##################################################################################################
Avisos de segurança do espaço em uso!
Backup com data no nome do arquivo
Dell 1390 WLAN (Broadcom 4311)
Script - Realizando relatório do servidor
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Como colorir os logs do terminal com ccze
Instalação Microsoft Edge no Linux Mint 22
Como configurar posicionamento e movimento de janelas no Lubuntu (Openbox) com atalhos de teclado
Máquinas Virtuais com IP estático acessando Internet no Virtualbox
Criar entrada no GRUB para uma ISO Linux (7)
Open Suse não abre wi-fi automaticamente (3)
Ruído no Microfone (ALC287 - AMD Ryzen 5 7535HS) no Debian 12.9 (15)