Full Mesh VPNs
Configuração de uma topologia VPN de malha completa simples
Este exemplo mostra como configurar uma configuração VPN simples de provedor de serviços de malha completa, que consiste nos seguintes componentes (ver Figura 1):
Duas VPNs separadas (VPN-A e VPN-B)
Dois roteadores de borda de provedor (PE), ambos de serviço VPN-A e VPN-B
RSVP como protocolo de sinalização
Um caminho comutada por rótulos (LSP) RSVP que faz túneis entre os dois roteadores PE por um roteador provedor (P)
vpn simples
Nesta configuração, a distribuição de rotas na VPN A do roteador VPN-A-Paris para o roteador VPN-A-Tokyo ocorre da seguinte forma:
O roteador de borda do cliente (CE) VPN-A-Paris anuncia rotas para o roteador PE Roteador A.
O roteador A instala as rotas anunciadas recebidas em sua tabela de roteamento e encaminhamento VPN (VRF), VPN-A.inet.0.
O roteador A cria um rótulo MPLS para a interface entre ele e a VPN-A-Paris do roteador.
O roteador A verifica sua política de exportação VRF.
O roteador A converte as rotas do Protocolo de Internet 4 (IPv4) do Roteador VPN-A-Paris em formato VPN IPv4 usando seu diferencial de rota e anuncia essas rotas para o Roteador PE C pelo IBGP entre os dois roteadores PE.
O roteador C verifica sua política de importação VRF e instala todas as rotas que combinam com a política em sua tabela de roteamento bgp.l3vpn.0. (Quaisquer rotas que não correspondam são descartadas.)
O roteador C verifica sua política de importação VRF e instala todas as rotas que se comparam à sua tabela de roteamento VPN-A.inet.0. As rotas são instaladas no formato IPv4.
O roteador C anuncia suas rotas para o roteador CE VPN-A-Tokyo, que os instala em sua tabela de roteamento principal. (Para plataformas de roteamento que executam o Junos OS, a tabela de roteamento principal é inet.0.)
O roteador C usa o LSP entre ele e o roteador A para rotear todos os pacotes do Roteador VPN-A-Tokyo que são destinados ao Roteador VPN-A-Paris.
A seção final deste exemplo consolida as declarações necessárias para configurar a funcionalidade VPN em cada um dos roteadores P de serviço mostrados na Figura 1.
Neste exemplo, um número de sistema autônomo privado (AS) é usado para o diferencial de rota e o alvo da rota. Este número é usado apenas para ilustração. Quando você estiver configurando VPNs, você deve usar um número AS atribuído.
As seções a seguir explicam como configurar a funcionalidade VPN nos roteadores PE e P. Os roteadores CE não têm informações sobre a VPN, então você os configura normalmente.
- Habilitação de um IGP nos roteadores PE e P
- Habilitação de RSVP e MPLS no roteador P
- Configuração do túnel MPLS LSP entre os roteadores PE
- Configuração do IBGP nos roteadores PE
- Configuração de instâncias de roteamento para VPNs nos roteadores PE
- Configuração da política de VPN nos roteadores PE
- Configuração de VPN simples resumida por roteador
Habilitação de um IGP nos roteadores PE e P
Para permitir que os roteadores PE e P troquem informações de roteamento entre si, você deve configurar um protocolo de gateway interior (IGP) em todos esses roteadores ou configurar rotas estáticas. Você configura o IGP na instância primária do processo de protocolo de roteamento (rpd) (ou seja, no nível de [edit protocols] hierarquia), não dentro da instância de roteamento VPN (ou seja, não no nível de [edit routing-instances] hierarquia).
Você configura o IGP da maneira padrão. Este exemplo de configuração não inclui essa parte da configuração.
Habilitação de RSVP e MPLS no roteador P
No roteador P, roteador B, você deve configurar RSVP e MPLS porque este roteador existe no caminho MPLS LSP entre os dois roteadores PE, roteador A e roteador C:
[edit]
protocols {
rsvp {
interface so-4/0/0.0;
interface so-6/0/0.0;
}
mpls {
interface so-4/0/0.0;
interface so-6/0/0.0;
}
}
Configuração do túnel MPLS LSP entre os roteadores PE
Neste exemplo de configuração, o RSVP é usado para sinalização de VPN. Portanto, além de configurar o RSVP, você deve habilitar o suporte de engenharia de tráfego em um IGP e você deve criar um MPLS LSP para tunelar o tráfego de VPN.
No Roteador A de PE, habilite o RSVP e configure uma extremidade do túnel LSP MPLS. Neste exemplo, o suporte à engenharia de tráfego é habilitado para OSPF. Ao configurar o MPLS LSP, inclua interface declarações para todas as interfaces participantes do MPLS, incluindo as interfaces para os roteadores PE e CE. As declarações para as interfaces entre os roteadores PE e CE são necessárias para que o roteador PE possa criar um rótulo MPLS para a interface privada. Neste exemplo, a primeira interface declaração configura o MPLS na interface conectada ao LSP, e os três restantes configuram o MPLS nas interfaces que conectam o roteador PE aos roteadores CE.
[edit]
protocols {
rsvp {
interface so-3/0/0.0;
}
mpls {
label-switched-path RouterA-to-RouterC {
to 10.255.245.47;
}
interface so-3/0/0.0;
interface so-6/0/0.0;
interface so-6/0/1.0;
interface ge-0/3/0.0;
}
ospf {
traffic-engineering;
area 0.0.0.0 {
interface so-3/0/0.0;
}
}
}
No roteador PE C, habilite o RSVP e configure a outra extremidade do túnel LSP MPLS. Novamente, o suporte de engenharia de tráfego está habilitado para OSPF, e você configura o MPLS nas interfaces para o LSP e os roteadores CE.
[edit]
protocols {
rsvp {
interface so-2/0/0.0;
}
mpls {
label-switched-path RouterC-to-RouterA {
to 10.255.245.68;
}
interface so-2/0/0.0;
interface ge-1/0/0.0;
interface at-1/2/0.0;
}
ospf {
traffic-engineering;
area 0.0.0.0 {
interface so-2/0/0.0;
}
}
}
Configuração do IBGP nos roteadores PE
Nos roteadores PE, configure uma sessão do IBGP com as seguintes propriedades:
Família VPN — Para indicar que a sessão do IBGP é para a VPN, inclua a
family inet-vpndeclaração.Endereço loopback — inclua a
local-addressdeclaração, especificando o endereço de loopback do roteador PE local. A sessão do IBGP para VPNs é executado pelo endereço de loopback. Você também deve configurar alo0interface no nível de[edit interfaces]hierarquia. O exemplo não inclui essa parte da configuração do roteador.Endereço vizinho — Inclua a
neighbordeclaração, especificando o endereço IP do roteador PE vizinho, que é seu endereço loopback (lo0).
No roteador PE A, configure o IBGP:
[edit]
protocols {
bgp {
group PE-RouterA-to-PE-RouterC {
type internal;
local-address 10.255.245.68;
family inet-vpn {
unicast;
}
neighbor 10.255.245.47;
}
}
}
No roteador PE C, configure o IBGP:
[edit]
protocols {
bgp {
group PE-RouterC-to-PE-RouterA {
type internal;
local-address 10.255.245.47;
family inet-vpn {
unicast;
}
neighbor 10.255.245.68;
}
}
}
Configuração de instâncias de roteamento para VPNs nos roteadores PE
Ambos os roteadores PE oferecem serviços de VPN-A e VPN-B, portanto, você deve configurar duas instâncias de roteamento em cada roteador, uma para cada VPN. Para cada VPN, você deve definir o seguinte na instância de roteamento:
Diferenciador de rota, que deve ser único para cada instância de roteamento no roteador PE.
Ele é usado para distinguir os endereços em uma VPN daqueles de outra VPN.
Tipo de instância
vrf, que cria a tabela VRF no roteador PE.Interfaces conectadas aos roteadores CE.
Políticas de importação e exportação de VRF, que devem ser as mesmas em cada roteador PE que presta serviços a mesma VPN. A menos que uma política de importação contenha apenas uma
then rejectdeclaração, ela deve incluir referência a uma comunidade. Caso contrário, quando você tenta confirmar a configuração, o commit falha.Nota:Neste exemplo, um número de AS privado é usado para o diferencial de rota. Este número é usado apenas para ilustração. Quando você estiver configurando VPNs, você deve usar um número AS atribuído.
Roteamento entre os roteadores PE e CE, que é necessário para que o roteador PE distribua rotas relacionadas a VPN de e para roteadores CE conectados. Você pode configurar um protocolo de roteamento — BGP, OSPF ou RIP — ou configurar o roteamento estático.
No ROTEADOR A, configure a seguinte instância de roteamento para VPN-A. Neste exemplo, o Roteador A usa rotas estáticas para distribuir rotas de e para os dois roteadores CE aos quais está conectado.
[edit]
routing-instance {
VPN-A-Paris-Munich {
instance-type vrf;
interface so-6/0/0.0;
interface so-6/0/1.0;
route-distinguisher 65535:0;
vrf-import VPN-A-import;
vrf-export VPN-A-export;
routing-options {
static {
route 172.16.0.0/16 next-hop so-6/0/0.0;
route 172.17.0.0/16 next-hop so-6/0/1.0;
}
}
}
}
No roteador PE C, configure a seguinte instância de roteamento para VPN-A. Neste exemplo, o Roteador C usa o BGP para distribuir rotas de e para o roteador CE ao qual está conectado.
[edit]
routing-instance {
VPN-A-Tokyo {
instance-type vrf;
interface ge-1/0/0.0;
route-distinguisher 65535:1;
vrf-import VPN-A-import;
vrf-export VPN-A-export;
protocols {
bgp {
group VPN-A-Site2 {
peer-as 1;
neighbor 10.12.1.2;
}
}
}
}
}
No Roteador A de PE, configure a seguinte instância de roteamento para VPN-B. Neste exemplo, o roteador A usa OSPF para distribuir rotas de e para o roteador CE ao qual está conectado.
[edit]
policy-options {
policy-statement bgp-to-ospf {
from {
protocol bgp;
route-filter 192.168.1.0/24 orlonger;
}
then accept;
}
}
routing-instance {
VPN-B-Madrid {
instance-type vrf;
interface ge-0/3/0.0;
route-distinguisher 65535:2;
vrf-import VPN-B-import;
vrf-export VPN-B-export;
protocols {
ospf {
export bgp-to-ospf;
area 0.0.0.0 {
interface ge-0/3/0;
}
}
}
}
}
No roteador PE C, configure a seguinte instância de roteamento para VPN-B. Neste exemplo, o roteador C usa o RIP para distribuir rotas de e para o roteador CE ao qual está conectado.
[edit]
policy-options {
policy-statement bgp-to-rip {
from {
protocol bgp;
route-filter 192.168.2.0/24 orlonger;
}
then accept;
}
}
routing-instance {
VPN-B-Osaka {
instance-type vrf;
interface at-1/2/0.0;
route-distinguisher 65535:3;
vrf-import VPN-B-import;
vrf-export VPN-B-export;
protocols {
rip {
group PE-C-to-VPN-B {
export bgp-to-rip;
neighbor at-1/2/0;
}
}
}
}
}
Configuração da política de VPN nos roteadores PE
Configure as políticas de importação e exportação de VPN em cada roteador PE para que as rotas apropriadas sejam instaladas nas tabelas VRF do roteador PE. A tabela VRF é usada para encaminhar pacotes em uma VPN. Para VPN-A, a tabela VRF é VPN-A.inet.0, e para VPN-B é VPN-B.inet.0.
Na política de VPN, você também configura comunidades-alvo de VPN.
No exemplo a seguir, um número de AS privado é usado para o alvo de rota. Este número é usado apenas para ilustração. Quando você estiver configurando VPNs, você deve usar um número AS atribuído. As qualificações de políticas mostradas neste exemplo são apenas aquelas necessárias para que a VPN funcione. Você pode configurar qualificações adicionais, conforme necessário, para quaisquer políticas que você configure.
No Roteador A de PE, configure as seguintes políticas de importação e exportação de VPN:
[edit]
policy-options {
policy-statement VPN-A-import {
term a {
from {
protocol bgp;
community VPN-A;
}
then accept;
}
term b {
then reject;
}
}
policy-statement VPN-A-export {
term a {
from protocol static;
then {
community add VPN-A;
accept;
}
}
term b {
then reject;
}
}
policy-statement VPN-B-import {
term a {
from {
protocol bgp;
community VPN-B;
}
then accept;
}
term b {
then reject;
}
}
policy-statement VPN-B-export {
term a {
from protocol ospf;
then {
community add VPN-B;
accept;
}
}
term b {
then reject;
}
}
community VPN-A members target:65535:4;
community VPN-B members target:65535:5;
}
No roteador PE C, configure as seguintes políticas de importação e exportação de VPN:
[edit]
policy-options {
policy-statement VPN-A-import {
term a {
from {
protocol bgp;
community VPN-A;
}
then accept;
}
term b {
then reject;
}
}
policy-statement VPN-A-export {
term a {
from protocol bgp;
then {
community add VPN-A;
accept;
}
}
term b {
then reject;
}
}
policy-statement VPN-B-import {
term a {
from {
protocol bgp;
community VPN-B;
}
then accept;
}
term b {
then reject;
}
}
policy-statement VPN-B-export {
term a {
from protocol rip;
then {
community add VPN-B;
accept;
}
}
term b {
then reject;
}
}
community VPN-A members target:65535:4;
community VPN-B members target:65535:5;
}
Para aplicar as políticas de VPN nos roteadores, inclua as declarações e vrf-import as vrf-export declarações quando você configura a instância de roteamento. Para ambas as VPNs, as políticas de importação e exportação de VRF lidam com a distribuição de rotas em toda a sessão do IBGP entre os roteadores PE.
Para aplicar as políticas de VPN no PE Router A, inclua as seguintes declarações:
[edit]
routing-instance {
VPN-A-Paris-Munich {
vrf-import VPN-A-import;
vrf-export VPN-A-export;
}
VPN-B-Madrid {
vrf-import VPN-B-import;
vrf-export VPN-B-export;
}
}
Para aplicar as políticas de VPN no PE Router C, inclua as seguintes declarações:
[edit]
routing-instance {
VPN-A-Tokyo {
vrf-import VPN-A-import;
vrf-export VPN-A-export;
}
VPN-B-Osaka {
vrf-import VPN-B-import;
vrf-export VPN-B-export;
}
}
Configuração de VPN simples resumida por roteador
Roteador A (roteador PE)
Instância de roteamento para VPN-A
routing-instance {
VPN-A-Paris-Munich {
instance-type vrf;
interface so-6/0/0.0;
interface so-6/0/1.0;
route-distinguisher 65535:0;
vrf-import VPN-A-import;
vrf-export VPN-A-export;
}
}
Protocolo de roteamento de instâncias
routing-options {
static {
route 172.16.0.0/16 next-hop so-6/0/0.0;
route 172.17.0.0/16 next-hop so-6/0/1.0;
}
}
Instância de roteamento para VPN-B
routing-instance {
VPN-B-Madrid {
instance-type vrf;
interface ge-0/3/0.0;
route-distinguisher 65535:2;
vrf-import VPN-B-import;
vrf-export VPN-B-export;
}
}
Protocolo de roteamento de instâncias
protocols {
ospf {
area 0.0.0.0 {
interface ge-0/3/0;
}
}
}
Instância principal de protocolo
protocols {
}
Habilite o RSVP
rsvp {
interface so-3/0/0.0;
}
Configure um LSP MPLS
mpls {
label-switched-path RouterA-to-RouterC {
to 10.255.245.47;
}
interface so-3/0/0.0;
interface so-6/0/0.0;
interface so-6/0/1.0;
interface ge-0/3/0.0;
}
Configure IBGP
bgp {
group PE-RouterA-to-PE-RouterC {
type internal;
local-address 10.255.245.68;
family inet-vpn {
unicast;
}
neighbor 10.255.245.47;
}
}
Configure o OSPF para suporte à engenharia de tráfego
ospf {
traffic-engineering;
area 0.0.0.0 {
interface so-3/0/0.0;
}
}
Configure a política de VPN
policy-options {
policy-statement VPN-A-import {
term a {
from {
protocol bgp;
community VPN-A;
}
then accept;
}
term b {
then reject;
}
}
policy-statement VPN-A-export {
term a {
from protocol static;
then {
community add VPN-A;
accept;
}
}
term b {
then reject;
}
}
policy-statement VPN-B-import {
term a {
from {
protocol bgp;
community VPN-B;
}
then accept;
}
term b {
then reject;
}
}
policy-statement VPN-B-export {
term a {
from protocol ospf;
then {
community add VPN-B;
accept;
}
}
term b {
then reject;
}
}
community VPN-A members target:65535:4;
community VPN-B members target:65535:5;
}
Roteador B (Roteador P)
Instância principal de protocolo
protocols {
}
Habilite o RSVP
rsvp {
interface so-4/0/0.0;
interface so-6/0/0.0;
}
Habilite o MPLS
mpls {
interface so-4/0/0.0;
interface so-6/0/0.0;
}
Roteador C (roteador PE)
Instância de roteamento para VPN-A
routing-instance {
VPN-A-Tokyo {
instance-type vrf;
interface ge-1/0/0.0;
route-distinguisher 65535:1;
vrf-import VPN-A-import;
vrf-export VPN-A-export;
}
}
Protocolo de roteamento de instâncias
protocols {
bgp {
group VPN-A-Site2 {
peer-as 1;
neighbor 10.12.1.2;
}
}
}
Instância de roteamento para VPN-B
VPN-B-Osaka {
instance-type vrf;
interface at-1/2/0.0;
route-distinguisher 65535:3;
vrf-import VPN-B-import;
vrf-export VPN-B-export;
}
Protocolo de roteamento de instâncias
protocols {
rip {
group PE-C-to-VPN-B {
neighbor at-1/2/0;
}
}
}
Instância principal de protocolo
protocols {
}
Habilite o RSVP
rsvp {
interface so-2/0/0.0;
}
Configure um LSP MPLS
mpls {
label-switched-path RouterC-to-RouterA {
to 10.255.245.68;
}
interface so-2/0/0.0;
interface ge-1/0/0.0;
interface at-1/2/0.0;
}
Configure IBGP
bgp {
group PE-RouterC-to-PE-RouterA {
type internal;
local-address 10.255.245.47;
family inet-vpn {
unicast;
}
neighbor 10.255.245.68;
}
}
Configure o OSPF para suporte à engenharia de tráfego
ospf {
traffic-engineering;
area 0.0.0.0 {
interface so-2/0/0.0;
}
}
Configure a política de VPN
policy-options {
policy-statement VPN-A-import {
term a {
from {
protocol bgp;
community VPN-A;
}
then accept;
}
term b {
then reject;
}
}
policy-statement VPN-A-export {
term a {
from protocol bgp;
then {
community add VPN-A;
accept;
}
}
term b {
then reject;
}
}
policy-statement VPN-B-import {
term a {
from {
protocol bgp;
community VPN-B;
}
then accept;
}
term b {
then reject;
}
}
policy-statement VPN-B-export {
term a {
from protocol rip;
then {
community add VPN-B;
accept;
}
}
term b {
then reject;
}
}
community VPN-A members target:65535:4;
community VPN-B members target:65535:5;
}
Configurando uma topologia VPN de malha completa com refletores de rota
Este exemplo é uma variação do exemplo de topologia VPN de malha completa (descrito na configuração de uma topologia VPN full-mesh simples) no qual um dos roteadores PE é um refletor de rotas BGP. Nessa variação, o roteador C na configuração de uma topologia VPN full-mesh simples é um refletor de rotas. A única mudança em sua configuração é que você precisa incluir a cluster declaração ao configurar o grupo BGP:
[edit]
protocols {
bgp {
group PE-RouterC-to-PE-RouterA {
type internal;
local-address 10.255.245.47;
family inet-vpn {
unicast;
}
neighbor 10.255.245.68;
cluster 4.3.2.1;
}
}
}