A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Exercício QoS Linux Edgard Jamhour.

Apresentações semelhantes


Apresentação em tema: "Exercício QoS Linux Edgard Jamhour."— Transcrição da apresentação:

1 Exercício QoS Linux Edgard Jamhour

2 Avaliação Uma empresa tem um SLA com o provedor, definindo um link com 500 Kbps garantindo, com rajadas eventuais de 1000 Kbps. empresa provedor A.0/24 B.0/24 B A.3 rede 1 rede 2 A.1 B.1 A G1 500 Kbps 1000 Kbps G2 C A.2 B.2 x/17 y/17

3 Configuração da Bancada
EMPRESA PROVEDOR eth0 eth0:1 eth0 eth0 eth0 eth0:1 eth0 A B G1 G2 C G1i G1o G2o G2i eth A.3/24 eth0 A.2/24 eth0 A.1/24 eth0:1 x/17 eth0 y/17 eth0:1 B.1/24 eth0 B.2/24 SUBSTITUA: A pelo número da sua bancada A pelo número da sua bancada + 4 x e y são os números da etiqueta do computador

4 Exemplo: Bancada 1 # Variaveis RE=192.168.1.0; ME=255.255.255.0
A= ; B= ; G1i= ; G1o= ; RP= ; MP= G2i= ; G2o= ; C= Mo= # HOST A ifconfig eth0 $A netmask $ME route add –net $RP netmask $MP gw $G1i # HOST B ifconfig eth0 $B netmask $ME # G1 ifconfig eth0:1 $G1i netmask $ME ifconfig eth0 $G1o netmask $Mo route add –net $RP netmask $MP gw $G2o # G2 ifconfig eth0:1 $G2i netmask $MP ifconfig eth0 $G2o netmask $Mo route add –net $RE netmask $ME gw $G1o # HOST C ifconfig eth0 $C netmask $MP route add –net $RE netmask $ME gw $G2i

5 Estrutura do Script #!/bin/bash if [ $# -eq 0 ]; then
echo “Digite a opcao após o script” echo "1=A, 2=B, 3=G1, 4=G2, 5=C" exit fi if [ $1 -eq 1 ]; then echo "Configuracao do host A" elif [ $1 -eq 2]; then echo "Configuracao do host B" elif [ $1 -eq 3]; then echo "Configuracao do Gateway G1" elif [ $1 -eq 4]; then echo "Configuracao do Gateway G2" elif [ $1 -eq 5]; then echo "Configuracao do host C" else echo "Opcao invalida"

6 Redirecionamento ICMP
Quando um roteador recebe um pacote, ele pode enviar uma mensagem de redirecionamento (ICMP redirect) para o transmissor, caso ele conheça um outro roteador que possa fazer a entrega com menor custo. Isso acontece por exemplo, quando o transmissor, o receptor e o roteador estão conectados na mesma rede local. A mensagem de redirecionamento cria uma nova rota no transmissor. SWITCH 2. Redirecionamento A B 3. Nova rota criada em A 1. Pacote destinado a B 4. Pacote entregue diretamente a B

7 Roteamento sem Redirecionamento
Nos roteadores: sysctl –w net.ipv4.ip_forward = 1 sysctl –w net.ipv4.conf.eth0.accept_redirects = 0 sysctl –w net.ipv4.conf.eth0.send_redirects = 0 sysctl –w net.ipv4.conf.all.accept_redirects = 0 sysctl –w net.ipv4.conf.all.send_redirects = 0 Nos clientes: OBS. As variáveis sysctl também são acessíveis através do diretório /proc/sys/net

8 Regras para o Gateway G1 A empresa deseja controlar o aproveitamento do seu link, criando uma árvore HTB com as seguintes características. LINK 1000 Kbps class 1:1 class 1:11 class 1:12 class 1:13 TCP 300 Kbps 1000 Kbps UDP 100 Kbps 400 Kbps Default 100 Kbps 400 Kbps class 1:111 class 1:112 A.2 200 Kbps 800 Kbps A.3 100 Kbps 200 Kbps

9 Exemplo de Script para o Gateway 1 (Incompleto)
#!/bin/bash tc qdisc del dev eth0 root tc qdisc add dev eth0 root handle 1:0 htb default 0 tc class add dev eth0 parent 1:0 classid 1:1 htb rate 1Mbit tc class add dev eth0 parent 1:1 classid 1:11 htb rate 300Kbit ceil 1000kbit tc class add dev eth0 parent 1:1 classid 1:12 htb rate 100kbit ceil 400kbit tc class add dev eth0 parent 1:1 classid 1:13 htb rate 100kbit ceil 400kbit # criar as classes 1:111 e 1:112 tc qdisc add dev eth0 parent 1:111 handle 100: pfifo limit 10 tc qdisc add dev eth0 parent 1:112 handle 100: pfifo limit 10 tc qdisc add dev eth0 parent 1:12 handle 200: pfifo limit 10 tc qdisc add dev eth0 parent 1:13 handle 300: pfifo limit 10 tc filter add dev eth0 parent 1:0 prio 1 protocol ip u32 \ match ip protocol 0x06 0xff match ip src A.2/32 flowid 1:111 # criar filtro para a classe 1:112 match ip protocol 0x11 0xff flowid 1:12 tc filter add dev eth0 parent 1:0 prio 2 protocol ip u32 \ match ip protocol 0x00 0x00 flowid 1:13

10 Regras para o Gateway G2 O provedor irá aplicar as regras de policiamento para o tráfego recebido de G1, de modo a garantir que o tráfego não será excedido. capacidade do link DESCARTAR 1000 kbs Classe PRIO 2 Marcar AF12 policiamento 500 kbs Classe PRIO 1 Marcar AF11 0 kbs policiamento policiamento tráfego vindo de G1 tráfego indo para G1 G2

11 Regras para G2 O balde 1 é projetado para suportar rajadas de 1Mbps (500Kbps excedentes) durante 1s. O balde 2 recebe o excesso do balde 1. Também pode absorver 1s de rajadas de 1Mbps, mas descarta todo o tráfego excedente. rate 500 kbps rate 500 kbps balde 1 (62,5kbytes) balde 2 (62,5kbytes) X drop tráfego excedente tráfego indo/vindo G1 tráfego da rajada

12 Exemplo de Script para G2 (incompleto com dmsark)
#!/bin/bash tc qdisc del dev eth0 root # cria as classes 1:1, 1:2, 1:3 e 1:4 tc qdisc add dev eth0 root handle 1:0 dsmark indices 4 # configuração da class 1:1: marcar AF11 tc class change dev eth0 classid 1:1 dsmark mask 0x0 value 0x28 # alterar a configuração da classe 1:2 para marcar AF12 0x30 ... tc filter add dev eth0 parent 1:0 protocol ip u32 \ match ip src A.0/24 \ police rate 500kbit burst 62.5K continue flowid 1:1 police rate 500kbit burst 62.5K drop flowid 1:2

13 Entrega do Trabalho 1) Script de configuração completo
2) Estatísticas coletadas quando um arquivo de 28Mbps é transferido de A para C. 3) Estatísticas coletadas quando um arquivo de 28Mbps é transferido de B para C. OBS. estatísticas de G1: tc –s class show dev eth0 estatísticas de G2: tc –s filter show dev eth0 4) Captura dos pacotes no Ethereal quando um arquivo de 28 Mbps é transferido de A para C.

14 SCRIP G2: apenas se a versão de linux não suportar DSMARK
#!/bin/bash tc qdisc del dev eth0 root tc qdisc add dev eth0 root handle 1:0 prio # criou as classes 1:1, 1:2 e 1:3 tc filter add dev eth0 parent 1:0 protocol ip u32 match ip src A.0/24 police rate 500kbit burst 62.5K continue flowid 1:1 tc filter add dev eth0 parent 1:0 protocol ip u32 match ip src A.0/24 police rate 500kbit burst 62.5K drop flowid 1:2

15 Comandos adicionais Reinicializar a configuração de rede service network restart Apagar rotas acumuladas read rota route -n | grep $rota if [ $? eq 0 ]; then route del $rota fi


Carregar ppt "Exercício QoS Linux Edgard Jamhour."

Apresentações semelhantes


Anúncios Google