(É uma bagunça)
QoS – Quality of Service é uma das partes mais complexas de redes (pelo menos pra mim). A configuração requer dezenas de comandos, e temos várias ferramentas, conceitos e mecanismos que devemos usar em conjunto.
Além disso nem sempre é fácil fazer o dimensionamento da solução (quais os tipos de tráfego? quais marcações? quanto de banda? o que é prioritário? Usar Shape/Policing? E por ai vai…).
Minha ideia neste post (e nos próximos) é mostrar/separar as principais ferramentas e “siglas” utilizadas quando falamos de QoS.
Nesta série de posts estarei considerando apenas o modelo DiffServ, que é o mais comumente utilizado. Neste modelo o tratamento do tráfego é feito individualmente a cada “salto” (PHB – Per-Hop Behaviors).
Campos e Marcações
Para darmos tratamento diferenciado os pacote precisam ser identificados. Podemos fazer isso usando uma access-list onde especificamos endereços (origem e/ou destino) e portas (origem e/ou destino), ou olhar diretamente no cabeçalho (camada 2 ou 3) do pacote, procurando pelos campos/marcações abaixo:
ToS – Type of Service: Campo, com 8 bits, no cabeçalho IP (camada 3).
IPP – IP Precedence: Os três primeiros 3 bits (da esquerda para direita) do ToS formam um “subcampo” chamado IP Precedence. Neste campo é que podemos fazer a marcação do pacote (temos 8 opções).
DS – Differentiated Services: Posteriormente foi criado o padrão DiffService, que redefiniu o campo ToS, que passou a ser chamado DS.
DSCP – Differentiated Services Code Point: Com o padrão DiffSercive o campo IPP (que existia no ToS) passou de 3 para 6 bits e foi renomeado para DSCP.
CS – Class Selector: Com a mudança de ToS para DS, passamos a ter dois padrões, e o CS veio para criar uma forma de acomodar ambos. Lembre-se que o ToS tinha o campo IPP (3 primeiros bits) e o DS agora tem o campo DSCP (6 primeiros bits). Com o CS podemos identificar/marcar os 3 primeiros bits do campo DSCP de forma que equipamentos que conhecem apenas o ToS podem ainda tratar o tráfego como desejado.
AF – Assured Forwarding: O AF é outra padronização para marcação do campo DSCP. No AF temos 4 classes e 3 níveis de probabilidade de drop (totalizando 12 possíveis marcações). O AF tem o formado AFxy, onde o “x” representa a “prioridade” (quanto maior, mais prioritário) e o “y” representa a possibilidade de drop (quanto maior, mais chance de ser dropado).
EF – Expedited Forwarding: Marcação que deve ser feita no tráfego mais importante. Esta marcação (DSCP recomendado: 101110) junto com outras funcionalidades pode criar reserva de banda com garantia de prioridade. Este conceito veio do modelo IntServ, que garante a banda para o tráfego de maneira fim a fim (diferente do conceito do DiffServ, que é PHB).
CoS – Class of Service: No cabeçalho de camada 2 (ethernet) temos o campo Tag, e os três primeiros bits deste campo são usados para a marcação.
MPLS Experimental: Campo (3 bits) no cabeçalho MPLS dedicados para a marcação dos pacotes.
Filas
Após o pacote ser marcado, precisamos separá-los em filas (veremos isso no próximo post).
Temos filas em hardware e em software.
As filas em hardware usam FIFO (First In First Out) e este comportamento não pode ser mudado. Já as filas em software são muito flexíveis, e nos permitem varias opções de configuração.
Assim sendo, a opção que nos resta é trabalhar as filas em software, onde podemos criá-las (até 64), escolher o tamanho, decidir quais pacotes vão para cada fila e qual o tratamento será dado.
Para isso (criar e configurar as filas em software) usamos o CBWFQ – Class Based Weighted Fair Queuing e o LLQ – Low Latency Queuing (ambos são configurados através do MQC – Modular Quality of Service Command Line Interface).
De acordo com a configuração realizada os pacotes são colocados nas respectivas filas em software, e posteriormente são encaminhamos para as filas em hardware para enfim serem encaminhados.
Abaixo um gráfico do CiscoLive! com as recomendações de marcações e tratamento para cada tipo de tráfego.
Referências:
- CCIE Routing and Switching v5.0, Volume 2
- Campus QoS Design Simplified
- QoS: DiffServ for Quality of Service Overview
Até a próxima.
Excelente artigo, simples e direto. Parabéns. Força e Honra!