Estudo QoS em redes IP baseadas em roteadores Cisco
Célio Bitencourt da Silva
Especialização em Redes e Segurança de Sistemas
Pontifícia Universidade Católica do Paraná
Curitiba, Março de 2010
Resumo
Este trabalho faz uma breve descrição da qualidade de serviço aplicada sobre uma rede com
roteadores Cisco. Ao longo do trabalho são abordados os diferentes mecanismos criados pela
Cisco e aplicados as diversas finalidades no intuito de diminuir o jitter, o atraso, a perda de
pacotes. Aborda a motivação para o uso de VPN de sua comunicação segura e economicamente
viável juntamente com o roteamento por rótulos MPLS.
1 Introdução
Até pouco tempo atrás as empresas utilizavam comunicação entre matriz e filial do tipo
ponto a ponto, o que de certa forma garantia a segurança no caminho dos dados, mas havia
um custo muito elevado na contratação destes serviços de comunicação. Algumas tecnologias
orientadas a conexão surgiram como o Frame Relay e o ATM. Estas tecnologias permitiram
diminuir as linhas dedicadas através da criação de circuitos virtuais dentro da nuvem frame relay
ou ATM e conseqüentemente baixar o custo dos aluguéis.
Figura 1: link ponto a ponto o encapsulamento pode ser HDLC.
Apesar de estas tecnologias maximizarem a utilização dos recursos da rede do provedor
de serviço, os custos na formação de rede de clientes ainda pesavam no bolso. Com o tempo os
clientes buscavam alternativas para diminuir seus custos e que ao mesmo tempo priorizassem suas
aplicações mais importantes como a utilização de VoIP entre suas filiais, trafego de transações
de banco de dados, multiconferência, etc. Estas aplicações foram tomando prioridades estrita de
qualidade de serviço a medida que se tornavam criticas para o negócio das empresas. Imagine um
rede de lojas em que o VoIP funcione de maneira sofrível devido a falta de recursos do provedor
de serviço para garantir a qualidade desejada, isto implica em perda de negócios e aumento do
custo em ligações telefônicas interurbanas. Os protocolos FR e ATM são de camada 2, o FR
não faz nenhum controle de erro e nenhum controle de fluxo o que torna o FR semelhante a
uma LAN de área extensa [1]. O ATM prometia resolver todos os problemas de redes [1], mas
apesar de ainda hoje ser muito utilizado na planta interna das operadoras [1]. O tamanho do
payload do ATM para o IP e falta de garantia na entrega de células no destino [1] fizeram com
que naturalmente recaísse sobre o protocolo da Internet de camada 3 o protocolo IP a função de
garantir serviços com qualidade devida sua função de comunicação fim a fim.
Figura 2: uma rede frame relay, as filiais se comunicam com a matriz ou concentrador através de
seu identificador (DLCI).
Figura 3: uma rede FR/ATM. A matriz é um frame relay e filiais rodam sobre ATM.
Este trabalho esta estruturado da seguinte maneira:
·
Inicialmente problematizamos a questão das VPNs e sua segurança;
·
O capitulo 3 aborda a conceitos e a construção de VPN com a utilização do MPLS;
·
O capitulo 4 descreve as técnicas da Cisco para alcançar a qualidade de serviço;
·
O capitulo 5 discute questões sobre a realidade do MPLS suas vantagens e
desvantagens (se houver) enquanto o capitulo 5 faz um breve resumo de todo o trabalho.
2 Problematização
Quando os clientes migram seus serviços para a rede pública, mecanismos adicionais
de segurança para o trafego são necessários. As VPNs (Virtual Private Network) por ser um
método seguro de comunicação entre dois pontos dentro da rede pública, tornou-se uma tendência
mundial. Segundo o IDC, em 2003, 10% das 500 maiores empresas brasileiras utilizavam VPNs,
e previsão para o final de 2004 metade das 500 deveriam adotar, na época o crescimento mundial
era em torno de 80%.
Mas que ameaças uma rede pública pode apresentar para o trafego? As ameaças de fora
da rede se manifestam quando existem dentro da própria rede erros que permitam tais ameaças a
agir. Configurações mal feitas ou incompletas em firewalls e servidores deixando portas e serviços
desnecessários ativos se constituem em vulnerabilidades, a utilização de um portscanner como
o nmap pode facilmente detectar estes furos. A captura de pacotes TCP pelo próprio nmap para
análise dos flags de cabeçalho para análise e possível utilização de exploits em vulnerabilidades
detectadas, se as portas do TCP estiverem abertas devem estar bem protegidas assim como as
não utilizadas fechadas. Os compartilhamentos CIFS/SMB se não estiverem bem configurados
podem expor dados por completo da organização e ainda permitir acessos indevidos, um simples
comando no navegador no formato do Windows: \\IP.DA.MAQUINA.DESCOBERTA pode
mostrar todo o compartilhamento se não houver uma senha forte. Outra maneira é pelo sambaclients com o comando smbcliente –L IP.DA.MAQUINA.DESCOBERTA. Rotas não
pertencentes a rede existentes nos gateways da rede. Senhas fracas de fácil memorização e quebra
por força bruta.
Enfim, a utilização de VPN entre os pontos para o tráfego assegura maior segurança
aos dados, sendo criptografados na origem e descriptografados no destino evitando que terceiros
“escutem” a transmissão pela rede pública.
3 Redes Virtuais
Neste capitulo vamos introduzir o conceito de VPN, a tecnologia MPLS e seus
mecanismos empregados para a formação de redes privadas existentes atualmente no mundo
corporativo.
3.1 VPN – Virtual Private Network
As VPNs foram ocupando lugar de destaque na solução para a interligação de redes
a medida que clientes (empresas, fornecedores, parceiros, usuários) necessitavam de um modo
seguro na troca de informações entre os pontos envolvidos na comunicação pela rede pública
Internet, dita como insegura. O fato que pesa a seu favor é o custo final e a segurança. Uma
VPN deve permitir fundamentalmente autenticação, integridade e confidencialidade, requisitos
exigidos por políticas de segurança em qualquer contexto sobre segurança de redes.
As VPNs podem ser estabelecidas dinamicamente ou por configurações estáticas através
de túneis IPSec ou MPLS [9]:
·
Por circuitos virtuais: neste modelo a tecnologia empregada é o Frame Relay ou ATM
e a configuração e manutenção são executados pelo provedor. A comunicação dentro do
backbone é feita pelo par VP/VC.
·
Tunelamento: neste modelo são utilizados protocolos de camada 2 (PPTP, L2TP) e
camada 3 o IPSec. A comunicação se dá sobre a Internet.
·
VPN/IP: neste modelo a comunicação é sobre o backbone do provedor utilizando os
protocolos de tunelamento ou o MPLS.
Em aplicações onde o tempo de transmissão é critico, a utilização de VPN deve ser
cuidadosamente analisada devido a problemas de desempenho e atraso [8]. As operadoras utilizam
VPN IP com MPLS em links principais e normalmente comercializam junto dependendo é claro
da necessidade do cliente links backup (utilizando o mecanismo HSRP ou VRPP) utilizando túnel
IPSec na rede pública.
3.2 MPLS – Multiprotocol Label Switching
O protocolo MPLS descrito na RFC 3031 é utilizado na criação de caminhos entre
roteadores de borda e núcleo, cada enlace de roteadores recebe um rótulo (label) de significado
local. Este rótulo é utilizado para acelerar dentro da rede o roteamento. Os rótulos são distribuídos
entre roteadores através do protocolo de sinalização LDP (Lable Distribution Protocol), mas a
função do LDP não é simplesmente anunciar estas rotas, ele define regras e mensagens para
os LSR estabelecerem um LSP. Conceitualmente o MPLS é considerado um protocolo de nível
intermediário entre a camada 2 (enlace) e 3 (rede). Este fato se deve aos pacotes IP não suportarem
circuitos virtuais (não possui campo no cabeçalho) levando os projetistas a criarem um novo
cabeçalho entre o protocolo de nível 2 e o cabeçalho IP [1].
Um roteador ou nó dentro do domínio MPLS é chamado LSR (Label Switching Router)
[6], o path ou caminho através de um ou mais LSRs comutados por rótulos em nível de hierarquia
seguidos por pacotes de uma FEC são chamados de LSP (Label Switching Path) [6]. Uma FEC é
um grupo de fluxos com mesmos requisitos e que terminam normalmente em um mesmo roteador
ou LAN [1] sua identificação é feita por meio de rótulo inserido pelo roteador de ingresso (LER).
A função do LSR é extrair o label do pacote entrante, verificar em sua tabela qual sua próxima
interface e seu novo label, inserir este novo label e encaminhar para a próxima interface. O LSP
(Label Switched Path) é o caminho de comutação de labels marcado entre a origem e o destino
dentro da nuvem MPLS, muito parecido com os circuitos virtuais do ATM ou Frame Relay [6].
Um LSP nada mais é que uma seqüência de labels.
Existem duas famílias de roteadores dentro da nuvem MPLS os LSRs que se conectam
entre si dentro da nuvem MPLS e os fazem interface para fora da nuvem chamados de LER (Label
Edge Router).
O MPLS é o burro de carga dos pacotes IP no processo de encaminhamento entre roteadores de
borda (edge) e núcleo (core). O objetivo é permitir um processo de roteamento de pacotes IP mais
ágil garantindo a qualidade de serviço. Os pacotes IP quando entram no roteador de borda de
origem são marcados (etiquetados) por um rótulo de 20 bits (MPLS Label) e são desmarcados no
roteador de borda de saída. Durante seu trajeto na nuvem MPLS o cabeçalho não é mais analisado
(o pacote está dentro da FEC) ocorrendo apenas trocas de label ao longo do percurso conforme a
tabela de rótulos que indicam qual o próximo hop e rótulo de cada roteador.
Figura 4: cabeçalho MPLS.
Na figura 4 o campo label é a identificação do pacote com significado local. O campo exp indica
a prioridade do pacote (classe). O campo s de stack é utilizado para “empilhar” labels quando
existir mais de um label no pacote. E, finalmente o campo ttl de time to live conta os hops, caso
seu contador atinja 255 o pacote é descartado.
3.3 MPLS VPN
Uma VPN MPLS da Cisco é uma solução escalável implementada em camada 3 e
consiste num conjunto de sites clientes (intranet ou extranet) interligados por recursos MPLS de
uma rede core de um provedor de serviço [11]. Os roteadores CEs (Customer Edge) instalados nos
vários pontos do cliente estão interligados através de vários PEs (Provider Edge) do provedor. Os
roteadores PE e P comunicam-se entre si utilizando o protocolo BGP-Multiprotocol (MP-iBGP)
para troca de labels e VPN-IPv4 [11]. As trocas de rotas IPV4 entre PE e CE acontecem com um
protocolo IGP (RIP ou OSPF) ou MP-eBGP. A figura 5 mostra as fronteiras entre os elementos
de uma VPN MPLS.
As principais tecnologias empregadas em VPN baseada em MPLS são descritas a seguir [12]:
·
MP-BGP distribui as informações de roteamento dos CEs através dos PEs.
·
Encaminhamento de pacotes pelo MPLS entre os PEs.
·
Um PE possui múltiplas VRFs.
·
Filtragem da rota através de atributos route target do MP-BGP extended community.
Figura 5: fronteiras da VPN MPLS para o roteamento.
Características da VPN MPLS [11]:
·
Quando um pacote é transportado dentro do backbone do provedor, dois labels são
utilizados. O primeiro label direciona o pacote para o PE de egresso correto, ou seja, a sua
VRF correta, o segundo informa ao PE de egresso como deverá encaminhar este pacote
através dos roteadores P.
·
MP-BGP extesions é utilizado para codificar endereços IPv4 do cliente num único
valor IPV4 NLRI (Network Layer Reachability Information).
Exemplo 189.74.0.0/16 prefixo = 16 tamanho = 189.74
·
NLRI é um endereço de destino dentro do MP-BGP, portanto considerado uma
unidade de roteamento.
·
Os atributos do extended MP-BGP community são utilizados para controlar a
distribuição de rotas cliente.
3.4 MP-BGP
O multiprotocolo BGP é responsável pela distribuição das informações de roteamento
através do MP-BGP extensions e MP-BGP community attribute que definem quem se comunica
com quem [11]. O multiprotocolo efetua a troca de atualizações entre os PE e P, estas atualizações
contém o endereço VPN-IPv4, labels, PE origem e o próximo hop da rota [12]. Uma rota do CE
pode ser aprendida pelo PE das seguintes maneiras: pelo MP-eBGP, por protocolos IGP (RIP,
OSPF, etc.) ou por rota estática. Quando aprendida a rota o PE através de extensions MP-BGP
codifica o endereço IP mais o conjunto de 8 bytes do RD (route distinguisher) em um endereço
VPN-IPv4 [12] e então é anunciado dentro da nuvem, o multiprotocolo deve assegurar que as
rotas anunciadas serão aprendidas apenas por membros da própria VPN. A codificação IP + RD é
designada como NLRI.
Figura 6: um site pode pertencer a mais de uma VPN.
O RD define a rota default para todos os membros da VPN através de um prefixo de valor
global para a VPN dentro do backbone, acelerando o processo de roteamento entre os sites. No
quesito segurança o RD é desconhecido dos usuários, o que torna praticamente impossível alguém
entrar na VPN por alguma porta e falsificar os dados [11].
Um RT (route target) tem a função de controlar a distribuição de rotas entre sites, o
mecanismo importa e exporta rotas de e para uma tabela VRF, deve ser utilizado em conjunto com
o RD.
Um site pode estar em múltiplas VPNs, uma VPN pode estar associada a mais de uma
VRF (VPN Routing and Forwarding) [11], as VRF são mantidas apenas nos PEs [11]. A VRF
consiste de
uma tabela de roteamento IP derivada de uma tabela CEF (Cisco Express Forwarding) e o
conjunto de interfaces que utilizam esta tabela [12], ou seja, o roteamento entre sites é feito
exclusivamente pela tabela da VRF, se dado site não esta contido na tabela VRF este não pertence
a VPN e não será acessível . O roteador mantém uma tabela CEF separada para cada VRF,
isto previne que as informações sejam distribuídas fora da VPN permitindo que uma mesma
sub rede possa ser utilizada em várias VPNs sem conflito [11]. A tabela CEF consiste de dois
elementos principais: O primeiro elemento é a FIB (Forward Information Base), uma tabela que
mantém informações de roteamento IP [14]. Alterações de roteamento e atualizações ocorridas
na rede refletem na FIB [14]. O segundo elemento é a tabela de adjacência utilizada para obter
informações de comutação da camada 2. A configuração abaixo mostra a aplicação dos conceitos
acima criando a VRF site_teste:
Criar a VRF:
ip vrf site_teste
rd 100:1
route-target export 100:1
route-target import 100:1
Aplicar o MP-BGP
router bgp 100
address-family ipv4 vrf site_teste
redistribute connected
redistribute static
no auto-summary
no synchronization
exit-address-family
4 Técnicas Para Alcançar a Qualidade de Serviço
Neste capitulo vamos estudar como a Cisco implementa em seus roteadores mecanismos
para auxiliar na qualidade de serviço. O controle de congestionamento, controle de filas,
exigências para um link de comunicação de dados, a moldagem e policiamento do trafego.
4.1 Qualidade de Serviço
Uma sequencia de pacotes desde sua origem até seu destino é chamado fluxo [1]. Em
redes orientadas a conexão, todos os pacotes que pertencem a um fluxo seguem a mesma rota; em
contraste uma rede sem conexões, eles (pacotes) podem seguir rotas diferentes. As necessidades
de cada fluxo podem ser caracterizadas por quatro parâmetros principais: confiabilidade, o
retardo, a flutuação e largura de banda. Juntos esses parâmetros definem a qualidade de serviço
que o serviço exige [1].
A Cisco define qualidade de serviço como a habilidade em fornecer um serviço com
garantias a determinados fluxos. Define também uma arquitetura própria para permitir garantias
de serviço, esta implementação ocorre em três etapas fundamentais [2]:
·
Identificação e marcação dos pacotes;
·
Mecanismos únicos nos elementos de rede (filas, escalonamento e traffic shaping);
·
Funções de política, gerenciamento e contabilidade para administração do tráfego fim
a fim dentro da rede.
A classificação ou a priorização é feita pelas tarefas de identificação e marcação dos
pacotes. Quando um roteador recebe pacotes ele identifica o tráfego a ser priorizado e qual o
pacote a ser marcado. Se o pacote é identificado e não é marcado, a classificação ocorre apenas no
roteador de origem não sendo repassado aos roteadores ao longo do caminho [2]. Nesta situação,
apenas estamos evitando congestionamento para o pacote informando aos roteadores do caminho
a prioridade em relação a pacotes normais, neste tipo de abordagem é utilizado a precedencia IP
do campo TOS pertencente ao cabeçalho IP em conjunto com ACLs (Access Lists) e filas do tipo
PQ (Priority Queueing) e CQ (Custom Queueing) [2]. Outra abordagem é utilizar o campo TOS
modificado para campo DS (Differentiated Services) usando a reserva de classes através dos bits
DSCP.
Para o provimento de QoS pelos elementos de rede os mesmos devem possuir elementos
de gerência de congestionamento, gerência de filas, um link eficiente para suportar o tráfego e
moldagem e policiamento do tráfego possíveis de serem aplicados em interfaces LAN ou WAN
[2].
4.2 O Protocolo IP
O elemento que mantém a Internet unida é o protocolo da camada de rede, o IP
(Internet Protocol) [1]. Desenvolvido para possibilitar interconexão de redes, estabelecendo
regras e formatos para endereços e para roteamento de pacotes [9]. O funcionamento da
comunicação na Internet inicia com a camada de transporte recebendo um fluxo de dados que são
divididos em datagramas. Teoricamente um datagrama possui de 64kbytes até 1500 bytes. Cada
datagrama é transmitido na Internet muito provavelmente fragmentado em unidades menores pelo
caminho. Quando chegam (todos) ao destino são remontados pela camada de rede no datagrama
original e repassados a camada de transporte [1]. O cabeçalho IP (figura 7) possui uma parte fixa
20 bytes e uma opcional de tamanho variável [1]. Analisaremos a seguir apenas um campo do
cabeçalho IP, o campo TOS (type of service), este é o campo que provê as facilidades para a
qualidade de serviço.
O campo TOS do cabeçalho IP teve sua função alterada. Inicialmente determinava certa
prioridade ao pacote ao longo de seu caminho. Dividido em dois blocos; a precedência IP (IP
precedence) contendo 3 bits mais significativos e o valor TOS contendo os bits 1 a 4, o bit 0
não é utilizado [7]. A precedência IP garantia prioridade ao pacote na escala de 0 a 5, sendo 5 a
maior prioridade. O valor TOS permitia teoricamente que a aplicação cliente definisse o que era
mais importante; retardo, throughput ou confiabilidade, na prática os roteadores atuais ignoram o
campo TOS [1].
O IETF alterou o campo type of service para campo DS (Differentiated Services) alterando
por inteiro seu significado (figura 8). O campo DS foi dividido em 2 campos; o DSCP com
6 bits (Differentiated Services Code Point) e ECN (Explicit Congestion Notification) de uso
experimental com 2 bits. O DSCP define 6 classes de serviço, estas classes mostradas na figura 9
são manipuladas pelos roteadores core através de regras (policy), este tratamento é conhecido por
PHB (Per Hop Behavior) [10].
Figura 7: no cabeçalho IP o campo TOS foi alterado para DS.
Uma classe DF (Default Forwarding) não utiliza nenhum mecanismo de QoS e será
encaminhado a fila default. As classes AF1...4 (Assured Forwarding) necessitam de mecanismos
que garantam seu trafego fim a fim com pouco descarte e garantias de delay e jitter especificas
para cada tipo de aplicação, a classe AF4 possui prioridade sobre as outras. Por fim, a classe EF
(Expedited Forward) é a classe utilizada para o trafego de voz e deve ser tratada prioritariamente
sobre todas as outras classes.
Figura 8: divisão do byte no campo DS.
4.3 Controle de Congestionamento
A gestão de congestionamento é responsável por questões sobre tratamento dado ao
tráfego como o em rajadas para que não exceda a capacidade de transmissão, os instrumentos
para se chegar a este objetivo são os diferentes tipos de filas priority queue (PQ) custom queue
(CQ) weighted fair queue (WFQ) e class-based weighted fair queue (CBWFQ). Cada fila foi
desenvolvida com propósitos diferentes na solução de problemas de uma rede, se uma rede não
possui congestionamento ao longo do tempo de utilização não há motivos para se utilizar filas,
vamos analisar as principais.
A fila FIFO (first in first out) é a default em redes IP. Encaminha pacotes por ordem
de chegada, determinando a largura de banda e não efetuando nenhuma decisão sobre pacotes
prioritários, trafego de aplicações mal comportadas. Quando a rede esta congestionada armazena
os pacotes e descarta quando esta cheia. Encaminha os pacotes por ordem de chegada no esquema
store-and-forward. Para o trafego em rajadas não é uma boa estratégia a utilização de filas FIFO
[2].
Figura 9: as PHBs.
Outro tipo de fila é a priority queue mostrada na figura 10, os pacotes entrantes são
classificados em quatro níveis de fila: médio, alto, normal e baixo respectivamente médium,
high, normal e low, o padrão para pacotes não marcados é normal. Neste tipo de fila o tráfego
de maior prioridade é tratado antes de qualquer outro pacote com prioridade mais baixa. O ponto
forte deste tipo de fila é a utilização de configuração estática sendo útil em tráfego de missão
critica. O exemplo abaixo define uma fila PQ onde primeiramente habilitamos a priority list e em
seguida aplicamos na interface:
Router(config)#access list 101 permit ip any any dscp ef
Router(config)#priority-list 1 protocol ip high list 101
Router(config)#interface Ethernet0
Router(config-if)#priority-group 1
A fila custom queue (figura 11) compartilha o tráfego entre várias aplicações definidas na
configuração, na figura 11 temos uma fila CQ, nela podemos ter até 16 filas numeradas de 1 a
16 que são servidas através do algoritmo de escalonamento round robin [2], a fila 0 é utilizada
é utilizada pelo roteador para sinalização, mensagens de keepalive, etc., cada tráfego pode ter
sua própria fila, vale lembrar que quanto mais filas, menor é a banda para cada fila o que é um
ponto negativo, pois mesmo que uma fila não esteja em uso a banda é dividida igualmente entre
as filas. Por padrão cada fila pode manter 20 pacotes de 1500 bytes o que pode ser mudado na
configuração. Para habilitar uma fila CQ no roteador são necessários dois passos: definição do
tráfego a ser manipulado pela fila e aplicar em uma interface, no exemplo abaixo foi definido que
o tráfego crítico será manipulado pela fila 3.
Router(config)#access list 103 permit ip any any precedence 5
Router(config)#queue-list 1 protocol ip 3 list 103
Router(config)#interface Ethernet0
Router(config-if)#custom-queue-list 1
Figura 10: fila PQ.
A fila WFQ é de fato o principal método de filas da Cisco [2] (figura 12), sua utilização
é recomendada em links abaixo de 2Mbps (2048Kbps), seu algoritmo é o de enfileiramento justo
onde os vários tipos de tráfego são tratados igualmente. Por exemplo: a fila 1 possui pacotes com
tamanho de 100 bytes e a fila 2 possui pacotes com tamanho de 50 bytes, o algoritmo WFQ irá
transmitir 2 pacotes da fila 2 para cada 1 pacote da fila 1, estabelecendo a justiça entre as filas e
reduzindo o tempo de resposta para trafego interativo. Por padrão WFQ é habilitado no roteador,
mas pode-se habilitá-lo durante a configuração dentro da interface, para isso basta digitar:
Router(config)#interface Serial0/0
Router(config-if)#fair-queue
Uma fila do tipo CBWFQ permite que o tráfego seja moldado em classes com quantidade
de largura de banda mínima [2]. CBWFQ difere do WFQ na forma como trata o tráfego, enquanto
WFQ cria filas e seleciona por fluxo CBWFQ cria classes e seu tráfego é baseado nestas [2].
Para habilitar CBWFQ no roteador são necessários três passos: criar um ou mais class-map que
descreve o tipo de tráfego, criar o policy-map que diz ao roteador o que fazer com este tráfego e
por fim aplicar o policy na interface de um ou mais roteadores. Segue um exemplo:
Criar o policy-map
policy-map p1
class DADOS_URG
bandwidth percent 50
policy-map p2
class class-default
service-policy p1
Criar a class-map
map-class class1
service-policy output p2
Aplicar na interface
Interface serial0/1
no fair-queue
class class1
Figura 11: fila CQ.
4.4 Gerencia de Filas
A definição de critérios de descarte de pacotes e assegurar que a fila sempre possua
espaço para os pacotes prioritários são tarefa da gestão de filas implementada pelo mecanismo
de weighted random early detect (WRED), este mecanismo combina o algoritmo RED com a
precedência IP [2].
O mecanismo RED opera prevendo onde ocorrerá o congestionamento congestion
avoidance em diferentes pontos da rede através de funções de controle do TCP, normalmente
opera em roteadores de backbone (core) [2]. Suas principais ações são selecionar quais pacotes
descartar e solicitar à fonte que diminua a taxa de transmissão.
Para determinar quando começar a descartar pacotes, os roteadores mantêm uma média
atualizada dos comprimentos de suas filas. Quando o comprimento médio da fila em alguma linha
excede o limiar, considera-se que a linha está congestionada [2]. O WRED não prioriza trafego
sensível ao atraso, mas oferece tratamento preferencial a estes em situações de congestionamento.
Figura 12: fila WFQ.
4.5 Links Eficientes
A eficiência do link é crítica, vários tipos de aplicações atravessam o link, todas
competindo por alguma largura de banda e necessitando de algum tratamento diferenciado.
Quando temos um link de baixa velocidade é necessário que os pacotes sensíveis ao atraso (voz,
FTP, etc.) sejam fragmentados. A fragmentação é necessária, pois nem todas as redes possuem
pacotes do mesmo tamanho, ou seja, um pacote grande demais para uma rede que admite pacotes
menores (interworking IP/ATM, FR/ATM, e assim por diante.).
A LFI (Link Fragmentation and Interleaving) foi desenvolvida para evitar que em links
de baixa velocidade (figura 13), normalmente links com bandwith abaixo de 768Kbps ocorram
perdas devido a diferença do tamanho dos pacotes de diferentes aplicações. Caso a fragmentação
não ocorra irá ocasionar aumento na média do atraso e a variação do jitter, esta técnica deve ser
aplicada em conjunto com o multilink do protocolo PPP (MLPPP), para o Frame Relay o FRF.12
(Frame Relay Fragmentation 12) do Frame Relay Fórum deve ser utilizado [2]. A implementação
FRF.12 especifica a fragmentação e intercalação de dados de tempo real com dados comuns em
um mesmo link, antes de surgir esta especificação a única maneira de reduzir o tamanho do pacote
era alterando o MTU [10].
A aplicação da configuração MLPPP sobre o ATM com uma velocidade de 256Kbps em
uma interface virtual-template deve seguir este modelo:
Criando a interface virtual template:
interface Virtual-Templatenumero_da_interface
bandwidth 256
load-interval 30
ppp multilink
ppp multilink fragment-delay 10
ppp multilink interleave
service-policy output nome_da_policy
Anexando na interface WAN:
interface interface.subinterface point-to-point
bandwidth 256
protocol ppp Virtual-Templatenumero_da_interface
Figura 13: Fragmentação de pacotes é utilizada em links abaixo de 768Kbps.
A cisco recomenda [3] a formula abaixo para calcular o tamanho do fragmento do pacote em um
MLPPP, na configuração acima temos um fragmento de 320 bytes, veja:
fragment_size = bandwith * fragment_delay / 8
256 * 10 / 8 = 320 bytes
4.5.1 Multilink PPP
Multilink PPP é utilizado para reduzir a latência e o jitter em links WAN de baixa
velocidade e que transportam tráfego sensível ao atraso [13]. Fornece intercalação, fragmentação e
resequenciamento de pacotes através de múltiplos links lógicos [13]. Consideramos link de baixa
velocidade um link com bandwith >= 768Kbps. O multilink é utilizado em conjunto com as filas
WFQ e CBWFQ [13].
A intercalação é o processo de transmitir em um mesmo link WAN dados com vários
níveis de prioridade como, por exemplo; trafego interativo (telnet), tempo real (voz) e dados
comuns tratados como processos ou separados. A intercalação é baseada em duas outras
atividades do multilink [13]:
·
Fragmentação de pacotes
·
Multiplexação de pelo menos dois fluxos.
A fragmentação é o processo de quebrar pacotes grandes em fragmentos na transmissão. Durante
o processo de fragmentação de um pacote grande o multilink adiciona seu cabeçalho ao fragmento
e o transmite individualmente. O resequenciamento é o processo inverso na recepção, monta o
pacote a partir do cabeçalho multilink do fragmento. Antes de transmitir qualquer fragmento
o multilink verifica na fila se há pacotes sensíveis ao atraso, caso exista, estes pacotes são
priorizados e intercalados entre os pacotes fragmentados (os pacotes de voz não devem ser
fragmentados), tornando o percurso pela rede muito mais rápido. O tamanho do fragmento
determina a velocidade do processo de fragmentação, a configuração do tamanho do fragmento é
feita através do comando ppp multilink fragment delay já discutidos no capitulo Eficiência do
Link.
Figura 14: processo de fragmentação e intercalação do multilink.
Antes de configurar o multilink deve ser criada a policy com os parâmetros específicos
para alcançar a qualidade de serviço e em seguida aplicar ao multilink.
Criar o multilink
//define um nome para o grupo multilink
interface multilink M1
ip address 10.10.10.1 255.255.255.252
//ip da interface de saida
service-policy output OUT
//policy para o trafego sainte
service-policy input IN
//policy para o trafego entrante
ppp multilink fragment delay 10
//define em unidade de tempo o tamanho do fragmento
ppp multilink interleave
// habilita o entrelaçamento de pacotes grandes
fragmentados
Aplicar o multilink na interface
interface serial 4/0/1:0
no fair-queue
// desabilita WFQ
encapsulation ppp
ppp multilink
// ativa o multilink
ppp multilink group M1
// restringe o multilink a interface fisica
4.6 Moldagem e Policiamento do Trafego
Traffic Shaping ou moldagem do tráfego é utilizada para controlar o tráfego sainte
utilizando o algoritmo de token bucket, muito útil para preservar o trafego prioritário do trafego
guloso por banda como o em rajada. Traffic shaping (figura 15) ou genéric traffic shaping é
utilizado em redes Frame Relay, ATM, SMDS e Ethernet para controlar o trafego sainte limitado
a uma taxa, qualquer fluxo acima do limite configurado é enfileirado ou bufferizado. Utiliza o
algoritmo token bucket como filtro para atingir o objetivo. Para utilização do traffic shaping o
mesmo deve ser ativado na interface em conjunto com listas de acesso. Por exemplo:
Router(config)#access list 101 permit tcp any eq www any
Router(config)#access list 101 permit tcp any any eq www
Router(config)#access list 102 permit tcp any eq ftp any
Router(config)#access list 102 permit tcp any any eq ftp
Router(config)#interface FastEthernet0/0
Router(config-if)#traffic-shape group 101 100000
Router(config-if)#traffic-shape group 102 200000
Figura 15
No script do exemplo acima restringimos o trafego de pacotes tcp WWW e FTP para uma taxa de
100k e 200k respectivamente na interface fast, o restante do trafego utiliza a fila default.
O policiador Committed Access Rate (CAR) utiliza as mesmas técnicas da moldagem de tráfego,
mas é aplicado em ambos os sentidos, sou seja, no trafego entrante e sainte. A principal diferença
entre o CAR e o traffic shaping é que o policy descarta pacotes ao contrário da moldagem que
bufferiza [2].
O CAR tem duas funções para a qualidade de serviço, a função de classificar os pacotes
pela precedência IP ou por classes pelo DSCP e controlar o trafego entrante e sainte de uma
interface, neste último caso, pacotes que excedam a taxa limite serão descartados ou
reclassificados para retransmissão com outra prioridade. O CAR não pode ser utilizado em
interfaces que não suportam CEF (Cisco Express Forwarding) [4]. Utiliza um token buket
ligeiramente diferente do original [4]. O tamanho do balde é igual taxa da rajada (burst size) e
configurável pelo usuário, a taxa para preencher o balde com tokens é o mesmo configurado para o
link (CIR). Para transmitir pacotes deve haver o número suficiente de tokens no balde, neste caso
o trafego é chamado de pacotes conforme (normal burst), caso o balde já esteja cheio, o trafego é
conhecido como pacotes em excesso (extended burst) e podem ser descartados. Como em certas
situações há a possibilidade de retransmitir pacotes que excedem a taxa em outra prioridade, a
Cisco recomenda alguns cálculos para este tipo de tráfego [5].
normal_burst = CIR * (1/8)*1,5
CIR = taxa configurada na interface
extended_burst = normal_burst * 2
Suponha que temos um link de 128kbps e queremos priorizar todo trafego de aplicações http,
a saída do trafego http é restringida em 50kbps, neste ponto todos os pacotes são transmitidos,
quando o trafego filtrado exceder este limite o roteador continuará transmitindo (observe no
script abaixo que instruímos o roteador com o comando continue) até a média extrapolar o
limite de 100kbps os pacotes com precedência 3 e descartará todos os pacotes de outro trafego
marcados com prioridade 0 (action drop), note que a rajada é configurada estritamente para
4,5KB/s e configurada uma rajada variável nos limites entre 4,5KB/s até um máximo de 9KB/s no
trafego excedente, ultrapassando este limite há descartes. Podemos configurar o CAR da seguinte
maneira:
Router(config)#access list 101 permit tcp any eq www any
Router(config)#access list 101 permit tcp any any eq www
Router(config)#access list 103 permit ip any any
Router(config)#interface HSSI0/0
Router(config-if)#rate-limit output 50000 4500 4500 conform-action transmit
exceed-action continue
Router(config-if)#rate-limit output access-group 101 100000 4500 9000
conform-action set-prec-transmit 3 exceed-action continue
Router(config-if)#rate-limit output access-group 103 100000 4500 9000
conform-action set-prec-transmit 0 exceed-action drop
Frame Relay Traffic Shaping (FRTS) é utilizado em redes Frame Relay controlando
largura de banda em um PVC ou SVC, isto é, esta facilidade não controla o fluxo por aplicação,
foi desenvolvida para controlar o CIR contratado. Para cada PVC criado na WAN terá seu próprio
CIR. O FRTS utiliza os campos FECN (Forward Explicit Congestion Notification), BECN
(Backward Explicit Congestion Notification) e DE (Discard Eligibility Indicator) do cabeçalho de
controle do Frame Relay para moldar o trafego.
·
FECN (setado em 1) informa ao receptor para iniciar seu processo de redução
do trafego para eliminar o congestionamento, ou seja, existe congestionamento a
frente do equipamento que notificou o evento (veja a figura 6).
·
BECN (setado em 1) informa ao transmissor para iniciar processo de redução
do tráfego para evitar congestionamento, ou seja, existe congestionamento para
traz do equipamento notificador do evento (veja a figura 6).
·
DE (setado em 1) indica se o frame pode ser descartado em situação de
congestionamento.
Na configuração abaixo assumimos uma taxa mínima de 10kbps, isto é pode ser necessário,
pois em situações em que o congestionamento, quando o roteador recebe o bit BECN setado a
tendência é reduzir a taxa de transmissão até zero.
Router(config)#interface HSSI0/0
Router(config-if)#encapsulation frame-relay
Router(config-if)#exit
Router(config)#interface HSSI0/0.1 point-to-point
Router(config-subif)#traffic-shape adaptive 10000
Router(config-subif)#frame-relay interface-dlci 31
Router(config-subif)#end
Figura 16: controle de congestionamento do frame relay FECN e BECN informam o sentido do
congestionmento o bit DE descartará o frame.
5 Uma Palavra sobre VPN MPLS
O MPLS surgiu para suprir a deficiência do roteamento IP na engenharia de tráfego. O
MPLS tem a seu favor a interoperabilidade com outros protocolos, utilizando um novo paradigma
de roteamento, permitiu a criação de redes escaláveis. Permitiu que os provedores de serviços
utilizassem suas redes já existentes (FR/ATM) e roteadores instalados na planta interna
(consequentemente baixando os preços dos acessos) e nos clientes e convergissem estas
tecnologias para rodar em cima do MPLS, ou seja, o MPLS permitiu aos provedores de serviço
readequar seu parque tecnológico para tal.
Um fator negativo é que nem todos os CPEs suportam configurações avançadas para
permitir QoS, seja por determinação do hardware ou IOS não suportam tal facilidade. Outras
marcas de CPE recentes suportam QoS, mas ainda estão em um nível abaixo aos da Cisco de
qualidade e confiabilidade e gerência. Como a Cisco é modelo em termos de redes dificilmente
deixara tão cedo o pedestal.
As configurações tanto nos roteadores Cisco como de outros fabricantes são complexas
exigindo do pessoal técnico conhecimento, daí surge a necessidade crescente no mercado de bons
profissionais nesta área.
Apesar da Cisco soprar aos quatro cantos a segurança das VPNs, vale lembrar que as
senhas de acesso aos CPEs, PÉS e P são autenticadas pelo TACACs ou algum outro servidor.
Isto quer dizer que se um atacante conseguir acesso (seja por engenharia social) poderá facilmente
ter acesso a todas as VPNs digitando em uma conexão SSH com um PE por exemplo telnet
ip_da_vitima /vrf nome_da_vrf_da_vitima.
6 Conclusão
A qualidade de serviço provida por uma rede VPN MPLS com roteadores de borda
e clientes configurados adequadamente conferem um alto grau de confiabilidade no serviço,
garantindo o atendimento do SLA contratado.
Embora hoje o MPLS supra as deficiências de toda e qualquer tecnologia de comunicação
na entrega de serviços diferenciados (voz, vídeo, etc.) como a tecnologia anda de trem bala e não a
cavalo, logo poderá perder força e não mais suprir as necessidades do mercado de forma eficiente,
surgindo uma nova tecnologia tão boa quanto é o MPLS.
Bibliografia
[1] Tanenbaum, Andrew S., Redes de Computadores, Rio de Janeiro: Elsevier, 2003
[2] http://www.cisco.com/en/US/docs/internetworking/technology/handbook/QoS.html
[5] http://www.cisco.com/en/US/docs/ios/12_2/qos/configuration/guide/qcfpolsh.html
[4] http://www.cisco.com/en/US/docs/ios/11_1/feature/guide/CAR.html
[3] http://www.cisco.com/en/US/docs/ios/12_2/qos/configuration/guide/qcflfifr.html
[6] http://www.rfc-editor.org/rfc/rfc3031.txt
[7] Kevin Dooley & Ian J. Brown – Cisco Cookbook – O’reilly – 2003
[8] http://www.rnp.br/newsgen/9811/vpn.html
[9] http://www.teleco.com.br/tutoriais/tutorialvpn/Default.asp
[10] http://www.broadband-forum.org/technical/download/FRF.12/frf12.pdf
[11]
http://www.cisco.com/en/US/docs/net_mgmt/vpn_solutions_center/1.1/user/guide/
VPN_UG1.html
[12]http://www.cisco.com/en/US/tech/tk436/tk428/
technologies_configuration_example09186a00800a6c11.shtml
[13]
http://www.cisco.com/en/US/docs/ios/ios_xe/qos/configuration/guide/
reducing_latency_xe.html
[14] http://www.cisco.com/en/US/docs/ios/12_1/switch/configuration/guide/xcdcef.html
Download

Celio Bitencourt da Silva