Category Archives: vpn

l2vpn-tutorial PDF para download muito detalhado

Em inglês pessoal, mas se você pensa em trabalhar com redes pense já em no minimo inglês técnico abs!waris-l2vpn-tutorial

Tutorial básico sobre VPNs de Camada 2 (L2VPN)

tux_cisco

Replicado do blog ccna postado e 2010, isso por incrível que pareça continua bem atual e usado, boa leitura pessoal.

 

Muitos aqui já ouviram falar de VPNs, imagino eu. VPN é o acrônimo para “Redes Privadas Virtuais”, ou seja, um modo de simular redes privadas em cima de uma rede… bem… não privada 😉 ! Redes não privadas podem ser backbones de provedores de serviço (como Telefonica ou Embratel), ou mesmo a Internet. As VPNs mais comuns são as de camada 3, ou seja, fazer com que dois elementos de rede pensem estar diretamente conectados via um link L3, ainda que existam “n” elementos no meio do caminho. Exemplos de VPN L3 podem ser Cisco DMVPN e túneis GRE.

Mas este post não é para tratar de VPNs L3, mas sim VPNs L2, algo que ainda não discutimos aqui.

O que são e para que servem L2VPNs?

Na verdade, L2 VPNs já existem há um bom tempo. Exemplo são redes Frame-Relay e ATM. Mas a “novidade” são as VPNs L2 estabelecidas sobre redes de camadas superiores, como IP ou MPLS. É sobre isso que falaremos neste post. Sob este prisma, portanto, L2VPNs são conexões ponto-a-ponto que simulam um circuito físico de camada 2. Podem ser usadas para trunks Ethernet entre switches localizados em zonas geográficas distintas, por exemplo, ou para transportar conexões L2 tradicionais (ex: Frame-Relay, ATM ou TDM) sobre redes MPLS ou IP.

E qual a vantagem disso?

A vantagem é a total transparência do “tubo” virtual formado entre as duas pontas, permitindo que qualquer protocolo (e não apenas IP) possa atravessá-lo. Podemos, por exemplo, conectar duas pontas Frame-Relay por meio de uma rede MPLS ou IP pura, algo que pode ajudar na transição – em grande operadoras – do mundo legado (FR e ATM) para IP, por exemplo. Também pode-se usar esta tecnologia para estender redes LAN Ethernet de uma ponta a outra, atravessando inúmeros elementos IP de forma completamente transparente – como no exemplo mencionado, em que um trunk Ethernet poderia ser estabelecido entre as duas pontas – algo inviável em VPNs L3.

Existem hoje tecnologias bastante difundidas que permitem isso: AToM (Any Transport over MPLS), L2TPv3 (Layer-2 Tunneling Protocol version 3), VPLS (Virtual Private LAN Services) – este último sendo uma forma de AToM. Ainda não tive tempo para procurar uma imagem IOS para 7200 que suporte AToM, apesar de eu ter quase certeza que exista uma. Em encontrando uma, seria possível subir um LAB no GNS-3 sobre o assunto 😉 !

Sobre a tecnologia, vamos focar aqui no AToM. Basicamente, o túnel formado entre duas pontas que permite a comunicação L2 de forma transparente é chamada de “pseudowire”, ou seja, um “fio virtual”. É o pseudowire, portanto, que emula uma conexão L2 entre duas (ou mais) pontas. A topologia abaixo ilustra o conceito:

tutorial.gif

Os roteadores ilustrados seriam os PEs da operadora, e estes rodam MPLS. Pseudowires usam LDP (Label Distribution Protocol) como protocolo de sinalização para sua formação. O processo passo-a-passo é ilustrado abaixo:

aprovisionamentoatom.jpg

Em termos de configuração, é bastante simples… basta seguir os passos abaixo:

1) Entre os roteadores envolvidos no caminho físico, MPLS deve estar ativado e LDPs devem ser trocados. Para que isso ocorra, os roteadores devem estabelecer uma relação de vizinhança entre eles (neighbors LDP).

2) Pelo menos o IP de origem e o de destino do pseudowire deve estar visível entre os 2 PEs participantes, isso é, os IPs usados devem constar nas tabelas de roteamento dos roteadores envolvidos no cenário.

3) A configuração do pseudowire é feita via o comando “xconnect” nos dois PEs envolvidos.

Basicamente, seria isso. No cenário apresentado na figura 01, portanto, a configuração ficaria da seguinte forma:

PE1:

PE2:

E para verificar:

Notem que o VCID (50 no caso) deve ser o mesmo em ambas as pontas.

Para colocar em prática, basta verificar a tabela ARP dos PCs:

Notem que, o fato do MAC ADDRESS do PC2 aparecer na tabela ARP do PC1 indica que PC1 enxerga PC2 como se estivesse diretamente conectado ao mesmo, via cabo Ethernet. Neste exemplo, emulamos uma conexão L2 Ethernet ponto-a-ponto, portanto.

Obviamente existe muito mais por trás desta tecnologia, e muito mais formas de se implementa-la. O objetivo deste post foi apenas dar um gostinho para vocês do que é possível se fazer em termos de VPN L2. Se conseguirem fazer testes, façam! Nada melhor que praticar para se aprender. Nos comments deste post vocês encontrarão o link para o IOS para a linha 7200 com suporte a pseudowires. E abaixo segue o link para botar ele para funcionar no GNS-3:

pwire.zip

Portanto… mãos a obra!!!

Abraço!

Marco Filippetti

Fonte consultada: http://www.sanog.org/resources/sanog7/waris-l2vpn-tutorial.pdf

VPN – L3VPN sobre L2TPv3 sem MPLS

tux_cisco

1      L3VPN em L2TP sem MPLS

A funcionalidade MPLS VPNs over IP Tunnels permite que seja configurado o serviço de VPN L3 sobre o backbone IP usando a tecnologia de túnel L2TPv3 multiponto ao invés do Multiprotocol Label Switching (MPLS). Como os tuneis multiponto suportam multiplos endpoints, é necessário configurar apenas um único tunnel em cada roteador PE.

1.1       Divulgação do Túnel pelo BGP entre os PEs

O Border Gateway Protocol (BGP) é utilizado para divulger os endpoints dos túneis e a subaddress family indentifier (SAFI) Essa feature introduz o tunnel SAFI e o atributo BGP SAFI-Specific Attribute (SSA). O tunnel SAFI define o endpoint do tunnel e transporta o endereço IPv4 e o nexthop do endpoint. O SAFI é identificado pelo SAFI number 64. O BGP SSA transporta o BGP preference e BGP flags, além de tunnel cookie, tunnel cookie length, e o session ID. Esses atributos permitem que o BGP distribua as informações de encapsulamento do túnel entre os roteadores PEs. O tráfego de VPNv4 é roteado através desses túneis. O next hop anunciado nos updates do BGP-VPNv4 determina qual túnel deverá ser usado para rotear o trafego..

1.2       Configurando os PEs

Um único tunnel L2TPv3 multiponto é configurado em cada PE. A VPN é criada configurando a instancia VRF normalmente. O túnel que transporta o tráfego da VPN através do backbone reside no seu proprio espaço de Endereçamento. Uma VRF chamada Resolve in VRF (RiV) é criada para gerenciar os endereçamentos do túnel. O endereçamento configurado na VRF RiV é associada com o tunnel e uma rota estática é configurada na VRF RiV para rotear o tráfego pelo túnel.
How to Configure MPLS VPNs over IP Tunnels
Para configurar o serviço de VPN L3 sobre o tunnel L2TPv3 multiponto deve-se crier a instancia VRF, criar o tunnel multiponto L2TPv3, redirecionar o tráfego Ip da VPN para o tunnel e configurar a troca de informações de VPN pelo BGP VPNv4.
 

Cenário

1.3       Objetivo

Cinco roteadores (CE1, PE1, P, PE2 e CE2) são conectados formando um backbone com 3 roteadores e dois CEs conectados. Pede-se:
•      O protocolo de roteamento de backbone PE1-P-PE2 deverá ser o OSPF na área 0 com todas as interfaces divulgadas e com mBGP no AS 1 entre os PEs para tráfego de VRFs;
•      Tanto o CE1 quanto o CE2 deverão pertencer a VRF VPN_A e deverá existir conectividade entre esses CEs;
•      Não deverá ser usado MPLS para o tráfego de dados da VRF. Deve-se usar um túnel L3VPN com L2TP;
•      O túnel deverá ter autenticação com a chave “12”.

1.4       Topologia

dl3vpn-l2tpv3
Figure-01:         Topologia

1.5       IOS utilizados

•      CE1, PE1, P, PE2 e CE2 – c7200-k91p-mz.122-25.S15.bin

1.6       Configuração dos Roteadores

1.6.1        Configurações do OSPF do Backbone

Em todos os roteadores configura-se o roteamento OSPF pelo comando “router ospf ” onde o “processo” é um numero do processo OSPF. O roteador também possui um router ID único que geralmente é a interface loopback ou então o maior endereço IP do roteador.
Para adicionar interfaces deve-se usar o comando “network

área ”. Um roteador pode ter interfaces em áreas distintas, define-se cada área pelo comando network e o tipo da área com o comando “area [type]”.

1.6.2        Configuração do MBGP

Para estabelecer uma VPN, seja lite ou não, é necessário configurar o MBGP para a troca de informações de prefixos de VPN. É necessário somente configurar o MBGP nos roteadores PEs da rede que possuem conexão com os CEs, ou seja, conectados diretamente aos sites.
O MBGP funciona como o BGP, configura-se em todos os roteadores pelo comando “router bgp ” onde o “AS” é o Autonomous System do backbone. Dentro da configuração de BGP adicionam-se os vizinhos estaticamente com o comando “neighbor remote-as ”.
Adiciona-se o IP da interface loopback como Router-ID pelo comando “bgp router-id ”.
Como os roteadores dentro do mesmo AS não divulgarão as rotas IBGP entre eles, faz-se o full-mesh de conexão MBGP ou configuram-se os roteadores centrais como Router-reflectors adicionando os demais roteadores como clientes pelo comando“neighbor router-reflector-client”.
O MBGP é configurado dentro do protocolo BGP, porém deve-se separar a família de roteamento com o comando “address-family vpnv4” e dentro da família ativar os vizinhos. Para o envio de prefixos das VPNs, deve-se habilitar o envio de community extendida com o comando “neighbor send-community extended”.
Todos os recursos como route-map, next-hop-self, router-reflector, etc. podem ser configurados dentro da família VPNv4 para manipular ou resolver problemas de roteamento.

1.6.3        Criando uma VPN VRF no BGP

Após todos os roteadores PEs da rede possuem conectividade MBGP, ou diretamente ou por router-reflector, cria-se a VPN com o comando “ip vrf ”, dentro desse comando ficam os parâmentros de marcação da VPN e das communities associadas aos prefixos daquela VPN. Configura-se o Route-Distinguisher da VPN, que deve ser único na rede, com comando “rd :”, e também se cria a community que será exportada para aqueles prefixos de rede com o comando “route-target <export|import>:”, onde “import” significa importar as rotas e “export” exportar as rotas marcadas com aquela community.
Cria-se então uma address-family dentro do BGP com o comando “address-family ipv4 vrf ” com o mesmo nome da VPN criada no “ip vrf” fora do roteamento BGP. Dentro dessa address-family são configuradas as redes que serão redistribuídas para os outros sites. Para divulgar as redes é necessário que a rede exista na tabela de roteamento interna e, ou adicionar o comando “network mask ou redistribuindo rotas para o MBGP com o comando “redistribute ”, que pode ser vinculado a um route-map para definir exatamente as rotas que serão divulgadas de um protocolo para outros sites.
Enfim, para que uma interface conectada ao CE faça parte da VPN BGP, usa-se o comando “ip vrf forwarding ” dentro da interface.

1.6.4        Criando o túnel L2TP L3 para tráfego de VPN

Para criar um túnel multiponto GRE para envio de tráfego das VRFs criadas nos PEs, cria-se uma vrf exclusiva para o transporte dos dados, geralmente chamada de “RiV” que quer dizer Resolve-in-VRF “ip vrf RiV”, dentro da VRF configura-se um RD.
Em seguida, cria-se uma interface túnel “interface tunnel ” na vrf de transporte (no caso, RiV) com um endereço IP na mesma rede do endereço IP das interfaces túnel de todos os outros PEs. Usa-se o o endereço IP da loopback como source do túnel (esse endereço tem que ser acessível pelos outros PEs) “tunnel source loopback 0”. Configura-se o tipo do túnel que deverá ser L2TPv3 multiponto para VPN L3 “tunnel mode l3vpn l2tpv3 multipoint”.
Na vizinhança com os outros PEs ou com o Router Reflector aplica-se um route-map de entrada dizendo que tudo o que é aprendido por aquele peer deve ser enviado para a VRF de transporte, a RiV. Esse route-map tem como set o comando “set ip next-hop in-vrf RiV”.
Para que o roteamento do túnel seja feito entre os PEs, deve-se configurar uma conexão MBGP em uma address-family Tunnel entre o PEs envolvidos ou com um router-reflector.
Por último, configura-se uma rota estática default apontada para a interface tunnel dentro da vrf RiV.

1.7       Observações e Bugs

2      Configuração

2.1       CE1

!
interface FastEthernet0/0
 ip address 10.10.10.1 255.255.255.0
!
ip route 0.0.0.0 0.0.0.0 10.10.10.254
!

2.2       PE1

!
ip cef
!
ip vrf RiV
 rd 12:12
!
ip vrf VPN_A
 rd 1:1
 route-target export 1:1
 route-target import 1:1
!
!
interface Loopback0
 ip address 1.1.1.1 255.255.255.255
!
interface Tunnel12
 ip vrf forwarding RiV
 ip address 12.12.12.1 255.255.255.0
 tunnel source Loopback0
 tunnel mode l3vpn l2tpv3 multipoint           ! modo do tunnel tem que ser l3vpn
 tunnel key 12
!
interface FastEthernet0/0
 ip vrf forwarding VPN_A
 ip address 10.10.10.254 255.255.255.0
!
interface FastEthernet1/0
 ip address 100.100.100.1 255.255.255.252
!
router ospf 1
 router-id 1.1.1.1
 network 1.1.1.1 0.0.0.0 area 0
 network 100.100.100.1 0.0.0.0 area 0
!
router bgp 100
 bgp router-id 1.1.1.1
 neighbor 2.2.2.2 remote-as 200
 neighbor 2.2.2.2 ebgp-multihop 255
 neighbor 2.2.2.2 update-source Loopback0
 !
 address-family ipv4 tunnel
 neighbor 2.2.2.2 activate
!
 address-family vpnv4
 neighbor 2.2.2.2 activate
 neighbor 2.2.2.2 send-community extended
 neighbor 2.2.2.2 route-map RiV_RM in
 !
 address-family ipv4 vrf VPN_A
 redistribute connected
!
 address-family ipv4 vrf RiV
!
!
ip route vrf RiV 0.0.0.0 0.0.0.0 Tunnel12
!
!
route-map RiV_RM permit 10              ! o route-map aponta as rotas para dentro da vrf
 set ip next-hop in-vrf RiV
!

2.3       P

!
interface Loopback0
 ip address 9.9.9.9 255.255.255.255
!
interface FastEthernet0/0
 ip address 100.100.100.2 255.255.255.252
!
interface FastEthernet1/0
 ip address 100.100.100.6 255.255.255.252
!
router ospf 1
 router-id 9.9.9.9
 network 100.100.100.2 0.0.0.0 area 0
 network 100.100.100.6 0.0.0.0 area 0
!

2.4       PE2

!
ip cef
!
ip vrf RiV
 rd 12:12
!
ip vrf VPN_A
 rd 1:1
 route-target export 1:1
 route-target import 1:1
!
!
interface Loopback0
 ip address 2.2.2.2 255.255.255.255
!
interface Tunnel12
 ip vrf forwarding RiV
 ip address 12.12.12.2 255.255.255.0
 tunnel source Loopback0
 tunnel mode l3vpn l2tpv3 multipoint
 tunnel key 12
!        
interface FastEthernet0/0
 ip vrf forwarding VPN_A
 ip address 20.20.20.254 255.255.255.0
!
interface FastEthernet1/0
 ip address 100.100.100.5 255.255.255.252
!
router ospf 1
 router-id 2.2.2.2
 network 2.2.2.2 0.0.0.0 area 0
 network 100.100.100.5 0.0.0.0 area 0
!
router bgp 200
 bgp router-id 2.2.2.2
 neighbor 1.1.1.1 remote-as 100
 neighbor 1.1.1.1 ebgp-multihop 255
 neighbor 1.1.1.1 update-source Loopback0
 !
address-family ipv4 tunnel
 neighbor 2.2.2.2 activate
 exit-address-family
 !
 address-family vpnv4
 neighbor 1.1.1.1 activate
 neighbor 1.1.1.1 send-community extended
 neighbor 1.1.1.1 route-map RiV_RM in
!
 address-family ipv4 vrf VPN_A
 redistribute connected
!
 address-family ipv4 vrf RiV
!
ip route vrf RiV 0.0.0.0 0.0.0.0 Tunnel12
!        
!
route-map RiV_RM permit 10
 set ip next-hop in-vrf RiV
!

2.5       CE2

!
interface FastEthernet0/0
 ip address 20.20.20.1 255.255.255.0
!
ip route 0.0.0.0 0.0.0.0 20.20.20.254
!
Conteúdo salvo para uso pessoal em laboratórios, devido ao pouco conteúdo deste nível ccie provider em BR.

Autor original: Bruno Barata

Fonte: http://babarata.blogspot.com.br/

VPN – VRF IPv6

tux_cisco

1      Cenário

1.1       Objetivo

Quatro roteadores (CE1, PE1, PE2 e CE2) são conectados formando o seguinte cenário:
•      O protocolo de roteamento do backbone (PE1 e PE2) deverá ser o OSPF na área 0 com todas as interfaces divulgadas e deverá ser usado o MPLS IP com LDP.
•      Os roteadores CE1 e CE2 fazem parte da mesma VPN VRF chamada BLUE e utilizam IPv6 puro;
•      O roteamento dentro da VRF deverá ser o BGP, onde o CE1 usa o AS 100 e o CE2 o AS 200.

1.2       Topologia

1.3       IOS utilizados

•      CE1 e CE2 – c7200-k91p-mz.122-25.S15.bin
•      PE1 e PE2 – c7200-advipservicesk9_li-mz.124-24.T3.bin

1.4       Configuração dos Roteadores

1.4.1    Configurações do IPv6

Inicialmente deve-se habilitar o roteamento IPv6 nos roteadores com o comando “ipv6 unicast-routing”. Nas interfaces os endereços link-global são configurados com o comando “ipv6 address

/” e deve-se habilitar o IPv6 dentro da interface com o comando “IPv6 enable”. Os endereços link-local são automaticamente configurados.

1.4.2    Configurações do OSPF do Backbone

Em todos os roteadores configura-se o roteamento OSPF pelo comando “router ospf ” onde o “processo” é um numero do processo OSPF. O roteador também possui um router ID único que geralmente é a interface loopback ou então o maior endereço IP do roteador.
Para adicionar interfaces deve-se usar o comando “network

área ”. Um roteador pode ter interfaces em áreas distintas, define-se cada área pelo comando network.
Para o roteador fazer vizinhança OSPF é necessário que a rede da interface esteja no comando “network” e a interface não esteja configurada como “passive-interface”.

1.4.3    Configurações do MPLS

Antes de qualquer configuração, o Cisco Express forwarding deve ser habilitado com o comando “ip cef”. Para habilitar o MPLS no modo LDP, usa-se o comando global “mpls label protocol ldp”.

1.4.4    Configuração do MBGP

Para estabelecer uma VPNv6 sobre um backbone IPv4 é necessário configurar o MBGP para a troca de informações de prefixos da VPNv6. Pode-se somente configurar o MBGP nos roteadores PEs da rede que possuem conexão com os CEs, ou seja, conectados diretamente aos sites.
O MBGPv6 funciona como o MBGPv4, configura-se em todos os roteadores pelo comando “router bgp ” onde o “AS” é o Autonomous System do backbone. Dentro da configuração de BGP adicionam-se os vizinhos estaticamente com o comando “neighbor remote-as ”.
Adiciona-se o IP da interface loopback como Router-ID pelo comando “bgp router-id ”.
Como os roteadores dentro do mesmo AS não divulgarão as rotas IBGP entre eles, faz-se o full-mesh de conexão MBGP ou configuram-se os roteadores centrais como Router-reflectors adicionando os demais roteadores como clientes pelo comando “neighbor router-reflector-client”.
O MBGP é configurado dentro do protocolo BGP, porém deve-se separar a família de roteamento com o comando “address-family vpnv6”. Para o envio de prefixos das VPNs, deve-se habilitar o envio de community extendida com o comando “neighbor send-community extended”.
Todos os recursos como route-map, next-hop-self, router-reflector, etc. podem ser configurados dentro da família VPNv4 para manipular ou resolver problemas de roteamento.

1.4.5    Criando uma VPN VRF no BGP

Após todos os roteadores PEs da rede possuirem conectividade MBGP, ou diretamente ou por router-reflector, cria-se a VPNv6 com o comando “vrf definition ”, dentro desse comando ficam os parâmentros de marcação da VPNv6 e das communities associadas aos prefixos daquela VPNv6. Configura-se o Route-Distinguisher da VPNv6, que deve ser único na rede, com comando “rd :”, e também cria-se a  community que será exportada para aqueles prefixos de rede com o comando “route-target <export|import> :”, onde “import” significa importar as rotas e “export” exportar as rotas. Em seguida habilita-se a address-family ipv6.
No BGP, Cria-se uma address-family “address-family ipv6 vrf ” com o mesmo nome da VPNv6 criada no “vrf definition” fora do roteamento BGP. Dentro dessa address-family são configuradas as redes que serão redistribuídas para os outros sites. Para divulgar as redes é necessário que a rede exista na tabela de roteamento interna e, ou adicionar o comando “network mask ou redistribuindo rotas para o MBGP com o comando “redistribute ”, que pode ser vinculado à um route-map para definir exatamente as rotas que serão divulgadas de um protocolo para outros sites. No caso de vizinhança BGP, configura-se o neighbor.
Enfim, para que uma interface conectada ao CE faça parte da VPN BGP, usa-se o comando “vrf forwarding ” dentro da interface.
Dentro da VPN, para que o CE faça vizinhança BGP com o PE é necessário adicionar uma loopback IPv4 para ser o router-id do BGP.

1.5       Observações e Bugs

1.6       Comandos Importantes de Verificação

 

 

2      Configuração

2.1       CE1


 

2.2       PE1


 

2.3       PE2


 

2.4       CE2

!
ipv6 unicast-routing
ipv6 cef
!
Interface loopback0
 Ip address 22.22.22.22 255.255.255.255
!
interface Serial1/0
 encapsulation frame-relay
!
interface Serial1/0.6 point-to-point
 ipv6 address 2001:2::1/112
 frame-relay interface-dlci 600  
!        
!
router bgp 200
 bgp router-id 22.22.22.22
 neighbor 2001:2::2 remote-as 1
 no neighbor 2001:2::2 activate
!
 address-family ipv6
 neighbor 2001:2::2 activate
 redistribute connected
!
Fonte: http://babarata.blogspot.com.br/search/label/IPv6
Esse conteúdo foi solicitado e recebi autorização para replicação. Para replicar favor pedir ao dono do blog Fonte.