Mudanças entre as edições de "Redes MPLS"

De MediaWiki do Campus São José
Ir para: navegação, pesquisa
(Redes Privadas Virtuais (VPNs))
 
Linha 1: Linha 1:
 +
;OBJETIVOS DA AULA
 +
 +
* Conhecer os fundamentos das Redes WAN MPLS
 +
 +
;CONTEÚDO DE APOIO
 +
 +
===Fundamentos das Redes WAN MPLS===
 +
 +
=== Redes Virtuais - MPLS ===
 +
 +
* Redes virtuais com MPLS;
 +
'''ATENÇÂO: Leitura:'''
 +
* '''Capítulo 5 (seção 5.8)''' do livro ''Redes de Computadores e a Internet, 5a ed.'', de James Kurose.
 +
* '''Capítulo 5 (seção 5.4.5)''' do livro ''Redes de Computadores, 4a ed.'', de Andrew Tanenbaum (ou seção 5.6.5 da 5ª ed.).
 +
 +
'''''Outras referências sobre MPLS:'''''
 +
 +
* [http://en.wikipedia.org/wiki/Multiprotocol_Label_Switching MPLS na Wikipedia]
 +
* [http://www.ietf.org/rfc/rfc3031.txt RFC 3031: MPLS  Architecture]
 +
* [http://www.ietf.org/rfc/rfc3032.txt RFC 3032: MPLS Label Stack Encoding]
 +
 
==='''Histórico'''===
 
==='''Histórico'''===
  
Linha 225: Linha 246:
  
 
O prestador de serviço é capaz de garantir que uma VPN não sofra interferência de outras VPNs, ou seja, cada caminho virtual deve ser acessível somente pelos usuários legítimos. Em uma rede MPLS, esta situação é diferenciada em relação a uma rede IP pura, onde o tráfego pode ser interceptado e, portanto deve ser criptografado. Na rede MPLS, a possibilidade de interceptação de tráfego por outro componente não existe.
 
O prestador de serviço é capaz de garantir que uma VPN não sofra interferência de outras VPNs, ou seja, cada caminho virtual deve ser acessível somente pelos usuários legítimos. Em uma rede MPLS, esta situação é diferenciada em relação a uma rede IP pura, onde o tráfego pode ser interceptado e, portanto deve ser criptografado. Na rede MPLS, a possibilidade de interceptação de tráfego por outro componente não existe.
 +
 +
 +
 +
[http://en.wikipedia.org/wiki/Multiprotocol_Label_Switching MPLS] é um  mecanismo para redes de telecomunicações de alto desempenho que encaminha e transporta dados de um nó da rede a outro. Isso se faz por meio de links virtuais entre nós distantes um do outro, semelhante ao conceito de ''circuitos virtuais''. Diversos protocolos podem ser transportados por MPLS, tais como IP e Ethernet (note que o primeiro é um protocolo de rede, mas o segundo é um ''"protocolo"'' de enlace). Assim, MPLS se apresenta como uma tecnologia de transporte de dados em redes de longa distância, como ilustrado na figura abaixo.
 +
 +
[[imagem:Mpls-network.jpg]]
 +
 +
Simplificadamente, um cabeçalho (''shim header'') é adicionado a cada PDU a ser transportada pela rede MPLS. O rótulo contém um número identificador chamado de rótulo (''label'', e similar ao ''VCI'' visto em circuitos virtuais), junto com alguns bits de controle. Os roteadores dentro da rede MPLS encaminham essas PDUs com base somente no conteúdo desse cabeçalho, comutando-os de acordo com os valores de rótulo (''label  switching''). Note que MPLS não faz roteamento, e sim comutação de circuitos virtuais: os circuitos devem ser previamente estabelecidos para que o encaminhamento de PDUs entre origem e destino possa ser realizada. Desta forma, MPLS parece ser um  protocolo que fica entre as camadas de rede e de enlace, como mostrado na  figura a seguir.
 +
 +
[[imagem:Mpls_protocolstack.jpg]]  ---->  [[imagem:MPLS_D2.gif‎]]
 +
 +
 +
O cabeçalho MPLS possui apenas 32 bits, como  mostrado  abaixo. O valor de rótulo ocupa 20 bits, o que possibilita pouco mais de 1 milhão de diferentes rótulos (<math>2^{20}</math>). Há um  campo ''Time To Live'' (ou simplesmente ''TTL'') com 8 bits, com mesma finalidade que o campo homônimo existente em PDUS IPv4: evitar que um erro de configuração em um roteador faça com que PDUs fiquem circulando  eternamente em um ''loop'' na rede. O valor desse campo ''TTL'' é decrementado por cada roteador que encaminhe a PDU e, se o valor chegar a 0, a PDU é descartada. O campo ''Exp'' com 3 bits foi pensado para codificar a classe de serviço da PDU, a qual pode ser usada por mecanismos de qualidade de serviço (''QoS'') existentes na rede. Por exemplo, o valor de ''Exp'' pode ser usado como prioridade da PDU em um  determinado roteador dentro da rede MPLS. Por fim, o bit ''S'' (''bottom of stack'') informa se esse é o último cabeçalho MPLS na PDU, uma vez que podem-se empilhar dois ou mais desses  cabeçalhos.
 +
 +
 +
[[imagem:Mpls-label.png]]
 +
 +
 +
A terminologia MPLS possui nomes próprios para diversos componentes da arquitetura. Como ocorre em outras tecnologias, existem conceitos conhecidos apresentados porém com nomes diferentes. A tabela  abaixo descreve alguns termos importantes existentes no MPLS:
 +
 +
 +
{| border="1" cellpadding="2"
 +
!Termo
 +
!Descrição
 +
|-
 +
|''LSP'' || Label Switching Path, o análogo a circuito virtual.
 +
|-
 +
|''LSR'' || Label Switching Router, ou roteador capaz de comutar PDUs MPLS.
 +
|-
 +
|''LER'' || Label Edge Router,  ou roteador que faz a interface entre a rede MPLS (onde se encaminham  PDUs exclusivamente com base nos rótulos), e a rede externa (onde não se usa MPLS). A rede externa pode ser qualquer outra rede, como IPv4, IPv6 ou mesmo LAN Ethernet. Note que LER é um  tipo especial de LSR,  e podem ser denominados também como ''LSR ingress'' (''LSR'' de entrada na rede MPLS) e ''LSR egress'' (''LSR'' de saída da rede MPLS).
 +
|-
 +
|''LFIB'' || Label Forwarding Information Base, ou o conjunto de informações existentes nos LSR usadas para fazer o encaminhamento das PDUS MPLS. Pode ser entendida como uma estrutura análoga à tabela de comutação de circuitos virtuais.
 +
|-
 +
|}
 +
 +
 +
Usando os termos acima, podem-se descrever redes MPLS demonstrativas como mostrado  a seguir. Na  primeira rede há dois LSP: um vai do ''Host X'' ao ''Host Z'' e está identificado com PDUS em amarelo, e outro vai de ''Host  X'' ao ''Host Y'' e tem PDUs em azul. O número dentro de cada PDU informa os valores de rótulo usados  ao longo dos LSP. Assim como em circuitos virtuais em  geral (e como em Frame  Relay e ATM), os valores de rótulo podem ser modificados por cada roteador que os comute.
 +
 +
[[imagem:Mplsrouters.gif]]
 +
 +
=== Conceitos básicos sobre comutação de rótulos ===
 +
 +
A comutação de rótulos feita nos LSR é muito parecida com comutação de circuitos virtuais. Ao receber uma PDU MPLS, um LSR decide o que fazer com ela com base no número do rótulo e na interface de rede de onde ela foi recebida. Porém há um  detalhe específico do MPLS: uma ou mais interfaces podem ser associadas em um  ''labelspace MPLS'', sendo esse ''labelspace'' usado para identificar de onde foi recebida uma PDU. Desta forma, um  LSR na  verdade decide o que fazer com uma PDU com base em seu rótulo e no  seu ''labelspace''. Dentro do LSR essa operação se chama ''ILM'' (''Input Label Mapping'').
 +
 +
'''''ILM''' é a função que identifica uma PDU recebida e mapeia seu rótulo para um '''labelspace'''''
 +
 +
Um caso especial  trata de PDUs que entram na rede MPLS. Por exemplo, uma PDU IPv4, originada de uma rede externa, deve ser transportada pela rede MPLS. Nesse caso, o ''LER'' (roteador de borda) deve associar essa PDU a um rótulo MPLS e encaminhá-lo pela rede MPLS. A identificação de uma PDU externa à rede MPLS, com  base nas informações dessa PDU, se chama  ''FEC'' (''Forwarding Equivalence Class'').
 +
 +
Uma vez identificada uma PDU recebida, o  LSR deve encaminhá-la de acordo com instruções predefinidas em sua ''LFIB''. Dentro de sua LFIB essas instruções são chamadas de ''NHLFE'' (''Next-Hop Label Forwarding Entry''), e contêm a '''operação MPLS''' a ser realizada e a interface de saída por onde encaminhar a PDU. As operações MPLS possíveis estão descritas na tabela abaixo:
 +
 +
 +
{| border="1" cellpadding="2"
 +
!Operação
 +
!Descrição
 +
|-
 +
|''SWAP'' || Troca o valor de rótulo. Essa operação deve ser usada para comutação dentro da rede MPLS. Mesmo  quando  o novo valor de rótulo for idêntico ao anterior essa operação deve ser realizada.
 +
|-
 +
|''PUSH'' || Adiciona um cabeçalho MPLS com um determinado valor de rótulo. Essa operação deve ser usada principalmente  nos ''LER'',  quando  uma PDU entra na rede MPLS.
 +
|-
 +
|''POP'' || Remove o cabeçalho MPLS. Essa operação deve ser usada principalmente nos ''LER'', quando uma PDU sai da rede MPLS.
 +
|-
 +
|}
 +
 +
 +
A comutação fica completa ao se juntarem o mapeamento de entrada (''ILM'') com as ''NHLFE'', no caso de comutação dentro da rede MPLS. No caso de entrada de PDUs na rede MPLS, a operação se chama  ''FTN'' (''Fec-To-Nhlfe''), que nada mais é que regras para associar os rótulos MPLS a essas PDUS. No  exemplo da PDU IPv4, pode-se usar o endereço IPv4 de destino  dessa PDU para escolher que rótulo MPLS deve  ser usado. Isso está sumarizado na  figura abaixo.
 +
 +
[[imagem:Mpls-lfib.png]]
 +
 +
 +
===Implementação das redes dentro de redes===
 +
 +
[[media:Redesdentroderedes.pdf | Anotações da videoaula]] sobre noções básicas de como a infraestrutura das redes WAN de grandes Provedores de serviços de telecomunicações é concebida para atender as diversidades de tecnologias de camadas 1 em 2.
  
 
=== Conclusão ===
 
=== Conclusão ===

Edição atual tal como às 16h18min de 14 de maio de 2022

OBJETIVOS DA AULA
  • Conhecer os fundamentos das Redes WAN MPLS
CONTEÚDO DE APOIO

Fundamentos das Redes WAN MPLS

Redes Virtuais - MPLS

  • Redes virtuais com MPLS;

ATENÇÂO: Leitura:

  • Capítulo 5 (seção 5.8) do livro Redes de Computadores e a Internet, 5a ed., de James Kurose.
  • Capítulo 5 (seção 5.4.5) do livro Redes de Computadores, 4a ed., de Andrew Tanenbaum (ou seção 5.6.5 da 5ª ed.).

Outras referências sobre MPLS:

Histórico

Por possuir altas velocidades, quando a tecnologia ATM - Asynchronous Transfer Mode - foi lançada, em 1990, esperava-se que ela dominasse o mercado de redes, porém, essa tecnologia não era compatível com o IP, o protocolo mais utilizado em redes de computadores. Pensando nisso, foi criada a tecnologia LBS - Label Based Switching - que aliou o que há de melhor em redes baseadas em pacotes (redes IP) e em redes orientadas à conexão (como redes ATM). Foi dessa junção que surgiu o MPLS.

Nos anos atuais, o MPLS tem se difundido bastante para a criação de novos serviços, mas não é uma tecnologia nova: desde meados dos anos de 1990, iniciativas de protocolos baseados em métodos de engenharia de tráfego já utilizam essa tecnologia. À medida que esses protocolos convergiram e, consequentemente, se fundiram ao MPLS sob a proteção do IETF, tanto operadoras quanto fabricantes de equipamentos perceberam o potencial da tecnologia, fora do âmbito de engenharia de tráfego.

O que é MPLS?

O MPLS, Multi-protocol Label Switching ou Comutação de Rótulos Multiprotocolo, é uma tecnologia de chaveamento de pacotes, que proporciona encaminhamento e comutação eficiente de fluxos de tráfego através da rede, visando diminuir o processamento nos equipamentos e interligar com maior eficiência redes de tecnologia distintas.

O MPLS é padronizado pelo IETF - Internet Engineering Task Force, através da RFC-3031 e atua entre as camadas 2 e 3 do modelo OSI sendo, por isso, nomeado por alguns autores como o protocolo da camada 2,5.

Essa tecnologia consiste em direcionar dados de um nó da rede para o próximo nó, baseando-se em rótulos de menor caminho ao invés de endereços de rede longos, evitando consultas complexas em uma tabela de roteamento. Esses rótulos identificam enlaces virtuais – caminhos - entre nós distantes, ao invés de pontos terminais.

O termo “Multiprotocol” designa que essa tecnologia pode ser usada sob qualquer protocolo de rede, mas o estudo e a implementação têm se resumido basicamente para redes IP, devido a ampla utilização.

Por possuir a capacidade de associar a facilidade dos roteadores com a eficiência dos switchs, é uma tecnologia que está se consolidando, com atuação notória em países em desenvolvimento e ampla difusão em países de primeiro mundo.

Conceitos de uma rede MPLS

O MPLS possui uma metodologia diferenciada de tratamento do tráfego da rede: Os dispositivos MPLS operam com base em etiqueta inseridas nos pacotes, assim que eles ingressam na rede, ao invés de analisar o cabeçalho, como é feito na camada 3, em redes IP tradicionais. Por causa disso, o MPLS possui independência dos protocolos da camada de rede.


Redesmpls conceito.jpg
Figura 1: Encaminhamento dos rótulos switchs MPLS.
Fonte: http://www.teleco.com.br/


Alguns conceitos são importantes para entendermos como funciona uma rede MPLS, são eles:

FEC (Fowarding Equivalence Class) ou Classe de Encaminhamento Equivalente: é definida como qualquer grupo de pacotes que podem ser tratados de forma equivalente, para fins de encaminhamento. Exemplo: pacotes que tenham o mesmo prefixo de origem e destino.

Label ou rótulo: é um pequeno identificador que o pacote recebe ao entrar em uma rede MPLS. Este identificador será utilizado para o seu roteamento dentro da rede.

LSP (Label Switch Path): É o caminho, ou túnel, determinado dentro de uma rede MPLS.

LER (Label Edge Router): Faz o papel do roteador de borda em uma rede MPLS, rotulando e desrotulando os pacotes que entram e saem da rede.

LSR (Label Switch Router): São os roteadores responsáveis somente pela comutação de rótulos em uma rede MPLS.

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 exemplificado na figura abaixo:


Redesmpls equipamentos.jpg
Figura 2: Equipamentos da rede MPLS.
Fonte: http://www.teleco.com.br/


Os roteadores que compõem as redes MPLS, de acordo com a sua função, são o LSR (Label Switching Routers) e o LER (Label Edge Routers).

LSR - Label Switching Routers: é um roteador de núcleo, que participa do estabelecimento de LSP (Label Switching Paths) usando protocolos de distribuição de rótulos. Ele executa os algoritmos e mantém as tabelas de encaminhamento. Os LSRs de um domínio MPLS comunicam-se através de um protocolo adequado (LDP, RSVP estendido ou qualquer outro protocolo), para manter as tabelas de encaminhamento do domínio atualizadas. O LSR tem a função de encaminhar os pacotes, baseando-se apenas no rótulo: ao receber um pacote, cada LSR troca o rótulo existente por outro, passando o pacote para o próximo LSR, até chegar no roteador de borda de saída.

LER - Label Edge Routers: é um LSR que, além das funções de encaminhamento e controle, quando está na entrada de um domínio MPLS, é responsável por rotular o pacote e atribuir os pacotes a uma classe de equivalência de encaminhamento (FEC). O processo de atribuição de pacotes a uma FEC não afeta o desempenho geral da arquitetura, pois é efetuado somente na admissão do pacote, não importando então o nível de complexidade empregado na atribuição. Quando um LER está na saída do domínio MPLS, ele é responsável pela retirada do rótulo, mantendo a estrutura normal de um pacote IP, para ser entregue a uma rede não MPLS.


O caminho percorrido por pacotes MPLS, entre dois LRS quaisquer, conforme a definição de uma FEC, é chamado de LSP (Label Switched Path). 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 a uma mesma FEC, resultando na facilidade da agregação de fluxos multicast.

Os rótulos são associados às FECs devido a um evento que mostra a necessidade dessa associação. Estes eventos podem ser de dois tipos: Data Driven e Control Driven.

Data Driven: a associação é feita quando se chega a um LSR possuindo tráfego identificado como candidato a 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.


A colocação dos rótulos MPLS pode ocorrer de três formas diferentes:

Frame-based LRSs: 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.


Redesmpls rotulos.gif
Figura 3: Encapsulamento do quadro com rótulo.
Fonte: http://www.teleco.com.br/


Os rótulos são pequenos identificadores de tamanho fixo, colocados nos pacotes durante seu tráfego pela rede MPLS; são inseridos pelo LER de entrada e são removidos em definitivo pelo LER de saída, não havendo influência deles no roteamento de fora da rede MPLS. O encapsulamento pode ser de várias formas, para redes MPLS baseadas no protocolo IP, alguns bytes são inseridos antes do cabeçalho IP para fazer o papel do rótulo; para redes ATM e Frame Relay os campos VPI/VCI e DLCI são utilizados, respectivamente, como o rótulo. O rótulo MPLS é constituído pelos campos mostrados na figura abaixo:



Redesmpls rotulos.jpg
Figura 4: Estrutura e encapsulamento do cabeçalho MPLS.
Fonte: http://www.teleco.com.br/


Rótulo: Onde contém o valor do rótulo MPLS.

CoS - Class of Service: Onde é determinado a forma com que o pacote será tratado nas filas de espera dos equipamentos da rede.

S – Stack: Onde é feita a hierarquização dos rótulos.

TTL – Time To Live: É onde permite que a funcionalidade TTL IP convencional funcione.


Os rótulos têm a seguinte forma: |-20bits Label-|-3bits CoS-|-1bit Stack-|-8bits TTL-|


Os 20 primeiros bits representam a identificação do rótulo, ou seja, identifica a que CEE pertence o pacote.

Os 3 bits de CoS (Class of Service) são usados para alterar os algoritmos de enfileiramento (queuing) e descarte. Sendo possível dar prioridade a certos pacotes.

O bit de pilha (Stack) permite a criação de uma pilha hierárquica de rótulos e os últimos 8 bits fazem o papel do TTL IP convencional.


Os rótulos têm validade local - só são válidos entre roteadores adjacentes e, pelo fato de terem tamanho fixo, o seu tratamento é mais rápido, pois pode ser feito por meio de Hardware.


O mecanismo utilizado para fazer atualizações da tabela de roteamento, quando há mudanças na topologia, é o FIB (Forwarding Information Bases): No FIB, há associação das FECs aos endereços de IP do próximo salto (next-hop), formando um espelho da tabela de roteamento, com as devidas interfaces de saída.

Quem mantém o mapeamento entre o prefixo IP, rótulo atribuído e atribuição de rótulos é a LIB (Label Information Bases). A LIB pode conter também os bindings – locais entre FECs e labels - desempenhando a função dos label space, que são espaços disponíveis nos LSRs que contêm uma margem de rótulos e uma base de informações onde são registrados os bindings locais.

O LFIB (Label Forwarding Information Bases) serve como base de informação em LSRs, indexado por valores de FEC. Ele fornece a base de dados utilizada no encaminhamento de pacotes rotulados.

O IGP (Interior Gateway Protocol) serve para preencher as tabelas de roteamento em todos os roteadores MPLS da rede.

Distribuição de Rótulos

Os switchs MPLS não têm a necessidade de analisar os dados do cabeçalho da camada de rede, pois, quando o roteador LSR insere o rótulo ao pacote, a rota para chegar até o seu destino já está definida; por isso, o processo de roteamento se torna muito eficiente.

O MPLS possui duas formas de propagar as informações necessárias:

-> Estendendo a funcionalidade em protocolos já existentes, que é o caso do BGP e OSPF, por exemplo;

-> Criando um novo protocolo dedicado para fazer a distribuição de rótulos, que é o caso do LDP (Label Distribution Protocol)'.

‎O LDP, desenvolvido pela IEFT e definido com a RFC 3036, é um protocolo projetado para mapeamento de rótulos. O protocolo LDP envia periodicamente mensagens "hello", pelo endereço multicast 224.0.0.2, para descoberta dos vizinhos, assim como o OSPF. Ele suporta a alocação de rótulos dos tipos Data-Driven e Control-Driven. Um ponto ruim desse 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”.

O LDP 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 suportá-lo.

Funcionamento Básico

Quando um pacote entra em uma rede MPLS, o primeiro passo a tomar é identificar a qual classe de encaminhamento (FEC) este pacote pertence. Esta análise é feita somente no LER, ou seja, na entrada da rede MPLS, onde é aberto o pacote de rede para classificá-lo como pertencente de uma determinada FEC. Com esta identificação, é possível designar o melhor caminho (LSP) para o pacote. Após tomada a decisão do LSP a utilizar, o pacote é rotulado e encaminhado ao próximo salto.

Nos saltos subsequentes, não há nenhuma análise do cabeçalho da camada de rede do pacote. A cada Roteador Comutador de Rótulos (Label Switch Router – LSR) pelo qual o pacote passa, os rótulos são trocados, pois cada rótulo representa um índice na tabela de encaminhamento do próximo roteador. Sendo assim, quando um pacote rotulado chega, o roteador procura em sua tabela (NHLFE - Next Hop Label Forwarding Entry) pelo índice representado pelo rótulo. Ao encontrar este índice, o roteador substitui o rótulo de entrada por um rótulo de saída associado à CEE a que pertence o pacote. Após completada a operação de troca de rótulos, o pacote é encaminhado pela interface que está especificada na tabela de roteamento.

Quando o pacote chega ao LER de saída da rede MPLS, o rótulo é removido e o pacote é encaminhado pela interface associada à FEC a qual pertence o pacote.


Lsr-ler.JPG
Figura 5: Detalhamento de rede MPLS.
Fonte: http://www.gta.ufrj.br/grad/04_2/MPLS/conceitos.htm


Engenharia de Tráfego com MPLS

Um problema comum e redes de computadores, principalmente em redes públicas e de grande porte, é a incapacidade de explorar os recursos da rede com eficiência, gerando congestionamentos e lentidões no serviço disponibilizado. No roteamento IP padrão, o parâmetro utilizado para decisão de uma rota é através do caminho mais curto até o destino, entretanto, muitas vezes esta não é a solução ideal. Podemos fazer uma analogia com o trânsito de veículos nas grandes cidades: Muitas vezes, o menor caminho é também o mais congestionado, fazendo com que demoremos muito mais em nosso trajeto do que se escolhêssemos rotas alternativas com menor congestionamento.

Tutorialmplseb2 figura1.jpg
Figura 6: Roteamento em rede IP convencional.
Fonte: http://www.teleco.com.br/tutoriais/tutorialmplseb2/pagina_2.asp


Neste cenário, surge a necessidade de repensarmos o modelo de roteamento para melhor utilizar os recursos disponibilizados pela rede, de onde vem o conceito de Engenharia de Tráfego.

A engenharia de tráfego no MPLS utiliza a largura de banda existente de forma mais eficiente, permitindo que pacotes possam ser encaminhados por rotas explícitas e com uma largura de banda específica garantida. Isto é conhecido como CBR (Constraint-Based Routing). O CBR gera caminhos do tráfego de dados dentro de uma rede MPLS, permitindo que o tráfego seja encaminhado a rotas desejadas.

A engenharia de tráfego MPLS também permite confiabilidade e escalonabilidade para ser introduzida ao longo da rede, aumentando a disponibilidade e valor da rede para os clientes. Ao utilizá-la, as conexões LSPs podem ser otimizadas e deduzidas. Quando ocorrem falhas, o tráfego pode ser re-roteado automaticamente por outro link ao redor da falha. Para isto, o MPLS utiliza protocolos do tipo soft-state, ou seja, protocolos onde os dados de roteamento devem ser atualizados periodicamente, para isto utiliza pacotes UDP como mecanismo de sinalização das configurações de comunicação do LSP, incluindo descoberta de pares, rótulos perdidos, mapeamento e gestão.

Devido à sua grande maleabilidade, o MPLS oferece suporte a diversos protocolos de engenharia de tráfego, além de possuir os próprios como o RSVP – TE (Resource Reservation Protocol with Tunneling Extensions) e o CR-LDP (Constrained-based Label Distribution Protocol).

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. Este tipo de serviço se torna muito importante quando se trata, por exemplo, de aplicações em tempo real, tal como voz e vídeo.


Opa.gif
Figura 7: Exemplo de reserva de recursos no link.
Fonte: http://www.teleco.com.br/tutoriais/tutorialmplscam/pagina_3.asp


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 que efetuam a reserva de recursos ao longo do percurso: o protocolo CR-LDP (Contraint-based Label Distribuition Protocol) e o RSVP-TE.

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 permite o estabelecimento de LSPs com restrições de encaminhamento explícito. 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.

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 a redes IP tradicionais, adaptando e otimizando o tráfego a cada tipo de situação.

A engenharia de tráfego MPLS é tipicamente utilizada no núcleo na rede MPLS, enquanto o QoS é usado nas extremidades. QoS na borda da rede garante que os pacotes de alta prioridade obtenham um tratamento preferencial, enquanto a engenharia de tráfego evita congestionamentos na rede utilizando adequadamente os recursos disponíveis de banda. Juntos, QoS e engenharia de tráfego permitem que as organizações se movam de múltiplas formas, obtendo redes especializadas de voz, vídeo e dados em uma única rede convergente IP/MPLS.

Redes Privadas Virtuais (VPNs)

Uma VPN (Virtual Private Network) ou Rede Privada Virtual, como o próprio nome sugere, é uma rede virtual estabelecida através de uma rede pública (como a internet, por exemplo), possibilitando dois ou mais hosts se comunicarem como se estivessem no mesmo barramento (switch). Este serviço permite que localizações remotas sejam interligadas através de uma rede pública, sem as despesas de compra ou locação de um circuito de dados dedicado.


Vpn.gif
Figura 8: Detalhamento de túnel VPN.
Fonte: https://technet.microsoft.com/en-us/library/cc731954(v=ws.10).aspx


A partir do MPLS, as operadoras de internet começaram a vender o serviço de VPN MPLS. As VPNs MPLS dividem-se em dois grandes tipos: as que operam na camada três (L3 VPN) e as que operam na camada dois (L2 VPN). As VPNs baseadas na camada três possuem uma extensão do BGP, especificamente o MP-iBGP (Multi-Protocol internal BGP). Neste cenário, o roteador do cliente provê ao LER informações de roteamento referente à rede privada que está por trás dele. O LER armazena estas informações de roteamento em uma tabela virtual de encaminhamento e roteamento (VRF - Virtual Routing and Forwarding); cada VRF representa essencialmente uma rede IP privada.

As L2 VPNs (VPNs de camada dois) têm gerado grande interesse das prestadoras de serviços e passaram a ser implantadas gradativamente. As normas de padronização do L2 VPN ainda estão em fase de desenvolvimento, porém, o setor industrial vem focando no projeto-rascunho IETF Martini. Este projeto-rascunho define métodos de configuração de túneis L2 VPN em toda uma rede MPLS e pode ser compatível com todos os tipos de tráfego de camada dois, incluindo Ethernet, Frame Relay, ATM, TDM, e PPP / HDLC (High-Level Data Link Control - protocolo síncrono de orientação a bit localizado na camada de enlace.

O prestador de serviço é capaz de garantir que uma VPN não sofra interferência de outras VPNs, ou seja, cada caminho virtual deve ser acessível somente pelos usuários legítimos. Em uma rede MPLS, esta situação é diferenciada em relação a uma rede IP pura, onde o tráfego pode ser interceptado e, portanto deve ser criptografado. Na rede MPLS, a possibilidade de interceptação de tráfego por outro componente não existe.


MPLS é um mecanismo para redes de telecomunicações de alto desempenho que encaminha e transporta dados de um nó da rede a outro. Isso se faz por meio de links virtuais entre nós distantes um do outro, semelhante ao conceito de circuitos virtuais. Diversos protocolos podem ser transportados por MPLS, tais como IP e Ethernet (note que o primeiro é um protocolo de rede, mas o segundo é um "protocolo" de enlace). Assim, MPLS se apresenta como uma tecnologia de transporte de dados em redes de longa distância, como ilustrado na figura abaixo.

Mpls-network.jpg

Simplificadamente, um cabeçalho (shim header) é adicionado a cada PDU a ser transportada pela rede MPLS. O rótulo contém um número identificador chamado de rótulo (label, e similar ao VCI visto em circuitos virtuais), junto com alguns bits de controle. Os roteadores dentro da rede MPLS encaminham essas PDUs com base somente no conteúdo desse cabeçalho, comutando-os de acordo com os valores de rótulo (label switching). Note que MPLS não faz roteamento, e sim comutação de circuitos virtuais: os circuitos devem ser previamente estabelecidos para que o encaminhamento de PDUs entre origem e destino possa ser realizada. Desta forma, MPLS parece ser um protocolo que fica entre as camadas de rede e de enlace, como mostrado na figura a seguir.

Mpls protocolstack.jpg ----> MPLS D2.gif


O cabeçalho MPLS possui apenas 32 bits, como mostrado abaixo. O valor de rótulo ocupa 20 bits, o que possibilita pouco mais de 1 milhão de diferentes rótulos (). Há um campo Time To Live (ou simplesmente TTL) com 8 bits, com mesma finalidade que o campo homônimo existente em PDUS IPv4: evitar que um erro de configuração em um roteador faça com que PDUs fiquem circulando eternamente em um loop na rede. O valor desse campo TTL é decrementado por cada roteador que encaminhe a PDU e, se o valor chegar a 0, a PDU é descartada. O campo Exp com 3 bits foi pensado para codificar a classe de serviço da PDU, a qual pode ser usada por mecanismos de qualidade de serviço (QoS) existentes na rede. Por exemplo, o valor de Exp pode ser usado como prioridade da PDU em um determinado roteador dentro da rede MPLS. Por fim, o bit S (bottom of stack) informa se esse é o último cabeçalho MPLS na PDU, uma vez que podem-se empilhar dois ou mais desses cabeçalhos.


Mpls-label.png


A terminologia MPLS possui nomes próprios para diversos componentes da arquitetura. Como ocorre em outras tecnologias, existem conceitos conhecidos apresentados porém com nomes diferentes. A tabela abaixo descreve alguns termos importantes existentes no MPLS:


Termo Descrição
LSP Label Switching Path, o análogo a circuito virtual.
LSR Label Switching Router, ou roteador capaz de comutar PDUs MPLS.
LER Label Edge Router, ou roteador que faz a interface entre a rede MPLS (onde se encaminham PDUs exclusivamente com base nos rótulos), e a rede externa (onde não se usa MPLS). A rede externa pode ser qualquer outra rede, como IPv4, IPv6 ou mesmo LAN Ethernet. Note que LER é um tipo especial de LSR, e podem ser denominados também como LSR ingress (LSR de entrada na rede MPLS) e LSR egress (LSR de saída da rede MPLS).
LFIB Label Forwarding Information Base, ou o conjunto de informações existentes nos LSR usadas para fazer o encaminhamento das PDUS MPLS. Pode ser entendida como uma estrutura análoga à tabela de comutação de circuitos virtuais.


Usando os termos acima, podem-se descrever redes MPLS demonstrativas como mostrado a seguir. Na primeira rede há dois LSP: um vai do Host X ao Host Z e está identificado com PDUS em amarelo, e outro vai de Host X ao Host Y e tem PDUs em azul. O número dentro de cada PDU informa os valores de rótulo usados ao longo dos LSP. Assim como em circuitos virtuais em geral (e como em Frame Relay e ATM), os valores de rótulo podem ser modificados por cada roteador que os comute.

Mplsrouters.gif

Conceitos básicos sobre comutação de rótulos

A comutação de rótulos feita nos LSR é muito parecida com comutação de circuitos virtuais. Ao receber uma PDU MPLS, um LSR decide o que fazer com ela com base no número do rótulo e na interface de rede de onde ela foi recebida. Porém há um detalhe específico do MPLS: uma ou mais interfaces podem ser associadas em um labelspace MPLS, sendo esse labelspace usado para identificar de onde foi recebida uma PDU. Desta forma, um LSR na verdade decide o que fazer com uma PDU com base em seu rótulo e no seu labelspace. Dentro do LSR essa operação se chama ILM (Input Label Mapping).

ILM é a função que identifica uma PDU recebida e mapeia seu rótulo para um labelspace

Um caso especial trata de PDUs que entram na rede MPLS. Por exemplo, uma PDU IPv4, originada de uma rede externa, deve ser transportada pela rede MPLS. Nesse caso, o LER (roteador de borda) deve associar essa PDU a um rótulo MPLS e encaminhá-lo pela rede MPLS. A identificação de uma PDU externa à rede MPLS, com base nas informações dessa PDU, se chama FEC (Forwarding Equivalence Class).

Uma vez identificada uma PDU recebida, o LSR deve encaminhá-la de acordo com instruções predefinidas em sua LFIB. Dentro de sua LFIB essas instruções são chamadas de NHLFE (Next-Hop Label Forwarding Entry), e contêm a operação MPLS a ser realizada e a interface de saída por onde encaminhar a PDU. As operações MPLS possíveis estão descritas na tabela abaixo:


Operação Descrição
SWAP Troca o valor de rótulo. Essa operação deve ser usada para comutação dentro da rede MPLS. Mesmo quando o novo valor de rótulo for idêntico ao anterior essa operação deve ser realizada.
PUSH Adiciona um cabeçalho MPLS com um determinado valor de rótulo. Essa operação deve ser usada principalmente nos LER, quando uma PDU entra na rede MPLS.
POP Remove o cabeçalho MPLS. Essa operação deve ser usada principalmente nos LER, quando uma PDU sai da rede MPLS.


A comutação fica completa ao se juntarem o mapeamento de entrada (ILM) com as NHLFE, no caso de comutação dentro da rede MPLS. No caso de entrada de PDUs na rede MPLS, a operação se chama FTN (Fec-To-Nhlfe), que nada mais é que regras para associar os rótulos MPLS a essas PDUS. No exemplo da PDU IPv4, pode-se usar o endereço IPv4 de destino dessa PDU para escolher que rótulo MPLS deve ser usado. Isso está sumarizado na figura abaixo.

Mpls-lfib.png


Implementação das redes dentro de redes

Anotações da videoaula sobre noções básicas de como a infraestrutura das redes WAN de grandes Provedores de serviços de telecomunicações é concebida para atender as diversidades de tecnologias de camadas 1 em 2.

Conclusão

Com os avanços tecnológicos exigindo cada vez mais velocidade na transmissão dos dados de um ponto a outro, como, por exemplo, nas transmissões digitais de voz e vídeo em corporações, se torna maior a necessidade de tecnologias com alto desempenho para entrega de pacotes. Neste cenário, o MPLS surge como um alternativa para o desenvolvimento de redes de alta performance.

Por ser uma tecnologia de redes de trânsito de pacotes, o MPLS é também flexível e permite a integração de diferentes técnicas de comutação que já estão em atividade. Isso permite interligar com mais facilidade os grandes provedores de serviços de rede. Mesmo estando em sua fase inicial de desenvolvimento, o MPLS já tem grande aceitação no mercado, permitindo inclusive ser comercializado pelas operadoras para o usuário final.

Concluímos então que o MPLS é a tecnologia que integrará os mais diversos meios de comunicação, aprimorando o encaminhamento dos dados e provendo soluções viáveis para toda a rede IP, utilizando recursos gerenciáveis, flexíveis e de alto desempenho.

Referências

ENNE, Antônio José Figueiredo. TCP/IP sobre MPLS. Rio de Janeiro: Ciência Moderna Ltda, 2009.

MENDES, Roberto Goularth. Redes MPLS. Disponível em: <http://www.teleco.com.br/tutoriais/tutorialmplscam/pagina_3.asp>. Acesso em: 15 nov. 2016.

ASSIS, Martin Seefelder. MPLS. Disponível em: <http://www.gta.ufrj.br/grad/01_2/mpls/mpls.htm>. Acesso em: 15 nov. 2016.