[AsteriskBrasil] QoS
Junior Polegato - Asterisk
asterisk em juniorpolegato.com.br
Quinta Novembro 4 16:34:48 BRST 2010
Em 04-11-2010 15:24, Thiago Bruni Tawil escreveu:
> Cara!! Muito obrigado, mas acho que vou construír meu´próprio script,
> uma vez que seu script é para controlar a internet da empresa, e o meu
> é pra configurar o próprio servidor, só preciso colocar SIP e UDP com
> > prioridade de banda...
> Se você tiver um script assim... ahuahuah vlw kra!!
> Agora vou ter prova na faculdade, voltando pra casa eu testo e posto
> aqui!!!
> Abraços!!
Olá,
O próprio Asterisk marca os pacotes SIP e RTP (ambos UDP)
devidamente e estes são priorizados por padrão nas interfaces do seu
firewall, mas supondo que o Asterisk está direto na internet, não
funciona a parte de download, visto que somente pode ser controlado o
que é enviado para um interface e não o que é recebido.
Segue uma sugestão:
# Rede Local
LAN=192.168.0.0/24
# Limpar marcas
iptables -t mangle -F
# Marcar SIP - porta 5060 UDP - marca 1
iptables -t mangle -A PREROUTING -p udp --dport 5060 -j MARK --set-mark 1
iptables -t mangle -A PREROUTING -p udp --dport 5060 -j RETURN
iptables -t mangle -A PREROUTING -p udp --sport 5060 -j MARK --set-mark 1
iptables -t mangle -A PREROUTING -p udp --sport 5060 -j RETURN
# Marcar RTP - portas de 10.000 a 20.000 (/etc/asterisk/rtp.conf) - marca 2
iptables -t mangle -A PREROUTING -p udp --dport 10000:20000 -j MARK
--set-mark 2
iptables -t mangle -A PREROUTING -p udp --dport 10000:20000 -j RETURN
iptables -t mangle -A PREROUTING -p udp --sport 10000:20000 -j MARK
--set-mark 2
iptables -t mangle -A PREROUTING -p udp --sport 10000:20000 -j RETURN
# Marcar o tráfego para fora da rede local com 3
iptables -t mangle -A POSTROUTING ! -d $LAN -j MARK --set-mark 3
iptables -t mangle -A POSTROUTING ! -d $LAN -j RETURN
# Divisão de banda em kilobits
PLACA_UP=eth0
BANDA_PLACA_UP=100000
PLACA_DOWN=eth1
BANDA_PLACA_DOWN=100000
BANDA_MAX_UP=300
BANDA_MAX_DOWN=1024
BANDA_RTP=270
BANDA_SIP=20
BANDA_ALL_UP=$((BANDA_MAX_UP-BANDA_SIP-BANDA_RTP))
BANDA_ALL_DOWN=$((BANDA_MAX_DOWN-BANDA_SIP-BANDA_RTP))
BANDA_PLACA_ALL_UP=$((BANDA_PLACA_UP-BANDA_MAX_UP))
BANDA_PLACA_ALL_DOWN=$((BANDA_PLACA_DOWN-BANDA_MAX_DOWN))
# Controle de tráfego de Upload
tc qdisc del dev $PLACA_UP root
tc qdisc add dev $PLACA_UP root handle 1: htb default 3
tc class add dev $PLACA_UP parent 1: classid 1:1 htb rate
${BANDA_PLACA_UP}kbit ceil ${BANDA_PLACA_UP}kbit
tc qdisc add dev $PLACA_UP parent 1:1 sfq perturb 10
tc class add dev $PLACA_UP parent 1:1 classid 1:2 htb rate
${BANDA_MAX_UP}kbit ceil ${BANDA_MAX_UP}kbit prio 0
tc qdisc add dev $PLACA_UP parent 1:2 sfq perturb 10
tc class add dev $PLACA_UP parent 1:2 classid 1:10 htb rate
${BANDA_RTP}kbit ceil ${BANDA_MAX_UP}kbit prio 1
tc qdisc add dev $PLACA_UP parent 1:10 sfq perturb 10
tc class add dev $PLACA_UP parent 1:2 classid 1:20 htb rate
${BANDA_SIP}kbit ceil ${BANDA_MAX_UP}kbit prio 2
tc qdisc add dev $PLACA_UP parent 1:20 sfq perturb 10
tc class add dev $PLACA_UP parent 1:2 classid 1:30 htb rate
${BANDA_ALL_UP}kbit ceil ${BANDA_MAX_UP}kbit prio 3
tc qdisc add dev $PLACA_UP parent 1:30 sfq perturb 10
tc class add dev $PLACA_UP parent 1:1 classid 1:3 htb rate
${BANDA_PLACA_ALL_UP}kbit ceil ${BANDA_PLACA_UP}kbit prio 10
tc qdisc add dev $PLACA_UP parent 1:3 sfq perturb 10
tc filter add dev $PLACA_UP parent 1: protocol ip handle 1 fw classid 1:10
tc filter add dev $PLACA_UP parent 1: protocol ip handle 2 fw classid 1:20
tc filter add dev $PLACA_UP parent 1: protocol ip handle 3 fw classid 1:30
# Controle de tráfego de Download
tc qdisc del dev $PLACA_DOWN root
tc qdisc add dev $PLACA_DOWN root handle 1: htb default 3
tc class add dev $PLACA_DOWN parent 1: classid 1:1 htb rate
${BANDA_PLACA_DOWN}kbit ceil ${BANDA_PLACA_DOWN}kbit
tc qdisc add dev $PLACA_DOWN parent 1:1 sfq perturb 10
tc class add dev $PLACA_DOWN parent 1:1 classid 1:2 htb rate
${BANDA_MAX_DOWN}kbit ceil ${BANDA_MAX_DOWN}kbit prio 0
tc qdisc add dev $PLACA_DOWN parent 1:2 sfq perturb 10
tc class add dev $PLACA_DOWN parent 1:2 classid 1:10 htb
rate ${BANDA_RTP}kbit ceil ${BANDA_MAX_DOWN}kbit prio 1
tc qdisc add dev $PLACA_DOWN parent 1:10 sfq perturb 10
tc class add dev $PLACA_DOWN parent 1:2 classid 1:20 htb
rate ${BANDA_SIP}kbit ceil ${BANDA_MAX_DOWN}kbit prio 2
tc qdisc add dev $PLACA_DOWN parent 1:20 sfq perturb 10
tc class add dev $PLACA_DOWN parent 1:2 classid 1:30 htb
rate ${BANDA_ALL_DOWN}kbit ceil ${BANDA_MAX_DOWN}kbit prio 3
tc qdisc add dev $PLACA_DOWN parent 1:30 sfq perturb 10
tc class add dev $PLACA_DOWN parent 1:1 classid 1:3 htb rate
${BANDA_PLACA_ALL_DOWN}kbit ceil ${BANDA_PLACA_DOWN}kbit prio 10
tc qdisc add dev $PLACA_DOWN parent 1:3 sfq perturb 10
tc filter add dev $PLACA_DOWN parent 1: protocol ip handle 1 fw classid 1:10
tc filter add dev $PLACA_DOWN parent 1: protocol ip handle 2 fw classid 1:20
tc filter add dev $PLACA_DOWN parent 1: protocol ip handle 3 fw classid 1:30
[]'s
Junior Polegato
Mais detalhes sobre a lista de discussão AsteriskBrasil