Implantação de QOS - Intermediário
Nessa etapa seguiremos novamente o caminho do controle de tráfego, mas com uma pitada mais avançada delimitando por classes e em tempo real.
Nessa video aula trará um pouco de shell-script junto com controle de tráfego e passando um pouco que vai ser um dos próximos tópicos que é o ZABBIX.
O video realmente ficou extenso, porque tentei documentar ao máximo cada parte e explicar o porque da utilização de cada função.
Iremos entender um pouco da infraestrutura aplicada:
Script de balanceamento explicativo:
Adicione permissão de execução e adicione no rc.local.
OBS: O htb.init fais essa função de inicialização e configuração do balaceamento com tc e algoritmo htb, mas o sistema de configuração é diferenciado.
Podemos verificar o tráfego nas classes a partir do próprio comando:
Podemos verificar o tráfego de acordo com rate que mostra o quanto que está sendo utilizado atualmente.
Com o zabbix temos detalhes em gráficos em um dia com QOS ativo.
Esse gráfico foi um dia sem QOS:
Conseguimos ver que os picos são elevados chegando a 6Mb.
Esse gráfico foi um dia com QOS:
Conseguimos ver que a quantidade de download simbolizada pela cor verde não chega ultrapassar uma faixa considerável de link.
Último post dessa semana referente a controle de tráfego, terá mais em diante mas agregando novidades.
Mais adiante terá uma documentação sobre zabbix e balaceamento entre dois ou mais links de internet.
TLDP -- http://tldp.org/HOWTO/Traffic-Control-HOWTO/intro.html
Introdução
Nessa etapa seguiremos novamente o caminho do controle de tráfego, mas com uma pitada mais avançada delimitando por classes e em tempo real.
Nessa video aula trará um pouco de shell-script junto com controle de tráfego e passando um pouco que vai ser um dos próximos tópicos que é o ZABBIX.
O video realmente ficou extenso, porque tentei documentar ao máximo cada parte e explicar o porque da utilização de cada função.
Configuração
Iremos entender um pouco da infraestrutura aplicada:
Figura 1.0 - Topologia interna da estrutura do QOS. |
Script de balanceamento explicativo:
#!/bin/bash # Autor: Rafael G. de Matos # Data: 10/09/2014 start() { DOWN=eth0 UP=eth1 # DOWNLOAD - Aplicando criando root algoritmo com htb tc qdisc del dev $DOWN root tc qdisc add dev $DOWN root handle 1:0 htb default 10 tc class add dev $DOWN parent 1:0 classid 1:1 htb rate 1000mbit # Criação de classes para os respectivos protocolos # default 10 tc class add dev $DOWN parent 1:1 classid 1:10 htb rate 2mbit ceil 3000kbit prio 0 # ICMP tc class add dev $DOWN parent 1:1 classid 1:20 htb rate 4mbit ceil 7mbit prio 0 # HTTP/s TCP tc class add dev $DOWN parent 1:1 classid 1:21 htb rate 2mbit ceil 3mbit prio 0 # HTTP/s UDP tc class add dev $DOWN parent 1:1 classid 1:22 htb rate 800kbit ceil 1mbit prio 0 # POP / SMTP TCP tc class add dev $DOWN parent 1:1 classid 1:23 htb rate 800kbit ceil 1mbit prio 0 # DNS tc class add dev $DOWN parent 1:1 classid 1:24 htb rate 800kbit ceil 1mbit prio 0 # SSH tc class add dev $DOWN parent 1:1 classid 1:25 htb rate 800kbit ceil 1mbit prio 0 # UPLOAD - Aplicando o mesmo, mas utilizado para upload tc qdisc del dev $UP root tc qdisc add dev $UP root handle 1:0 htb default 10 tc class add dev $UP parent 1:0 classid 1:1 htb rate 1000mbit # Criação de classes para os respectivos protocolos # default 10 tc class add dev $UP parent 1:1 classid 1:10 htb rate 700kbit ceil 1000kbit prio 0 # ICMP tc class add dev $UP parent 1:1 classid 1:20 htb rate 4mbit ceil 7mbit prio 0 # HTTP/s TCP tc class add dev $UP parent 1:1 classid 1:21 htb rate 2mbit ceil 3mbit prio 0 # HTTP/s UDP tc class add dev $UP parent 1:1 classid 1:22 htb rate 800kbit ceil 1mbit prio 0 # POP / SMTP TCP tc class add dev $UP parent 1:1 classid 1:23 htb rate 800kbit ceil 1mbit prio 0 # DNS tc class add dev $UP parent 1:1 classid 1:24 htb rate 800kbit ceil 1mbit prio 0 # SSH tc class add dev $UP parent 1:1 classid 1:25 htb rate 800kbit ceil 1mbit prio 0 ################################################################ iptables -t mangle -F FORWARD # Controle de Donwload - Classificando pacotes para suas respectivas classes. # Muita atenção ao conceito explicado no videos iptables -t mangle -A FORWARD -o $DOWN -p icmp -j CLASSIFY --set-class 1:20 iptables -t mangle -A FORWARD -o $DOWN -p tcp -m multiport --sports 80,443 -j CLASSIFY --set-class 1:21 iptables -t mangle -A FORWARD -o $DOWN -p udp -m multiport --sports 80,443 -j CLASSIFY --set-class 1:22 iptables -t mangle -A FORWARD -o $DOWN -p tcp -m multiport --sports 465,25,110 -j CLASSIFY --set-class 1:23 iptables -t mangle -A FORWARD -o $DOWN -p udp -m multiport --sports 53,953 -j CLASSIFY --set-class 1:24 iptables -t mangle -A FORWARD -o $DOWN -p tcp -m multiport --sports 22 -j CLASSIFY --set-class 1:25 # Controle de UPLOAD iptables -t mangle -A FORWARD -o $UP -p icmp -j CLASSIFY --set-class 1:20 iptables -t mangle -A FORWARD -o $UP -p tcp -m multiport --dports 80,443 -j CLASSIFY --set-class 1:21 iptables -t mangle -A FORWARD -o $UP -p udp -m multiport --dports 80,443 -j CLASSIFY --set-class 1:22 iptables -t mangle -A FORWARD -o $UP -p tcp -m multiport --dports 465,25,110 -j CLASSIFY --set-class 1:23 iptables -t mangle -A FORWARD -o $UP -p udp -m multiport --dports 53,953 -j CLASSIFY --set-class 1:24 iptables -t mangle -A FORWARD -o $UP -p tcp -m multiport --dports 22 -j CLASSIFY --set-class 1:25 # fim da função start } stop() { DOWN=eth0 UP=eth1 # Limpando regras de controle de tráfego tc qdisc del dev $DOWN root tc qdisc del dev $UP root iptables -t mangle -F FORWARD } case $1 in start) star; ;; stop) stop; ;; restart)start ; stop ; ;; *) echo "Opcoes suportadas: [start|stop|restart]"; ;; esac |
Adicione permissão de execução e adicione no rc.local.
OBS: O htb.init fais essa função de inicialização e configuração do balaceamento com tc e algoritmo htb, mas o sistema de configuração é diferenciado.
Analisando
Podemos verificar o tráfego nas classes a partir do próprio comando:
Figura 1.1 - Analise de classe |
Podemos verificar o tráfego de acordo com rate que mostra o quanto que está sendo utilizado atualmente.
Com o zabbix temos detalhes em gráficos em um dia com QOS ativo.
Esse gráfico foi um dia sem QOS:
Figura 1.2 - Gráfico de um dia |
Esse gráfico foi um dia com QOS:
Figura 1.3 - Gráfico de um dia. |
Conseguimos ver que a quantidade de download simbolizada pela cor verde não chega ultrapassar uma faixa considerável de link.
Conclusão
Último post dessa semana referente a controle de tráfego, terá mais em diante mas agregando novidades.
Mais adiante terá uma documentação sobre zabbix e balaceamento entre dois ou mais links de internet.
Bibliografica
TLDP -- http://tldp.org/HOWTO/Traffic-Control-HOWTO/intro.html
Comentários
Postar um comentário