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 hops para mudanças de destino, esse processo de seleção (usando o mesmo algoritmo de hash) é repetido para escolher o melhor endereço de next-hop único usando o mesmo algoritmo de hash.
Como alternativa, você pode configurar o software Junos OS para espalhar o tráfego VPN pelos vários 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 sejam 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 fluxos de tráfego em vários caminhos.
O tráfego é distribuído por 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.
Aplicativo |
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 desabilitar |
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 |
Aplicativo |
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çalhos 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 filtragem de tráfego com base no cabeçalho IP. Isso permite configurar filtros e policiadores no roteador PE de saída para tráfego que está sendo balanceado simultaneamente 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 seu índice de interface.
Se você também tiver configurado um redirecionamento rápido, esteja ciente do seguinte comportamento:
Se um caminho do IBGP cair, ele pode ser substituído por um caminho EBGP ativo ou por um caminho de IBGP ativo.
Se um caminho de 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, a EBGP não funciona. Isso significa que, quando existem ambos os caminhos com nexthops acorrentados e caminhos com nexthops não cadeados como candidatos a multicaminho de custo igual (ECMP) EBGP, os caminhos usando 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 por 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 escolhe 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 às 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 tráfego VPN de Camada 3 ao mesmo tempo em que usa 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çalhos IP.
Requisitos
Este exemplo requer os seguintes componentes de hardware e software:
Roteadores de borda multisserviços da Série M (somente M120 e M320), plataformas de roteamento universal 5G da Série M, roteadores de núcleo da Série T ou roteadores de transporte da Série PTX.
Junos OS Versão 12.1 ou posterior
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çalhos 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 o 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çalhos 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 em 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 estão configurados por meio da rede. O OSPF é o protocolo de gateway interior (IGP) 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çalhos IP é ativada quando a vrf-table-label
declaração é configurada no nível de [edit routing-instances instance-name]
hierarquia nos dispositivos PE.
A Figura 1 mostra a topologia usada neste exemplo.
Topologia
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 de CLI
Para configurar este exemplo rapidamente, 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 sua configuração de 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 a navegação na CLI, consulte o uso do Editor de CLI no modo de configuração no Guia de Usuário da CLI.
Para configurar o balanceamento de carga de custo desiguais na configuração de VPN:
Configure o 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 65001
Da 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 65000
etoPE3
) em dispositivos CE2 e CE3 modificando as declarações eneighbor
aspeer-as
declaraçõ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 eneighbor
aslocal-address
declarações de acordo.
Configure uma política de roteamento para exportação de rotas de e para a rede MPLS (
send-direct
política) e uma política de balanceamento de carga de rede de tráfego em toda a rede MPLS (lb
polí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-direct
Da mesma forma, configure a
send-direct
política em 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
lb
política configura o balanceamento de carga por pacote, o que garante que todos os endereços de próximo salto para um destino sejam 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 lb
Da mesma forma, configure a
lb
política nos dispositivos PE2 e PE3.
Configure o seguinte:
Configure a instância de roteamento nos dispositivos PE para exportação de rotas através dos sistemas autônomos.
Inclua 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.Inclua a
vrf-table-label
declaraçã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-internal
Device 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-internal
Device 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. A seguir, 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 terminar de configurar o dispositivo, entre no commit
modo de configuração.
Verificação
Confirme se a configuração está funcionando corretamente.
Verificando o BGP
Propósito
Verifique se o BGP está funcionando.
Ação
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á no 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á no 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 o e show route forwarding-table destination <destination IP> os show route forwarding-table 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 AS, dois próximos saltos estão instalados na tabela: 10.1.3.9 e 10.1.5.17.
toCE2_3.inet Na tabela de roteamento, que é a tabela de roteamento externo, 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 hop 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 ao Dispositivo PE2 no mesmo AS, dois próximos hops são instalados na tabela: 10.1.3.9 pela ge-0/0/1.0 interface e 10.1.5.17 pela ge-2/1/10.18 interface.
Significado
Vários próximos saltos 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 dos caminhos alternativos sejam usados para o 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 distinguidor de rotas atribuído. Quando o balanceamento de carga independente de protocolo é ativado, 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 do protocolo e como essa configuração pode afetar as políticas de roteamento:
- Configuração de balanceamento de carga para VPNs de Camada 3
- Configuração de políticas de balanceamento e roteamento de carga
Configuração de 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
multipath
declaração no nível de[edit routing-instances routing-instance-name routing-options]
hierarquia ou no nível hierárquico[edit routing-instances routing-instance-name routing-options rib routing-table-name]
.IPv6 — Você precisa configurar a
multipath
declaraçã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 em 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 em roteadores da Série ACX.
A vpn-unequal-cost
declaração é opcional:
Quando você incluí-lo, o balanceamento de carga independente de protocolo é aplicado a rotas VPN 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 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ê incluí-lo, o balanceamento de carga independente de protocolo é aplicado a caminhos BGP internos e externos. Você pode configurá-lo 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, consulte balanceamento de carga e filtragem de cabeçalhos 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, a EBGP não funciona. Isso significa que, quando existem ambos os caminhos com próximos hops e caminhos acorrentados com próximos hops sem cadeira como candidatos a multicaminho de custo igual (ECMP) EBGP, os caminhos usando next hops acorrentados 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 com a carga.
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 são mais marcados como caminhos BGP, mas sim marcados como caminhos multicaminhos. Os pacotes do roteador PE não são balanceados por carga.
Para garantir que as funções de balanceamento de carga 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 o 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 de rede privada virtual (VPN) externas e internas com métricas de protocolo de gateway interior (IGP) desiguais e multicast independente de protocolo (PIM) para juntar o balanceamento de carga em 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 balanceado em caminhos de upstream internos BGP (IBGP) disponíveis quando não houver um caminho BGP (EBGP) externo presente e em caminhos de upstream EBGP disponíveis quando caminhos BGP externos e internos (EIBGP) estiverem 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 da Série M, Série MX ou T.
Junos OS Versão 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 posterior suporte à configuração multicaminho, juntamente com o balanceamento de carga junto com o PIM. Isso permite que as mensagens de junção C-PIM sejam balanceadas por carga em todos os caminhos de IBGP disponíveis quando há apenas caminhos de IBGP presentes, e em todos os caminhos de EBGP upstream disponíveis quando os caminhos de EIBGP estão presentes em direção à origem (ou RP). Ao contrário do MVPN do Draft-Rosen, o MVPN de próxima geração não usa caminhos de EIBGP desiguais para enviar mensagens de adesão ao C-PIM. Esse recurso é aplicável às mensagens de junção IPv4 C-PIM.
Por padrão, apenas um caminho de IBGP ativo é usado para enviar mensagens de junção C-PIM para um roteador DE PE com apenas caminhos IBGP em direção à origem (ou RP). Quando existem caminhos upstream EIBGP presentes, apenas um caminho EBGP ativo é usado para enviar as mensagens de junção.
Em um MVPN de próxima geração, as mensagens de junção C-PIM são traduzidas em (ou codificadas como) rotas DE MVPN para clientes BGP (C-multicast) e anunciadas com a família de endereços BGP MCAST-VPN em direção aos roteadores DE 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 árvores compartilhadas (C-*, C-G)
Originado por roteadores de PE receptores.
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 árvore de origem (C-S, C-G)
Originado por roteadores de PE receptores.
Originou-se quando um roteador PE recebe uma mensagem de junção C-PIM de árvore de origem (C-S, C-G), ou originado pelo roteador PE que já tem uma rota de junção de árvore compartilhada e recebe uma rota de autodiscoagem ativa de origem.
O caminho upstream em uma MVPN de próxima geração é selecionado usando o algoritmo de hash Bytewise-XOR conforme especificado no draft da 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 estão numerados de endereço IP mais baixo 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 de candidatos. O resultado é N.
N representa o endereço IP do roteador DEP upstream conforme numerado na Etapa 1.
Durante o balanceamento de carga, se um roteador PE com um ou mais caminhos de IBGP upstream em direção à origem (ou RP) descobrir um novo caminho do IBGP em direção à mesma origem (ou RP), o C-PIM juntará mensagens distribuídas entre os caminhos de IBGP anteriormente existentes serem redistribuídas devido à mudança no conjunto de roteadorES PE candidato.
Neste exemplo, PE1, PE2 e PE3 são os roteadores PE que têm o recurso de balanceamento de carga multicaminho configurado. O roteador PE1 tem dois caminhos de EBGP e um caminho upstream IBGP, PE2 tem um caminho de EBGP e um caminho upstream IBGP, e PE3 tem dois caminhos de upstream IBGP em direção à Fonte. O roteador CE4 é o roteador de borda do cliente (CE) conectado ao PE3. Origem e Receptor são os hosts BSD gratuitos.
Nos roteadores PE que possuem caminhos de EIBGP em direção à origem (ou RP), como PE1 e PE2, o balanceamento de carga de junção do PIM é realizado da seguinte forma:
As mensagens de junção 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 de EBGP até 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 à origem (ou RP), o vizinho RPF na interface de túnel multicast é selecionado com base em um mecanismo de hash.
Ao descobrir o primeiro caminho de EBGP, apenas novas mensagens de junção ficam balanceadas em todos os caminhos de EBGP disponíveis, enquanto as mensagens de junção existentes na interface do túnel multicast não são redistribuídas.
Se o caminho de EBGP do roteador PE2 até o roteador CE1 diminuir, o PE2 envia as mensagens de junção para PE1 usando o caminho do IBGP. Quando o caminho da EBGP para o CE1 for restabelecido, apenas novas mensagens de junção que chegam ao PE2 usam o caminho EBGP recuperado, enquanto as mensagens de adesão já enviadas no caminho do IBGP não são redistribuídas.
Em roteadores PE que têm apenas caminhos de IBGP em direção à origem (ou RP), como o roteador PE3, o balanceamento de carga do PIM é executado da seguinte forma:
Os C-PIM juntam-se às mensagens dos roteadores CE que recebem um balanceamento de carga apenas como mensagens de dados BGP C-multicast entre os caminhos do IBGP.
Na Figura 2, supondo que o host CE4 esteja interessado em receber tráfego da Fonte, e o CE4 inicie mensagens de junção de origem para diferentes grupos (Grupo 1 [C-S,C-G1] e Grupo 2 [C-S,C-G2]), as mensagens de junção da fonte chegam no roteador PE3.
Em seguida, o roteador PE3 usa o algoritmo de hash Bytewise-XOR para selecionar o roteador DE PE upstream para enviar os dados C-multicast para cada grupo. O algoritmo primeiro numera os roteadores DE PE upstream de endereço IP mais baixo a superior a partir de 0.
Supondo que o roteador PE1 esteja numerado 0 e o Roteador PE2 seja 1, e o resultado de hash para as mensagens de junção do Grupo 1 e do Grupo 2 seja 0 e 1, respectivamente, o roteador PE3 escolhe PE1 como o roteador PE upstream para enviar mensagens de adesão ao Grupo 1, e PE2 como o roteador PE upstream para enviar as mensagens de junção do Grupo 2 à 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.
Configuração
Configuração rápida de CLI
Para configurar este exemplo rapidamente, 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 sua configuração de rede, copiar e colar os comandos no 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 a navegação na CLI, consulte o uso do 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 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-label
Habilite 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-internal
Configure 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 3
Configure o PIM para habilitar o roteamento multicast PE para CE.
[edit routing-instances vpn1 protocols] user@PE1# set pim rp static address 10.255.10.119
Habilite o PIM em todas as interfaces de rede.
[edit routing-instances vpn1 protocols] user@PE1# set pim interface all
Habilite o balanceamento de carga do PIM para a instância VRF.
[edit routing-instances vpn1 protocols] user@PE1# set pim join-load-balance
Configure 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-spt
Configure 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 entrando no 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 terminar de configurar o dispositivo, entre em confirmação a partir do modo de configuração.
Verificação
Confirme se a configuração está funcionando corretamente.
Verificando as informações de rota C-Multicast MVPN para diferentes grupos de mensagens de junção
Propósito
Verifique as informações de rota C-multicast MVPN para diferentes grupos de mensagens de junção recebidas no roteador PE3.
Ação
A partir do modo operacional, execute o comando show mvpn 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 mensagens de junção de origem (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).