Bom, QoS na LAN todo mundo sabe configurar, né? "auto qos voip cisco-phone" e boa, o Switch faz tudinho pra você, seguindo as melhores práticas da Cisco. Inclui um monte de configurações automaticamente e tudo funciona perfeitamente bem. Mas para a prova, não basta saber só isso... temos que entender exatamente o que o Switch configura para você com o auto qos, para podermos modificá-lo do jeito que o enunciado pedir.
Para esse post, utilizarei como base um 3750, que é o que teremos na prova. Para outros modelos de switch, algumas coisas podem ser diferentes.
Quando aplicamos o auto qos, o switch inclui as seguintes configurações (dentre outras, que mostrarei em outro post):
mls qos map cos-dscp 0 8 16 24 32 46 48 56
mls qos srr-queue input bandwidth 90 10
mls qos srr-queue input threshold 1 8 16
mls qos srr-queue input threshold 2 34 66
mls qos srr-queue input buffers 67 33
mls qos srr-queue input cos-map queue 1 threshold 2 1
mls qos srr-queue input cos-map queue 1 threshold 3 0
mls qos srr-queue input cos-map queue 2 threshold 1 2
mls qos srr-queue input cos-map queue 2 threshold 2 4 6 7
mls qos srr-queue input cos-map queue 2 threshold 3 3 5
mls qos srr-queue input dscp-map queue 1 threshold 2 9 10 11 12 13 14 15
mls qos srr-queue input dscp-map queue 1 threshold 3 0 1 2 3 4 5 6 7
mls qos srr-queue input dscp-map queue 1 threshold 3 32
mls qos srr-queue input dscp-map queue 2 threshold 1 16 17 18 19 20 21 22 23
mls qos srr-queue input dscp-map queue 2 threshold 2 33 34 35 36 37 38 39 48
mls qos srr-queue input dscp-map queue 2 threshold 2 49 50 51 52 53 54 55 56
mls qos srr-queue input dscp-map queue 2 threshold 2 57 58 59 60 61 62 63
mls qos srr-queue input dscp-map queue 2 threshold 3 24 25 26 27 28 29 30 31
mls qos srr-queue input dscp-map queue 2 threshold 3 40 41 42 43 44 45 46 47
mls qos srr-queue output cos-map queue 1 threshold 3 5
mls qos srr-queue output cos-map queue 2 threshold 3 3 6 7
mls qos srr-queue output cos-map queue 3 threshold 3 2 4
mls qos srr-queue output cos-map queue 4 threshold 2 1
mls qos srr-queue output cos-map queue 4 threshold 3 0
mls qos srr-queue output dscp-map queue 1 threshold 3 40 41 42 43 44 45 46 47
mls qos srr-queue output dscp-map queue 2 threshold 3 24 25 26 27 28 29 30 31
mls qos srr-queue output dscp-map queue 2 threshold 3 24 25 26 27 28 29 30 31
mls qos srr-queue output dscp-map queue 2 threshold 3 56 57 58 59 60 61 62 63
mls qos srr-queue output dscp-map queue 3 threshold 3 16 17 18 19 20 21 22 23
mls qos srr-queue output dscp-map queue 3 threshold 3 32 33 34 35 36 37 38 39
mls qos srr-queue output dscp-map queue 4 threshold 1 8
mls qos srr-queue output dscp-map queue 4 threshold 2 9 10 11 12 13 14 15
mls qos srr-queue output dscp-map queue 4 threshold 3 0 1 2 3 4 5 6 7
mls qos queue-set output 1 threshold 1 138 138 92 138
mls qos queue-set output 1 threshold 2 138 138 92 400
mls qos queue-set output 1 threshold 3 36 77 100 318
mls qos queue-set output 1 threshold 4 20 50 67 400
mls qos queue-set output 2 threshold 1 149 149 100 149
mls qos queue-set output 2 threshold 2 118 118 100 235
mls qos queue-set output 2 threshold 3 41 68 100 272
mls qos queue-set output 2 threshold 4 42 72 100 242
mls qos queue-set output 1 buffers 10 10 26 54
mls qos queue-set output 2 buffers 16 6 17 61
Vamos tentar entender o que é tudo isso...
Primeiramente é preciso saber que o 3750 trabalha com 2 filas de entrada e 4 filas de saída por porta. Vamos pensar primeiro na entrada, ou seja, quando o pacote chega no switch. Nesse momento ele pode ser colocado em uma das duas filas de entrada (ingress). Os parâmetros dessas filas são definidas nos comandos (obs: L1, L2, L3 e L4 não fazem parte do comando. É só para identificar a linha):
L1. mls qos srr-queue input bandwidth 90 10
L2. mls qos srr-queue input threshold 1 8 16
L3.
mls qos srr-queue input threshold 2 34 66
L4.
mls qos srr-queue input buffers 67 33
Com isso estamos dizendo que vamos alocar 90% da banda para a fila 1 e 10% da banda para a fila 2 (L1), e dividiremos o buffer de memória em 67% para a fila 1 e 33% para a fila 2 (L4). Com isso determinamos o quanto de dados podem ser armazenados na fila antes que os pacotes comecem a ser droppados na interface.
Além disso, definimos também alguns thresholds para cada fila (L2 e L3): para a fila 1, temos o primeiro threshold em 8% e o segundo em 16%; e para a fila 2 temos o primeiro threshold em 34% e o segundo em 66%. Para as duas filas existe também um terceiro threshold em 100% (não configurável). Isso quer dizer que se colocarmos um tráfego na fila 1, threshold 1, por exemplo, quando ele atingir os 8% da fila, começará a ser droppado (WTD - Weighted Tail Drop).
Mas para isso, precisamos separar os pacotes nas filas/threshold, de acordo com a sua marcação de CoS e DSCP. Esse mapeamento é feito pelos comandos:
L1. mls qos srr-queue input cos-map queue 1 threshold 2 1
L2. mls qos srr-queue input cos-map queue 1 threshold 3 0
L3. mls qos srr-queue input cos-map queue 2 threshold 1 2
L4. mls qos srr-queue input cos-map queue 2 threshold 2 4 6 7
L5. mls qos srr-queue input cos-map queue 2 threshold 3 3 5
L6. mls qos srr-queue input dscp-map queue 1 threshold 2 9 10 11 12 13 14 15
L7. mls qos srr-queue input dscp-map queue 1 threshold 3 0 1 2 3 4 5 6 7
L8. mls qos srr-queue input dscp-map queue 1 threshold 3 32
L9. mls qos srr-queue input dscp-map queue 2 threshold 1 16 17 18 19 20 21 22 23
L10. mls qos srr-queue input dscp-map queue 2 threshold 2 33 34 35 36 37 38 39 48
L11. mls qos srr-queue input dscp-map queue 2 threshold 2 49 50 51 52 53 54 55 56
L12. mls qos srr-queue input dscp-map queue 2 threshold 2 57 58 59 60 61 62 63
L13. mls qos srr-queue input dscp-map queue 2 threshold 3 24 25 26 27 28 29 30 31
L14. mls qos srr-queue input dscp-map queue 2 threshold 3 40 41 42 43 44 45 46 47
De L1 a L5, fazemos o mapeamento baseado no CoS. Tipo, Cos 1 vai para a fila 1, threshold 2; Cos 0 vai para fila 1, threshold 3; CoS 3 e 5 vão para a fila 2 threshold 3... E de L6 a L14 fazemos o mapeamento baseado no DSCP. Tipo, DSCP 46 está na fila 2, threshold 3. (obs:Quando muitos DSCPs estão mapeados na mesma fila e threshold, o switch quebra a config em várias linhas, mas é como se estivesse tudo numa linha só. Ex: L13 e L14 são mapeamentos da fila 2, threshold 3).
Beleza, agora vamos ver as filas de saída (egress). O 3750 trabalha com 4 filas de saída para cada interface, que vamos chamar de Q1, Q2, Q3 e Q4. E para cada fila podemos configurar também 2 thresholds (e existe mais um terceiro fixo nos 100%). A diferença é que nas filas de saída os thresholds podem ficar acima dos 100%, pois ele usará a memória do switch alocada para a interface.
As filas e thresholds são configuradas por esses comandos:
mls qos queue-set output 1 threshold 1 138 138 92 138
mls qos queue-set output 1 threshold 2 138 138 92 400
mls qos queue-set output 1 threshold 3 36 77 100 318
mls qos queue-set output 1 threshold 4 20 50 67 400
mls qos queue-set output 2 threshold 1 149 149 100 149
mls qos queue-set output 2 threshold 2 118 118 100 235
mls qos queue-set output 2 threshold 3 41 68 100 272
mls qos queue-set output 2 threshold 4 42 72 100 242
Queue-sets são como se fossem templates. O 3750 deixa você configurar 2 templates, e a Cisco recomenda que você mexa apenas no template 2. Isso porque se você fizer alguma cagada, pode simplesmente voltar para o template 1 e tudo estará bem. Para aplicar um queue-set em uma interface, basta entrar na config dela e aplicar queue-set 1 ou queue-set 2.
Nos queue-sets definimos os thresholds de cada fila. Mas nos comandos podemos ver que na frente do ID da fila temos 4 parâmetros. Se eu disse que só configuramos 2 Thresholds, o que são os outros dois? A sintaxe do comando é a seguinte:
mls qos queue-set output <queue-set id> threshold <queue-id> <T1> <T2> <Reserved> <Maximum>
Para entender isso é preciso saber que o 3750 reserva um buffer de memória para cada fila de cada interface (reserved buffer pool). Quando a fila não usa essa memória, ela vai pro common buffer pool, e fica disponível para outras filas. Meio complicado mesmo, faz parte da arquitetura do switch.
Mas o importante é saber que depois de definir os thresholds (T1 e T2), definimos quantos % da memória reservada para a fila eu vou garantir para ela. É a memória que vou deixar reservada para ela. Já o outro parâmetro, Maximum, é o máximo de memória que eu vou poder alocar para essa fila, usando o common buffer pool.
E finalmente, esses comandos dividem o buffer da porta entre as 4 filas (a soma da 100%):
mls qos queue-set output 1 buffers 10 10 26 54
mls qos queue-set output 2 buffers 16 6 17 61
Bom, mas agora falta jogarmos os tráfegos classificados dentro das filas e thresholds. Lembrando que para o Switch 3750, a fila de maior prioridade (PQ) é a fila 1! Mas isso muda de switch pra switch, já vi alguns que a Priority Queue é a 4. Vai saber pq a Cisco faz isso...
Para mapear o tráfego nas filas é igual fizemos nas de entrada:
mls qos srr-queue output cos-map queue 1 threshold 3 5
mls qos srr-queue output cos-map queue 2 threshold 3 3 6 7
mls qos srr-queue output cos-map queue 3 threshold 3 2 4
mls qos srr-queue output cos-map queue 4 threshold 2 1
mls qos srr-queue output cos-map queue 4 threshold 3 0
mls qos srr-queue output dscp-map queue 1 threshold 3 40 41 42 43 44 45 46 47
mls qos srr-queue output dscp-map queue 2 threshold 3 24 25 26 27 28 29 30 31
mls qos srr-queue output dscp-map queue 2 threshold 3 24 25 26 27 28 29 30 31
mls qos srr-queue output dscp-map queue 2 threshold 3 56 57 58 59 60 61 62 63
mls qos srr-queue output dscp-map queue 3 threshold 3 16 17 18 19 20 21 22 23
mls qos srr-queue output dscp-map queue 3 threshold 3 32 33 34 35 36 37 38 39
mls qos srr-queue output dscp-map queue 4 threshold 1 8
mls qos srr-queue output dscp-map queue 4 threshold 2 9 10 11 12 13 14 15
mls qos srr-queue output dscp-map queue 4 threshold 3 0 1 2 3 4 5 6 7
Eu sei, esse post ficou enorme, cansativo e dificil! Vou tentar fazer um exemplo...
Digamos que a gente tenha esse mapeamento:
mls qos srr-queue output cos-map queue 2 threshold 1 3
mls qos srr-queue output cos-map queue 2 threshold 2 4 5
E configuramos esses thresholds para a fila 2:
mls qos queue-set output 1 threshold 2 40 70 90 400
Quer dizer que quando o buffer da fila 2 estiver em 40% (T1), ela vai começar a droppar o tráfego marcado com CoS 3, mas não o tráfego marcado com CoS 4 e 5, porque estes estão mapeados no T2, que está em 70%.
Digamos agora que a gente tenha o seguinte buffer configurado:
mls qos queue-set output 1 buffers 15 45 20 20
Para a fila 2, configuramos 90% de reserved e 400 de maximum. Isso significa que reservaremos 90% do buffer da fila 2 (isto é, 45% da memória da porta). Então teremos garantido para essa fila 90% dos 45% de memória da porta. Os outros 10% ficarão no common buffer pool e poderá ser usado pelas filas 1, 3 e 4. Assim como as outras filas também podem ter deixado uma sobrinha no common buffer pool.
Agora só ficou faltando falar sobre esse comando:
mls qos map cos-dscp 0 8 16 24 32 46 48 56
Esse é fácil. É simplesmente como o switch vai fazer o mapeamento de CoS para DSCP, como expliquei no post passado. Nesse caso o switch vai mapear CoS 0 com DSCP 0, CoS 1 com DSCP 8, CoS 2 com DSCP 16, CoS 3 com DSCP 24 (Voice Signaling!), CoS 4 com DSCP 32, CoS 5 com DSCP 46 (RTP!), CoS 6 com DSCP 48 e CoS 7 com DSCP 56.
Caraca, esse post ficou todo confuso... mas espero que tenha ajudado!
Muito bom, valeu mesmo.
ResponderExcluirEste comentário foi removido pelo autor.
ResponderExcluiramigo esse comando "auto qos voip cisco-phone" não funciona no Switch 2960 ?
ResponderExcluirDepende da IOS que você está usando... Se não me engano, precisa da IOS LAN Base. Abs!
Excluir