NESTA PÁGINA
Exemplo: configuração e aplicação de um classificador agregado de comportamento DSCP padrão
Um classificador do Junos OS identifica e separa fluxos de tráfego e fornece os meios para priorizar o tráfego mais tarde no processo de classe de serviço (CoS).
Um classificador agregado de comportamento (BA) executa essa função associando valores cos bem conhecidos com as aulas de encaminhamento e prioridades de perda. Para habilitar um classificador padrão, basta aplicá-lo em suas interfaces de dispositivo. Se um classificador padrão não for aplicado a uma interface, ele não surtiu efeito.
O Junos OS oferece vários tipos de classificador BA padrão, que você pode combinar e complementar com classificadores BA personalizados conforme necessário para atingir suas metas gerais de classificação de tráfego. Este exemplo mostra como aplicar o classificador de ponto de código DiffServ (DSCP) padrão e verificar sua funcionalidade.
Requisitos
Para verificar esse procedimento, este exemplo usa um gerador de tráfego. O gerador de tráfego pode ser baseado em hardware ou pode ser um software em execução em um servidor ou máquina de host. Se você não tiver acesso a um gerador de tráfego, você pode usar ping estendido para verificação. Essa abordagem também é mostrada.
A funcionalidade neste procedimento é amplamente suportada em dispositivos que executam o Junos OS. O exemplo mostrado aqui foi testado e verificado em roteadores da Série MX que executam o Junos OS Release 10.4.
Visão geral
A base do Junos OS CoS é a diferenciação de tráfego. Atribuir tráfego a diferentes classes de serviço fornece a diferenciação necessária. Do ponto de vista de um roteador, a classe de serviço atribuída a um pacote define como o roteador se comporta em relação ao pacote. O conceito de diferenciação de tráfego está presente em todas as ferramentas de CoS e, como resultado, as aulas de serviço estão presentes em todo o projeto CoS. Um classificador tem uma entrada, o pacote de entrada, e ele tem N saídas possíveis, onde N é o número de classes de serviço possíveis nas quais o pacote pode ser classificado.
A classificação BA é usada quando o tráfego que entra em seu dispositivo já tem valores de CoS confiáveis no cabeçalho do pacote. Por exemplo, o classificador DSCP BA padrão especifica que os pacotes que chegam com pontos de código 000000 são atribuídos à classe de encaminhamento de melhor esforço e recebem uma prioridade de perda baixa.
Uma prioridade de classe de encaminhamento e perda é atribuída por padrão a cada DSCP bem conhecido. Para ver isso, execute o show class-of-service classifier
comando.
user@host> show class-of-service classifier type dscp Classifier: dscp-default, Code point type: dscp, Index: 7 Code point Forwarding class Loss priority 000000 best-effort low 000001 best-effort low 000010 best-effort low 000011 best-effort low 000100 best-effort low 000101 best-effort low 000110 best-effort low 000111 best-effort low 001000 best-effort low 001001 best-effort low 001010 assured-forwarding low 001011 best-effort low 001100 assured-forwarding high 001101 best-effort low 001110 assured-forwarding high 001111 best-effort low 010000 best-effort low 010001 best-effort low 010010 best-effort low 010011 best-effort low 010100 best-effort low 010101 best-effort low 010110 best-effort low 010111 best-effort low 011000 best-effort low 011001 best-effort low 011010 best-effort low 011011 best-effort low 011100 best-effort low 011101 best-effort low 011110 best-effort low 011111 best-effort low 100000 best-effort low 100001 best-effort low 100010 best-effort low 100011 best-effort low 100100 best-effort low 100101 best-effort low 100110 best-effort low 100111 best-effort low 101000 best-effort low 101001 best-effort low 101010 best-effort low 101011 best-effort low 101100 best-effort low 101101 best-effort low 101110 expedited-forwarding low 101111 best-effort low 110000 network-control low 110001 best-effort low 110010 best-effort low 110011 best-effort low 110100 best-effort low 110101 best-effort low 110110 best-effort low 110111 best-effort low 111000 network-control low 111001 best-effort low 111010 best-effort low 111011 best-effort low 111100 best-effort low 111101 best-effort low 111110 best-effort low 111111 best-effort low
A classe de encaminhamento determina a fila de saída. Por padrão, todo o tráfego de melhor esforço usa a fila 0.
Para ver as filas associadas, por padrão, a cada classe de encaminhamento, use o show class-of-service forwarding-class
comando. (Para obter clareza, parte da saída está excluída.)
user@host> show class-of-service forwarding-class Forwarding class ID Queue best-effort 0 0 expedited-forwarding 1 1 assured-forwarding 2 2 network-control 3 3
A prioridade de perda é usada pelos agendadores em conjunto com o algoritmo de detecção antecipada aleatória (RED) para controlar o descarte de pacotes durante períodos de congestionamento. Quando você está pensando em prioridades de perda, tenha em mente que, a menos que você as configure, elas não têm significado. O comportamento de queda padrão é esperar até que a fila esteja 100% cheia e, em seguida, começar a soltar pacotes indiscriminadamente. Quando a fila cai abaixo de 100% cheia, os pacotes param de cair.
O comportamento de queda padrão é mostrado no show class-of-service drop-profile
comando.
user@host> show class-of-service drop-profile Drop profile: <default-drop-profile>, Type: discrete, Index: 1 Fill level Drop probability 100 100
Para criar significados para as várias prioridades de perda, você deve configurar perfis de quedas personalizados. Por exemplo, você pode definir a baixa prioridade de perda para significar uma probabilidade de queda de 10% quando a fila está 75% cheia e uma probabilidade de queda de 40% quando o nível de preenchimento da fila é de 95%. Você pode definir a alta prioridade de perda para significar uma probabilidade de queda de 50% quando o nível de preenchimento é de 25% e uma probabilidade de queda de 90% quando o nível de preenchimento é de 50%. Os perfis de queda personalizados não estão incluídos neste exemplo, mas são mencionados aqui para clareza porque os classificadores atribuem prioridades de perda. É importante entender que essas atribuições não têm sentido até que você crie perfis de quedas.
A operação de classificação padrão é mostrada na Figura 1. A figura mostra dois pacotes IPv4 entrando em uma interface e sendo classificados de acordo com os pontos de código DSCP nos cabeçalhos de pacotes.
Os classificadores são descritos com mais detalhes no vídeo do Juniper Networks Learning Byte a seguir.
Topologia
A Figura 2 mostra a rede de amostra.
É importante aplicar sua configuração de classe de serviço em toda a topologia, em vez de aplicá-la a um único dispositivo. Além disso, embora a classificação entre em vigor nas interfaces de entrada, você deve aplicar classificadores BA em todas as interfaces voltadas para núcleo e núcleo. Isso porque uma única interface pode ser de entrada ou saída, dependendo da direção do tráfego. Por exemplo, conforme o tráfego flui do Host 1 para o Host 2, as interfaces de entrada são ge-1/0/7 no dispositivo R2 e ge-2/0/6 no dispositivo R3. Conforme o tráfego flui em outra direção, do Host 2 ao Host R1, as interfaces de entrada são ge-1/0/3 no dispositivo R2 e ge-1/0/7 no dispositivo R1.
O classificador BA não é aplicado ao ge-1/0/1 no dispositivo R1 ou ge-2/0/5 no dispositivo R3, porque essas interfaces não são voltadas para o núcleo. Geralmente, nas interfaces voltadas para a borda, você usaria um classificador multicampo, não um classificador BA.
A configuração rápida da CLI mostra a configuração para todos os dispositivos da Juniper Networks na Figura 2. O procedimento passo a passo da seção descreve as etapas do Dispositivo R2.
Configuração
Procedimento
Configuração rápida da CLI
Para configurar este exemplo rapidamente, copie os seguintes comandos, cole-os em um arquivo de texto, remova qualquer quebra de linha, altere os detalhes necessários para combinar com a configuração da sua rede e, em seguida, copie e cole os comandos no CLI no nível de [edit]
hierarquia.
Dispositivo R1
set interfaces ge-1/0/1 unit 0 family inet address 172.16.50.2/30 set interfaces ge-1/0/7 unit 0 family inet address 10.30.0.1/30 set class-of-service interfaces ge-1/0/7 unit 0 classifiers dscp default
Dispositivo R2
set interfaces ge-1/0/3 unit 0 family inet address 10.40.0.1/30 set interfaces ge-1/0/7 unit 0 family inet address 10.30.0.2/30 set class-of-service interfaces ge-1/0/3 unit 0 classifiers dscp default set class-of-service interfaces ge-1/0/7 unit 0 classifiers dscp default
Dispositivo R3
set interfaces ge-2/0/5 unit 0 family inet address 172.16.70.2/30 set interfaces ge-2/0/6 unit 0 family inet address 10.40.0.2/30 set class-of-service interfaces ge-2/0/6 unit 0 classifiers dscp default
Procedimento passo a passo
O exemplo a seguir exige que você navegue por vários níveis na hierarquia de configuração. Para obter instruções sobre como fazer isso, veja Usando o Editor de CLI no modo de configuração no Guia do usuário da CLI.
Para habilitar o classificador agregado de comportamento DSCP padrão:
-
Configure as interfaces do dispositivo.
[edit interfaces] user@R2# set ge-1/0/3 unit 0 family inet address 10.40.0.1/30 user@R2# set ge-1/0/7 unit 0 family inet address 10.30.0.2/30
-
Habilite o classificador DSCP padrão nas interfaces.
[edit class-of-service interfaces] user@R2# set ge-1/0/3 unit 0 classifiers dscp default user@R2# set ge-1/0/7 unit 0 classifiers dscp default
Resultados
A partir do modo de configuração, confirme sua configuração inserindo os show interfaces
comandos e show class-of-service
os comandos. Se a saída não exibir a configuração pretendida, repita as instruções neste exemplo para corrigir a configuração.
user@R2# show interfaces ge-1/0/3 { unit 0 { family inet { address 10.40.0.1/30; } } } ge-1/0/7 { unit 0 { family inet { address 10.30.0.2/30; } } }
user@R2# show class-or-service interfaces { ge-1/0/3 { unit 0 { classifiers { dscp default; } } } ge-1/0/7 { unit 0 { classifiers { dscp default; } } } }
Se você terminar de configurar o dispositivo, entre no commit
modo de configuração.
Verificação
Confirme se a configuração está funcionando corretamente.
Verificação de classificadores agregados de comportamento
Propósito
Verifique se o classificador agregado de comportamento padrão está habilitado nas interfaces do dispositivo. Tenha em mente que, embora o classificador opere em pacotes de entrada, você vê a atribuição de fila resultante na interface de saída.
Ação
Limpe as estatísticas de interface no Dispositivo R2.
user@R2> clear interface statistics ge-1/0/3
Usando ping estendido do dispositivo R1 ou de um gerador de pacotes em execução em um host ou servidor, envie pacotes com o ponto de código definido para 001010.
Ambos os métodos são mostrados aqui. O gerador de pacotes usado é hping.
Quando você está usando ping estendido para definir os pontos de código DSCP no cabeçalho de pacote IPv4, o valor decimal do tipo de serviço (ToS) (neste caso, 40) é necessário na opção
tos
doping
comando.Quando você está usando hping para definir os pontos de código DSCP no cabeçalho de pacote IPv4, o valor de hex tos (neste caso, 28) é necessário na opção
--tos
dohping
comando.
Se suas habilidades de conversão binária a hex ou binárias para decimais estiverem enferrujadas, você pode usar uma calculadora online, como http://www.mathsisfun.com/binary-decimal-hexadecimal-converter.html .
Nota:Ao converter um valor de ponto de código DSCP binário, certifique-se de adicionar dois zeros extras no final. Então, em vez de 001010, use 00101000. Esses 0 valores (o 7º e o 8º bits) são reservados e ignorados, mas se você não incluí-los na conversão, seu hex e valores decimais estarão incorretos.
Ping estendido enviado do dispositivo R1
user@R1> ping 172.16.70.1 tos 40 rapid count 25 PING 172.16.70.1 (172.16.70.1): 56 data bytes !!!!!!!!!!!!!!!!!!!!!!!!! --- 172.16.70.1 ping statistics --- 25 packets transmitted, 25 packets received, 0% packet loss round-trip min/avg/max/stddev = 0.430/0.477/0.847/0.079 ms
hping enviado do host 1
root@host1> hping 172.16.70.1 --tos 28 -c 25 HPING 172.16.70.1 (eth1 172.16.70.1): NO FLAGS are set, 40 headers + 0 data bytes len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=0 win=0 rtt=0.3 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=1 win=0 rtt=0.6 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=2 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=3 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=4 win=0 rtt=0.6 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=5 win=0 rtt=0.3 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=6 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=7 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=8 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=9 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=10 win=0 rtt=0.5 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=11 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=12 win=0 rtt=0.5 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=13 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=14 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=15 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=16 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=17 win=0 rtt=0.5 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=18 win=0 rtt=0.5 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=19 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=20 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=21 win=0 rtt=0.5 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=22 win=0 rtt=0.4 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=23 win=0 rtt=0.5 ms len=46 ip=172.16.70.1 ttl=61 DF id=0 sport=0 flags=RA seq=24 win=0 rtt=0.4 ms
No dispositivo R2, verifique se a fila 2 está aumentando.
O ponto de código 001010 está associado ao encaminhamento garantido, que usa a fila 2 por padrão.
user@R2> show interfaces extensive ge-1/0/3 | find "queue counters" Queue counters: Queued packets Transmitted packets Dropped packets 0 0 0 0 1 0 0 0 2 50 25 0 3 3 3 0 Queue number: Mapped forwarding classes 0 best-effort 1 expedited-forwarding 2 assured-forwarding 3 network-control
Significado
A saída mostra que a fila 2 aumentou em 50 pacotes depois de enviar 50 pacotes pelo roteador.