Seção: Tutoriais Infraestrutura

 

Redes MPLS I: O Protocolo MPLS

 

O MPLS (Multi-Protocol Label Switching) definido pela RFC 3031 é uma tecnologia de encaminhamento de pacotes baseada em rótulos ou labels, que atua entre as camadas 2 e 3 do modelo OSI, citado também por alguns autores como um protocolo de camada 2,5. Amplamente difundida em países de primeiro mundo e com atuação expressiva em boa parte dos países em desenvolvimento, a tecnologia vem se consolidando devido a capacidade de associar a facilidade dos roteadores com a eficiência dos switchs.

 

A ideia principal do MPLS era prover um aceleramento do transporte de pacotes em roteadores, mas acabou resultando em importantes avanços no campo de redes de computadores e telecomunicação como: tecnologia de plano de controle, engenharia de tráfego, redes privadas virtuais (VPNs), melhor aproveitamento de QoS e gerenciamento de conexões em redes óticas entre outros.

 

Uma das primeiras aplicações de MPLS em redes IP é a engenharia de tráfego, enfatizando a otimização da rede, com objetivos relacionados a menor atraso, alta taxa de transmissão, diminuição da perda de pacotes.

 

Outra aplicação importante e muito utilizada em redes MPLS é o gerenciamento de QoS (Quality of Service) em redes IP. O MPLS sozinho não provê QoS, mas combinado a tecnologia com roteamento e serviços diferenciados, permite um alto desempenho e melhor utilização dos recursos principalmente com dados multimídia Voz e Vídeo.

 

VPNs de camada 3 em redes MPLS será o assunto mais enfatizado nesse trabalho. São comuns aplicações de VPNs em uma rede pública com técnicas de tunelamento, principalmente em pequenas e médias empresas. Nesse trabalho veremos formas diferentes de VPNs em estruturas de nuvens privadas MPLS.

 

Conceitos MPLS

 

O MPLS veio como uma outra visão de metodologia para tratamento do tráfego na rede. Ao invés de analisar o cabeçalho de camada 3, como feito em redes IP tradicionais, os dispositivos MPLS tomam decisões com base nas etiquetas inseridas assim que o pacote ingressa na rede. Isso dá ao MPLS, independência dos protocolos da camada de rede.

 

Conforme Morgan e Lovering (2009, p. 177), “o rótulo de um pacote de entrada é analisado e comparado com uma etiqueta do banco de dados. Com base nessas informações um novo rótulo acompanha o pacote que é transmitido a interface apropriada”. Um exemplo desse processo é ilustrado na figura 12.

 

Figura 13: Encaminhamento dos rótulos switchs MPLS

Fonte: Morgan e Lovering (2009, p. 178)

 

Conforme Enne (2009) para um datagrama IP destinado a entrar em uma rede MPLS possa ingressar e ser encaminhado até a saída da rede MPLS, para então ser transmitido ao seu destinatário, existem algumas etapas compostas pelas seguintes funções:

  • Determinação de FECs (Forwanding Equivalente Classes)
  • Montagem de FIBs (Forwarding Information Bases).
  • Criação de bindings locais entre FECs e rótulos.
  • Distribuição de rótulos.
  • Montagem de FBIs.

 

Elementos de uma Rede MPLS

 

Uma rede MPLS é formada por equipamentos do tipo CE (Custumer Edge Equipament), PE (Provider Edge Equipamente) e P (Provider Equipament) conforme à figura abaixo.

 

Figura 14: Componentes de rede MPLS

Fonte: Elaboração do autor, 2010

 

Os roteadores que compõem redes MPLS são chamados de LSR (Label Switching Routers) ou LER (Label Edge Routers), dependendo da sua função na rede. Um LSR é um roteador de núcleo da rede MPLS, participa do estabelecimento de LSP (Label Switching Paths) usando protocolos de distribuição de rótulos, sendo capaz de realizar a expedição de pacotes rotulados de maneira muito eficiente, como também encaminhamento IP convencional.

 

Um LSP (Label Switched Path) é o caminho percorrido por pacotes MPLS entre dois LSR quaisquer conforme a definição de uma FEC. Conforme Enne (2009, p.41) “Uma FEC representa, em uma visão básica, o prefixo do endereço IP de destino de pacotes MPLS ou o próprio endereço IP de destino, que se constituiu no elemento de FEC único para definição do caminho a ser seguido por esses pacotes na rede [...]” É possível atribuir vários FECs ao mesmo LSP, e vários LSPs à mesma FEC, resultando na facilidade da agregação de fluxos multicast.

 

Os rótulos são associados à FECs como resultado de um evento que indica a necessidade dessa associação. Estes eventos podem ser de dois tipos:

  • Data Driven: a associação é efetuada quando chega a um LSR com tráfego identificado como sendo candidato à Label Switching. As associações de rótulos a FECs só são estabelecidas quando necessário, resultando num menor número de entradas na tabela de expedição;
  • Control Driven: as associações são feitas como consequência da    atividade do plano de controle e são independentes da informação a transportar. A escalabilidade deste método é superior à do Data-Driven, sendo por esta razão usada em MPLS.

 

De acordo com Reagan (2002), a colocação dos rótulos MPLS pode ser encasulada de três formas diferentes:

  • Frame-based LSRs: Constituídos sobre Ethernet switches e sobre roteadores IP operando com o protocolo PPP.
  • ATM-LSRs: Constituídos sobre switchs ATM.
  • FR-LSRs: Constituídos sobre switchs Frame Relay. Ilustrado na figura abaixo:

 

Figura 15: Encapsulamento do quadro com rótulo

Fonte: Elaboração do autor, 2010

 

Inicialmente o rótulo é inserido no pacote que determina todo o seu percurso no domínio MPLS. Pode ser encapsulado de diversas formas, ou na camada de ligação lógica (ATM, Frame-Relay, PPP) ou encaixado num pequeno cabeçalho entre o cabeçalho da camada de ligação lógica e o cabeçalho da camada de rede. Esse tipo de técnica permite que o MPLS suporte qualquer protocolo e qualquer tecnologia da camada de ligação. O rótulo MPLS é constituído pelos seguintes campos conforme a figura 15:

 

Figura 16: Estrutura e encapsulamento do cabeçalho MPLS

Fonte: Morgan e Louvering (2009, p. 191). Com alterações

 

O campo “Rótulo”, contém o valor do rótulo MPLS, já no campo CoS (Class of Service) onde determina a forma como o pacote é tratado nas filas de espera dos equipamentos pertencentes a rede. No campo S (Stack) onde é permite a hierarquização de rótulos e o campo TTL (Time To Live) faz com que permita a funcionalidade TTL IP convencional.

 

Quando ocorrem mudanças na topologia, o mecanismo usado para fazer a atualização da tabela de roteamento é o FIB (Forwarding Information Bases). O FIB é basicamente o espelho da tabela de roteamento que associam as FECs aos endereços IP do próxima salto (next-hop) com as devidas interfaces de saída. Já quem mantém o mapeamento entre prefixo IP, rótulo atribuído e atribuição dos rótulos é o LIB (Label Information Bases). Conforme Enne (2009, p. 42) “[...] as LIBs podem conter também os bindings locais entre FECs e labels, desempenhando a função dos label spaces”. Os label space, são espaços disponíveis nos LSRs contendo um margem de rótulos e uma base de informações onde são registrados os bindings locais.

 

Por fim, o LFIB (Label Forwarding Information Bases) aparece para dar bases de informações em LSRs indexadas por valores de FEC. Conforme Morgan e Lovering (2009) ele faz parte do plano de dados e fornece a base de dados utilizada no encaminhamento de pacotes rotulados. O IGP é usado para preencher as tabelas de roteamento em todos os roteadores MPLS da rede. Baseado na partilha de informação de atualizações de roteamento IGP, cada roteador determina o caminho com as melhores métrica para um destino da rede.

 

Distribuição de Rótulos

 

O processo de comutação e distribuição dos rótulos é bem parecido com o mecanismo usado pelo roteamento, com a diferença que os switchs MPLS não têm a necessidade de analisar os dados do cabeçalho da camada de rede. Quando o roteador LSR insere o rótulo ao pacote, o mesmo já está com seu plano de percurso estabelecido para chegar ao seu destino. Isso faz com que o processo de roteamento em geral fique bastante eficiente.

 

Conforme Morgan e Lovering (2009), o MPLS permite duas formas de propagar as informações necessárias. A primeira é estender a funcionalidade em protocolos já existentes, que é o caso do BGP e OSPF, por exemplo. A segunda é criar um novo protocolo ou protocolos, dedicados para fazer a distribuição de rótulos que é o caso do LDP (Label Distribution Protocol).

 

O LDP desenvolvido pela IEFT definido com a RFC 3036, é um protocolo projetado especificamente para a distribuição da informação de mapeamento de rótulos. Assim como o OSPF, o protocolo LDP envia periodicamente mensagens hello, pelo endereço multicast 224.0.0.2, para descoberta dos vizinhos. Este protocolo suporta a alocação de rótulos dos tipos Data-Driven e Control-Driven. A desvantagem do uso deste protocolo é o aumento da sua complexidade com os protocolos de encaminhamento. Posteriormente, o LDP foi alterado para suportar o encaminhamento com restrições através de piggybacking num protocolo de encaminhamento, onde a informação de associação de rótulos pode ser adicionada aos protocolos de encaminhamento tradicionais. Para (Enne 2009, p.51) “O piggybacking é um processo mais eficiente do que o método direto do LDP por aproveitar tráfego de controle já existente na rede”.

 

Este método garante consistência na informação de expedição e evita o uso de outro protocolo. Porém, nem todos os protocolos podem ser facilmente alterados para suportar piggybacking, o BGP e RSVP foram alterados para suportar este protocolo.

 

Aplicações MPLS

 

As principais aplicações do MPLS são nas áreas da Engenharia de Tráfego, fornecimento de Classes de Serviço e de Redes Privadas Virtuais (VPNs).

 

Engenharia de Tráfego

 

A engenharia de tráfego ou TE (Traffic Engineering), é o processo de condução do tráfego através do backbone da rede, fazendo um melhor uso da largura de banda entre cada par de roteadores. Esse recurso já vem sendo usado em redes ATM e IP tradicionais, porém com algumas limitações. Essas limitações ocorrem devido a dificuldade dos protocolos IGP tem em administrar a manipulação de métricas associadas a várias opções de encaminhamento. Com isso surge a necessidade de novas formas de roteamento com suporte a engenharia de tráfego, aparecendo como uma das principais aplicações do MPLS.

 

Traffic Engineering tem como propósito criar condições para a operação de uma rede com eficiência e confiabilidade, utilizando ou mesmo alocando, de forma otimizada, os recursos de rede e garantindo padrões de performance de tráfego. Tais propósitos são alcançados mediante a correta distribuição de tráfego pela rede, considerando as características e o grau de utilização de seus links, preferencialmente com a reserva prévia de largura de faixa ao longo da rede. (Enne, 2009, p. 160).

 

A aplicação da engenharia de tráfego em MPLS é designada como MPLS TE. A principal vantagem da implementação do MPLS TE assegura-se no fato deste protocolo proporcionar a combinação das capacidades do ATM (Asynchronous Transfer Mode) TE com a diferenciação de classes de serviço proporcionada pelo IP. O MPLS TE permite a construção de LSPs através dos quais é feito o envio da informação. Os LSPs do MPLS-TE deixam o headend do túnel TE controlar o caminho que o seu tráfego toma para um determinado destino. Este método é mais flexível do que encaminhar o tráfego com base apenas no endereço de destino.

 

Figura 17: Exemplo de caso em engenharia de tráfego

Fonte: Elaboração do autor, 2010

 

No caso apresentado na figura 16, o melhor caminho para que R1 alcance R7, se o protocolo de roteamento estiver usando como métrica largura de banda (geralmente usado nesses casos) seria R2, R3, R6 e R7. O problema nesse caso é que quando o caminho estiver congestionado, os protocolos de roteamento continuarão encaminhando pelo mesmo caminho, enquanto o outro ficará sem uso. Segundo Reagan (2002) para solução desse problema chamado de fish ou peixe, é a criação de túneis de engenharia de tráfego no MPLS, que tem a capacidade de suportar balanceamento de carga com custos desiguais. A figura 17 mostra como ficaria.

 

Figura 18: Túnel de engenharia de tráfego em MPLS

Fonte: Elaboração do autor, 2010

 

Nesse caso, o transporte dos pacotes fica mais eficiente, aproveitando melhor a largura de banda dos dois caminhos.

 

Conforme Enne (2009, p. 163) “Os protocolos do tipo constraint-based routing utilizados para o MPLS TE são aqueles resultantes de extensões ao protocolo OSPF e ao protocolo IS-IS [...]”. A RFC 3036 define a extensão OSPF versão 2 para suporte à engenharia de tráfego (OSPF-TE), e a extensão IS-IS definido pela RFC 3784, ambas totalmente aplicáveis MPLS TE.

 

QoS

 

O QoS (Quality of Service) ou qualidade de serviço, é um método usado para a priorização de certos tipos de tráfego, garantindo que alguns recursos tenham um tratamento diferenciado ao trafegarem na rede. Esse método pode ser classificados em IntServ (Integrated Services) e DiffServ (Differentiated Services).

 

O modelo IntServ, conforme Ranjbar (2007), foi a primeira tentativa de oferecer QoS fim-a-fim para resolver problemas de demanda principalmente em aplicações de tempo real como voz e vídeo. Baseado em fluxos de tráfegos individuais, utiliza reserva de recurso por todo o caminho da rede conforme a figura 18.

 

Figura 19: Exemplo de reserva de recursos no modelo IntServ

Fonte: Elaboração do autor, 2010

 

Essas reservas dependem de protocolos de sinalização específicos, sendo o RSVP (Reservation Protocol) definido pela RFC 2205 o principal deles. Segundo Colcher (et al., 2005, p. 128) “O RSVP define conceito de sessão como sua unidade de reserva de recursos, correspondendo geralmente a um fluxo específico. Fluxos, no RSVP, são considerados sempre como simplex, ou seja, em um único sentido […]”. Em aplicações de tempo real, é necessário o estabelecimento de sessões distintas em ambas as direções.

 

O modelo DiffServ emitida pela RFC 2475 e complementada posteriormente pela RFC 3660, é um método de QoS desenvolvido pela IETF para operar em grandes redes, ao contrário do IntServ. Segundo Enne (2009), os componentes BA (Behavisor Aggregate), DSCP (Differentiated Service Code Point) e PHP (Per-hop-behavisor) são os principais no modelo DiffServ. Para uso do DSCP o campo ToS (Type of Service) do cabeçalho IP, usado para classificação dos pacotes em QoS tradicionais, dá lugar à um novo campo denominado DSCP. Os BAs são inseridos nesse campo para sua devida classificação ao longo da rede. Já o PHB definido pela RFC 3246, tem como objetivo básico, prover funcionalidades aos equipamentos com o propósito de obter informações de delay, jitter e taxa de descarte dos pacotes que transitam na rede.

 

Nas redes IP tradicionais, o encaminhamento de pacotes é feito com base no endereço de destino sendo, portanto, impossível definir diferentes rotas calculadas pelos protocolos convencionais. Aplicações QoS em redes MPLS, surgem para resolver questões como essa. Existem dois protocolos que permitem o estabelecimento de percursos explícitos para as LSPs e efetua a reserva de recursos ao longo do percurso, o protocolo CR-LDP (Contraint-based Label Distribuition Protocol) e o RSVP-TE com extensões para o estabelecimento de túneis LSPs.

 

O protocolo CR-LDP com sua aplicação definido pela RFC 3213, é uma extensão do LDP que introduz um conjunto de mecanismos adicionais onde permitem o estabelecimento de LSPs com restrições de encaminhamento explícito. Conforme Colcher (et al., 2005, p. 138) “A partir da inserção de parâmetros de especificação de tráfego e QoS nas mensagens LDP de requisições de rótulos, o CR-LDP tornou possível a reserva de recursos em LSPs MPLS”. Com isso é possível a requisição de valores específicos como, variação máxima do retardo, taxa de pico, taxa média, etc.

 

Assim como o LDP, o CR-LDP usa um esquema de codificação denominado TLV (Type-Lenght-Value), que são mensagens passadas através da rede divididas nos campos type, que define o tipo de mensagem, length, que especifica o comprimento do campo seguinte (value) em bytes e o value, que codifica a informação que está interpretada de acordo com o campo type. A manipulação destes campos permite implementar Engenharia de Tráfego no domínio MPLS.

 

O protocolo RSVP-TE definido pela RFC 3209, é uma extensão do RSVP para uso de túneis LSP. Aplicável totalmente em redes MPLS, os túneis LSP no RSVP-TE conseguem analisar requisitos de QoS e determinar qual melhor rota para o encaminhamento do pacote em suas sessões. Esses túneis LSPs podem conter ou não requisitos de QoS. A capacidade de conciliar QoS e Engenharia de Tráfego com eficiência, faz do MPLS uma tecnologia muito superior à redes IP tradicionais, adaptando e otimizando o tráfego à cada tipo de situação.

 

Redes Privadas Virtuais (VPNs)

 

Em redes IP tradicionais, o modelo overlay é mais comumente usado em VPNs para estabelece circuitos virtuais através de uma operadora de serviço, criando uma conexão segura antes da passagem de qualquer tráfego. Nesse modelo a participação das operadoras de serviço resume-se ao link de acesso à internet. Do ponto de vista do fornecedor do serviço VPN, os problemas de escalabilidade começam a aparecer quando o mesmo necessita de um número elevado de túneis (circuitos virtuais) para seus clientes. Ao contrário do modelo overlay, no modelo peer-to-peer, o provedor de serviço tem um papel mais participativo para os mecanismos funcionais da VPN.

 

Aplicações VPNs em redes MPLS, tornou possível associar os benefícios de segurança e isolamentos do modelo overlay, com as vantagens do encaminhamento simplificado que o modelo peer-to-peer oferece. Esse novo modelo de VPN utiliza uma infraestrutura de rede IP pública para a formação de “roteadores virtuais” em uma estrutura de nuvens privadas.

 

A RFC 4364, é a versão mais recente que descreve um método pelo qual os provedores de serviços disponibilizam aos seus clientes, endereços IPs para VPNs denominado BGP/MPLS IP Virtual Private Networks (VPNs). Nesse modelo não há sobreposição de rotas, ou seja, a mesma faixa de endereço IP pode ser associada à diferentes VPNs no mesmo backbone (PE) sem que uma interfira na outra.

 

Para o encaminhamento e transporte dessas tabelas de roteamento virtuais, os roteadores PEs tem que suportar o BGP-4 com extensão para multi protocolos, definido na versão atual pela RFC 4760 (Multiprotocol Extensions for BGP-4). Essas extensões permitem a interoperação entre roteadores operando BGP-4 convencional e roteadores operando com MP-BGP. Na figura 19 é ilustrado a arquitetura desse modelo MPLS VPN nos roteadores PEs.

 

Figura 20: Arquitetura VPN em roteadores PEs

Fonte: Morgan e Lovering (2009, p. 238)

 

Segundo Pepelnjak (et al., 2003), para o transporte dessas informações uma nova família de endereço IP foi criada, denominada como VPN-IPv4 address-family. Esse endereço possui 12 bytes de tamanha, cujo 8 bytes reservados para o campo RD (Route Distinguisher), que é um identificador usado para distinguir os prefixos de endereços IPs, e 4 bytes contendo o endereço de prefixo Ipv4.

 

De acordo com Enne (2009), o valor de um RD é associada a uma VRF (VPN Routing and Forwarding Table) e através dessa VRF vinculada a uma determinada interface física ligada a um roteador CE. As VRFs são mecanismos usados para o encaminhamento de tabela de roteamento de diferentes VPNs, separando essas tabelas da default forwarding table (tabela de roteamento global).

 

O MP-BGP usa as mensagens UPDATE do protocolo BGP para transportar informações sobre o roteamento interno das VPNs. O atributo MP_REACH_NLRI é adicionado as mensagens UPDATE do protocolo BGP contendo informações relevantes as VPNs como: prefixo de endereço IP, Label, RD, Next-hop. Assim como feito em endereços globais, o MPLS também associa a cada prefixo de endereço VPN-IPv4 a um rótulo.