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
2 comentários
1 menção
Ótimo post.
http://www.brainwork.com.br
Excelente post!
[…] https://ciscoredes.com.br/qos-com-nbar-parte-1 […]