Túneis L2 sobre redes públicas usando GRE + AToM

Resolvi criar este post em cima de algumas experiências que eu já tive, por achar a tecnologia, em si, muito interessante. Muitos não sabem, mas é possível combinar túneis GRE (L3) com VPNs L2 (L2VPN) para alcançar resultados bastante interessantes. Montei o lab em cima do GNS3, e vou disponibilizar todo o material (configurações, cenário e IOS) para que vocês repliquem o mesmo em vossas casas 😉

O objetivo é fazer com que dois CPEs (roteadores, PCs ou mesmo switches) consigam se enxergar via camada 2 – como se estivessem diretamente conectados – mesmo estando a milhares de kilômetros de distância e, fisicamente, atravessando redes sobre as quais não temos qualquer controle (como a Internet). Abaixo, o cenário montado no GNS3.

l2vpn_gre.jpg

No caso, a “nuvem” Internet é representada por um roteador no GNS3 (chamado “Internet”). Para os CPEs foram usados roteadores Cisco 3600, e para os PEs e o roteador “Internet”, Cisco 7200. O motivo é que não consegui fazer o AToM (Any Transport over MPLS) funcionar nos 3600. AToM é a tecnologia usada para a emulação de enlaces L2 sobre redes MPLS, e para que isso funcione, é preciso ativar MPLS entre os roteadores PE1 e PE2.

O problema é que temos a Internet no meio do caminho. Para contornar isso, criamos um túnel GRE fazendo com que os roteadores PE1 e PE2 “achem” que estão diretamente conectados. Ativamos, então, AToM neste túnel GRE. O legal desta solução é que não é necessário ativar MPLS nas interfaces que se conectam com o mundo exterior (com a Internet, no exemplo). Apenas nas interfaces túnel. Não vou me extender no assunto pois este já foi tratado em um post anterior, sobre VPNs L2.

Para alcançar o resultado, nos CPEs, em si, nenhuma configuração especial se faz necessária. A única coisa que fiz foi colocar IPs em suas interfaces (192.168.0.1, na F0/0 do CPE1, e 192.168.0.2 na F0/1 do CPE2). Mas para o cenário funcionar, sequer isso seria necessário, já que podemos constatar que a coisa está funcionando via CDP, que como vocês sabem, é um protocolo exclusivamente L2:

CPE1#sh cdp nei

Capability Codes: R - Router, T - Trans Bridge, B - Source Route Bridge
S - Switch, H - Host, I - IGMP, r - Repeater
Device ID        Local Intrfce     Holdtme    Capability  Platform  Port ID
CPE2             Fas 0/0            163        R S I      3660      Fas 0/1

Como temos IPs configurados nas duas pontas, a saída do comando “show arp” também mostra que o cenário está funcionando à contento:

CPE1#sh arp
Protocol  Address          Age (min)  Hardware Addr   Type   Interface
Internet  192.168.0.1             -   cc08.195c.0000  ARPA   FastEthernet0/0
Internet  192.168.0.2            24   cc09.195c.0001  ARPA   FastEthernet0/0

E, claro, temos o PING:

CPE1#ping 192.168.0.2 
Type escape sequence to abort.
Sending 5, 100-byte ICMP Echos to 192.168.0.2, timeout is 2 seconds:
!!!!!
Success rate is 100 percent (5/5), round-trip min/avg/max = 16/48/128 ms

Se ao invés de roteadores fossem conectados switches como CPEs, poderíamos fechar um trunk entre ambos, mesmo que um estivesse fisicamente no Brasil, e outro no Japão, por exemplo. É claro que existem os problemas com delay, QoS, jitter, etc desta solução, e isso não tem jeito, já que não temos controle sobre os pacotes que caem na Internet (ou em qualquer rede de dados pública). Mas, de qualquer forma, não deixa de ser uma solução interessante, e que pode ser útil em vários cenários do mundo real.

Os arquivos de configuração, .net e os IOS usados nesta demonstração encontram-se disponíveis para download no link abaixo:

http://www.4shared.com/file/1rQdDdbR/Lab_L2VPN.html

Bom lab!!!

Marco.

11 comentários

Pular para o formulário de comentário

  1. Muito legal o lab, Marco. Realmente é uma ótima solução para alguns cenários do mundo real 🙂

    Parabéns!

    Abraços!

  2. Muito bom marco!
    Gostaria de saber se voce ja implantou essa solucao, pois achei interessante mesmo sendo L2 voce pode rodar o tunnel GRE com Ipsec?

  3. Uia, adorei … vou testar hoje tb !

  4. Ótima solução, resolve muitos problemas. Vou deixar esse tuto no favoritos, porque com certeza irei usa-lo logo logo. =)

  5. Ja fiz algo parecido. Realmente simples e util..

  6. Muito legal mesmo marco, parabéns pelo Post!!

  7. Muito bom Marco.
    Aqui no Serpro usamos AToM em FR-FR e FR-ATM. O interessante é que mesmo com tecnologias diferentes é possível criar o pseudowire, tornando o backbone transparente, puramente camada 2.
    Vale salientar que as operadoras não praticam tal serviço para cliente, por não existir modelo de negócio definido.

    Abs,

  8. Boa dica! Vlw Marco!

    Abraços!

  9. Muito interessante a dica e o lab. Vou testar!!!
    Vlw por compartilhar, Marco!
    []’s

  10. Show de bola Marco, eu estou fazendo um trabalho na facul sobre VPN, vai me ajudar bastante!

    Abs!

  11. Muito legal Marco! Como sempre, alta qualidade na produção de conteúdo!

    Abs,
    Felipe Ferrugem!

    “Juntos somos ainda melhores!!!”

Deixe um comentário