Por que eu devo ler este artigo:Atualmente, os serviços oferecidos pela Internet têm expandido com grande rapidez, provocando uma necessidade cada vez mais crítica de faixas no backbone da rede. Com base nisso, este artigo descreve o protocolo MPLS (Multiprotocol Label Switching) e suas principais características, o comparando com o roteamento de tráfego IP tradicional.

Assim, este artigo pode ser útil para o leitor que deseja compreender o funcionamento do protocolo MPLS e suas vantagens sobre o roteamento IP.

Nos últimos anos, poucas áreas, como a área de redes de computadores, apresentaram tanta evolução. A popularização da Internet fez surgir a predominância do protocolo IP (Internet Protocol) sobre outros protocolos e o crescimento da preocupação por novos requisitos de qualidade de serviço (QoS) e segurança da informação.

Em geral, a rede da Internet utiliza o mecanismo best effort para o envio de pacotes, que recebem o mesmo tipo de tratamento e a rede tenta encaminhá-los o mais rápido possível.

No entanto, isso nem sempre ocorre com sucesso, e alguns pacotes podem ser descartados devido ao congestionamento da própria rede. Os algoritmos de roteamento padrão utilizados objetivam minimizar métricas de caminhos mais curtos, mas do ponto de vista de QoS, nem sempre o caminho mais curto é o caminho que apresenta o melhor conjunto de recursos necessários a determinada aplicação.

Neste contexto, o presente artigo descreve o protocolo MPLS, padronizado em 2001, realizando uma comparação entre o roteamento IP convencional e o roteamento utilizando MPLS, bem como apresenta características do MPLS e os mecanismos de restauração de caminho propostos pelo protocolo.

Também será abordado a Engenharia de Tráfego em Redes TCP/IP, fazendo um breve histórico do surgimento da Internet e das Redes TCP/IP, e a necessidade de se utilizar a Engenharia de Tráfego.

Engenharia de tráfego em redes e o modelo TCP/IP

O crescimento exponencial da Internet e o surgimento de aplicações com novos requisitos de qualidade têm exigido que as operadoras de telecomunicações empreguem estratégias que permitam a diferenciação de seus serviços de comunicação.

Dentro deste contexto destaca-se a Engenharia de Tráfego (Traffic Engineering – TE), que é um processo para controle dos fluxos de dados em uma rede de forma a otimizar a utilização de seus recursos. Entre os principais objetivos da TE, podemos citar a redução de congestionamentos, a satisfação dos requisitos das aplicações e usuários, e o aumento no rendimento da rede.

O que conhecemos hoje como Internet começou a existir em meados de 1968, com a ARPANET (Advanced Research Projects Agency NET), uma rede de pesquisa patrocinada pelo Departamento de Defesa dos Estados Unidos que foi responsável pela criação de um modelo de referência que se tornou padrão para conectar várias redes de maneira uniforme.

Essa arquitetura ficou conhecida como Modelo de Referência TCP/IP graças a seus dois principais protocolos: TCP (Transmission Control Protocol) e IP (Internet Protocol).

A Internet e, por consequência, o modelo TCP/IP, surgiram diante da preocupação do Departamento de Defesa dos Estados Unidos, em meio à Guerra Fria, de que seus hosts, roteadores e gateways de interconexão de redes fossem destruídos.

A rede norte americana deveria ser capaz de sobreviver à perda do hardware de sub-redes e as conexões permanecerem intactas enquanto as máquinas de origem e destino estivessem funcionando, mesmo que algumas máquinas ou linhas de transmissão intermediárias deixassem de operar repentinamente.

Além disso, era necessária uma arquitetura flexível, capaz de se adaptar a aplicações com requisitos divergentes, como, por exemplo, a transferência de arquivos e a transmissão de dados e voz em tempo real.

Tradicionalmente, entre os anos de 1970 e 1990, a Internet e suas redes predecessoras tinham quatro aplicações principais: Correio eletrônico (e-mail), Newsgroups, Logon remoto e Transferência de arquivos. Até o início da década de 1990, a Internet era um verdadeiro reduto de pesquisadores ligados a universidades, ao governo e à indústria. Uma nova aplicação, criada pelo físico Tim Berners-Lee, a WWW (World Wide Web), mudou essa realidade e atraiu para a rede milhares de novos usuários, sem a menor pretensão acadêmica.

Junto com o navegador Mosaic, desenvolvido por Marc Andreessen no NCSA (National Center for Supercomputer Applications), a WWW tornou possível a configuração de diversas páginas para sites contendo texto, figuras, sons e até mesmo vídeos, contendo também links para outras páginas.

A Internet é caracterizada pelo uso da pilha TCP/IP em toda a sua extensão, e existem diversas semelhanças com relação ao modelo de referência OSI (Open System Interconnection) proposto pela ISO (International Standards Organization), incluindo a forma de se basear no conceito de uma pilha de protocolos independentes.

No entanto, a arquitetura TCP/IP foi proposta apresentando quatro camadas distintas, diferente do Modelo OSI, que possui sete (veja a Figura 1). Como outra semelhança, em ambos os modelos essas camadas interagem entre si para enviar informações da origem até seu destino, independente do meio físico utilizado.

Figura 1. Modelo de Referência ISO/OSI e Arquitetura TCP/IP.

Em se tratando da arquitetura TCP/IP, a camada de aplicação contém os protocolos de nível mais alto, como o TELNET (Protocolo de Terminal Virtual), FTP (File Transfer Protocol), DNS (Domain Name System) e o protocolo de correio eletrônico SMTP (Simple Mail Transfer Protocol).

A camada de transporte tem como finalidade permitir que os hosts de origem e destino se comuniquem. Também fornece controle de erro, controle de fluxo, sequencialização dos pacotes (no caso da utilização do protocolo TCP) e multiplexação de tráfego através do seu mecanismo de portas.

A camada inter-redes integra toda a arquitetura. Sua tarefa é permitir que os hosts injetem pacotes em qualquer rede e garantir que eles trafegarão independentemente até o destino (talvez em uma rede diferente).

Os pacotes podem chegar até mesmo em uma ordem diferente daquela em que foram enviados, obrigando as camadas superiores a reorganizá-los, caso a entrega em ordem seja desejável.

Já a camada host/rede tem como função fazer com que informações sejam transmitidas de um computador para outro em uma mesma rede ou ligação ponto-a-ponto. A preocupação de protocolos como Ethernet, Token Ring, ATM, Frame Relay, entre outros presentes nesta camada, é permitir o uso do meio físico que conecta os computadores na rede e fazer com que os bytes enviados por um host cheguem ao seu destino, desde que haja uma conexão entre eles.

Roteamento

Em um sistema de comutação de pacotes como a Internet, roteamento é o processo de selecionar um caminho pelo qual serão enviados os pacotes através de roteadores que compõem a rota desejada. Muitas vezes os pacotes necessitam de vários hops (saltos) para cumprir o trajeto, e quem escolhe as rotas e as estruturas de dados que esses pacotes utilizam são os algoritmos de roteamento.

No roteamento IP orientado por tabela, o algoritmo de roteamento comum utiliza uma tabela de roteamento IP em cada máquina que armazena informações sobre possíveis destinos, e desta forma, sempre que o software de roteamento de um host ou o roteador precisa transmitir um datagrama, primeiramente realiza uma consulta na tabela de roteamento para então decidir por qual caminho deverá enviar o datagrama IP.

A função de um algoritmo de roteamento é escolher, entre os diversos roteadores conectados em um enlace, um bom caminho (que apresentar menor custo) entre a fonte e o destino. Os algoritmos de roteamento podem ser classificados de acordo com suas rotas, podendo ser estáticas, com as rotas mudando devagar com o tempo, ou dinâmicas, mudando os caminhos de roteamento à medida que mudam as cargas de tráfego ou a topologia da rede.

Na Internet, apenas dois tipos de algoritmo de roteamento são tipicamente utilizados: o algoritmo global distance-vector (vetor de distância) e o algoritmo dinâmico descentralizado link-state (estado do enlace), que podem também ser divididos em duas categorias: IGP (Interior Gateway Protocol – Protocolo de Roteadores Internos), responsável por informações de roteamento dentro de um domínio denominado Sistema Autônomo, e EGP (Exterior Gateway Protocol – Protocolo de Roteadores Externos), que cuida da troca de informações de roteamento entre esses sistemas autônomos. São exemplos de protocolos IGP os protocolos RIP (Routing Information Protocol – Protocolo de Informação de Roteamento), RIP2 (Routing Information Protocol version 2 – Protocolo de Informação de Roteamento versão 2) e OSPF (Open Shortest Path First), e de protocolo EGP, o protocolo BGP (Border Gateway Protocol – Protocolo de Roteador de Borda).

Em roteamento, a qualidade de serviço é a habilidade de se escolher um entre vários caminhos para que o fluxo de tráfego tenha o nível de serviço aceitável, como largura de faixa, atrasos ou perda de pacotes na rede.

Essa habilidade de recursos para que se tenha um nível de QoS desejável requer, muitas vezes, rotas explícitas, podendo existir a necessidade de rotas específicas para encaminhar determinado fluxo de dados que requer faixa mínima para ser transmitido.

Dentre os princípios do fornecimento de QoS para as aplicações multimídia, destacam-se: a marcação e a classificação de pacotes, o isolamento do fluxo de pacotes, o uso eficiente dos recursos e a aceitação de conexões.

Políticas de priorização ou algoritmos de enfileiramento podem ser utilizados para ordenar o tráfego de pacotes e, então, determinar algum método de priorização para o encaminhamento destes através de uma interface de saída (fila de saída).

Na engenharia de rede, enfileiramento é a ação de armazenar pacotes ou células em um local onde eles permaneçam até serem processados. As escolhas do algoritmo e do tamanho máximo da fila podem ser extremamente difíceis em função do padrão de comportamento do tráfego na rede ser aparentemente aleatório.

Se for atribuído um tamanho de fila elevado, os pacotes das aplicações poderiam sofrer um grande atraso ou variação de atraso, consequentemente interrompendo temporariamente essas aplicações e os protocolos de transporte fim a fim.

Por sua vez, se a fila for muito pequena, pode-se enfrentar o problema de tentar enviar dados para a rede de forma mais rápida do que ela pode aceitar, resultando em excesso de perda de pacotes.

Apesar disso, seria complicado reajustar toda uma rede como a Internet para que ela se adapte aos diferentes tipos de tráfego existentes. Para reforçar essa afirmação, vale lembrar também que a cada dia surge um novo tipo de tráfego, o que torna impraticável a engenharia de rede na Internet.

Sendo assim, temos que recorrer à engenharia de tráfego, pois com o crescimento assustador da Internet, constantemente são formadas situações em que temos gargalos em determinados nós da rede, enquanto outros estão ociosos, desafiando assim a capacidade dos roteadores.

Para exemplificar isto, temos o velho conhecido “problema do peixe” da Figura 2, citado em várias bibliografias relativas à engenharia de tráfego.

Figura 2. Problema do “peixe”.

Como pode ser visto na Figura 2, existem dois caminhos para se mover do roteador R3 para o R9:

· Rota 1: R3 à R4 à R5 à R6 à R9;

· Rota 2: R3 à R7 à R8 à R9.

Como todos os enlaces possuem o mesmo custo (custo 5), com o encaminhamento normal, baseado em destino, todos os pacotes vindos de R1 ou R2 e destinados a R9 seriam encaminhados pela mesma interface, passando pela Rota 2, pois o custo do caminho inferior é mais baixo do que o do caminho superior.

Contudo, se todos os enlaces dessa figura apresentarem mesma largura de faixa (100Mbps, por exemplo) e considerando que R1 envia, em média, 90Mbps para R9 e que R2 envia ao mesmo tempo 50Mbps para R9, tenta-se colocar 140Mbps por um pipe de 100Mbps. Assim, R2 acaba descartando 40Mbps, já que o enlace não suporta todo o tráfego.

Se o caminho mais longo (Rota 1) custasse menos do que o caminho mais curto, todo o tráfego passaria pelo caminho mais longo, o que não resolveria o problema, mas apenas o mudaria de lugar.

Por sua vez, mudando os custos de enlace de modo que tanto o caminho mais curto quanto o caminho mais longo tivessem o mesmo custo, aliviaria o problema, mas essa solução só funcionaria para redes pequenas. Em grandes redes, tentar configurar os custos de enlace de modo que todos os caminhos sejam utilizados, se não for impossível, é extremamente difícil, causando desperdício de largura de banda, pois a rede tem características heterogêneas em sua grande parte.

Para minimizar os impactos na estrutura, a Engenharia de Tráfego é quase que indispensável em grandes redes por causa do alto custo dos equipamentos e da natureza comercial e competitiva da Internet.

Em redes como a Internet, os algoritmos de roteamento em uso objetivam minimizar métricas de caminhos mais curtos, tais como o número de saltos entre origem e destino de um dado fluxo de dados. No entanto, do ponto de vista de QoS, nem sempre o caminho mais curto é o caminho que apresenta o melhor conjunto de recursos necessários a uma aplicação.

Na maioria das redes atuais, quando enlaces começam a apresentar uma tendência de congestionamento, a alternativa mais comum para a solução deste problema é o aumento da capacidade dos mesmos. Com o crescimento das redes e o crescimento da demanda de recursos por parte das aplicações, surge a necessidade de uma abordagem mais eficiente e de custo reduzido para o dimensionamento da rede. Neste cenário, o emprego de técnicas de engenharia de tráfego vem a contribuir significativamente com a evolução das redes de computadores.

O objetivo central da Engenharia de Tráfego na Internet é facilitar a operação eficiente e confiável da rede, enquanto ao mesmo tempo otimiza o seu desempenho e utilização, para atender a requisitos de QoS em determinados fluxos de dados.

A Engenharia de Tráfego permite orientar o desempenho da rede de acordo com o tipo de tráfego (por exemplo, se é dados, voz ou vídeo), incluindo aspectos relacionados à manutenção de garantias de QoS e otimização dos recursos da rede, como por exemplo, impedir que certa parte da rede fique congestionada enquanto outra permanece ociosa.

O resultado direto da ação da engenharia de tráfego é o estabelecimento de um balanceamento de carga nos enlaces da rede, de modo a reduzir os congestionamentos e otimizar a utilização dos seus recursos, oferecendo:

· Redução de pontos de congestionamento, que representam gargalos na rede;

· Re-roteamento rápido de fluxos de dados em caso de falhas;

· Redução de custos pelo melhor aproveitamento dos enlaces, com uso mais eficiente da faixa disponível;

· Melhoria geral na qualidade de serviço, pela redução da taxa de perdas de pacotes e redução da variação de atraso.

A Engenharia de Tráfego pode ser feita de forma manual ou utilizando algum tipo de técnica automatizada, como a utilização de MPLS ou com QoS para descobrir e fixar caminhos adequados para determinados tipos de tráfego.

Neste contexto, o MPLS surge como um elemento de suporte à Engenharia de Tráfego em redes baseadas no protocolo IP, uma vez que implementa o paradigma de roteamento explícito, no qual os pacotes de dados são transmitidos em caminhos virtuais denominados Label Switched Paths (LSPs).

No MPLS, os protocolos de sinalização como RSVP-TE e CR-LDP, abrem um campo promissor para o roteamento baseado em QoS (QoS routing), já que a seleção dos caminhos a serem configurados nos LSPs pode estar sujeita a restrições de QoS, expressas em termos de métricas como: largura de banda mínima, atraso e variação de atraso máximos e taxa de perda máxima de pacotes.

A função de um protocolo de sinalização é permitir que um roteador de comutação por rótulo (LSR – Label Switch Router) distribua um rótulo ao pacote que deve ser encaminhado, sendo esse protocolo de sinalização o responsável real pelo estabelecimento dos LSPs na rede.

O protocolo MPLS

A partir do ano de 1995, a Internet Engineering Task Force (IETF) e o ATM (Asynchronous Transfer Mode) Fórum começaram a desenvolver propostas para integrar protocolos baseados em roteamento, como o IP, sobre a estrutura de comutação da tecnologia ATM, buscando uma rede que oferecesse simultaneamente facilidade de gerenciamento, reserva de largura de faixa, requisitos de QoS e suporte nativo a multicast.

Durante o ano de 1996 algumas empresas de informática, como Alcatel e Cisco Systems, sugeriram as primeiras soluções para integrar as redes comutadas à rede de protocolos IP. Essas novas tecnologias eram baseadas em rótulos, em que cada pacote recebia um rótulo (de tamanho fixo) e os roteadores tomavam decisões baseados nesses rótulos e não mais no endereço de destino.

A Tabela 1 apresenta algumas dessas tecnologias, antecessoras ao protocolo MPLS (Multiprotocol Label Switching - Comutação de Rótulos Multiprotocolo).

Fabricante

Tecnologia

Data de Padronização

Ipslon

IP Flow Management Protocol (IFMP)

RFC 1953 (maio de 1996)

Cisco

Tag Switching

RFC 2105 (fevereiro de 1997)

Toshiba

Cell Switch Router (CSR)

RFC 2098 (fevereiro de 1997)

IBM

Aggregate Route-Based IP Switching (ARIS)

Internet-Draft (março, 1997)

Lucent

IP Navigator

1998

Tabela 1. Tecnologias antecessoras ao MPLS.

Todas essas tecnologias eram proprietárias e incapazes de interoperarem, e cada empresa pretendia fazer de seus produtos o padrão a ser seguido. Assim surgiu a necessidade de um modelo padrão de comutação por rótulos, que veio a ser o MPLS, com o objetivo de integrar o roteamento da camada 3 e a comutação de rótulos da camada 2, englobando os principais aspectos das tecnologias de comutação de rótulos.

A grande motivação inicial para desenvolvimento do MPLS era o desempenho do encaminhamento de pacotes da rede IP sobre as demais tecnologias de nível 2 no núcleo das redes.

A partir da melhoria dos mecanismos de encaminhamento com a implantação de tecnologias de roteamento em hardware, baseadas em ASICs (Application-Specific Integrated Circuit – Circuito Integrado de Aplicação Específica) e FPGAs (Field-programmable Gate Array – Matriz de Portas Programáveis em Campo), o roteamento IP deixou de ser um fator de redução de desempenho e passou a ocorrer de forma mais robusta, possibilitando a transmissão da informação em velocidade muito próxima à taxa fornecida pelas linhas telefônicas.

As motivações do MPLS passaram então para outra vertente: prover serviços e ferramentas de gerência de rede, já que a utilização do MPLS aloca mais recursos de rede e processamento para a configuração e armazenamento das informações de controle, ao passo que é introduzido mais um protocolo, o LDP (Label Distribution Protocol – Protocolo de Distribuição de Rótulos), e que é necessária a criação e manutenção das tabelas de mapeamento e equivalência de rótulos.

Na Internet, quando um roteador recebe um pacote, ele faz uma busca na sua tabela de roteamento e então, baseado no endereço IP do pacote, decide para onde enviá-lo. Essa busca, dependendo de vários fatores como extensão, condição e conectividade da rede, ou mesmo do tamanho da tabela de cada roteador, pode exigir grande capacidade de processamento, causando perda de eficiência e aumento no tempo de processamento dos dados que transitam pelo roteador.

O MPLS, ao adotar o conceito de rótulos (labels) de tamanho fixo, rompe com esse conceito de roteamento, e a decisão por onde enviar os pacotes passa a ser feita pelo roteador MPLS. Para aumentar a eficiência da rede são utilizados roteadores que trabalham exclusivamente na leitura desses rótulos e no encaminhamento dos pacotes aos próximos nós, fazendo uma análise e classificação do cabeçalho, o que faz diminuir o processamento nos roteadores principais.

O MPLS, definido na RFC 3031, é uma tecnologia emergente que se transformou em uma tecnologia chave para o futuro das redes IP. Além de possibilitar um aumento no desempenho do encaminhamento de pacotes, o protocolo MPLS funciona orientado através de rótulos estampados nos cabeçalhos IP, facilitando a implementação de QoS, Engenharia de Tráfego (TE) e Redes Virtuais Privadas (VPN).

Por exemplo, é possível criar VPNs garantindo um isolamento completo do tráfego com a criação de tabelas de rótulos exclusivas a cada VPN e realizar QoS com a priorização de aplicações críticas, dando um tratamento diferenciado para cada tipo de tráfego.

Vantagens do protocolo MPLS

Em comparação com o roteamento IP convencional, o MPLS possui algumas vantagens. São elas:

· Rotas explícitas: o suporte a rotas explícitas é bem mais eficiente que a opção original do protocolo IP, e provê funcionalidades necessárias à engenharia de tráfego. Os caminhos roteados explicitamente permitem a criação de “túneis opacos”, que podem encaminhar qualquer tipo de tráfego fim a fim a partir de determinados critérios pré-estabelecidos;

  • Suporte a Multiprotocolo e Multi-enlace: o encaminhamento MPLS não é específico para nenhuma camada de rede específica e pode operar virtualmente sobre qualquer protocole de enlace, ainda que sua ênfase inicial seja ATM;
  • Comutação por etiquetas: pode operar sobre todas as tecnologias que utilizam a camada de enlace para roteamento;
  • Modularidade: permite a separação entre as funções de encaminhamento e controle, onde cada parte pode evoluir sem comprometer a outra;
  • Roteamento inter-domínio: provê uma separação mais completa entre roteamento inter e intra domínio, melhorando a escalabilidade dos processos de roteamento e reduzindo o conhecimento de rotas dentro de um domínio, possibilitando, com isso, reduzir também o trabalho do roteador;
  • Suporte a protocolos: permite a utilização de qualquer tipo de encaminhamento, sendo compatível com outros protocolos do modelo TCP/IP;
  • Suporte a todos os tipos de tráfego: suporta tráfego unicast, unicast com determinação de tipo de serviço e pacotes multicast.

A Tabela 2 apresenta algumas comparações entre o roteamento convencional e o roteamento com MPLS.


Roteamento Convencional

Roteamento com MPLS

Análise completa do cabeçalho IP

Ocorre em cada nó

Ocorre uma única vez na periferia da rede, quando o rótulo é atribuído.

Suporte Unicast e Multicast

Requer múltiplos algoritmos de encaminhamento complexos

Requer um algoritmo de encaminhamento

Decisões de roteamento

Baseadas apenas no endereço

Podem ser baseadas em parâmetros como QoS, VPN, entre outros.

Tabela 2. Roteamento convencional e o roteamento com MPLS.

Conceitos básicos da arquitetura MPLS

Uma das principais características do MPLS é a geração de um rótulo de comprimento fixo reduzido para que sejam tomadas as decisões no encaminhamento do pacote. Cada pacote recebe um rótulo de um roteador LER (Label Edge Router) e é encaminhado através de um caminho comutado por rótulos (LSP) formado por LSRs. Neste formato, cada LSR toma decisões de encaminhamento baseadas apenas no rótulo do pacote. Em cada salto ele (o LSR) retira o rótulo existente e aplica um novo que diz ao próximo roteador como encaminhar o pacote.

Como o cabeçalho IP não foi projetado para suportar esses rótulos, ele não possui espaço disponível para um novo campo, necessitando então de uma extensão do cabeçalho MPLS, que é o cabeçalho de calço.

O rótulo existente no cabeçalho MPLS dos pacotes que estão trafegando são vistos como índices em tabelas, determinando o caminho a ser percorrido para atingir o próximo nó da rede. Em todos os nós subsequentes dentro da rede MPLS, o rótulo é utilizado pelos roteadores para realizar a decisão de encaminhamento dos pacotes na rede. Em nenhum momento os roteadores pertencentes ao núcleo da rede analisam o cabeçalho IP.

Por fim, à medida que os pacotes deixam a rede, os rótulos são retirados pelos roteadores de borda da rede, como mostra a Figura 3.

abrir imagem em nova janela

Figura 3. Roteamento de pacotes utilizando o protocolo MPLS.

O rótulo MPLS em redes IP convencionais é uma parte extra colocada no cabeçalho IP, chamada de shim header (ou cabeçalho de calço), sendo inserida entre o cabeçalho IP e o cabeçalho da próxima camada, que no caso do modelo OSI seria a de enlace. Essa inserção de rótulos no cabeçalho convencional é denominado de encapsulamento genérico.

No modelo OSI, ao receber dados para efetuar um serviço, a camada N necessita incluir um cabeçalho, no qual são registradas informações relativas a essa camada. A esse cabeçalho damos o nome de Informação de Controle do Protocolo – PCI (Protocol Control Information). Aos dados recebidos pela camada N, damos o nome de Unidade de dados do Serviço – SDU (Service Data Unit) e ao conjunto formado por PCI + SDU damos o nome de Unidade de Dados do Protocolo – PDU (Protocol Data Unit).

Em se tratando da camada de enlace, a PDU manipulada é chamada de frame ou quadro. Quando este quadro é manipulado por um roteador habilitado para utilizar o protocolo MPLS, independentemente se ele será transmitido por um enlace PPP (Point to Point Protocol – Protocolo Ponto a Ponto) ou por uma LAN (Local Area Network – Rede Local), ele tem um pequeno cabeçalho MPLS adicionado entre o cabeçalho da camada de enlace e o cabeçalho de níveis superiores, como pode ser visto na Figura 4.

Figura 4. Formato genérico do cabeçalho MPLS.

A Figura 5 mostra o formato do cabeçalho de calço do protocolo MPLS, onde somando todos os seus campos tem-se um identificador de 32 bits inserido no pacote ou célula no momento de sua entrada no domínio MPLS. Esse cabeçalho indicará o próximo roteador e quais as operações a serem realizadas sobre o pacote.

Figura 5. Cabeçalho de calço do protocolo MPLS.

O cabeçalho de calço do protocolo MPLS é composto pelos seguintes campos:

· Rótulo – 20 bits: Identificador de tamanho fixo colocado no pacote durante seu trafego pela rede MPLS, sendo utilizado para identificar um FEC (ver Box 1). Eles são inseridos pelo LER de entrada e são removidos em definitivo pelo LER de saída.

Desta forma não sobra nenhum vestígio do rótulo que possa atrapalhar o seu roteamento fora da rede MPLS. Em redes MPLS baseadas no protocolo IP, alguns bytes são inseridos para realizar o papel do rótulo. Já em redes ATM e Frame Relay, os campos VPI/VCI (Virtual Path Identifier/Virtual Circuit Identifier) e DLCI (Data Link Connection Identifier) são utilizados, respectivamente, como o rótulo;

· EXP (Experimental) – 3 bits: Campo reservado para uso experimental. É um tipo de controle que indica a classificação de QoS de um determinado pacote, podendo mapear até oito classes de serviço diferentes em um domínio MPLS;

· S (Stack ou Pilha) – 1 bit: Campo usado para indicar o final de uma série de rótulos MPLS empilhados. Estes rótulos indicam os próximos roteadores a serem percorridos até se chegar ao destino do pacote.

O valor 1 indica que o rótulo é a base da pilha. Caso o campo tenha valor zero, o pacote será descartado, evitando entrar em loop por não conseguir alcançar seu destino;

· TTL – 8 bits: Possui a mesma finalidade deste mesmo campo no cabeçalho IP padrão e é decrementado a cada salto para evitar loops de roteamento. Quando um pacote IP entra em um backbone (ver Box 2) IP/MPLS, o valor do campo TTL deste pacote IP é mantido com o valor original. A partir do segundo roteador, é feito o processo normal de decrementar valores unitários a cada roteador interno à rede MPLS.

BOX 1. FEC (Forwarding Equivalence Classes)

Um FEC (que pode ser traduzido como Classes de Equivalência de Encaminhamento) consiste em um conjunto de parâmetros que irão determinar um caminho para os pacotes. Quando esses pacotes são associados a um mesmo FEC, eles são encaminhados pelo mesmo caminho (LSP). Ao receber um pacote, o roteador de entrada da rede MPLS verifica a qual FEC ele pertence e o encaminha através do LSP correspondente.

A associação do pacote a um FEC acontece apenas uma vez, quando o pacote entra na rede MPLS. Isto proporciona grande flexibilidade e escalabilidade a esse tipo de rede. FECs podem ser criados utilizando um ou mais parâmetros, especificados pelo gerente da rede, como por exemplo: endereço IP da fonte ou destino ou endereço IP da rede, número da porta da fonte ou destino ou algum parâmetro de QoS.

BOX 2. Backbone

Backbone significa “espinha dorsal”, e é o termo utilizado para identificar a rede principal pela qual os dados de todos os clientes da Internet trafegam.

Em se tratando de uma rede MPLS, existem alguns componentes básicos que fazem parte da sua estrutura. A partir de agora analisaremos alguns deles.

LER (Label Edge Routers)

Os LERs são equipamentos de borda da rede responsáveis pelas funções de admissão, associação de FECs e retirada dos pacotes do domínio MPLS. O roteador de borda do MPLS liga diversas sub-redes (Ethernet, Frame Relay, ATM) à rede MPLS, analisa os índices do cabeçalho IP e seleciona um rótulo apropriado com o qual o pacote será encapsulado. Esses roteadores podem ser divididos em:

· LER de Ingresso: refere-se à postura de admissão de pacotes no domínio MPLS;

· LER de Egresso: refere-se à postura de retirada de pacotes do domínio MPLS.

LSR (Label Switching Router)

LSRs são roteadores de comutação por rótulos que recebem o pacote de dados, extraem o rótulo do pacote e o utiliza para descobrir na tabela de encaminhamento qual a porta de saída e o novo rótulo. São equipamentos situados no núcleo da rede MPLS que, ao receber um pacote, troca o rótulo existente por outro, passando o pacote para o próximo roteador e assim por diante.

Para executar este procedimento o LSR tem apenas um algoritmo utilizado para todos os tipos de serviço, mas a tabela de encaminhamento pode ser única ou existirem várias, uma para cada interface, sendo compostas utilizando rótulos distribuídos (LDP – Label Distribution Protocol), RSVP ou protocolos de roteamento como o BGP e OSPF.

O LSR pode criar e anunciar uma rota através de um controle local (rede interna) ou um controle de saída (conexão com a rede externa), mas espera uma comunicação do seu roteador vizinho antes de alocar um rótulo indicando o próximo salto.

Essa espera é necessária para verificar se a próxima rota está ativa ou não, para então continuar o encaminhamento dos pacotes. LSRs adjacentes devem considerar todas as informações de origem e destino para a construção das tabelas de encaminhamento, que também devem seguir as mudanças na rede.

Depois da construção das tabelas, o rótulo no pacote de entrada (rótulo superior) é usado para descobrir as regras para o encaminhamento desse pacote, e o pacote pode seguir por um determinado caminho, ao invés de um caminho aleatório que seria seguido de acordo com o algoritmo de roteamento utilizado.

Em uma rede MPLS, para que os pacotes sejam encaminhados, existe um mecanismo de pilha de rótulos (MPLS Label Stack Encoding), que pode ser visto na Figura 6. Esse mecanismo é utilizado em grandes redes no domínio MPLS, incluindo mais de um rótulo em um pacote de acordo com a quantidade de roteadores que deverão ser percorridos por ele da origem até o seu destino, de uma forma hierárquica.

Esse empilhamento de rótulos permite que os LSRs do núcleo da rede troquem informações entre si e ajam como roteadores de borda. O roteador de borda do MPLS analisa os índices do cabeçalho IP e seleciona uma etiqueta apropriada com a qual o pacote será encapsulado.

abrir imagem em nova janela

Figura 6. MPLS Label Stack Encoding.

O encaminhamento do pacote é sempre baseado no rótulo superior, que é o primeiro rótulo e que indica o destino, deixando de lado em um primeiro momento os outros rótulos que possam existir. Dentro de uma grande rede pode-se ter vários domínios, e para cada domínio, um nível de rótulo associado, permitindo uma diminuição das tabelas de roteamento dos roteadores de entrada da rede MPLS, já que os pacotes a serem roteados são baseados em rótulos e não através da verificação de endereço IP de origem e destino.

LSP (Label Switching Path)

No MPLS, a transmissão de dados ocorre nos LSPs, definidos como o caminho por onde os pacotes irão passar. Os LSPs são unidirecionais, ou seja, realizam o envio da informação em uma única direção, sendo necessários pelo menos dois LSPs para que haja comunicação.

No momento em que um pacote entra na rede MPLS, este é associado a uma classe de equivalência (FEC) para a criação de um LSP relacionado a esta FEC. Como a criação de um LSP só ocorre no roteador de entrada da rede MPLS, os LSRs (roteadores do núcleo da rede) só terão o trabalho de fazer as trocas dos rótulos para encaminhar o pacote de acordo com o LSP específico. A Figura 7 apresenta o encaminhamento dos pacotes através de uma rede MPLS.

abrir imagem em nova janela

Figura 7. Encaminhamento de pacotes em uma Rede MPLS através da utilização de rótulos.

No início da criação de uma rede MPLS, os rótulos que determinam um LSP serão armazenados em um LFIB (Label Forwarding Information Base). O LFIB é uma tabela de consulta que apresenta informações correlacionando os rótulos criados às interfaces do roteador, mapeando interface e rótulo de entrada para interface e rótulo de saída. Essa tabela é mantida pelos LSRs.

Assim, quando o pacote entra no LSR, este verifica no LFIB para qual interface o mesmo deve ser encaminhado e então realiza a troca do rótulo de entrada por um rótulo de saída, para que o pacote possa alcançar o próximo nó. Outra técnica é a retirada do último rótulo MPLS um salto antes do fim da rede MPLS, mecanismo conhecido como PHP (Penultimate Hop Popping), para que assim o pacote seja entregue ao destino final.

O processo de preenchimento do LFIB pode ser controlado por meio de configuração ou por meio de protocolos de distribuição de rótulos, e a escolha dos valores a serem armazenados é controlada considerando rótulos que já estão em uso e as capacidades do hardware e do software que estarão comutando pacotes com base nesses valores.

Se um determinado pacote chega a um LSR com um rótulo inválido ou sem correspondência em sua tabela LFIB, a remoção do rótulo e o encaminhamento desse pacote IP sem o rótulo pode provocar loop nos LSPs. Para evitar isso, a tecnologia MPLS determina que pacotes com rótulos inválidos sejam descartados, a menos que se consiga meios de se evitar os loops ou outros problemas nas camadas superiores do modelo TCP/IP.

O objetivo inicial do MPLS era trazer para a camada de rede a agilidade da camada de enlace. Acontece que esta justificativa para tecnologias como o MPLS já não está mais em primeiro plano, uma vez que switches que operam na camada de rede já são capazes de realizar o processo de roteamento em velocidades bastante elevadas. O diferencial do MPLS é que, além disso, ele traz uma série de outros benefícios para redes IP.

Em uma rede MPLS, por exemplo, um pacote pode ser forçado a seguir por um determinado caminho, ao invés de um caminho que seria seguido caso um protocolo de roteamento comum estivesse sendo empregado.

Isso pode ser útil em ocasiões onde a engenharia de tráfego (TE) precise ser aplicada. Outra grande vantagem é que a tecnologia é completamente independente dos protocolos das camadas de enlace e rede, permitindo assim uma completa integração entre redes que trabalhem com protocolos distintos nestas camadas.

Links

RFC 3031 – Multiprotocol Label Switching Architecture.
http://www.ietf.org/rfc/rfc3031.txt

RFC 3469 – Framework for Multi-Protocol Label Switching (MPLS)-based Recovery.
http://www.faqs.org/rfcs/rfc3469.html

RFC 3346 – Applicability Statement for Traffic Engineering with MPLS.
http://www.ietf.org/rfc/rfc3346.txt

Tutorial sobre MPLS.
http://mplstutorial.com/

Re-Roteamento Dinâmico em Redes TCP/IP com MPLS Utilizando NS (Network Simulator).
http://www.teleco.com.br/tcc/tcc_2007.asp