exercícios prof. edgard jamhour recursos de qos no roteador cbq – class based queuing diff-serv
Post on 07-Apr-2016
219 Views
Preview:
TRANSCRIPT
ExercíciosExercícios
Prof. Edgard Jamhour
Recursos de QoS no RoteadorCBQ – Class Based Queuing
Diff-Serv
CBQ: Class-Based QueuingCBQ: Class-Based Queuing
• Class-Based Tree
Root100 Mbps
TCP60 Mbps UDP
40 Mbps
ICMP0 Mbps
HTTP30 Mbps
FTP30 Mbps
Identificando as InterfacesIdentificando as Interfaces
• A numeração adotada pelo roteador depende dos protocolos adicionados a cada interface.
• >status– Slot 1.1 Tcom T1 Driver
• cbq.1• frame-relay.1
– Slot 2.1 Ethernet Driver• cbq.2• eth.1• ip.1
SentidoSentido
• As regras se aplicam de forma diferente de acordo com o sentido do pacote.
• Existe uma árvore diferente para cada sentido em cada porta do roteador.
CBQ.2
Inbound: root-input-tree
Outbound: root-output-tree
ROTEADOR CBQ.3
Inbound: root-input-tree
Outbound: root-output-tree
Comandos – Sintaxe BásicaComandos – Sintaxe Básica
• config cbq.2 traffic-class.nome-da-classe-filho (e.g. tcp)
parent nome-da-classe-pai (e.g. root-input-tree)
[ ... definições da classe ... ]
per-classification-order int (default 100)
bandwidth-allocation banda-em-bps (e.g. 500000)
bounded true/false (permite ou não ultrapassar o limite alocado)
maxbandwidth banda-em-Mbps (limite máximo)
Criação de uma Classe Filho Criação de uma Classe Filho
classe-pai
classe-filhapre-order
1
100.000.000 (100 Mbps)bounded true
50.000.000 (50 Mbps)bounded falsemaxbandwidth 80.000.000
classe-filhapre-order
2
50.000.000 (50 Mbps)bounded true
Ativação do CBQAtivação do CBQ
• Ativação da classificação dos pacotes que entram pela interface associada ao cbq.2 do roteador:– config cbq.2 traffic-class.root-input-tree
row-status active
• Ativação da classificação dos pacotes que saem pela interface associada ao cbq.2 do roteador:– config cbq.2 traffic-class.root-output-tree
row-status active
Verificação e AlteraçãoVerificação e Alteração
• Toda a árvore de um cbq– show cbq.2 traffic-filters summary
• Uma árvore (classe) específica– show cbq.2 nome-da-classe
• Apagando um classe específica– delete cbq.2 traffic-filter.nome-da-classe
Opções de FiltroOpções de Filtro
• Endereços IP:– src-ip-addresses ip1-ip2 dst-ip-addresses ip3-ip4– (e.g.) src-ip-addresses 192.168.0.1-192.168.0.100– (e.g.) dst-ip-addresses 192.168.0.1,192.168.0.7
• Portas:– src-ports p1-p2 dst-port p3-p4– (e.g.) src-ports 1024-65535– (e.g.) src-ports 110,143
• Protocols (sigla ou número)– protocols sigla-ou-número– (e.g.) protocols tcp,udp– (e.g.) protocols 6-17
ExemplosExemplos
• Regra para subrede:– config cbq.1 traffic-class.bancada1
src-ip-addresses 192.168.1.0-192.168.1.20
parent root-input-tree• Regra para protocolo:
– config cbq.2 traffic-class.udp protocols udpparent root-input-treebandwidth-allocation 0 bounded true.
OperadoresOperadores
• O operador default é and, isto é, apenas os pacotes que atendem todos os critérios de filtro de uma classe são classificados:– config cbq.1 traffic-class.httpserver src-ip-
addresses 192.168.1.2 protocols tcp [operator and]
• No caso do operador or, basta que um critério seja satisfeito:– config cbq.1 traffic-class.httpserver src-ip-
addresses 192.168.1.2 protocols tcp operator or
Operação com Diff-ServOperação com Diff-Serv
• A operação com Diff-Serv implica na criação de classes que:
– 1) Efetuam a classificação de pacotes baseado no campo TOS (DSCP)
– 2) Remarcam o campo TOS (DSCP) baseando em dois critérios:
• a) Adequação aos critério de classificação de uma classe
• b) Empréstimo ou não de banda da classe pai.
Sintaxe para Re-Marcação TOSSintaxe para Re-Marcação TOS
• config cbq.2 nome-da-classe-filho• parent nome-da-classe-pai
• bandwidth-allocation bps • bounded true/false maxbandwidth bps
• tos-value byte tos-mask byte– marcação de pacotes dentro da banda estipulada
• tos-borrow-value byte tos-borrow-mask byte– marcação de pacotes fora da banda estipulada
ExemploExemplo
• SLA para o cliente da sub-rede 192.168.1.0/24
– pacotes dentro da classe: 0.5 Mbps• AÇÃO: marcação DSCP=001
– pacotes fora da classe mas abaixo do limite 0.5 a 1 Mbps• AÇÃO: marcação DSCP=002
– pacotes acima do limite-hard: > 1 Mbps• AÇÃO: descartados
RemarcaçãoRemarcação
Acima da Banda Máxima
Zona de Empréstimo
Zona Normal0 bps
bandwidth-allocation
maxbandwidth
capacidade do link
DSCP = 001
DSCP = 002
Descarte
ExercícioExercício
192.168.1.0/24
192.168.2.0/24
192.168.3.0/24
192.168.4.0/24
1
2
3
4
rede 1
rede 2
rede 3
rede 4
192.168.1.1
192.168.2.1
192.168.2.2
192.168.3.1
192.168.4.1
192.168.3.2
192.168.5.1/30
192.168.5.2/30
1 2
Exercício – Marcação dos pacotes Exercício – Marcação dos pacotes
root-input-tree
se a origem for o computador 1• banda: 500 bps• bounded false • até 500 bps, marcar DSCP 1• acima de 500 = DSCP 2
se a origem for o computador 2• banda: 500 bps• bounded false • até 500 bps, marcar DSCP 1• acima de 500 = DSCP 2
Exercício – Traffic Shaping na SaídaExercício – Traffic Shaping na Saída
root-output-tree se DSCP = 1• banda: 1000 bps• bounded true 2000 bps
se DSCP =2• banda: 500 bps• bounded true 500 bps
Exercício – Traffic Shaping na EntradaExercício – Traffic Shaping na Entrada
root-input-tree se DSCP = 1• banda: 1000 bps• bounded true 2000 bps
se DSCP =2• banda: 500 bps• bounded true 500 bps
Q-Elasticity FactorQ-Elasticity Factor
• Por default, cada classe do CBQ possui um buffer para 100 pacotes.
• Esse valor pode ser alterado através do comando:
• config cbq.2 traffic-class.nome-da-classe q-elasticity-factor 1000
Configuração do REDConfiguração do RED
• Por default, o CBQ não implementa RED.
• RED é controlado pelo parâmetro red-minimum-queue-value (valor default = 0 – desativado)
• O valor pode ser alterado pelo comando:
• config cbq.2 traffic-class.nome-da-classe redminimum-queue-value 3– esse comando iniciará o processo de descarte quando o
número médio de pacotes no buffer for superior a 3.
Monitorando REDMonitorando RED
• show cbq.2 traffic-class.nome-da-classe red
• Mostra:
– pacotes descartados por RED (não inclui os descartados por estouro de buffer)
– probabilidade do próximo pacote ser descartado da classe.
Monitorando as ClassesMonitorando as Classes
• Por default, as estatísticas estão desabilitadas:
• config cbq.2 cbq-history-status enabled– ou
• config cbq.2 traffic-class.nome-da-classe history-status enabled
• show cbq.2 traffic-classes history– ou
• show cbq.2 traffic-class.nome-da-classe history
Criação Automática de ClassesCriação Automática de Classes
• Para gerar classes automáticas por IP de origem ou destino.– config cbq.2 traffic-class.nome-da-classe
auto-class-enabled true
auto-class-child-bw-allocation 1000auto-class-child-max-bw-alloc 2000auto-class-child-bounded true/false
dest-ip-addresses 192.168.1.1-192.168.1.10 ou scr-ip-addresses 192.168.1.1-192.168.1.10
parent root-output-treebandwidth-allocation 10000
Agrupamento de IPsAgrupamento de IPs
• Para criar classes com IPs agrupados por faixas, incluir no final do comando as diretivas:
• Agrupamento pelo IP de origem:– auto-class-child-src-ip-divisor int (e.g. 4)
• Agrupamento pelo IP de destino:– auto-class-child-dest-ip-divisor int (e.g. 4)
ExercícioExercício
root input tree
cbq 2
TCP1
100 Kbpsbounded true
UDP2
100 Kbps
outros100
50 Kbpsbounded true
Ip1 IpN Ip1 IpN... ...
computadores da bancadaclassificação automática
10 Kbps50 kbpsboundedfalse
5 Kbps20 kbpsboundedfalse
50 Kbpsbounded true
Operação StatefulOperação Stateful
• Configuração stateful cria regras dinâmicas, limitando a resposta para a porta da aplicação cliente:
cliente servidor1010 80
flow (detectado) - http
counterflow - httpEstablished(automático)
Opções de Filtro StatefulOpções de Filtro Stateful
• applications sigla– http, ftp, allICMP, etc.– httpEstablised, ftpEstablished,
allICMPEstablished, etc
– traffic-class.http-out applications http
– traffic-class.http-return aplications httpEstablished
Applicações StatefullApplicações Statefull
• allTcp, allTcpEstablished• allUdp, allUdpEstablished• allIcmp, allIcmpEstablished• ftp, ftpEstablished• http, httpEstablished• telnet, telnetEstablished• dns, dnsEstablished• ssh, sshEstablished• h323Control, h323ControlEstablished, • h323Audio, h323AudioEstablished, • etc ..
ExemploExemplo
• config cbq.2 traffic-class.requisicao – protocols udp dest-ports 1081 parent root-input-tree
• config cbq.3 traffic-class.resposta– protocols allUdp src-ports 1081 parent root-input-tree
(** ERRADO **)• config cbq.3 traffic-class.resposta
– applications allUdpEstablished src-ports 1081 parent root-input-tree
roteadorBancada 1 Bancada 2cbq.3
clienteServidor
UDPresposta
cbq.2
1081requisicao
ExercícioExercício
• Construa a arvore CBQ para as seguintes regras:– Bancada1 pode abrir conexões TCP (porta 80) na bancada
2, mas não o contrário.– Bancada2 pode abrir “conexões” UDP na bancada 1 (porta
53), mas não o contrário.
roteadorBancada 1 Bancada 2cbq.3
clienteServidor
UDPresposta
cbq.2
requisicao
Integração de QoS com VLANsIntegração de QoS com VLANs
• O mapeamento de condições para os campos da VLAN é feito através dos parâmetros:– datalink-traffic-indice e datalink-traffic-mask
15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
prioridade CFI VLAN ID
máscara 0xe000
máscara 0x0ffff
Exemplos de mapeamento de prioridadeExemplos de mapeamento de prioridade
• Regra para pacotes com prioridade 0– config cbq.3 traffic-class.prioridade0
datalink-traffic-class-indices 0datalink-traffic-mask 0xe000parent root-input-tree
• Regra para pacotes com prioridade 1 a 3– config cbq.3 traffic-class.prioridade0
datalink-traffic-class-indices 0x2000-0x6000datalink-traffic-mask 0xe000parent root-input-tree
• Regra para pacotes com prioridade 4 a 7– config cbq.3 traffic-class.prioridade0
datalink-traffic-class-indices 0x8000-0xe000datalink-traffic-mask 0xe000parent root-input-tree
Exemplos de mapeamento de VLANExemplos de mapeamento de VLAN
• Regra para pacotes pertencentes as VLANs de 1 a 10 e 14.– config cbq.3 traffic-class.prioridade0
datalink-traffic-class-indices 0x01-0x0a,0x0edatalink-traffic-mask 0x0ffffparent root-input-tree
Preparando o RoteadorPreparando o Roteador
• para aceitar quadros com tags de VLAN:– config eth.<instance> admit-8021q-tagged-frames true
• para rotear para dispositivos com VLANs ID que não estão configuradas no AP– config eth.<instance> admit-configured-vlans-only false
• para remover tags de VLAN– config eth.<instance> strip-bridged-8021q-tags true
• para verificar os parâmetros de VLAN da interface– show eth.<instance> vlan
Preparando o RoteadorPreparando o Roteador
• 1) É necessário criar uma sub-interface para cada VLAN tratada pelo roteador:– stack slot.4.1 cbq.3 eth.2 eth.2.new ip.new
• 2) Use o comando status para verificar o novo id da interface. Elas serão criadas na seqüência:– eth.2.1, eth.2.2, etc.– ip.2.1, ip.2.3, etc.
• 3) Atribua um código de VLAN a nova instância. Exemplo:– config eth.2.1 vlan-id 12
• 4) Atribua o endereço IP e as rotas.
ObservaçãoObservação
• Quadros com VLAN IDs configurados no roteador serão enviados para interface correspondente.
• Quadros sem VLAN IDs ou com VLAN IDs que não existam no roteador, serão enviados para interface integral: e.g. eth.2
• Use os comandos abaixo para a porta do switch onde o roteador está conectado:– set trunk 1/19 dot1q– set port vlan-binding-mode 1/19 bind-to-configured
Comandos ÚteisComandos Úteis
• reset defaults
• add ip.2 address.192.168.2.1
• show ip.* address-table summary
• add ip static-route.192.168.1.0 ...
top related