Balanceamento de carga em VPNs de camada 3
Balanceamento de carga de VPN por pacote
Por padrão, quando existem vários caminhos de igual custo para o mesmo destino para a rota ativa, o software Junos OS usa um algoritmo de hash para selecionar um dos endereços de próximo salto para instalar na tabela de encaminhamento. Sempre que o conjunto de próximos saltos para uma mudança de destino muda, esse processo de seleção (usando o mesmo algoritmo de hash) é repetido para escolher o melhor endereço de próximo salto único usando o mesmo algoritmo de hash.
Como alternativa, você pode configurar o software Junos OS para espalhar o tráfego de VPN pelos múltiplos caminhos válidos entre dispositivos PE. Esse recurso é chamado de balanceamento de carga por pacote. O balanceamento de carga de tráfego VPN só é possível quando mais de um caminho válido estiver disponível. Você pode configurar o Junos OS para que, para a rota ativa, todos os endereços de próximo salto para um destino estejam instalados na tabela de encaminhamento. Além de aumentar o volume de tráfego que você pode enviar entre dispositivos VPN, você pode configurar o balanceamento de carga por pacote para otimizar os fluxos de tráfego em vários caminhos.
O tráfego é distribuído em vários caminhos válidos executando um algoritmo de hash em vários elementos da rota, como o rótulo MPLS ou o endereço de destino. As tabelas a seguir descrevem como o algoritmo de hash de balanceamento de carga é executado em rotas no roteador de entrada e nos roteadores de trânsito e saída. Os elementos de rota usados pelo algoritmo de hash variam dependendo do aplicativo VPN. Se o Junos OS encontrar um conjunto de S-bit para 1 (indicando a parte inferior da pilha), ele não aplicará mais o algoritmo de hash.
Aplicação |
Interface lógica de entrada |
Rótulos MPLS |
Endereços MAC de origem e destino |
Risco de reordenamento e separação de fluxo |
Palavra de controle desativada |
IP (Endereço de origem/destino e porta, protocolo) |
|---|---|---|---|---|---|---|
VPNs de camada 2 e circuitos de camada 2 configurados com CCC |
Sim |
Sim |
Não |
Sim (se os dados forem variáveis, por exemplo, ATM) |
Sim |
N/A |
VPNs de camada 2 e circuitos de camada 2 configurados com TCC |
Sim |
Sim |
Não |
Sim (se os dados forem variáveis, por exemplo, ATM) |
Sim |
N/A |
VPNs de camada 3 e RIBs IPv4 ou IPv6 |
Sim |
Não |
Não |
Não |
Não |
Sim |
VPLS |
Sim |
Não |
Sim |
Não |
Não |
Sim |
Aplicação |
Interface lógica de entrada |
Rótulos MPLS (até 3 e o S-bit está definido para 1) |
Risco de reordenamento e separação de fluxo |
IP (Endereço de origem/destino e porta, protocolo) |
|---|---|---|---|---|
VPNs de camada 2 e circuitos de camada 2 configurados com CCC |
Sim |
Sim |
Não |
Não |
VPNs de camada 2 e circuitos de camada 2 configurados com TCC |
Sim |
Sim |
Não |
Sim |
VPNs de camada 3 e RIBs IPv4 ou IPv6 |
Sim |
Sim |
Não |
Sim |
VPLS |
Sim |
Sim para tráfego unicast conhecido Não para transmissão, unicast desconhecido e tráfego multicast |
Não |
Não |
Balanceamento de carga e filtragem de cabeçalho IP para VPNs de camada 3
Agora, você pode habilitar simultaneamente o balanceamento de carga do tráfego em caminhos BGP internos e externos e a filtragem de tráfego com base no cabeçalho IP. Isso permite configurar filtros e policiais no roteador PE de saída para tráfego que ao mesmo tempo está sendo equilibrado em caminhos BGP internos e externos. Esse recurso está disponível apenas no roteador M120, roteador M320, roteadores da Série MX e roteadores da Série T.
Para habilitar esses recursos em uma instância de roteamento VPN de Camada 3, inclua a vpn-unequal-cost equal-external-internal declaração no nível de [edit routing-instances routing-instance-name routing-options multipath] hierarquia e a vrf-table-label declaração no nível de [edit routing-instances routing-instance-name] hierarquia.
Se você emitir o show route detail comando, você pode descobrir se uma rota está sendo balanceada ou não (igual-externa-interna) e qual é o índice de interface.
Se você também tiver configurado um redirecionamento rápido, esteja ciente do seguinte comportamento:
Se um caminho IBGP cair, ele pode ser substituído por um caminho EBGP ativo ou por um caminho IBGP ativo.
Se um caminho EBGP cair, ele só pode ser substituído por outro caminho EBGP ativo. Isso impede o encaminhamento do tráfego de interface voltado para o núcleo para um destino IBGP.
Você pode incluir a vpn-unequal-cost equal-external-internal declaração e a l3vpn declaração no nível de [edit routing-options forwarding-options chained-composite-next-hop ingress] hierarquia simultaneamente. No entanto, se você fizer isso, o EBGP não funciona. Isso significa que, quando existem ambos os caminhos com nexthops encadeados e caminhos com nexthops não cadeados como candidatos ao multicaminho de custo igual (ECMP) EBGP, os caminhos que usam nexthops encadeados são excluídos. Em um caso típico, os caminhos excluídos são os caminhos internos.
Visão geral do balanceamento de carga de VPN de Camada 3
O recurso de balanceamento de carga permite que um dispositivo divida o tráfego de entrada e saída em vários caminhos, a fim de reduzir o congestionamento na rede. O balanceamento de carga melhora a utilização de vários caminhos de rede e fornece largura de banda de rede mais eficaz.
Quando vários protocolos estão em uso, o dispositivo usa o valor de preferência de rota (também conhecido como valor de distância administrativa ) para selecionar uma rota. Ao usar um único protocolo de roteamento, o roteador escolhe o caminho com o menor custo (ou métrica) até o destino. Se o dispositivo receber e instalar vários caminhos com a mesma preferência de rota e o mesmo custo para um destino, o balanceamento de carga deve ser configurado.
Em uma rede com caminhos BGP internos e externos instalados entre dispositivos em diferentes sistemas autônomos, o BGP seleciona apenas um único caminho melhor por padrão e não realiza balanceamento de carga. Uma VPN de Camada 3 com caminhos BGP internos e externos usa a multipath declaração para balanceamento de carga independente de protocolo. Quando você inclui a multipath declaração em uma instância de roteamento, o balanceamento de carga independente de protocolo é aplicado à tabela de roteamento padrão para essa instância de roteamento. Ao usar a declaração, o vpn-unequal-cost balanceamento de carga independente de protocolo é aplicado a rotas de VPN. Ao usar a declaração, o equal-external-internal balanceamento de carga independente de protocolo é aplicado a caminhos BGP internos e externos e pode ser configurado em conjunto com a filtragem de cabeçalho IP (habilitada com a vrf-table-label declaração).
Exemplo: balanceamento de carga no tráfego VPN da camada 3 ao mesmo tempo em que usa a filtragem de cabeçalho IP
Nossa equipe de testes de conteúdo validou e atualizou este exemplo.
Este exemplo mostra como configurar o balanceamento de carga em uma VPN de Camada 3 (com caminhos BGP internos e externos) ao mesmo tempo em que usa a filtragem de cabeçalho IP.
Requisitos
Este exemplo requer os seguintes componentes de hardware e software:
-
Roteadores de borda multisserviço da Série M (apenas M120 e M320), plataformas de roteamento universal 5G da Série MX, roteadores de núcleo da Série T ou roteadores de transporte da Série PTX.
-
Versão 12.1 ou posterior do Junos OS
-
Revalidado no Junos OS Release 20.1R1 para roteadores da Série MX
-
Visão geral
O exemplo a seguir mostra como configurar o balanceamento de carga ao mesmo tempo em que usa a filtragem de cabeçalho IP em uma VPN de Camada 3.
Este exemplo demonstra como o balanceamento de carga e a filtragem de cabeçalho IP funcionam juntos. O teste da filtragem de cabeçalho IP está fora do escopo deste exemplo.
O Junos OS BGP oferece um recurso multicaminho que permite o balanceamento de carga entre pares nos mesmos ou diferentes sistemas autônomos (ASs). Este exemplo usa a equal-external-internal declaração no nível de [edit routing-instances instance-name routing-options multipath vpn-unequal-cost] hierarquia para realizar balanceamento de carga. A vrf-table-label declaração está configurada no nível de [edit routing-instances instance-name] hierarquia para permitir a filtragem de cabeçalho IP.
[edit]
routing-instances {
instance-name {
vrf-table-label;
routing-options {
multipath {
vpn-unequal-cost {
equal-external-internal;
}
}
}
}
}
Essas declarações estão disponíveis apenas no contexto de uma instância de roteamento.
Neste exemplo, o dispositivo CE1 está no AS1 e está conectado ao Dispositivo PE1. Os dispositivos PE1, PE2, PE3 e P estão no AS2. O dispositivo CE2 está conectado aos dispositivos PE2 e PE3 e está no AS3. O dispositivo CE3 está conectado ao dispositivo PE3 e está no AS4. BGP e MPLS são configurados por meio da rede. OSPF é o protocolo de gateway interior (IGP) que é usado nesta rede.
A configuração para dispositivos PE1, PE2 e PE3 inclui a equal-external-internal declaração no nível de [edit routing-instances instance-name routing-options multipath vpn-unequal-cost] hierarquia para permitir o balanceamento de carga na rede. A filtragem de cabeçalho IP é habilitada quando a vrf-table-label declaração é configurada no nível de [edit routing-instances instance-name] hierarquia dos dispositivos PE.
A Figura 1 mostra a topologia usada neste exemplo.
Topologia
de cabeçalho IP
A Tabela 3 mostra a lista de endereços IP usados neste exemplo para uma referência rápida.
| Dispositivo |
COMO |
ID do dispositivo |
Interface |
Endereço IP da interface |
|---|---|---|---|---|
| CE1 |
65001 |
192.0.2.1/32 |
ge-0/0/0,0 |
10.1.1.1/30 |
| PE1 |
65000 |
192.0.2.2/32 |
ge-0/0/2,0 |
10.1.1.2/30 |
| ge-0/0/0,0 |
10.1.2.5/30 |
|||
| ge-0/0/1,0 |
10.1.3.9/30 |
|||
| PE2 |
65000 |
192.0.2.3/32 |
ge-0/0/0,0 |
10.1.2.6/30 |
| ge-0/0/1,0 |
10.1.4.13/30 |
|||
| ge-0/0/2,0 |
10.1.6.21/30 |
|||
| PE3 |
65000 |
192.0.2.4/32 |
ge-0/0/1,0 |
10.1.3.10/30 |
| ge-0/0/0,0 |
10.1.5.18/30 |
|||
| ge-0/0/2,0 |
10.1.7.25/30 |
|||
| ge-0/0/3,0 |
10.1.8.29/30 |
|||
| P |
65000 |
192.0.2.5/32 |
ge-0/0/1,0 |
10.1.4.14/30 |
| ge-0/0/0,0 |
10.1.5.17/30 |
|||
| CE2 |
65002 |
192.0.2.6/32 |
ge-0/0/1,0 |
10.1.6.22/30 |
| ge-0/0/2,0 |
10.1.7.26/30 |
|||
| CE3 |
65003 |
192.0.2.7/32 |
ge-0/0/3,0 |
10.1.8.30/30 |
Este exemplo foi testado usando sistemas lógicos (roteadores lógicos). Portanto, todas as interfaces físicas no exemplo são as mesmas e a configuração é feita em interfaces lógicas separadas. Em uma rede sem teste, você usará roteadores físicos separados e interfaces físicas separadas para as conexões com outros dispositivos.
Configuração
Procedimento
Configuração rápida da CLI
Para configurar este exemplo rapidamente, copie os seguintes comandos, cole-os em um arquivo de texto, remova qualquer quebra de linha, altere os detalhes necessários para combinar com a configuração da sua rede e, em seguida, copie e cole os comandos no CLI no nível de [edit] hierarquia.
Device CE1
set interfaces ge-0/0/0 unit 0 family inet address 10.1.1.1/30
set interfaces ge-0/0/0 unit 0 family mpls
set interfaces ge-0/0/0 unit 0 description toPE1
set interfaces lo0 unit 0 family inet address 192.0.2.1/32
set routing-options router-id 192.0.2.1
set routing-options autonomous-system 65001
set protocols bgp group toPE1 type external
set protocols bgp group toPE1 export send-direct
set protocols bgp group toPE1 peer-as 65000
set protocols bgp group toPE1 neighbor 10.1.1.2
set policy-options policy-statement send-direct from protocol direct
set policy-options policy-statement send-direct then accept
Device PE1
set interfaces ge-0/0/2 unit 0 family inet address 10.1.1.2/30
set interfaces ge-0/0/2 unit 0 family mpls
set interfaces ge-0/0/2 unit 0 description toCE1
set interfaces ge-0/0/0 unit 0 family inet address 10.1.2.5/30
set interfaces ge-0/0/0 unit 0 family mpls
set interfaces ge-0/0/0 unit 0 description toPE2
set interfaces ge-0/0/1 unit 0 family inet address 10.1.3.9/30
set interfaces ge-0/0/1 unit 0 family mpls
set interfaces ge-0/0/1 unit 0 description toPE3
set interfaces lo0 unit 0 family inet address 192.0.2.2/32
set protocols mpls interface all
set protocols ldp interface all
set protocols ospf area 0.0.0.0 interface lo0.0 passive
set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 metric 10
set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 metric 10
set protocols bgp group toInternal type internal
set protocols bgp group toInternal family inet-vpn unicast
set protocols bgp group toInternal local-address 192.0.2.2
set protocols bgp group toInternal neighbor 192.0.2.3
set protocols bgp group toInternal neighbor 192.0.2.4
set routing-options router-id 192.0.2.2
set routing-options autonomous-system 65000
set routing-options forwarding-table export lb
set routing-instances toCE1 instance-type vrf
set routing-instances toCE1 interface ge-0/0/2.0
set routing-instances toCE1 route-distinguisher 65000:1
set routing-instances toCE1 vrf-target target:65000:1
set routing-instances toCE1 vrf-table-label
set routing-instances toCE1 protocols bgp group toCE1 type external
set routing-instances toCE1 protocols bgp group toCE1 peer-as 65001
set routing-instances toCE1 protocols bgp group toCE1 neighbor 10.1.1.1
set routing-instances toCE1 routing-options multipath vpn-unequal-cost equal-external-internal
set policy-options policy-statement lb then load-balance per-packet
Device PE2
set interfaces ge-0/0/0 unit 0 family inet address 10.1.2.6/30
set interfaces ge-0/0/0 unit 0 family mpls
set interfaces ge-0/0/0 unit 0 description toPE1
set interfaces ge-0/0/1 unit 0 family inet address 10.1.4.13/30
set interfaces ge-0/0/1 unit 0 family mpls
set interfaces ge-0/0/1 unit 0 description toP
set interfaces ge-0/0/2 unit 0 family inet address 10.1.6.21/30
set interfaces ge-0/0/2 unit 0 family mpls
set interfaces ge-0/0/2 unit 0 description toCE2
set interfaces lo0 unit 0 family inet address 192.0.2.3/32
set protocols mpls interface all
set protocols ldp interface all
set protocols ospf area 0.0.0.0 interface lo0.0 passive
set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 metric 10
set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 metric 5
set protocols bgp group toInternal type internal
set protocols bgp group toInternal family inet-vpn unicast
set protocols bgp group toInternal local-address 192.0.2.3
set protocols bgp group toInternal neighbor 192.0.2.2
set protocols bgp group toInternal neighbor 192.0.2.4
set routing-options router-id 192.0.2.3
set routing-options autonomous-system 65000
set routing-options forwarding-table export lb
set routing-instances toCE2 instance-type vrf
set routing-instances toCE2 interface ge-0/0/2.0
set routing-instances toCE2 route-distinguisher 65000:1
set routing-instances toCE2 vrf-target target:65000:1
set routing-instances toCE2 vrf-table-label
set routing-instances toCE2 protocols bgp group toCE2 type external
set routing-instances toCE2 protocols bgp group toCE2 peer-as 65002
set routing-instances toCE2 protocols bgp group toCE2 neighbor 10.1.6.22
set routing-instances toCE2 routing-options multipath vpn-unequal-cost equal-external-internal
set policy-options policy-statement lb then load-balance per-packet
Device PE3
set interfaces ge-0/0/1 unit 0 family inet address 10.1.3.10/30
set interfaces ge-0/0/1 unit 0 family mpls
set interfaces ge-0/0/1 unit 0 description toPE1
set interfaces ge-0/0/0 unit 0 family inet address 10.1.5.18/30
set interfaces ge-0/0/0 unit 0 family mpls
set interfaces ge-0/0/0 unit 0 description toP
set interfaces ge-0/0/2 unit 0 family inet address 10.1.7.25/30
set interfaces ge-0/0/2 unit 0 family mpls
set interfaces ge-0/0/2 unit 0 description toCE2
set interfaces ge-0/0/3 unit 0 family inet address 10.1.8.29/30
set interfaces ge-0/0/3 unit 0 family mpls
set interfaces ge-0/0/3 unit 0 description toCE3
set interfaces lo0 unit 0 family inet address 192.0.2.4/32
set protocols mpls interface all
set protocols ldp interface all
set protocols ospf area 0.0.0.0 interface lo0.0 passive
set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 metric 10
set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 metric 5
set protocols bgp group toInternal type internal
set protocols bgp group toInternal local-address 192.0.2.4
set protocols bgp group toInternal family inet-vpn unicast
set protocols bgp group toInternal family route-target
set protocols bgp group toInternal neighbor 192.0.2.2
set protocols bgp group toInternal neighbor 192.0.2.3
set routing-options router-id 192.0.2.4
set routing-options autonomous-system 65000
set routing-options forwarding-table export lb
set routing-instances toCE2_3 instance-type vrf
set routing-instances toCE2_3 interface ge-0/0/2.0
set routing-instances toCE2_3 interface ge-0/0/3.0
set routing-instances toCE2_3 route-distinguisher 65000:1
set routing-instances toCE2_3 vrf-target target:65000:1
set routing-instances toCE2_3 vrf-table-label
set routing-instances toCE2_3 protocols bgp group toCE2 type external
set routing-instances toCE2_3 protocols bgp group toCE2 peer-as 65002
set routing-instances toCE2_3 protocols bgp group toCE2 neighbor 10.1.7.26
set routing-instances toCE2_3 protocols bgp group toCE3 type external
set routing-instances toCE2_3 protocols bgp group toCE3 peer-as 65003
set routing-instances toCE2_3 protocols bgp group toCE3 neighbor 10.1.8.30
set routing-instances toCE2_3 routing-options multipath vpn-unequal-cost equal-external-internal
set policy-options policy-statement lb then load-balance per-packet
Device P
set interfaces ge-0/0/1 unit 0 family inet address 10.1.4.14/30
set interfaces ge-0/0/1 unit 0 family mpls
set interfaces ge-0/0/1 unit 0 description toPE2
set interfaces ge-0/0/0 unit 0 family inet address 10.1.5.17/30
set interfaces ge-0/0/0 unit 0 family mpls
set interfaces ge-0/0/0 unit 0 description toPE3
set interfaces lo0 unit 0 family inet address 192.0.2.5/32
set protocols mpls interface all
set protocols ldp interface all
set protocols ospf area 0.0.0.0 interface lo0.0 passive
set protocols ospf area 0.0.0.0 interface ge-0/0/1.0 metric 5
set protocols ospf area 0.0.0.0 interface ge-0/0/0.0 metric 5
set routing-options router-id 192.0.2.5
set routing-options autonomous-system 65000
Device CE2
set interfaces ge-0/0/1 unit 0 family inet address 10.1.6.22/30
set interfaces ge-0/0/1 unit 0 family mpls
set interfaces ge-0/0/1 unit 0 description toPE2
set interfaces ge-0/0/2 unit 0 family inet address 10.1.7.26/30
set interfaces ge-0/0/2 unit 0 family mpls
set interfaces ge-0/0/2 unit 0 description toPE3
set interfaces lo0 unit 0 family inet address 192.0.2.6/32
set routing-options router-id 192.0.2.6
set routing-options autonomous-system 65002
set protocols bgp group toPE2PE3 type external
set protocols bgp group toPE2PE3 export send-direct
set protocols bgp group toPE2PE3 peer-as 65000
set protocols bgp group toPE2PE3 neighbor 10.1.6.21
set protocols bgp group toPE2PE3 neighbor 10.1.7.25
set policy-options policy-statement send-direct from protocol direct
set policy-options policy-statement send-direct then accept
Device CE3
set interfaces ge-0/0/3 unit 0 family inet address 10.1.8.30/30
set interfaces ge-0/0/3 unit 0 family mpls
set interfaces ge-0/0/3 unit 0 description toPE3
set interfaces lo0 unit 0 family inet address 192.0.2.7/32
set routing-options router-id 192.0.2.7
set routing-options autonomous-system 65003
set protocols bgp group toPE3 type external
set protocols bgp group toPE3 export send-direct
set protocols bgp group toPE3 peer-as 65000
set protocols bgp group toPE3 neighbor 10.1.8.29
set policy-options policy-statement send-direct from protocol direct
set policy-options policy-statement send-direct then accept
Procedimento passo a passo
O exemplo a seguir exige que você navegue por vários níveis na hierarquia de configuração. Para obter informações sobre como navegar na CLI, consulte Usando o Editor de CLI no modo de configuração no Guia do usuário da CLI.
Para configurar o balanceamento de carga de custo desigual em toda a configuração de VPN:
-
Configure a ID do roteador no dispositivo CE1 e atribua o dispositivo ao seu sistema autônomo.
[edit routing-options] user@CE1# set router-id 192.0.2.1 user@CE1# set autonomous-system 65001Da mesma forma, configure todos os outros dispositivos.
-
Configure grupos BGP para tráfego em toda a rede.
-
Configure o grupo BGP para tráfego de e para a rede MPLS (dispositivos CE).
[edit protocols bgp group toPE1] user@CE1# set type external user@CE1# set peer-as 65000 user@CE1# set neighbor 10.1.1.2 -
Configure grupos BGP semelhantes (
to AS 65000etoPE3) nos dispositivos CE2 e CE3 modificando as declarações eneighboraspeer-asdeclarações de acordo. -
Configure o grupo BGP para tráfego por meio da rede MPLS (dispositivos PE).
[edit protocols bgp group toInternal] user@PE1# set type internal user@PE1# set family inet-vpn unicast user@PE1# set local-address 192.0.2.2 user@PE1# set neighbor 192.0.2.3 user@PE1# set neighbor 192.0.2.4 -
Configure o mesmo grupo BGP (
toInternal) nos dispositivos PE2 e PE3 modificando as declarações eneighboraslocal-addressdeclarações de acordo.
-
-
Configure uma política de roteamento para a exportação de rotas de e para a rede MPLS (
send-directpolítica) e uma política de balanceamento de carga de rede de tráfego em toda a rede MPLS (lbpolítica).-
Configure uma política (
send-direct) para exportar rotas da tabela de roteamento para o BGP no dispositivo CE1.[edit policy-options policy-statement send-direct] user@CE1# set from protocol direct user@CE1# set then accept[edit protocols bgp group toPE1] user@CE1# set export send-directDa mesma forma, configure a
send-directpolítica nos dispositivos CE2 e CE3. -
Configure uma política (
lb) para exportar rotas da tabela de roteamento para a tabela de encaminhamento no Dispositivo PE1.A
lbpolítica configura o balanceamento de carga por pacote, que garante que todos os endereços de próximo salto para um destino estejam instalados na tabela de encaminhamento.[edit policy-options policy-statement lb] user@PE1# set then load-balance per-packet[edit routing-options] user@PE1# set forwarding-table export lbDa mesma forma, configure a
lbpolítica nos dispositivos PE2 e PE3.
-
-
Configure o seguinte:
-
Configure a instância de roteamento nos dispositivos DEP para exportar rotas pelos sistemas autônomos.
-
Inclua a
equal-external-internaldeclaração no nível de[edit routing-instances instance-name routing-options multipath vpn-unequal-cost]hierarquia para permitir o balanceamento de carga na rede. -
Inclua a
vrf-table-labeldeclaração no nível de[edit routing-instances instance-name]hierarquia para filtrar o tráfego antes de sair do dispositivo de saída (Dispositivo CE3).
Device PE1
[edit routing-instances toCE1] user@PE1# set instance-type vrf user@PE1# set interface ge-0/0/2.0 user@PE1# set route-distinguisher 65000:1 user@PE1# set vrf-target target:65000:1 user@PE1# set vrf-table-label user@PE1# set protocols bgp group toCE1 type external user@PE1# set protocols bgp group toCE1 peer-as 65001 user@PE1# set protocols bgp group toCE1 neighbor 10.1.1.1 user@PE1# set routing-options multipath vpn-unequal-cost equal-external-internalDevice PE2
[edit routing-instances toCE1] user@PE2# set instance-type vrf user@PE2# set interface ge-0/0/2.0 user@PE2# set route-distinguisher 65000:1 user@PE2# set vrf-target target:65000:1 user@PE2# set vrf-table-label user@PE2# set protocols bgp group toCE2 type external user@PE2# set protocols bgp group toCE2 peer-as 65002 user@PE2# set protocols bgp group toCE2 neighbor 10.1.6.22 user@PE2# set routing-options multipath vpn-unequal-cost equal-external-internalDevice PE3
[edit routing-instances toCE2_3] user@PE3# set instance-type vrf user@PE3# set interface ge-0/0/2.0 user@PE3# set interface ge-0/0/3.0 user@PE3# set route-distinguisher 65000:1 user@PE3# set vrf-target target:65000:1 user@PE3# set vrf-table-label user@PE3# set protocols bgp group toCE2 type external user@PE3# set protocols bgp group toCE2 peer-as 65002 user@PE3# set protocols bgp group toCE2 neighbor 10.1.7.26 user@PE3# set protocols bgp group toCE3 type external user@PE3# set protocols bgp group toCE3 peer-as 65003 user@PE3# set protocols bgp group toCE3 neighbor 10.1.8.30 user@PE3# set routing-options multipath vpn-unequal-cost equal-external-internal -
Resultados
A partir do modo de configuração, confirme sua configuração entrando no show configuration comando. Se a saída não exibir a configuração pretendida, repita as instruções neste exemplo para corrigir a configuração. O seguinte é um trecho da show configuration saída para PE3.
user@PE3#
show configuration
interfaces {
ge-0/0/0 {
unit 0 {
description toP;
family inet {
address 10.1.5.18/30;
}
family mpls;
}
}
ge-0/0/1 {
unit 0 {
description toPE1;
family inet {
address 10.1.3.10/30;
}
family mpls;
}
}
ge-0/0/2 {
unit 0 {
description toCE2;
family inet {
address 10.1.7.25/30;
}
family mpls;
}
}
ge-0/0/3 {
unit 0 {
description toCE3;
family inet {
address 10.1.8.29/30;
}
family mpls;
}
}
lo0 {
unit 0 {
family inet {
address 192.0.2.4/32;
}
}
}
}
policy-options {
policy-statement lb {
then {
load-balance per-packet;
}
}
}
routing-instances {
toCE2_3 {
routing-options {
multipath {
vpn-unequal-cost equal-external-internal;
}
}
protocols {
bgp {
group toCE2 {
type external;
peer-as 65002;
neighbor 10.1.7.26;
}
group toCE3 {
type external;
peer-as 65003;
neighbor 10.1.8.30;
}
}
}
instance-type vrf;
interface ge-0/0/2.0;
interface ge-0/0/3.0;
route-distinguisher 65000:1;
vrf-target target:65000:1;
vrf-table-label;
}
}
routing-options {
forwarding-table {
export lb;
}
router-id 192.0.2.4;
autonomous-system 65000;
}
protocols {
ospf {
area 0.0.0.0 {
interface lo0.0 {
passive;
}
interface ge-0/0/1.0 {
metric 10;
}
interface ge-0/0/0.0 {
metric 5;
}
}
}
bgp {
group toInternal {
type internal;
local-address 192.0.2.4;
family inet-vpn {
unicast;
}
family route-target;
neighbor 192.0.2.2;
neighbor 192.0.2.3;
}
}
ldp {
interface all;
}
mpls {
interface all;
}
}
Se você terminar de configurar o dispositivo, entre no commit modo de configuração.
Verificação
Confirme se a configuração está funcionando corretamente.
Verificação do BGP
Propósito
Verifique se o BGP está funcionando.
Ação
A partir do modo operacional, execute o show route protocol bgp comando.
user@PE3> show route protocol bgp
inet.0: 19 destinations, 19 routes (19 active, 0 holddown, 0 hidden)
inet.3: 3 destinations, 3 routes (3 active, 0 holddown, 0 hidden)
toCE2_3.inet.0: 9 destinations, 14 routes (9 active, 0 holddown, 0 hidden)
@ = Routing Use Only, # = Forwarding Use Only
+ = Active Route, - = Last Active, * = Both
10.1.1.0/30 *[BGP/170] 6d 19:24:16, localpref 100, from 192.0.2.2
AS path: I, validation-state: unverified
> to 10.1.3.9 via ge-0/0/1.0, Push 16
10.1.6.20/30 *[BGP/170] 6d 19:24:12, localpref 100, from 192.0.2.3
AS path: I, validation-state: unverified
> to 10.1.5.17 via ge-0/0/0.0, Push 16, Push 299808(top)
[BGP/170] 6d 17:53:50, localpref 100
AS path: 65002 I, validation-state: unverified
> to 10.1.7.26 via ge-0/0/2.0
10.1.7.24/30 [BGP/170] 6d 17:53:50, localpref 100
AS path: 65002 I, validation-state: unverified
> to 10.1.7.26 via ge-0/0/2.0
10.1.8.28/30 [BGP/170] 6d 17:55:03, localpref 100
AS path: 65003 I, validation-state: unverified
> to 10.1.8.30 via ge-0/0/3.0
192.0.2.1/32 *[BGP/170] 6d 19:24:16, localpref 100, from 192.0.2.2
AS path: 65001 I, validation-state: unverified
> to 10.1.3.9 via ge-0/0/1.0, Push 16
192.0.2.6/32 @[BGP/170] 6d 17:53:50, localpref 100
AS path: 65002 I, validation-state: unverified
> to 10.1.7.26 via ge-0/0/2.0
[BGP/170] 6d 17:53:50, localpref 100, from 192.0.2.3
AS path: 65002 I, validation-state: unverified
> to 10.1.5.17 via ge-0/0/0.0, Push 16, Push 299808(top)
192.0.2.7/32 *[BGP/170] 6d 17:55:03, localpref 100
AS path: 65003 I, validation-state: unverified
> to 10.1.8.30 via ge-0/0/3.0
mpls.0: 12 destinations, 12 routes (12 active, 0 holddown, 0 hidden)
bgp.l3vpn.0: 4 destinations, 4 routes (4 active, 0 holddown, 0 hidden)
+ = Active Route, - = Last Active, * = Both
65000:1:10.1.1.0/30
*[BGP/170] 6d 19:24:16, localpref 100, from 192.0.2.2
AS path: I, validation-state: unverified
> to 10.1.3.9 via ge-0/0/1.0, Push 16
65000:1:10.1.6.20/30
*[BGP/170] 6d 19:24:12, localpref 100, from 192.0.2.3
AS path: I, validation-state: unverified
> to 10.1.5.17 via ge-0/0/0.0, Push 16, Push 299808(top)
65000:1:192.0.2.1/32
*[BGP/170] 6d 19:24:16, localpref 100, from 192.0.2.2
AS path: 65001 I, validation-state: unverified
> to 10.1.3.9 via ge-0/0/1.0, Push 16
65000:1:192.0.2.6/32
*[BGP/170] 6d 17:53:50, localpref 100, from 192.0.2.3
AS path: 65002 I, validation-state: unverified
> to 10.1.5.17 via ge-0/0/0.0, Push 16, Push 299808(top)
inet6.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)
toCE2_3.inet6.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)
bgp.rtarget.0: 2 destinations, 2 routes (2 active, 0 holddown, 0 hidden)
A saída lista as rotas BGP instaladas na tabela de roteamento. As linhas de saída que começam com 192.0.2.1/32, 10.1.1.0/30e 65000:1:192.0.2.1/32 mostram as rotas BGP para o Dispositivo CE1, que está em AS 65001. As linhas de saída que começam com 192.0.2.6/32, 65000:1:192.0.2.6/32e 65000:1:10.1.6.20/30 mostram as rotas BGP para o dispositivo CE2, que está em AS 65002. A linha de saída que começa com 192.0.2.7/32 mostra a rota BGP para o dispositivo CE3, que está no AS 65003.
Significado
O BGP é funcional na rede.
Verificação do balanceamento de carga
Propósito
Verifique se o encaminhamento está ocorrendo em ambas as direções, verificando:
-
Se ambos os próximos saltos forem instalados na tabela de encaminhamento para uma rota.
-
Se as rotas BGP externas forem instaladas na tabela de encaminhamento para uma rota.
Ação
Do modo operacional, execute e show route forwarding-table show route forwarding-table destination <destination IP> comandos.
user@PE3> show route forwarding-table
Routing table: default.inet
Internet:
Destination Type RtRef Next hop Type Index NhRef Netif
default perm 1 rjct 36 2
0.0.0.0/32 perm 0 dscd 34 1
10.1.2.4/30 user 0 ulst 1048576 2
10.1.5.17 ucst 625 12 ge-0/0/0.0
10.1.3.9 ucst 617 8 ge-0/0/1.0
10.1.3.8/30 intf 0 rslv 604 1 ge-0/0/1.0
10.1.3.8/32 dest 0 10.1.3.8 recv 602 1 ge-0/0/1.0
10.1.3.9/32 dest 0 0:50:56:93:63:e7 ucst 617 8 ge-0/0/1.0
10.1.3.10/32 intf 0 10.1.3.10 locl 603 2
10.1.3.10/32 dest 0 10.1.3.10 locl 603 2
10.1.3.11/32 dest 0 10.1.3.11 bcst 601 1 ge-0/0/1.0
10.1.4.12/30 user 0 10.1.5.17 ucst 625 12 ge-0/0/0.0
10.1.5.16/30 intf 0 rslv 600 1 ge-0/0/0.0
10.1.5.16/32 dest 0 10.1.5.16 recv 598 1 ge-0/0/0.0
10.1.5.17/32 dest 0 0:50:56:93:f8:ff ucst 625 12 ge-0/0/0.0
10.1.5.18/32 intf 0 10.1.5.18 locl 599 2
10.1.5.18/32 dest 0 10.1.5.18 locl 599 2
10.1.5.19/32 dest 0 10.1.5.19 bcst 597 1 ge-0/0/0.0
192.0.2.2/32 user 1 10.1.3.9 ucst 617 8 ge-0/0/1.0
192.0.2.3/32 user 1 10.1.5.17 ucst 625 12 ge-0/0/0.0
192.0.2.4/32 intf 0 192.0.2.4 locl 607 1
192.0.2.5/32 user 1 10.1.5.17 ucst 625 12 ge-0/0/0.0
224.0.0.0/4 perm 1 mdsc 35 1
224.0.0.1/32 perm 0 224.0.0.1 mcst 31 5
224.0.0.2/32 user 1 224.0.0.2 mcst 31 5
224.0.0.5/32 user 1 224.0.0.5 mcst 31 5
255.255.255.255/32 perm 0 bcst 32 1
Routing table: __master.anon__.inet
Internet:
Destination Type RtRef Next hop Type Index NhRef Netif
default perm 0 rjct 524 1
0.0.0.0/32 perm 0 dscd 522 1
224.0.0.0/4 perm 0 mdsc 523 1
224.0.0.1/32 perm 0 224.0.0.1 mcst 526 1
255.255.255.255/32 perm 0 bcst 527 1
Routing table: toCE2_3.inet
Internet:
Destination Type RtRef Next hop Type Index NhRef Netif
default perm 0 rjct 566 1
0.0.0.0/32 perm 0 dscd 564 1
10.1.1.0/30 user 0 indr 1048574 3
10.1.3.9 Push 16 623 2 ge-0/0/1.0
10.1.6.20/30 user 0 indr 1048575 3
10.1.5.17 Push 16, Push 299808(top) 629 2 ge-0/0/0.0
10.1.7.24/30 intf 0 rslv 616 1 ge-0/0/2.0
10.1.7.24/32 dest 0 10.1.7.24 recv 614 1 ge-0/0/2.0
10.1.7.25/32 intf 0 10.1.7.25 locl 615 2
10.1.7.25/32 dest 0 10.1.7.25 locl 615 2
10.1.7.26/32 dest 1 0:50:56:93:86:18 ucst 618 4 ge-0/0/2.0
10.1.7.27/32 dest 0 10.1.7.27 bcst 613 1 ge-0/0/2.0
10.1.8.28/30 intf 0 rslv 612 1 ge-0/0/3.0
10.1.8.28/32 dest 0 10.1.8.28 recv 610 1 ge-0/0/3.0
10.1.8.29/32 intf 0 10.1.8.29 locl 611 2
10.1.8.29/32 dest 0 10.1.8.29 locl 611 2
10.1.8.30/32 dest 1 0:50:56:93:bb:ed ucst 622 4 ge-0/0/3.0
10.1.8.31/32 dest 0 10.1.8.31 bcst 609 1 ge-0/0/3.0
192.0.2.1/32 user 0 indr 1048574 3
10.1.3.9 Push 16 623 2 ge-0/0/1.0
192.0.2.6/32 user 0 ulst 1048577 2
10.1.7.26 ucst 618 4 ge-0/0/2.0
indr 1048575 3
10.1.5.17 Push 16, Push 299808(top) 629 2 ge-0/0/0.0
192.0.2.7/32 user 0 10.1.8.30 ucst 622 4 ge-0/0/3.0
224.0.0.0/4 perm 0 mdsc 565 1
224.0.0.1/32 perm 0 224.0.0.1 mcst 568 1
255.255.255.255/32 perm 0 bcst 569 1
...
default.inet Na tabela de roteamento, que é a tabela de encaminhamento, a linha de saída que começa com 10.1.2.4/30 mostra que, para uma rota para o Dispositivo PE2 no mesmo QUE, dois saltos seguintes estão instalados na tabela: 10.1.3.9 e10.1.5.17.
toCE2_3.inet Na tabela de roteamento, que é a tabela de roteamento externa, a linha de saída que começa com 192.0.2.6/32 mostra que para uma rota para o Dispositivo CE2 no AS 65002, um próximo salto 10.1.5.17 interno e um próximo salto 10.1.7.26 externo estão instalados na mesa. Isso indica que as rotas BGP internas e externas estão operacionais na rede.
user@PE3> show route forwarding-table destination 10.1.2.6
Routing table: default.inet
Internet:
Destination Type RtRef Next hop Type Index NhRef Netif
10.1.2.4/30 user 0 ulst 1048576 2
10.1.5.17 ucst 625 12 ge-0/0/0.0
10.1.3.9 ucst 617 8 ge-0/0/1.0
Routing table: __pfe_private__.inet
Internet:
Destination Type RtRef Next hop Type Index NhRef Netif
default perm 0 dscd 513 2
Routing table: __master.anon__.inet
Internet:
Destination Type RtRef Next hop Type Index NhRef Netif
default perm 0 rjct 524 1
Routing table: __juniper_services__.inet
Internet:
Destination Type RtRef Next hop Type Index NhRef Netif
default perm 0 dscd 546 2
Routing table: toCE2_3.inet
Internet:
Destination Type RtRef Next hop Type Index NhRef Netif
default perm 0 rjct 630 1
A linha de saída que começa com 10.1.2.4/30 mostra que para uma rota do Dispositivo PE3 para o Dispositivo PE2 no mesmo AS, dois saltos seguintes são instalados na tabela: 10.1.3.9 através da ge-0/0/1.0 interface e 10.1.5.17 através da ge-2/1/10.18 interface.
Significado
Vários saltos seguintes para uma rota, incluindo rotas BGP externas, estão instalados nas tabelas de encaminhamento.
Configuração de balanceamento de carga independente de protocolo em VPNs de camada 3
O balanceamento de carga independente de protocolo para VPNs de Camada 3 permite que os próximos saltos de encaminhamento da rota ativa e caminhos alternativos sejam usados para balanceamento de carga. O balanceamento de carga independente de protocolo funciona em conjunto com VPNs de Camada 3. Ele oferece suporte ao balanceamento de carga das rotas de VPN independentemente do diferencial de rota atribuído. Quando o balanceamento de carga independente de protocolo é habilitado, ambas as rotas para outros roteadores PE e rotas para roteadores CE conectados diretamente são balanceadas.
Quando as informações de balanceamento de carga são criadas para uma determinada rota, o caminho ativo é marcado como Routing Use Only na saída do show route table comando.
As seções a seguir descrevem como configurar o balanceamento de carga independente de protocolo e como essa configuração pode afetar as políticas de roteamento:
- Configuração do balanceamento de carga para VPNs de camada 3
- Configuração de políticas de balanceamento e roteamento de carga
Configuração do balanceamento de carga para VPNs de camada 3
A configuração do balanceamento de carga independente de protocolo para VPNs de Camada 3 é um pouco diferente para IPv4 versus IPv6:
IPv4 — Você só precisa configurar a
multipathdeclaração no nível de[edit routing-instances routing-instance-name routing-options]hierarquia ou no nível de[edit routing-instances routing-instance-name routing-options rib routing-table-name]hierarquia.IPv6 — Você precisa configurar a
multipathdeclaração tanto no nível de[edit routing-instances routing-instance-name routing-options]hierarquia quanto no nível de[edit routing-instances routing-instance-name routing-options rib routing-table-name]hierarquia.
Você não pode configurar a multipath declaração e as subconduções ao mesmo tempo em que configurou a declaração l3vpn .
Para configurar o balanceamento de carga independente de protocolo para VPNs de Camada 3, inclua a multipath declaração:
multipath { vpn-unequal-cost equal-external-internal; }
Quando você inclui a multipath declaração nos seguintes níveis de hierarquia, o balanceamento de carga independente de protocolo é aplicado à tabela de roteamento padrão para aquela instância de roteamento (routing-instance-name.inet.0):
[edit routing-instances routing-instance-name routing-options][edit logical-systems logical-system-name routing-instances routing-instance-name routing-options]
O [edit logical-systems] nível de hierarquia não é aplicável nos roteadores da Série ACX.
Quando você inclui a multipath declaração nos seguintes níveis de hierarquia, o balanceamento de carga independente de protocolo é aplicado à tabela de roteamento especificada:
[edit routing-instances routing-instance-name routing-options rib routing-table-name][edit logical-systems logical-system-name routing-instances routing-instance-name routing-options rib routing-table-name]
O [edit logical-systems] nível de hierarquia não é aplicável nos roteadores da Série ACX.
A vpn-unequal-cost declaração é opcional:
Quando você a inclui, o balanceamento de carga independente de protocolo é aplicado a rotas vpn que são iguais até a métrica de IGP no que diz respeito à seleção de rotas.
Quando você não o inclui, o balanceamento de carga independente de protocolo é aplicado a rotas de VPN iguais até o identificador do roteador no que diz respeito à seleção de rotas.
A vpn-unequal-cost declaração não é aplicável em roteadores da Série ACX.
A equal-external-internal declaração também é opcional. Quando você a inclui, o balanceamento de carga independente de protocolo é aplicado a caminhos BGP internos e externos. Você pode configurar isso em conjunto com a filtragem de cabeçalho IP de saída (habilitada com a vrf-table-label declaração). Para obter mais informações, veja balanceamento de carga e filtragem de cabeçalho IP para VPNs de Camada 3.
Você pode incluir a vpn-unequal-cost equal-external-internal declaração e a l3vpn declaração no nível de [edit routing-options forwarding-options chained-composite-next-hop ingress] hierarquia simultaneamente. No entanto, se você fizer isso, o EBGP não funciona. Isso significa que, quando existem ambos os caminhos com próximos saltos e caminhos encadeados com próximos saltos sem cadeira como candidatos ao multicaminho de custo igual (ECMP) da EBGP, os caminhos que usam próximos saltos encadeados são excluídos. Em um caso típico, os caminhos excluídos são os caminhos internos.
Configuração de políticas de balanceamento e roteamento de carga
Se você habilitar o balanceamento de carga independente de protocolo para VPNs de Camada 3, incluindo a multipath declaração e se você também incluir a load-balance per-packet declaração na configuração da política de roteamento, os pacotes não serão equilibrados.
Por exemplo, um roteador PE tem a seguinte instância de roteamento VRF configurada:
[edit routing-instances]
load-balance-example {
instance-type vrf;
interface fe-0/1/1.0;
interface fe-0/1/1.1;
route-distinguisher 2222:2;
vrf-target target:2222:2;
routing-options {
multipath;
}
protocols {
bgp {
group group-example {
import import-policy;
family inet {
unicast;
}
export export-policy;
peer-as 4444;
local-as 3333;
multipath;
as-override;
neighbor 10.12.33.22;
}
}
}
}
O roteador PE também tem a seguinte declaração de política configurada:
[edit policy-options policy-statement export-policy]
from protocol bgp;
then {
load-balance per-packet;
}
Quando você inclui a multipath declaração na configuração da instância de roteamento VRF, os caminhos não estão mais marcados como caminhos BGP, mas sim marcados como caminhos multicaminhos. Os pacotes do roteador PE não são equilibrados em carga.
Para garantir que as funções de balanceamento de carga de VPN, como esperado, não incluam a from protocol declaração na configuração da declaração de política. A declaração de política deve ser configurada da seguinte forma:
[edit policy-options policy-statement export-policy]
then {
load-balance per-packet;
}
Para obter mais informações sobre como configurar o balanceamento de carga por pacote, consulte as políticas de roteamento, filtros de firewall e guia de usuário dos policiais de tráfego.
Exemplo: configuração do PIM junte-se ao balanceamento de carga na VPN multicast de próxima geração
Este exemplo mostra como configurar o roteamento multicaminho para rotas externas e internas de redes virtuais privadas (VPN) com métricas de protocolo de gateway interior (IGP) desiguais e o Protocol Independent Multicast (PIM) juntam-se aos roteadores de borda de provedor (PE) que executam VPN multicast de próxima geração (MVPN). Esse recurso permite que o CLIENTE PIM (C-PIM) junte mensagens para ser equilibrado em carga em caminhos de upstream internos BGP (IBGP) disponíveis quando não houver nenhum caminho BGP (EBGP) externo presente, e em caminhos de upstream EBGP disponíveis quando caminhos BGP externos e internos (EIBGP) estão presentes em direção ao ponto de origem ou ponto de encontro (RP).
Requisitos
Este exemplo usa os seguintes componentes de hardware e software:
Três roteadores que podem ser uma combinação de roteadores série M, Série MX ou Série T.
Junos OS Release 12.1 em execução em todos os dispositivos.
Antes de começar:
Configure as interfaces do dispositivo.
Configure os seguintes protocolos de roteamento em todos os roteadores PE:
OSPF
MPLS
LDP
PIM
BGP
Configure uma VPN multicast.
Visão geral e topologia
O Junos OS Release 12.1 e posteriormente suportam a configuração multicaminho, juntamente com o PIM, juntamente com o balanceamento de carga. Isso permite que as mensagens de junção do C-PIM sejam balanceadas em todos os caminhos de IBGP disponíveis quando há apenas caminhos IBGP presentes e em todos os caminhos de EBGP upstream disponíveis quando os caminhos EIBGP estão presentes em direção à fonte (ou RP). Ao contrário do MVPN do Draft-Rosen, a MVPN de próxima geração não utiliza caminhos de EIBGP desiguais para enviar mensagens de adesão ao C-PIM. Este recurso é aplicável às mensagens de junção de C-PIM IPv4.
Por padrão, apenas um caminho IBGP ativo é usado para enviar mensagens de junção de C-PIM para um roteador PE com apenas caminhos IBGP em direção à fonte (ou RP). Quando há caminhos upstream do EIBGP presentes, apenas um caminho EBGP ativo é usado para enviar as mensagens de junção.
Em uma MVPN de próxima geração, as mensagens de junção de C-PIM são traduzidas em (ou codificadas como) rotas MVPN multicast para clientes BGP (C-multicast) e anunciadas com a família de endereços BGP MCAST-VPN em direção aos roteadores PE do remetente. Um roteador PE origina uma rota MVPN C-multicast em resposta ao recebimento de uma mensagem de junção C-PIM por meio de sua interface de roteador PE para a borda do cliente (CE). Os dois tipos de rotas MVPN C-multicast são:
Rota de junção de árvore compartilhada (C-*, C-G)
Originado por roteadores RECEPTOR PE.
Originou-se quando um roteador PE recebe uma mensagem de junção C-PIM de árvore compartilhada por meio de sua interface de roteador PE-CE.
Rota de junção de árvores de origem (C-S, C-G)
Originado por roteadores RECEPTOR PE.
Originou-se quando um roteador PE recebe uma mensagem de junção C-PIM de árvore de origem (C-S, C-G), ou originada pelo roteador PE que já tem uma rota de junção de árvore compartilhada e recebe uma rota de autodiscovamento ativa de origem.
O caminho upstream em um MVPN de próxima geração é selecionado usando o algoritmo de hash Bytewise-XOR conforme especificado no draft de Internet draft-ietf-l3vpn-2547bis-mcast, Multicast in MPLS/BGP IP VPNs. O algoritmo de hash é executado da seguinte forma:
Os roteadores PE no conjunto de candidatos são numerados de endereço IP inferior a superior, a partir de 0.
Um bytewise exclusivo ou de todos os bytes é realizado no endereço C-root (fonte) e C-G (grupo).
O resultado é modulo n, onde n está o número de roteadores PE no conjunto do candidato. O resultado é N.
N representa o endereço IP do roteador UPstream PE como numerado na Etapa 1.
Durante o balanceamento de carga, se um roteador PE com um ou mais caminhos de IBGP upstream em direção à fonte (ou RP) descobrir um novo caminho ibGP em direção à mesma fonte (ou RP), o C-PIM junta mensagens distribuídas entre caminhos IBGP anteriormente existentes são redistribuídas devido à mudança no conjunto do roteador PE candidato.
Neste exemplo, PE1, PE2 e PE3 são os roteadores PE que têm o PIM multicaminho configurado no recurso de balanceamento de carga. O roteador PE1 tem dois caminhos EBGP e um caminho de upstream do IBGP, PE2 tem um caminho de EBGP e um caminho de upstream do IBGP, e PE3 tem dois caminhos de upstream do IBGP em direção à Fonte. O roteador CE4 é o roteador de borda do cliente (CE) conectado ao PE3. Fonte e receptor são os hosts BSD gratuitos.
Em roteadores PE que possuem caminhos EIBGP em direção à fonte (ou RP), como PE1 e PE2, o balanceamento de carga do PIM é executado da seguinte forma:
As mensagens de junção do C-PIM são enviadas apenas usando caminhos EBGP. Os caminhos do IBGP não são usados para propagar as mensagens de junção.
Na Figura 2, o roteador PE1 distribui as mensagens de junção entre os dois caminhos EBGP para o roteador CE1, e o PE2 usa o caminho EBGP para CE1 para enviar as mensagens de junção.
Se um roteador PE perder um ou mais caminhos de EBGP em direção à fonte (ou RP), o vizinho RPF na interface de túnel multicast é selecionado com base em um mecanismo de hash.
Ao descobrir o primeiro caminho EBGP, apenas novas mensagens de junção são balanceadas em caminhos EBGP disponíveis, enquanto as mensagens de junção existentes na interface de túnel multicast não são redistribuídas.
Se o caminho de EBGP do roteador PE2 para o roteador CE1 cair, o PE2 envia as mensagens de junção para PE1 usando o caminho IBGP. Quando o caminho do EBGP para o CE1 é restabelecido, apenas novas mensagens de adesão que chegam ao PE2 usam o caminho EBGP restaurada, enquanto as mensagens de adesão já enviadas no caminho do IBGP não são redistribuídas.
Em roteadores PE que possuem apenas caminhos IBGP em direção à fonte (ou RP), como o roteador PE3, o pim junta o balanceamento de carga é executado da seguinte forma:
Os C-PIM juntam-se a mensagens dos roteadores CE que ficam equilibrados apenas com as mensagens de dados BGP C-multicast entre os caminhos do IBGP.
Na Figura 2, assumindo que o host CE4 esteja interessado em receber tráfego da Fonte, e o CE4 inicie mensagens de participação de fontes para diferentes grupos (Grupo 1 [C-S,C-G1] e Grupo 2 [C-S,C-G2]), a fonte junta mensagens chegam ao roteador PE3.
O roteador PE3 então usa o algoritmo de hash Bytewise-XOR para selecionar o roteador PE upstream para enviar os dados C-multicast para cada grupo. O algoritmo inicialmente numera os roteadores upstream PE de endereço IP mais baixo a superior a partir de 0.
Assumindo que o roteador PE1 está numerado 0 e o Roteador PE2 é 1, e o resultado de hash para o Grupo 1 e Grupo 2 juntam mensagens é 0 e 1, respectivamente, o roteador PE3 seleciona PE1 como o roteador PE upstream para enviar mensagens de junção do Grupo 1, e PE2 como o roteador PE upstream para enviar mensagens de junção do Grupo 2 para a Fonte.
As mensagens de junção compartilhadas para diferentes grupos [C-*,C-G] também são tratadas de maneira semelhante para chegar ao destino.
de próxima geração
Configuração
Configuração rápida da CLI
Para configurar rapidamente este exemplo, copie os seguintes comandos, cole-os em um arquivo de texto, remova quaisquer quebras de linha, altere todos os detalhes necessários para combinar com a configuração da sua rede, copiar e colar os comandos na CLI no nível de [edit] hierarquia e, em seguida, entrar no commit modo de configuração.
PE1
set routing-instances vpn1 instance-type vrf set routing-instances vpn1 interface ge-3/0/1.0 set routing-instances vpn1 interface ge-3/3/2.0 set routing-instances vpn1 interface lo0.1 set routing-instances vpn1 route-distinguisher 1:1 set routing-instances vpn1 provider-tunnel rsvp-te label-switched-path-template default-template set routing-instances vpn1 vrf-target target:1:1 set routing-instances vpn1 vrf-table-label set routing-instances vpn1 routing-options multipath vpn-unequal-cost equal-external-internal set routing-instances vpn1 protocols bgp export direct set routing-instances vpn1 protocols bgp group bgp type external set routing-instances vpn1 protocols bgp group bgp local-address 10.40.10.1 set routing-instances vpn1 protocols bgp group bgp family inet unicast set routing-instances vpn1 protocols bgp group bgp neighbor 10.40.10.2 peer-as 3 set routing-instances vpn1 protocols bgp group bgp1 type external set routing-instances vpn1 protocols bgp group bgp1 local-address 10.10.10.1 set routing-instances vpn1 protocols bgp group bgp1 family inet unicast set routing-instances vpn1 protocols bgp group bgp1 neighbor 10.10.10.2 peer-as 3 set routing-instances vpn1 protocols pim rp static address 10.255.10.119 set routing-instances vpn1 protocols pim interface all set routing-instances vpn1 protocols pim join-load-balance set routing-instances vpn1 protocols mvpn mvpn-mode rpt-spt set routing-instances vpn1 protocols mvpn mvpn-join-load-balance bytewise-xor-hash
PE2
set routing-instances vpn1 instance-type vrf set routing-instances vpn1 interface ge-1/0/9.0 set routing-instances vpn1 interface lo0.1 set routing-instances vpn1 route-distinguisher 2:2 set routing-instances vpn1 provider-tunnel rsvp-te label-switched-path-template default-template set routing-instances vpn1 vrf-target target:1:1 set routing-instances vpn1 vrf-table-label set routing-instances vpn1 routing-options multipath vpn-unequal-cost equal-external-internal set routing-instances vpn1 protocols bgp export direct set routing-instances vpn1 protocols bgp group bgp local-address 10.50.10.2 set routing-instances vpn1 protocols bgp group bgp family inet unicast set routing-instances vpn1 protocols bgp group bgp neighbor 10.50.10.1 peer-as 3 set routing-instances vpn1 protocols pim rp static address 10.255.10.119 set routing-instances vpn1 protocols pim interface all set routing-instances vpn1 protocols mvpn mvpn-mode rpt-spt set routing-instances vpn1 protocols mvpn mvpn-join-load-balance bytewise-xor-hash
PE3
set routing-instances vpn1 instance-type vrf set routing-instances vpn1 interface ge-0/0/8.0 set routing-instances vpn1 interface lo0.1 set routing-instances vpn1 route-distinguisher 3:3 set routing-instances vpn1 provider-tunnel rsvp-te label-switched-path-template default-template set routing-instances vpn1 vrf-target target:1:1 set routing-instances vpn1 vrf-table-label set routing-instances vpn1 routing-options multipath vpn-unequal-cost equal-external-internal set routing-instances vpn1 routing-options autonomous-system 1 set routing-instances vpn1 protocols bgp export direct set routing-instances vpn1 protocols bgp group bgp type external set routing-instances vpn1 protocols bgp group bgp local-address 10.80.10.1 set routing-instances vpn1 protocols bgp group bgp family inet unicast set routing-instances vpn1 protocols bgp group bgp neighbor 10.80.10.2 peer-as 2 set routing-instances vpn1 protocols pim rp static address 10.255.10.119 set routing-instances vpn1 protocols pim interface all set routing-instances vpn1 protocols mvpn mvpn-mode rpt-spt set routing-instances vpn1 protocols mvpn mvpn-join-load-balance bytewise-xor-hash
Procedimento
Procedimento passo a passo
O exemplo a seguir exige que você navegue por vários níveis na hierarquia de configuração. Para obter informações sobre como navegar na CLI, consulte Usando o Editor de CLI no modo de configuração. Para configurar o roteador PE1:
Repita este procedimento para todos os roteadores da Juniper Networks no domínio MVPN, depois de modificar os nomes, endereços e quaisquer outros parâmetros apropriados para cada roteador.
Configure uma instância de roteamento de roteamento de roteamento VPN (VRF).
[edit routing-instances vpn1] user@PE1# set instance-type vrf user@PE1# set interface ge-3/0/1.0 user@PE1# set interface ge-3/3/2.0 user@PE1# set interface lo0.1 user@PE1# set route-distinguisher 1:1 user@PE1# set provider-tunnel rsvp-te label-switched-path-template default-template user@PE1# set vrf-target target:1:1 user@PE1# set vrf-table-labelHabilite o balanceamento de carga independente de protocolo para a instância VRF.
[edit routing-instances vpn1] user@PE1# set routing-options multipath vpn-unequal-cost equal-external-internalConfigure grupos BGP e vizinhos para permitir o roteamento pe para CE.
[edit routing-instances vpn1 protocols] user@PE1# set bgp export direct user@PE1# set bgp group bgp type external user@PE1# set bgp group bgp local-address 10.40.10.1 user@PE1# set bgp group bgp family inet unicast user@PE1# set bgp group bgp neighbor 10.40.10.2 peer-as 3 user@PE1# set bgp group bgp1 type external user@PE1# set bgp group bgp1 local-address 10.10.10.1 user@PE1# set bgp group bgp1 family inet unicast user@PE1# set bgp group bgp1 neighbor 10.10.10.2 peer-as 3Configure o PIM para habilitar o roteamento multicast de PE a CE.
[edit routing-instances vpn1 protocols] user@PE1# set pim rp static address 10.255.10.119Habilite o PIM em todas as interfaces de rede.
[edit routing-instances vpn1 protocols] user@PE1# set pim interface allHabilite o PIM para juntar balanceamento de carga para a instância VRF.
[edit routing-instances vpn1 protocols] user@PE1# set pim join-load-balanceConfigure o modo para que o C-PIM junte mensagens para usar árvores de ponto de encontro e mude para a árvore de caminho mais curto após a origem ser conhecida.
[edit routing-instances vpn1 protocols] user@PE1# set mvpn mvpn-mode rpt-sptConfigure a instância VRF para usar o algoritmo de hash Bytewise-XOR.
[edit routing-instances vpn1 protocols] user@PE1# set mvpn mvpn-join-load-balance bytewise-xor-hash
Resultados
A partir do modo de configuração, confirme sua configuração inserindo o comando de instâncias de roteamento show . Se a saída não exibir a configuração pretendida, repita as instruções neste exemplo para corrigir a configuração.
user@PE1# show routing-instances
routing-instances {
vpn1 {
instance-type vrf;
interface ge-3/0/1.0;
interface ge-3/3/2.0;
interface lo0.1;
route-distinguisher 1:1;
provider-tunnel {
rsvp-te {
label-switched-path-template {
default-template;
}
}
}
vrf-target target:1:1;
vrf-table-label;
routing-options {
multipath {
vpn-unequal-cost equal-external-internal;
}
}
protocols {
bgp {
export direct;
group bgp {
type external;
local-address 10.40.10.1;
family inet {
unicast;
}
neighbor 10.40.10.2 {
peer-as 3;
}
}
group bgp1 {
type external;
local-address 10.10.10.1;
family inet {
unicast;
}
neighbor 10.10.10.2 {
peer-as 3;
}
}
}
pim {
rp {
static {
address 10.255.10.119;
}
}
interface all;
join-load-balance;
}
mvpn {
mvpn-mode {
rpt-spt;
}
mvpn-join-load-balance {
bytewise-xor-hash;
}
}
}
}
Se você terminar de configurar o dispositivo, insira o commit a partir do modo de configuração.
Verificação
Confirme se a configuração está funcionando corretamente.
Verificação das informações de rota C-Multicast da MVPN para diferentes grupos de mensagens de junção
Propósito
Verifique as informações de rota C-multicast da MVPN para diferentes grupos de mensagens recebidas no roteador PE3.
Ação
A partir do modo operacional, execute o show mvpn comando c-multicast .
user@PE3>
MVPN instance:
Legend for provider tunnel
I-P-tnl -- inclusive provider tunnel S-P-tnl -- selective provider tunnel
Legend for c-multicast routes properties (Pr)
DS -- derived from (*, c-g) RM -- remote VPN route
Family : INET
Instance : vpn1
MVPN Mode : RPT-SPT
C-mcast IPv4 (S:G) Ptnl St
0.0.0.0/0:203.0.113.1/24 RSVP-TE P2MP:10.255.10.2, 5834,10.255.10.2
192.0.2.2/24:203.0.113.1/24 RSVP-TE P2MP:10.255.10.2, 5834,10.255.10.2
0.0.0.0/0:203.0.113.2/24 RSVP-TE P2MP:10.255.10.14, 47575,10.255.10.14
192.0.2.2/24:203.0.113.2/24 RSVP-TE P2MP:10.255.10.14, 47575,10.255.10.14
Significado
A saída mostra como o roteador PE3 equilibrou a carga dos dados C-multicast para os diferentes grupos.
Para obter mensagens de junção de fonte (S,G):
192.0.2.2/24:203.0.113.1/24 (S,G1) em direção ao roteador PE1 (10.255.10.2 é o endereço de loopback do Roteador PE1).
192.0.2.2/24:203.0.113.2/24 (S,G2) em direção ao roteador PE2 (10.255.10.14 é o endereço de loopback do Roteador PE2).
Para mensagens de junção compartilhadas (*,G):
0.0.0.0/0:203.0.113.1/24 (*,G1) em direção ao roteador PE1 (10.255.10.2 é o endereço de loopback do Roteador PE1).
0.0.0.0/0:203.0.113.2/24 (*,G2) em direção ao roteador PE2 (10.255.10.14 é o endereço de loopback do Roteador PE2).