2005, Edgard Jamhour Avaliação QoS Linux Edgard Jamhour
2005, Edgard Jamhour Avaliação Uma empresa tem um SLA com o provedor, definindo um link com 500 Kbps garantindo, com rajadas eventuais de 1000 Kbps. rede 1 rede 2 G1 G2 AC A.0/ B.0/ x/ y/ A B B A.2 B A.3 empresaprovedor 500 Kbps 1000 Kbps
2005, Edgard Jamhour Configuração da Bancada AB C LABORATÓRIO eth0: A.3/24 eth0: A.2/24 REDE PUCPR G1 eth0 eth1 G2 eth0: A.1/24 eth1: x/17 eth0:1 eth0 eth0: y/17 eth0: B.1/24 eth0: B.2/24 eth0 Nos roteadores: (repetir trocando eth0 por all e eth1) sysctl net.ipv4.ip_forward = 1 sysctl net.ipv4.conf.eth0.accept_redirects = 0 sysctl net.ipv4.conf.eth0.send_redirects = 0 Nos clientes: sysctl net.ipv4.conf.eth0.accept_redirects = 0 sysctl net.ipv4.conf.all.accept_redirects = 0
2005, Edgard Jamhour 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 TCP 300 Kbps 1000 Kbps UDP 100 Kbps 400 Kbps Default 100 Kbps 400 Kbps A Kbps 800 Kbps A Kbps 200 Kbps
2005, Edgard Jamhour 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 tc filter add dev eth0 parent 1:0 prio 1 protocol ip u32 \ 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
2005, Edgard Jamhour 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. G2G2 tráfego vindo de G1tráfego indo para G1 policiamento Classe PRIO 2 Classe PRIO 1 DESCARTAR policiamento 0 kbs 500 kbs 1000 kbs capacidade do link
2005, Edgard Jamhour 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. balde 1 (62,5kbytes) rate 500 kbps balde 2 (62,5kbytes) rate 500 kbps X drop tráfego indo/vindo G1 tráfego da rajada tráfego excedente
2005, Edgard Jamhour Exemplo de Script para G2 (incompleto) #!/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 OBS. Fazer o script para interface eth0:1
2005, Edgard Jamhour Entrega do Trabalho 1) Script de configuração do Gateway 1 2) Script de configuração do Gateway 2 3) Estatísticas coletadas quando um arquivo de 28Mbps é transferido de C para A. 4) Estatísticas coletadas quando um arquivo de 28Mbps é transferido de C para B. OBS. –estatísticas de G1: tc –s class show dev eth0 –estatísticas de G2: tc –s filter show dev eth0 5) Captura dos pacotes no Ethereal quando um arquivo de 28 Mbps é transferido de C para B.