O
MPLS (Multiprotocol Label Switching) é um
protocolo de roteamento baseado em pacotes rotulados, onde cada rótulo representa um
índice na tabela de roteamento do próximo roteador. Pacotes com o mesmo rótulo e mesma
classe de serviço são indistingüiveis entre si e por isso recebem o mesmo tipo de
tratamento.
O
objetivo de uma rede MPLS não é o de se conectar diretamente a sistemas finais. Ao invés disto ela é uma rede de trânsito,
transportando pacotes entre pontos de entrada e saída.
Ele
é chamado de multiprotocolo pois pode ser usado com qualquer protocolo da camada 3,
apesar de quase todo o foco estar voltado no uso do MPLS com o IP.
Este
protocolo é na verdade um padrão que foi feito com base em diversas tecnologias
similares desenvolvidas por diferentes fabricantes. Ele é referido por documentos do IETF
como sendo uma camada intermediária entre as camadas 2 e 3, fazendo com que estas se
encaixem melhor.
O MPLS surgiu como uma resposta de fabricantes de
equipamentos e centros de pesquisa a várias necessidades que surgiram com a
popularização da internet e diversificação de seus serviços.
Talvez
a mais primordial destas necessidades seja a sobrecarga que esta sendo aplicada aos
roteadores da rede devido ao sempre crescente número de usuários. Os roteadores IP
possuem um algoritmo de roteamento que é ineficiente a medida que o tamanho da rede
cresce pois para definir qual será o próximo salto (hop) do pacote, cada roteador tem que analisar mais
informações do que é realmente necessário.
Além
disso cada roteador tem que realizar o mesmo processo, que é muito semelhante para todos
os roteadores, para cada um dos pacotes, sem guardar nenhum tipo de memória sobre cada
pacote. Isto é especialmente ineficiente devido ao fato de que a maioria dos pacotes IP
pertencem na verdade a fluxos de pacotes com mesmas origens e destinos.
Outro
fator extremamente importante é o custo dos roteadores. Esse custo é em geral muito
elevado, o que exige grandes investimentos quando surge a necessidade de se aumentar a
rede.
Com
base nestes fatores pode-se chegar a conclusão de que uma rede baseada no algoritmo de
roteamento padrão das redes IP não é escalonável. Ou seja, não é possível
aumentar-se o tamanho de uma rede indefinidamente pois por mais rápidos que os roteadores
sejam individualmente, a repetição excessiva de tarefas semelhantes torna o atraso da
rede proibitivo.
Ficou
claro então a necessidade de novos algoritmos de roteamento. Porém, agora entra em cena
um outro fator. Mesmo que fosse desenvolvido um algoritmo de roteamento extremamente
eficiente, este não seria muito útil se não fosse compatível com os protocolos e
equipamentos já existentes.
Este
de certo modo foi o maior problema com as redes ATM. Para se implementar redes ATM é
necessário grandes investimentos em equipamentos além do que existem grandes
dificuldades na interoperabilidade entre o ATM e o IP, principalmente no tocante a redes
de grande porte, retornando novamente ao problema de escalonabilidade.
Junto
a todos estes fatores pode-se somar a necessidade de novas funcionalidades de roteamento
como por exemplo as classes de serviço. Isto decorre do aparecimento de tecnologias como
vídeo e voz sobre IP que são extremamente sensíveis ao atraso, em especial atrasos
diferenciados para pacotes de um mesmo fluxo. Para ajudar a resolver este problema é
necessário se dar prioridade a esses tipos de pacotes, e essa priorização não é
suportada por roteadores IP padrão.
Quando
o ATM foi lançado, esperava-se que ele acabasse por dominar o cenário mundial devido às
suas altas velocidades. Porém a tecnologia ATM possuía um calcanhar de Aquiles. Ela não
era compatível com o IP, o protocolo de rede mais difundido do mundo.
Logo
vários esforços foram feitos para se compatibilizar o ATM com o IP. Uma destas
tentativas foi o ATMARP (ATM Address Resolution
Protocol). Este protocolo mapeia os endereços IP em endereços ATM para que pacotes
IP possam ser roteados através de uma nuvem ATM.
Porém
o ATMARP possuía várias desvantagens. Entre elas estão a impossibilidade de conexão
direta entre endereços IP de diferentes subredes. Para
isto era necessário que os pacotes passassem por roteadores, mais lentos do que os
comutadores ATM, formando assim gargalos na rede. Outra desvantagem é que através do
ATMARP, os pacotes IP não podiam se aproveitar da Qualidade de Serviço oferecida pelo
ATM.
Para
contornar o problema com os roteadores foi
desenvolvido o NHRP (Next Hop Routing Protocol).
O NHRP funciona utilizando NHS (Next Hop Servers) nos roteadores IP. Quando um
NHC (Next Hop Client) manda um pacote de request
para uma subrede IP, os NHS roteiam este pacote até o roteador final. O NHS do roteador
final transforma o endereço IP final em um endereço ATM e manda de volta para o NHC.
Assim os próximos pacotes IP poderão ser encaminhados inteiramente dentro da rede ATM.
Mas
o NHRP também apresentava sérias desvantagens. Uma das desvantagens era o número
limitado de transmissões IP que poderiam ser feitas devido ao armazenamento dos dados
sobre as transmissões nos NHSs. Outra desvantagem era que o NHRP não suporta
transmissões multicast.
Aos
poucos foi-se percebendo que a interoperabilidade entre redes IP e ATM seria uma questão
complexa e que necessitaria de muito investimento para ser resolvida. Para contornar este
problema, várias tecnologias foram desenvolvidas, todas independentes entre si mas na
mesma direção.
O
IP Switching, da Ipslon, foi uma das primeiras a aparecer.
Ele foi projetado para conectar subredes IP através de nuvens ATM.
O
IP Switching é composto de comutadores ATM e
Controladores de Chaveamento IP (IP Switch
Controllers). O
Controlador de Chaveamento IP é um equipamento de roteamento e encaminhamento, ligado a
uma das portas OC-3c do comutador ATM.
Apesar
desta tecnologia estar fortemente conectada à tecnologia ATM, os comutadores ATM são
utilizados apenas como o elemento de encaminhamento dos pacotes, sendo que toda a
sinalização e controle ATM são revogados.
Aproximadamente
na mesma época apareceu a arquitetura CSR (Cell
Switching Routers) que foi em grande parte resultado de pesquisas realizadas no
Instituto de Tecnologia de Tóquio e que foi depois adaptada pelas corporações Toshiba.
O
CSR é muito similar ao IP Switching sendo que sua maior diferença é que sua intenção
é a de conectar ATM LIS (Local IP Subnets), e
não subredes IP com enlaces não ATM utilizando roteadores IP padrão. Outra diferença
é que o IP Switching só é capaz de rotear pacotes IP, já o CSR pode rotear pacotes de
protocolos que não sejam IP. A conexão entre ATM LIS e redes não ATM se dá através de
roteadores padrão, onde o endereçamento depende de servidores ATMARP.
Após
o CSR foi desenvolvido o Tag Switching da CISCO,
que já apresenta a maior parte das características do MPLS. Esta é uma tecnologia que
pretende ser totalmente transparente em uma rede heterogênea.
Quando
um pacote de uma camada superior entra em uma nuvem Tag Switching, este pacote é etiquetado, sendo
que esta etiqueta é um índice de uma base de informações (TIB Tag Information Base). As etiquetas são muito
similares aos campos VPI/VCI de um cabeçalho ATM, o que possibilita que o processamento
dos pacotes seja realizado por hardware o que
confere maior agilidade ao processo.
É
interessante ressaltar que não existe diferença conceitual entre etiqueta (Tag) e rótulo (Label). A distinção é feita puramente por uma
questão de direito autoral, pois a tecnologia Tag
Switching é patenteada pela CISCO.
Porém
seus desenvolvedores encontraram alguma dificuldade para mapear esta tecnologia
diretamente em comutadores ATM, o que é imprescindível para a transparência do
protocolo.
A
IBM também desenvolveu a sua própria tecnologia. O ARIS (Aggregate Route-Based IP Switching) foi concebido
para ser utilizado em redes baseadas em comutadores. O ARIS é a única entre as propostas
que compõem o MPLS a encorajar largamente o uso de comutadores ATM designados para
acomodar Circuitos Virtuais.
Tanto
o IP Switching da Ipslon como o Tag Switching da CISCO, iniciaram
esforços independentes pela padronização de suas arquiteturas. Porém, foi criado um
grupo de trabalho para lidar com todas as tecnologias sendo desenvolvidas para se garantir
a interoperabilidade. Deste grupo de trabalho nasceu o MPLS.
Quando
um pacote vai de um roteador para outro através de um protocolo de rede sem conexão,
cada roteador analisa este pacote e toma decisões independentes sobre para onde enviar o
pacote. Isto significa que cada roteador analisa o cabeçalho e roda o seu próprio
algoritmo de roteamento.
Porém
os cabeçalhos dos pacotes contém muito mais informação do que é preciso para se determinar para onde será o
próximo salto (hop).
A
tarefa de rotear um pacote através de determinada rede pode no entanto ser separada em
duas operações diferentes. A primeira seria a de determinar Classes de Encaminhamento
Equivalentes (Fowarding Equivalence Class FEC)
que seriam todas as possibilidades de encaminhamento de um pacote através da rede. A
segunda correlaciona cada CEE (FEC) com um
próximo salto.
Cada
CEE é relacionada a um LSP (Label Switch Path). Os LSP são caminhos determinados dentro da nuvem
MPLS. Uma CEE pode ser associada a mais de um LSP, porém com todos apresentando mesma
origem e mesmo destino.
Se
fizermos uma analogia, no roteamento convencional cada roteador da rede irá associar dois
pacotes a uma mesma CEE se existe em sua tabela de roteamento um prefixo de endereço X que seja o maior
casamento (longest match) com o endereço de
destino de cada pacote.
No
MPLS a associação do pacote com uma determinada CEE é feita apenas uma vez quando o
pacote entra na rede através do LER (Label Edge Router) da figura abaixo. A CEE a qual o pacote esta associado é codificado através
de um rótulo de tamanho fixo que é inserido entre a camada de enlace (link layer) e a camada de rede (network layer).
Nos saltos subseqüentes 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 NHLFE 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 à CEE a qual pertence o pacote.
Esta seção tem como objetivo apresentar algumas das vantagens introduzidas pelo MPLS como consta na RFC3031 que descreve a arquitetura MPLS.
A
primeira vantagem seria o fato do encaminhamento MPLS poder ser feito apenas com
comutadores no papel de RCR (LSR). Usualmente os comutadores são capazes de realizar as
tarefas de pesquisa e troca de rótulos mas não são capazes de analisar o cabeçalho da
camada de rede, ou não são capazes de faze-lo rápido o bastante.
A
utilização de comutadores no lugar de roteadores é vantajosa porque os comutadores são
em geral mais baratos e operam a velocidades superiores à dos roteadores.
Outra
vantagem introduzida pelo MPLS é decorrente do fato dos pacotes serem analisados apenas
uma vez, quando entram na rede MPLS. Sendo assim o roteador de ingresso pode utilizar
qualquer informação sobre o pacote, não necessariamente presente no cabeçalho da
camada de rede, para determinar a que CEE pertence o pacote.
Com
isso é possível se criar classes de serviço para se diferenciar pacotes e se realizar
engenharia de tráfego para não sobrecarregar rotas congestionadas. Assim pode-se por
exemplo escolher caminhos mais rápidos, porém com custo mais elevado, para pacotes de
maior prioridade.
Uma terceira vantagem seria a possibilidade de se rotular
diferenciadamente pacotes que entram por roteadores ou até mesmo interfaces diferentes. Isto permite a fácil criação de Redes
Privadas Virtuais (Virtual
Private Networks - VPNs).
Existe
ainda uma vantagem que é inerente a própria concepção da arquitetura. Como a parte
pesada do processamento dos pacotes é feita nas bordas da rede, o núcleo da rede pode
operar com mais folga. Isto é uma grande vantagem uma vez que a taxa de pacotes por
segundo no núcleo da rede é maior do que a taxa de pacotes nas bordas.
Os rótulos são pequenos identificadores de tamanho fixo colocados nos pacotes durante seu trafego pela rede. Eles são inseridos pelo LER de entrada e são removidos em definitivo pelo LER de saída. Assim não sobra nenhum vestígio dos rótulos que possa atrapalhar o seu roteamento fora da rede MPLS.
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.
Os rótulos tem 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. Com isso é possível dar-se 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 tem validade local, o que significa que só são válidos entre roteadores adjacentes. Além disso, o fato de terem tamanho fixo agiliza o seu tratamento pois este pode ser feito por meio de Hardware.
Para que um RCR possa associar um rótulo a um pacote ele precisa saber quais foram os rótulos estipulados pelos seus RCRs adjacentes. Isto porque o rótulo de saída que consta em uma posição na tabela de um RCR é determinado pelo RCR para o qual o pacote que receberá este rótulo será mandado.
Para isso é necessário que haja algum tipo de protocolo de distribuição de rótulos. Existe na verdade vários protocolos de distribuição de rótulos, sendo que o padrão não estabelece qual deles deve ser utilizado.
Alguns destes protocolos são na verdade adaptações de protocolos já existentes onde foi introduzida a distribuição de rótulos. Exemplos destes protocolos são o MPLS-BGP e o MPLS-RSVP-TUNNELS.
Porém alguns protocolos foram desenvolvidos com o fim específico de distribuir rótulos em uma rede MPLS. Dois exemplos comuns destes protocolos são o MPLS-LDP e o MPLS-CR-LDP.
Por ser uma tecnologia nova e muito versátil, muitas pessoas acabam confundindo o conceito de MPLS com outras redes como redes IP, ATM ou Frame Relay. Na verdade, MPLS é outro tipo de rede, independente das demais, mas que pode usar equipamentos ATM, IP ou Frame Relay como RCRs alterando-se apenas o software que controla esses equipamentos.
Esta facilidade se deve ao fato de que redes MPLS podem rotear tanto pacotes como células sem alteração na maneira como os caminhos são calculados.
Outro fator que se deve levar em conta é que a flexibilidade do MPLS ainda permite que ele seja usado simultaneamente com outros protocolos, mais especificamente com ATM.
Isto pode ser encontrado em provedores de serviço e em grandes empresas que já fizeram um grande investimento em WAN com backbones ATM. A rede ATM é necessária para aplicações de voz enquanto o restante dos dados pode usar MPLS.
Como foi visto anteriormente, o MPLS é uma rede de transito, o que em geral significa que há a necessidade de grande planejamento e grandes investimentos para sua implementação.
Porém,
apesar de ser uma tecnologia nova, várias empresas já estão optando por migrar seus
Backbones para tecnologia MPLS. Uma das primeiras a se aventurar no uso do MPLS foi a
AT&T. Atualmente, outros grandes provedores como a GlobalOne, já estão oferecendo
serviços baseados em redes MPLS.
A
BellSouth está com um projeto de implementar uma rede MPLS no NAP (Network Access Point) de Miami, que é o link de
dados entre os EUA e a América Latina, Caribe, África e leste Europeu.
No
Brasil, a Intelig já oferece serviços baseados em sua rede MPLS.
Até hoje não existe nenhum protocolo que seja uma panacéia para os problemas de redes de computadores. E não acredito que será assim com o MPLS que apesar de oferecer inúmeras vantagens sobre seus predecessores, terá também suas limitações.
Embora o MPLS seja uma tecnologia muito promissora, somente o tempo irá dizer o quão relevante ela realmente será. Com a grande velocidade em que ocorrem as inovações, novas tecnologias aparecem a todo instante tornando o que outrora era considerado como o futuro em apenas curiosidades e notas de rodapé.
Para maiores informações sobre os detalhes do funcionamento do MPLS, referir-se ao RFC 3031.
·
Davie,
B., Rekhter, Y., MPLS Technology and Applications, Morgan Kaufman Publishers
·
Duffy,
J., MPLS facing slow
adoption, despite flurry of market hype, Network World, Maio de 2001
·
Gallaher,
R., An
Introduction to MPLS, Network Digest, Setembro de 2001
·
Hassan,
M., Routing & Switching,
CES, UNSW
·
High
Speed Networks Lab., http://highspeed.iie.ncku.edu.tw/course/IPATM.ppt
·
McCutcheon,
M., Multi--Protocol
Label Switching, Julho de 1997
·
Rosen,
E., Wiswanathan, A., Callon, R., RFC 3031 Multiprotocol Label Switching
Architecture, Janeiro de 2001
·
Welcher,
P., Introduction to MPLS, Agosto de 2000