Introdução
Primeiro, deixe-me escrever que passo a maior parte do verão tentando descobrir uma maneira correta de fazer isso. Além disso, tive que contratar um CCIE em período integral por uma semana para ajudar e, no processo, tivemos o Cisco TAC tentando descobrir um erro em nossos comutadores da série 6500.
Por que você faria isso?
Hoje há uma explosão virtual de aplicativos rich media na rede IP. Essa explosão de tipos de conteúdo e mídia, gerenciados e não gerenciados, requer que os arquitetos de rede dêem uma nova olhada em seus projetos de Qualidade de Serviço (QoS).
A primeira etapa pode parecer óbvia e supérflua, mas na realidade é crucial: defina claramente os objetivos de negócios que suas políticas de QoS devem habilitar. Isso pode incluir qualquer um dos seguintes itens:
- Garantir a qualidade da voz atende aos padrões da empresa.
- Garantir uma alta qualidade de experiência (QoE) para vídeo.
- Aumentando a produtividade do usuário, aumentando os tempos de resposta da rede para aplicativos interativos.
- Gerenciando aplicativos que são "porcos de largura de banda".
- Identificando e priorizando aplicativos de consumidor.
- Melhorando a disponibilidade da rede.
- Endurecendo a infraestrutura de rede.
Com esses objetivos em mente, os arquitetos de rede podem identificar claramente quais aplicativos são relevantes para seus negócios. Por outro lado, essa experiência também tornará claro quais aplicativos não são relevantes para alcançar os objetivos de negócios. Tais aplicativos podem ser aplicativos orientados ao consumidor e / ou entretenimento. No final, tudo depende de você.
A solução
Eu queria tornar isso o mais fácil e livre de configurações possível. Com isso em mente, combinado com o fato de que a QoS sempre deve ser processada em hardware, fui recomendado a usar o recurso Auto-QoS na Cisco pela CCIE que eu contratei.
Portanto, em vez de marcar o tráfego no nível de acesso, a marcação pode ser feita pelos próprios usuários finais ou servidores. O Auto-QoS fornece as classes corretas para o transporte do tráfego pela rede. Isso me permitiu decidir quais aplicativos ou serviços devem ser priorizados ou não priorizados por meio de políticas de grupo do Active Directory.
Para iniciantes, eu queria torná-lo simples. Isso significava priorizar aplicativos de VoIP e vídeo, que já são predefinidos no Auto-QoS quando você usa dispositivos IP / TelePresença / Câmeras etc. da Cisco, o que fazemos.
Visão geral da topologia
Utilizamos os seguintes equipamentos de acesso / núcleo.
- Núcleo: Cisco 897 series, Cisco 3650 Series, Cisco 3850 Series e Cisco 6500 Series
- Acesso: Cisco 3560CX Compact series e Cisco 2960X Series
Nossa topologia é baseada principalmente em uma topologia em estrela, observe o seguinte desenho de topologia (Usamos BGP em nosso WAN MPLS):
QoS na camada de acesso
A configuração é muito simples e direta ao usar o Auto-QoS. Observar o tráfego e enviá-lo para o MPLS ISP é um pouco mais complicado, mas mostrarei exemplos abaixo.
Todos os comutadores de acesso são configurados com o Auto-QoS, onde todas as portas de acesso e de tronco / uplinks são confiáveis com o DSCP. Observe a tabela de QoS a seguir, onde todos os valores para DSCP, CoS, ToS etc. estão configurados em uma tabela. Isso fornece uma boa visão geral das classes selecionadas e da estrutura na qual estou tentando realizar no meu design:
O Auto-QoS usa os valores AF (Assured Forwarding) para marcação DSCP.
Ativando a QoS automática no comutador de acesso
Configuração global
mls qos (Activates QoS)
mls qos map cos-dscp 0 8 16 24 32 46 48 56 (Maps CoS to DSCP values, because CoS is a layer 2 marking, which cannot be routed)
auto qos srnd4 (Autogenerates all configuration in accordance to Cisco best practice SRND4 standard)
Configuração de porta
auto qos trust dscp (Activates QoS and trusts DSCP on a port)
priority-queue out (Sends all traffic to the priority queues)
É isso aí, o switch e as portas agora executarão o Auto-QoS.
Guia de configuração do Auto-QoS para a série 2960X: https://www.cisco.com/c/en/us/td/docs/switches/lan/catalyst2960x/software/15-0_2_EX/qos/configuration_guide/b_qos_152ex_2960-x_cg/ b_qos_152ex_2960-x_cg_chapter_011.html
Ativando a QoS automática na camada Core
Há uma grande diferença na maneira como a QoS é tratada pelos switches Core. O Cisco 6500 Series não suporta Auto-QoS SRND4, portanto, precisaremos configurar manualmente a QoS e mapeá-la para as classes corretas, a fim de preservar o design da Auto-QoS. O Cisco 3650 e 3850 Series suporta Auto-QoS SRND4 e, portanto, é bastante simples de configurar:
Ativando a QoS automática nas séries 3650 e 3850
Configuração global
auto qos srnd4 (Activates and autogenerates the QoS configuration)
Configuração de porta
auto qos trust dscp (Activates and autogenerates the QoS configuration)
Ao conectar o Core ao MPLS ISP, queremos observar o tráfego em 5 classes (porque é isso que o nosso ISP suporta). Assim, o tráfego será priorizado através do MPLS para todos os locais na topologia (consulte o desenho para referência). Seu ISP pode ser diferente e, portanto, a observação deve ser feita para que se ajuste ao seu design. O exemplo a seguir é como você observa todo o tráfego em 5 classes.
Você precisa copiar o mapa de políticas de Auto-QoS "AutoQos-4.0-Output-Policy" gerado automaticamente e depois criar um novo. É necessário usar os mesmos mapas de classe gerados pelo Auto-QoS. Se você tentar criar o seu próprio, eles serão ignorados; portanto, os mesmos mapas de classe são usados e a marcação é feita a partir dessas classes:
policy-map WAN-OUTPUT-QoS (The name can be whatever you like)
class AutoQos-4.0-Output-Priority-Queue
set dscp ef
priority level 1 percent 10
class AutoQos-4.0-Output-Control-Mgmt-Queue
bandwidth remaining percent 10
queue-buffers ratio 10
set dscp af21
class AutoQos-4.0-Output-Multimedia-Conf-Queue
bandwidth remaining percent 10
queue-buffers ratio 10
set dscp af41
class AutoQos-4.0-Output-Trans-Data-Queue
bandwidth remaining percent 10
queue-buffers ratio 10
set dscp af21
class AutoQos-4.0-Output-Bulk-Data-Queue
bandwidth remaining percent 2
queue-buffers ratio 10
set dscp default
class AutoQos-4.0-Output-Scavenger-Queue
bandwidth remaining percent 1
queue-buffers ratio 10
set dscp cs1
class AutoQos-4.0-Output-Multimedia-Strm-Queue
bandwidth remaining percent 10
queue-buffers ratio 10
set dscp af41
class class-default
bandwidth remaining percent 25
A seguir, as 5 classes serão priorizadas e enviadas ao MPLS da seguinte maneira:
- Valor AF DSCP: EF (VoIP)
- Valor AF de DSCP: af41 (toda a mídia de vídeo)
- Valor AF do DSCP: af21 (dados transacionais etc.)
- Valor de AF do DSCP: padrão (AF = 0 e DSCP = 0 dados em massa, por exemplo)
- Valor de AF DSCP: cs1 (classe Scavenger para Bittorrent etc.)
As porcentagens de largura de banda são usadas como restantes. Isso significa que todas as classes têm permissão para usar 100% da largura de banda e emprestar das outras classes se a largura de banda não for usada. É como o compartilhamento de largura de banda, o que significa que, independentemente da classe que for priorizada, a mais alta poderá enviar tráfego se o link estiver congestionado.
As classes e porcentagens do mapa de políticas podem ser modificadas conforme necessário para atender aos seus requisitos individuais.
Na ligação ascendente da porta ao ISP, é necessário configurar o seguinte:
interface XXX
auto qos trust dscp
service-policy input AutoQos-4.0-Trust-Dscp-Input-Policy
service-policy output WAN-OUTPUT-QoS
É isso para as séries 3650 e 3850.
Habilitando a QoS na série 6500
A série 6500 não suporta Auto-QoS SRND4. É muito básico e entende apenas os valores CoS da camada 2 para VoIP. Isso significa que você precisa configurar toda a QoS desde o início, para ajustar a infraestrutura de Auto-QoS a partir da camada de acesso. A QoS precisa ser configurada com base em qual módulo está instalado no chassi. Você também precisa criar mapas de políticas para entrada e saída (entrada / saída).
O supervisor entende apenas o CoS entre o módulo e o ASIC no chassi.
Para ativar o Auto-QoS for CoS, você precisa utilizar o seguinte comando global:
auto qos default
Isso criará um mapa de tabela de CoS para DSCP, mas nem todos os valores estão de acordo com o padrão Auto-QoS SRND4 (o CoS 7 é mapeado para 54, que deve ser 56). Portanto, você precisará remover o mapa da tabela e substituí-lo pelo seguinte:
no table-map cos-discard-class-map
table-map cos-discard-class-map
map from 0 to 0
map from 1 to 8
map from 2 to 16
map from 3 to 24
map from 4 to 32
map from 5 to 46
map from 6 to 48
map from 7 to 56
Para criar QoS e mapas de políticas, precisamos descobrir qual modelo de fila um módulo está usando. No exemplo abaixo, a fila de entrada e saída é a mesma, mas em alguns módulos as filas Rx e Tx são diferentes e, portanto, você precisará criar mapas de políticas de acordo com o modelo de filas. Para descobrir qual modelo de fila uma interface está usando, você precisa emitir o seguinte comando. O exemplo abaixo é baseado no módulo: C6800-16P10G
show queueing interface xxx | sec Transmit queues
Transmit queues [type = 1p7q4t]
show queueing interface xxx | sec Receive queues
Receive queues [type = 1p7q4t]
Conforme escrito, as filas são iguais neste módulo e, portanto, podemos usar a mesma política para entrada e saída.
1p7q4t significa basicamente: 1 fila de prioridade, 7 filas normais, onde todas as 7 filas normais têm 4 limites. Você pode obter mais informações pesquisando o nome e a fila do módulo. Este módulo, o C6800-16P10G, é explicado neste link:
https://www.cisco.com/c/en/us/products/collateral/switches/catalyst-6800-series-switches/datasheet-c78-733662.html
Veja a tabela 1, Filas.
Primeiro, precisamos criar os mapas de classe, que serão usados para todos os mapas de políticas. Isso corresponderá aos valores DSCP para as classes individuais que correspondem às classes do Auto-QoS SRND4. Observe que os mapas de classe são criados como fila de espera com a instrução match-all, que funciona como AND / OR na programação. match-all = AND & match-any = OU.
Verifique o seguinte guia de configuração; Projeto de QoS do Cisco Campus simplificado, onde exemplos de configuração são fornecidos por diferentes módulos na parte inferior da apresentação:
http://honim.typepad.com/files/campus-qos-design-simplified-brkcrs-2501.pdf
225 páginas, o link está lento.
Criando mapas de classe (configuração global):
class-map type lan-queuing match-all REALTIME-1P7Q4T
match dscp cs4 cs5 ef
class-map type lan-queuing match-all CONTROL-1P7Q4T
match dscp cs2 cs3 cs6 cs7
class-map type lan-queuing match-all MM_CONF-1P7Q4T
match dscp af41 af42 af43
class-map type lan-queuing match-all MM_STREAM-1P7Q4T
match dscp af31 af32 af33
class-map type lan-queuing match-all TRANS_DATA-1P7Q4T
match dscp af21 af22 af23
class-map type lan-queuing match-all BULK_DATA-1P7Q4T
match dscp af11 af12 af13
class-map type lan-queuing match-all SCAVENGER-1P7Q4T
match dscp cs1
Você pode alterar os nomes ou editar conforme desejar, para atender às suas necessidades.
Depois de criar os mapas de classe, criarei o mapa de políticas. Ele define a prioridade do valor DSCP e define a largura de banda nas diferentes filas, após corresponder a um valor DSCP.
policy-map type lan-queuing 1P7Q4T
class REALTIME-1P7Q4T
priority
class CONTROL-1P7Q4T
bandwidth remaining percent 10
class MM_CONF-1P7Q4T
bandwidth remaining percent 20
random-detect dscp-based
random-detect dscp af41 percent 80 100
random-detect dscp af42 percent 70 100
random-detect dscp af42 percent 60 100
class MM_STREAM-1P7Q4T
bandwidth remaining percent 15
random-detect dscp-based
random-detect dscp af31 percent 80 100
random-detect dscp af32 percent 70 100
random-detect dscp af33 percent 60 100
class TRANS_DATA-1P7Q4T
bandwidth remaining percent 15
random-detect dscp-based
random-detect dscp af21 percent 80 100
random-detect dscp af22 percent 70 100
random-detect dscp af23 percent 60 100
class BULK_DATA-1P7Q4T
bandwidth remaining percent 9
random-detect dscp-based
random-detect dscp af11 percent 80 100
random-detect dscp af12 percent 70 100
random-detect dscp af13 percent 60 100
class SCAVENGER-1P7Q4T
bandwidth remaining percent 1
class class-default
random-detect dscp-based
random-detect dscp default percent 80 100
Após criar o mapa de políticas, você precisa aplicá-lo a uma interface:
interface xxx
service-policy type lan-queuing input 1P7Q4T
service-policy type lan-queuing output 1P7Q4T
Para verificar sua configuração e verificar se o enfileiramento está sendo executado, você pode usar o seguinte comando (pode ser necessário fechar / não fechar a interface para que ela entre em vigor):
show queueing interface xxx
Para observar o tráfego na série 6500, você precisa criar novos mapas de classe e um novo mapa de políticas. Os mapas de classe não são criados como filas de lan e a instrução match é match-any = OR em vez de match-all, pois queremos verificar vários valores um após um. Portanto, se o primeiro valor não corresponder ao pacote, o próximo será verificado e assim por diante.
Quero ressaltar que foi aqui que tivemos que envolver o Cisco TAC, porque o seguinte bug surgiu:
https://bst.cloudapps.cisco.com/bugsearch/bug/CSCuz52151
Tivemos que mudar os mapas de classe da correspondência nos valores de AF para os valores brutos do DSCP (classe de descarte). Também tivemos que atualizar o switch para a versão 152-1.SY5 (MD). Depois de seguirmos essas instruções, não tivemos mais problemas desde então.
A configuração é a seguinte:
class-map match-any WAN-HIGH
match discard-class 32
match discard-class 40
match discard-class 46
class-map match-any WAN-GOLD
match discard-class 26
match discard-class 28
match discard-class 30
match discard-class 34
match discard-class 36
match discard-class 38
class-map match-any WAN-SILVER
match discard-class 16
match discard-class 18
match discard-class 20
match discard-class 22
match discard-class 24
match discard-class 48
match discard-class 56
class-map match-any WAN-BEST_EFFORT
match discard-class 0
match discard-class 10
match discard-class 12
match discard-class 14
class-map match-any WAN-SCAVENGER
match discard-class 8
Depois disso, criamos o mapa de políticas:
policy-map WAN-OUTPUT-QoS
class WAN-HIGH
set dscp ef
class WAN-GOLD
set dscp af41
class WAN-SILVER
set dscp af21
class WAN-BEST_EFFORT
set dscp default
class WAN-SCAVENGER
set dscp cs1
Então precisamos aplicá-lo a uma interface:
interface xxx
service-policy output WAN-OUTPUT-QoS
service-policy type lan-queuing input 1P7Q4T
É isso aí. Espero que esta informação o ajude. Eu entendo quando as pessoas dizem que QoS é complicado. Isso pode ser feito de várias maneiras e o exemplo acima é apenas um exemplo de como isso pode ser feito. Sei que a Cisco está trabalhando na difusão do padrão Auto-QoS SRND4 para mais e mais dispositivos, para ajudar a criar uma boa base para a Qualidade de Serviço.