Qual é o benefício de usar CBWFQ com declaração de fila justa

7

Na maioria das vezes, vejo a configuração das filas de QoS com base no CBWFQ, que é disparada pela modelagem do mapa. Algo como o exemplo abaixo.

policy-map test
 class test
  bandwidth remaining percent 20
  random-detect dscp-based
 class test2
  bandwidth remaining percent 20
  random-detect dscp-based
 class test3
  bandwidth remaining percent 20
  random-detect dscp-based
 class test4
  bandwidth remaining percent 20
  random-detect dscp-based
 class class-default
  bandwidth remaining percent 20
  random-detect dscp-based      
policy-map shape-test
 class class-default
  shape average xxx
  service-policy test

Claro que está configurado na interface apropriada (saída).

Eu sei sobre uma variante simples do CBWFQ chamada WFQ. Onde não preciso especificar classes (criação automática de classes). Sim, eu também sei que isso é feito por hash do cabeçalho, e cada classe tem peso ... E então uma ... Quase sempre, vejo a configuração da fila justa na interface ou simplesmente na classe padrão chamada 'class-default ' Essa classe padrão é configurada nas interfaces apropriadas, graças ao mapa da polícia. Portanto, os dois lados devem ter o mesmo resultado.

Mas hoje vi algo que me fez sentir nervoso. Vi algo como o CBWFQ com a declaração de fila justa no padrão de classe. Para melhor explicar, exemplo.

policy-map test
 class test
  bandwidth remaining percent 20
  random-detect dscp-based
 class test2
  bandwidth remaining percent 20
  random-detect dscp-based
 class test3
  bandwidth remaining percent 20
  random-detect dscp-based
 class test4
  bandwidth remaining percent 20
  random-detect dscp-based
 class class-default
  fair-queue
  queue-limit 1024 packets
policy-map shape-test
 class class-default
  shape average xxx
  service-policy test

Aqui minha pergunta começa ... Isso significa que o cara que configurou o padrão de classe com 'fair-queue', 'fila-limit 1024 packets' é feito a partir do CBWFQ WFQ normal? O mesmo que podemos configurá-lo na interface? E apenas especificou as classes WFQ de maneira fixa, em vez de especificar automaticamente o que os dispositivos Cisco fazem?

Mas por que? Não parece uma solução padrão, não é? É possível que o homem não soubesse o que ele fez ...

Obrigado por qualquer resposta ou links que possam me indicar uma compreensão correta!

DANIEL

Daniel Blazek
fonte
11
O benefício de usar CBWFQ com a fair-queueinstrução na class-defaultfila (seu segundo exemplo) é que os pacotes são enfileirados na fila com base no peso calculado, como você mencionou. Ao usar o CBWFQ sem a fair-queueinstrução (seu primeiro exemplo), os pacotes são enfileirados na fila usando o método FIFO (primeiro a entrar, primeiro a sair) em uma interface física.
one.time
11
Eu pensei que as classes definidas pelo usuário do CBWFQ estão automaticamente se comportando como WFQ em esteróides. Então, se eu entendi direito. O CBWFQ pode criar até 64 filas, uma para cada classe definida pelo usuário (com o método FIFO padrão). E posso especificar (apenas?) Para o padrão de classe, algo como: "Ei, pessoal, sua fila se comportará como WFQ em vez de FIFO!" E o padrão da classe diz ... "Tudo bem, minha fila se comportará como FWQ; portanto, para o meu tráfego, criarei outras classes de acordo com algum algoritmo da CISCO." Estou certo? : D
Daniel Blazek
11
Você entendeu. O CBWFQ usa FIFO para enfileirar-se nas classes definidas e na fila padrão da classe ou, se a instrução fair-fila for usada, a fila padrão da classe usa WFQ (na maioria das plataformas).
one.time 11/12

Respostas:

4

Para resumir meus comentários:

O benefício de usar o CBWFQ (enfileiramento justo ponderado com base na classe) com a fair-queueinstrução na class-defaultfila (seu segundo exemplo):

...
 class class-default
  fair-queue
  queue-limit 1024 packets
...
  • Os pacotes usam WFQ (enfileiramento justo ponderado) para agendamento e são enfileirados na fila com base no peso calculado.

Ao usar o CBWFQ sem a fair-queueinstrução na class-defaultfila (seu primeiro exemplo):

...
 class class-default
  bandwidth remaining percent 20
  random-detect dscp-based      
...
  • Os pacotes são desenfileirados usando o método FIFO (first in first out).
um tempo
fonte
11
E isso só se aplica quando o padrão de classe é atendido pelo mecanismo de enfileiramento.
Cpt_fink