QoS com NBAR – parte 1

Olá pessoal,

  Como todos sabem, o assunto de QoS é muito comentando nos dias de hoje, devido a grande utilidade e capacidade de controle que podemos exercer em cima dessa tecnologia. Dentro desse parâmetro irei trazer uma sequência de posts explicando essa tecnologia através de laboratórios com testes práticos.

  Nessa primeira parte vamos aprender sobre o protocolo NBAR.

1)    Introdução

  A tecnologia de QoS foi difundida para que todos pudessem ter um maior controle de trafégo de sua rede, fazendo com que isso gere uma demanda de controle com muito mais granularidade. Em contrapartida, esses métodos exigem cada vez mais de profissionais com conhecimento, para que seja disponibilizado da melhor forma para sua rede.

  Pensando dessa forma, a Cisco disponibilizou um recurso chamado NBAR, no qual pode trazer muitos benefícios para o nosso dia a dia. Esse protocolo tem a facilidade de fazer o reconhecimento das aplicações baseado na sua rede, portanto para determinadas aplicações o protocolo consegue identificar esses serviços, diminuindo a necessidade de um total conhecimento de sua rede.

  Quando é mencionado a palavra QoS, todos imaginam que essa tecnologia pode resolver o problema de todos, porém precisamos pensar que esses recursos ajudam a melhorar a performance da rede, e para determinadas situações outros pontos precisam ser avaliados dentro da arquitetura de rede, como avaliação de capacidade de banda, avaliação do correto dimensionamento do equipamento, avaliação de desempenho para determinadas aplicações de negócio, análise interna dentro da sua rede local, otimização dentro do ambiente LAN e WAN.

2)    Topologia

  Nesta topologia a idéia é demonstrar uma rede com 3 roteadores e executar as configurações, referenciando-se as marcações de pacote conforme mostrado na figura.

Figura 1 – Topologia do Laboratório

  Todos os equipamentos são Cisco e utilizando a tecnologia do protocolo NBAR para executar as configurações

3)    Equipamentos

  Neste laboratório estamos utilizando roteadores 1721, 1760 e 2611 disponibilizado em um rack. Para esse contexto iremos ter 3 modelos de IOS para que possamos utilizar funções de QoS com NBAR.

  Segue os modelos de IOS utilizados para esse laboratório:

1721:
c1700-entbasek9-mz.124-15.T13.bin
1760:
c1700-ipvoicek9-mz.124-15.T13.bin
2611:
c2600-ipvoice_ivs-mz.124-25d.bin

  Para melhor interpretação dos equipamentos podemos consultar as documentações através do site da Cisco. Para o modelo 1721, 1760 e 2611. Todos os equipamentos estão designados como “ End of Life ”.

  Para conectividade dos circuitos WAN estamos utilizando placas com interfaces seriais. Toda a conectividade WAN tem a oferecer uma conexão ponto a ponto de um circuito dedicado com encapsulamento padrão utilizado pela cisco HDLC. A placa oferecida para essa conectividade é a WIC-2T que pode ser consultada através do site da Cisco.

4)    Funcionalidade

  Este laboratório consiste na demostração de uma tecnologia disponibilizada pela Cisco, na qual é referenciada ao protocolo NBAR. Através deste link você pode obter mais informações referenciando-se ao NBAR.

  Dentro desse contexto podemos analisar alguns comandos que utilizamos neste laboratório através de documentações da Cisco, para qual pode facilitar o entendimento de todos os recursos disponibilizados. Esse protocolo foi desenvolvido para fazer o mapeamento da rede em produção, com a intenção de facilitar e montar uma estrutura de planejamento para o QoS. Uma configuração coletada automáticamente pode ser aplicada posteriormente nas interfaces desejadas da sua rede. As aplicações que são referenciadas para esse protocolo pode ser consultada através desse link, no qual vai trazer o tipo de protocolo, porta conhecida e qual versão de IOS vai suporta esse recurso.

  Como o NBAR é um protocolo default do IOS nós podemos habilitar através de um comando, para que seja identificado o tipo de tráfego que esta passando por aquela interface. A linha de comando para esse recurso seria:

Router> enable
Router# configure terminal
Router(config)# interface ethernet 2/4
Router(config-if)# ip nbar protocol-discovery
Router(config-if)# end

  Nessa linha de raciocíonio podemos utilizar esse recurso para eventuais “ troubleshooting “, com a capacidade de demonstrar ao seu cliente que o maior consumo de tráfego esta sendo utilizado em uma determinada aplicação. Neste exemplo podemos avaliar quais aplicações estão sendo descobertas pelo protocolo e qual o consumo em bytes/packets.

Router# show ip nbar protocol-discovery interface FastEthernet 6/0

 FastEthernet6/0
                            Input                    Output
   Protocol                 Packet Count             Packet Count
                            Byte Count               Byte Count
                            5 minute bit rate (bps)  5 minute bit rate (bps)
   ------------------------ ------------------------ ------------------------
   igrp                     316773                   0
                            26340105                 0
                            3000                     0
   streamwork               4437                     7367
                            2301891                  339213
                            3000                     0
   rsvp                     279538                   14644
                            319106191                673624
                            0                        0
   ntp                      8979                     7714
                            906550                   694260
                            0                        0
   .
   .
   .
   Total                    17203819                 151684936
                            19161397327              50967034611
                            4179000                  6620000

  Para os comandos de match podemos consultar esse documento e para as validações referentes ao protocol-discovery podemos avaliar por esse documento.

  Em nosso laboratório as configurações exercidas para reconhecimento dos protocolos exemplicados foi através desse método:

Router(config)# class-map ICMP
Router(config-cmap)# match protocol icmp
Router(config)# class-map HTML
Router(config-cmap)# match protocol http
Router(config)# class-map FTP
Router(config-cmap)# match protocol ftp

  Gostaria de ressaltar que nesse exercíco estamos exercendo a marcação de pacote na saída do circuito de internet ( R1 ) conectado com o mundo exterior, porém essa técnica não é valida para nosso mundo real, pois em nenhum momento o acesso a rede mundial vai entender a marcação desse pacote. Para um entendimento e disponibilidade de recursos internos o exemplo relacionado a HTTP dentro da rede interna seria de mais fácil disponibilização para a demostração do laboratório.

  Toda a conectividade desses circuitos foram exercidadas através de uma largura de banda 1,544Mbps e dentro desse valor suposições de valores para cada classe foi definida, reservando as maiores bandas para o tráfego que teria maior demanda nessa simulação. Por padrão do IOS, quando são definidos “ class-map “ e posteriormente criado a “ policy-map “, a banda que fica definida para efeito de cálculo no momento de aplicar “ service-policy “ é de máximo 75% da banda configurada para a interface.

  Com isso fiz a definição:

1500K – ( .75 * 1500 ) = 375K

  Nesse caso iremos utilizar para efeito de cálculo 1125kbps. Com isso os valores designados para cada tipo de protocolo foi:

HTTP = 500Kbps
SMTP = 150Kbps
FTP = 190Kbps
Management = 10Kbps
ICMP = 10Kbps
Default = 265Kbps

  Lembrando-se que esses valores podem ser definidos da melhor forma que você achar dentro da sua rede. Os valores definidos para este exercício foi devido a facilidade de conseguir demonstrar através de um acesso simples ao protocolo HTTP.

  Como o protocolo é default do IOS, podemos ter aplicações que não conseguem ser reconhecidas através desse recurso automático, portanto devemos fazer o download de um arquivo que a Cisco designou como sendo PDLM ( Protocol Description Language Module ). O NBAR analisa os pacotes e compara eles com as regras existentes no PDLM. Para fazer o download do arquivo segue a instrução ( apenas usuários cadastrados podem fazer download desse arquivo )

  Após o download podemos configurar conforme explicação no documento da Cisco:

Router> enable
Router# configure terminal
Router(config)# ip nbar pdlm flash://citrix.pdlm
Router(config)# end

  Para validação se o arquivo foi habilitado dentro do equipamento, podemos avaliar através:

Router# show ip nbar pdlm

The following PDLMs have been loaded:
flash://citrix.pdlm

  Não é sempre que o PDLM padrão fornecido atenderá nossa necessidades. Você pode querer adicionar suporte para um protocolo de rede específico, que precisa ser classificado e marcado no QoS ou para efeitos de acompanhamento personalizado. Essa pergunta é respondida com a “ PDLM custom “, o arquivo personalizado é chamado de custom.pdlm, que tem que ser carregado e então modificado conforme as exigências do protocolo.

  O IOS que pode ter esse recurso personalizado foi construído na versão 12.X, e a Cisco tem introduzido essa personalização, onde usando “ ip nbar custom NAME [parameters] “ comando, você pode definir seus protocolos customizados. Para vocês que querem saber sobre como o arquivo foi carregado e como pode ser alterado segue o link.

  Outro recurso que podemos visualizar através do NBAR seria o mapeamento de portas que existem para as aplicações que temos definidas pelas RFCs, porém eu tenho a capacidade de definir para uma determinada aplicação em qual porta ela poderia trabalhar alterando esse parâmetro. Por padrão segue um output resumido:

R2_1721#sh ip nbar port-map
port-map bgp                      udp 179
port-map bgp                      tcp 179
port-map bittorrent               tcp 6881 6882 6883 6884 6885 6886 6887 6888
port-map citrix                   udp 1604
port-map citrix                   tcp 1494
port-map cuseeme                  udp 7648 7649 24032
port-map cuseeme                  tcp 7648 7649
port-map dhcp                     udp 67 68
port-map directconnect            tcp 411 412 413
port-map dns                      udp 53
port-map dns                      tcp 53
port-map edonkey                  tcp 4662
port-map exchange                 tcp 135
port-map fasttrack                tcp 1214
port-map finger                   tcp 79
port-map ftp                      tcp 21
port-map gnutella                 udp 6346 6347 6348
port-map gnutella                 tcp 6346 6347 6348 6349 6355 5634
port-map gopher                   udp 70
port-map gopher                   tcp 70
port-map h323                     udp 1300 1718 1719 1720 11720
port-map h323                     tcp 1300 1718 1719 1720 11000 - 1999
.
.
Omitted

  Para executar a alteração da porta para o serviço desejado devemos fazer no modo de configuração global:

R2_1721(config)#ip nbar port-map sqlnet tcp 63000 63001

  Um video foi disponibilizado na nossa seção “ Video Aula “ para demonstrar o funciomento desse protocolo. Esses vídeos foram disponibilizados em 3 partes, devido a quantidade de minutos para esse laboratório. Os arquivos de configurações podem ser obtidos da nossa seção Arquivos.

  No próximo post irei demonstrar através do WireShark o cabeçalho IP ( ToS ) com a marcação dos pacotes exercidas dentro do nosso ambiente de estudos.

PS.: Agradecimentos a Alis Silva pelo fornecimento do rack.

Abs,
Rodrigo

0
0

Link permanente para este artigo: https://ciscoredes.com.br/2011/09/22/qos-com-nbar-parte-1/

2 comentários

1 menção

    • Andre Ortega em 10 de fevereiro de 2012 às 11:51
    • Responder

    Ótimo post.
    http://www.brainwork.com.br

    0

    0
  1. Excelente post!

    0

    0

Deixe um comentário

Seu e-mail não será publicado.

Esse site utiliza o Akismet para reduzir spam. Aprenda como seus dados de comentários são processados.

Translate