Pular para o conteúdo principal

QOS Intermediário - Implantação em cliente real

Implantação de QOS - Intermediário

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
Conseguimos ver que os picos são elevados chegando a 6Mb.

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

Postagens mais visitadas deste blog

Zabbix - Entendendo Agentes

Zabbix Agente - Instalação e configuração Introdução O Zabbix trabalha em sua estrutura basicamente duas funções como: Gerente - Zabbix que armazena informações e entre outras, agindo como Servidor ) Agente - Zabbix instalado em hosts que coleta informações para serem enviadas ao gerente.  O que iremos entender nesse tutorial é os modos como os agentes trabalha ativo e passivo. Ativo - Ele envia os dados para o servidor ( gerente ), muito utilizado quando o host está em outras redes através de firewall. Passivo - Ele aguarda solicitação do servidor ( gerente ) para a entrega dos dados. A configuração do agente e de acordo com as nossas necessidades no momento.

IDS Sistema detecção de intrusão - FAIL2BAN

IDS com FAIL2BAN Introdução IDS é um sistema de detecção de intrusos que podemos implementar em dois segmentos em rede e sistema. Iremos abordar o fail2ban, uma poderosa ferramenta contra tentativas de força bruta ( meio de ataque através de diversas tentativas de acesso ), esse serviço é muito utilizado em servidores que respondem diretamente a internet, a configuração acaba sendo muito útil para bloqueio sendo sua principal vantagem a velocidade. Funcionamento Partindo de analises rigorosas de log como tentativas repetitivas de falhas como por exemplo em uma tentativa de acesso via SSH em nosso firewall: Jun 28 20:24:13 serv-firewall unix_chkpwd[1491]: password check failed for user (root) Jun 28 20:24:13 serv-firewall sshd[1489]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost= 192.168.122.1 user= root Jun 28 20:24:15 serv-firewall sshd[1489]: Failed password for root from 192.168.122.1 port