Sessões multihop BGP
Entendendo o EBGP Multihop
BGP é um protocolo de gateway exterior (EGP) usado para trocar informações de roteamento entre roteadores em diferentes sistemas autônomos (ASs). As seguintes são duas maneiras de estabelecer o multihop EBGP entre roteadores:
Quando os pares BGP externos (EBGP) não estão diretamente conectados entre si, eles devem atravessar um ou mais roteadores não BGP para alcançar uns aos outros.
A configuração do EBGP multihop permite que os pares passem pelos outros roteadores para formar relacionamentos entre pares e trocar mensagens de atualização. Esse tipo de configuração é normalmente usado quando um dispositivo de roteamento da Juniper Networks precisa executar o EBGP com um roteador de terceiros que não permite a conexão direta dos dois pares EBGP. O multihop EBGP permite uma conexão próxima entre dois pares de EBGP que não têm uma conexão direta.
O comportamento padrão de uma conexão EBGP é peer over a um único salto físico usando o endereço de interface física do peer. Em alguns casos, é vantajoso alterar esse comportamento padrão, de peering físico EBGP. Um desses casos é quando vários links físicos conectam dois roteadores que devem ser pares de EBGP. Neste caso, se um dos links ponto a ponto falhar, a acessibilidade no link alternativo ainda existe.
Na figura 1, o roteador R1 pertence ao AS 1 e o roteador R2 pertence ao AS 2. As duas ligações físicas entre os roteadores são usadas para balanceamento de carga. O peering multihop do EBGP também funciona com um link físico.
O exemplo de configuração a seguir ajuda a estabelecer uma única sessão de peering BGP nesses vários links físicos:
Cada roteador deve estabelecer a sessão de peering com o endereço loopback do roteador remoto. Você pode configurar esta sessão usando a
local-address
declaração, que altera as informações de cabeçalho de endereço peer nos pacotes BGP.Use a
multihop
declaração para alterar o uso padrão do endereço físico do vizinho. Além disso, você também pode especificar um valor de tempo de vida (TTL) nos pacotes BGP para controlar até onde eles se propagam. Usamos um valor de TTL de 1 para garantir que a sessão não possa ser estabelecida em quaisquer outros links de backdoor na rede.Nota:Quando o multihop é configurado, o Junos OS define o valor de TTL de 64, por padrão.
Um valor de TTL de 1 é suficiente para permitir uma sessão de EBGP no endereço de loopback de um vizinho diretamente conectado.
Cada roteador deve ter recursos de roteamento IP para o endereço loopback do roteador remoto. Esse recurso é muitas vezes realizado usando uma rota estática para mapear o endereço de loopback para os endereços físicos da interface.
[edit protocols bgp group ext-peers] type external; local-address 192.168.3.4; neighbor 172.16.128.1 { multihop ttl 1; }
[edit routing-options] static { route 172.16.128.1 next-hop (10.10.1.1 | 10.10.2.1); }
Consulte também
Exemplo: Configuração de sessões multihop do EBGP
Este exemplo mostra como configurar um peer BGP (EBGP) externo que está a mais de um salto do roteador local. Esse tipo de sessão é chamada de sessão BGP multihop .
Requisitos
Nenhuma configuração especial além da inicialização do dispositivo é necessária antes de configurar este exemplo.
Visão geral
A configuração para permitir sessões de EBGP multihop requer conectividade entre os dois pares EBGP. Este exemplo usa rotas estáticas para fornecer conectividade entre os dispositivos.
Ao contrário das sessões de EBGP conectadas diretamente nas quais os neighbor
endereços físicos são normalmente usados nas declarações, você deve usar endereços de interface de loopback para EBGP multihop especificando o endereço de interface de loopback do peer indiretamente conectado. Dessa forma, o multihop EBGP é semelhante ao BGP interno (IBGP).
Por fim, você deve adicionar a multihop
declaração. Opcionalmente, você pode definir um valor máximo de tempo de vida (TTL) com a ttl
declaração. O TTL é transportado no cabeçalho IP de pacotes BGP. Se você não especificar um valor TTL, o valor máximo de TTL padrão do sistema será usado. O valor de TTL padrão é de 64 para sessões de EBGP multihop. Outra opção é manter o valor de próximo salto BGP para anúncios de rota, incluindo a no-nexthop-change
declaração.
Figura 2 mostra uma rede multihop EBGP típica.
O dispositivo C e o Dispositivo E têm uma sessão de EBGP estabelecida. O dispositivo D não é um dispositivo habilitado para BGP. Todos os dispositivos têm conectividade por rotas estáticas.
Configuração
- Configuração rápida da CLI
- Dispositivo C
- Configuração do dispositivo D
- Configuração do dispositivo E
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.
Dispositivo C
set interfaces fe-1/2/0 unit 9 description to-D set interfaces fe-1/2/0 unit 9 family inet address 10.10.10.9/30 set interfaces lo0 unit 3 family inet address 192.168.40.4/32 set protocols bgp group external-peers type external set protocols bgp group external-peers multihop ttl 2 set protocols bgp group external-peers local-address 192.168.40.4 set protocols bgp group external-peers export send-static set protocols bgp group external-peers peer-as 18 set protocols bgp group external-peers neighbor 192.168.6.7 set policy-options policy-statement send-static term 1 from protocol static set policy-options policy-statement send-static term 1 then accept set routing-options static route 10.10.10.14/32 next-hop 10.10.10.10 set routing-options static route 192.168.6.7/32 next-hop 10.10.10.10 set routing-options router-id 192.168.40.4 set routing-options autonomous-system 17
Dispositivo D
set interfaces fe-1/2/0 unit 10 description to-C set interfaces fe-1/2/0 unit 10 family inet address 10.10.10.10/30 set interfaces fe-1/2/1 unit 13 description to-E set interfaces fe-1/2/1 unit 13 family inet address 10.10.10.13/30 set interfaces lo0 unit 4 family inet address 192.168.6.6/32 set routing-options static route 192.168.40.4/32 next-hop 10.10.10.9 set routing-options static route 192.168.6.7/32 next-hop 10.10.10.14 set routing-options router-id 192.168.6.6
Dispositivo E
set interfaces fe-1/2/0 unit 14 description to-D set interfaces fe-1/2/0 unit 14 family inet address 10.10.10.14/30 set interfaces lo0 unit 5 family inet address 192.168.6.7/32 set protocols bgp group external-peers multihop ttl 2 set protocols bgp group external-peers local-address 192.168.6.7 set protocols bgp group external-peers export send-static set protocols bgp group external-peers peer-as 17 set protocols bgp group external-peers neighbor 192.168.40.4 set policy-options policy-statement send-static term 1 from protocol static set policy-options policy-statement send-static term 1 then accept set routing-options static route 10.10.10.8/30 next-hop 10.10.10.13 set routing-options static route 192.168.40.4/32 next-hop 10.10.10.13 set routing-options router-id 192.168.6.7 set routing-options autonomous-system 18
Dispositivo C
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 de usuário do Junos OS CLI.
Para configurar o dispositivo C:
Configure a interface para o dispositivo conectado diretamente (para D) e configure a interface de loopback.
[edit interfaces fe-1/2/0 unit 9] user@C# set description to-D user@C# set family inet address 10.10.10.9/30 [edit interfaces lo0 unit 3] user@C# set family inet address 192.168.40.4/32
Configure uma sessão de EBGP com o Dispositivo E.
A
neighbor
declaração aponta para a interface de loopback no Dispositivo E.[edit protocols bgp group external-peers] user@C# set type external user@C# set local-address 192.168.40.4 user@C# set export send-static user@C# set peer-as 18 user@C# set neighbor 192.168.6.7
Configure a declaração multihop para permitir que o Dispositivo C e o Dispositivo E se tornem pares de EBGP.
Como os pares estão a dois saltos um do outro, o exemplo usa a
ttl 2
declaração.[edit protocols bgp group external-peers] user@C# set multihop ttl 2
Configure a conectividade ao dispositivo E, usando rotas estáticas.
Você deve configurar uma rota para o endereço da interface de loopback e para o endereço na interface física.
[edit routing-options] user@C# set static route 10.10.10.14/32 next-hop 10.10.10.10 user@C# set static route 192.168.6.7/32 next-hop 10.10.10.10
Configure a ID do roteador local e o número do sistema autônomo (AS).
[edit routing-options] user@C# set router-id 192.168.40.4 user@C# set autonomous-system 17
Configure uma política que aceite rotas diretas.
Outras opções úteis para este cenário podem ser aceitar rotas aprendidas por meio de OSPF ou rotas locais.
[edit policy-options policy-statement send-static term 1] user@C# set from protocol static user@C# set then accept
Resultados
A partir do modo de configuração, confirme sua configuração entrando noshow interfaces
, show protocols
show policy-options
e show routing-options
comandos. Se a saída não exibir a configuração pretendida, repita as instruções neste exemplo para corrigir a configuração.
user@C# show interfaces fe-1/2/0 { unit 9 { description to-D; family inet { address 10.10.10.9/30; } } } lo0 { unit 3 { family inet { address 192.168.40.4/32; } } }
user@C# show protocols bgp { group external-peers { type external; multihop { ttl 2; } local-address 192.168.40.4; export send-static; peer-as 18; neighbor 192.168.6.7; } }
user@C# show policy-options policy-statement send-static { term 1 { from protocol static; then accept; } }
user@C# show routing-options static { route 10.10.10.14/32 next-hop 10.10.10.10; route 192.168.6.7/32 next-hop 10.10.10.10; } router-id 192.168.40.4; autonomous-system 17;
Se você terminar de configurar o dispositivo, entre no commit
modo de configuração. Repita essas etapas para todas as sessões BGP na topologia.
Configuração do dispositivo D
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 de usuário do Junos OS CLI.
Para configurar o dispositivo D:
Definir a CLI para o dispositivo D.
user@host> set cli logical-system D
Configure as interfaces para os dispositivos conectados diretamente e configure uma interface de loopback.
[edit interfaces fe-1/2/0 unit 10] user@D# set description to-C user@D# set family inet address 10.10.10.10/30 [edit interfaces fe-1/2/1 unit 13] user@D# set description to-E user@D# set family inet address 10.10.10.13/30 [edit interfaces lo0 unit 4] user@D# set family inet address 192.168.6.6/32
Configure a conectividade com os outros dispositivos usando rotas estáticas para os endereços da interface de loopback.
No dispositivo D, você não precisa de rotas estáticas para os endereços físicos porque o dispositivo D está diretamente conectado ao dispositivo C e ao dispositivo E.
[edit routing-options] user@D# set static route 192.168.40.4/32 next-hop 10.10.10.9 user@D# set static route 192.168.6.7/32 next-hop 10.10.10.14
Configure a ID do roteador local.
[edit routing-options] user@D# set router-id 192.168.6.6
Resultados
A partir do modo de configuração, confirme sua configuração inserindo os show interfaces
comandos e show routing-options
os comandos. Se a saída não exibir a configuração pretendida, repita as instruções neste exemplo para corrigir a configuração.
user@D# show interfaces fe-1/2/0 { unit 10 { description to-C; family inet { address 10.10.10.10/30; } } } fe-1/2/1 { unit 13 { description to-E; family inet { address 10.10.10.13/30; } } } lo0 { unit 4 { family inet { address 192.168.6.6/32; } } }
user@D# show protocols
user@D# show routing-options static { route 192.168.40.4/32 next-hop 10.10.10.9; route 192.168.6.7/32 next-hop 10.10.10.14; } router-id 192.168.6.6;
Se você terminar de configurar o dispositivo, entre no commit
modo de configuração. Repita essas etapas para todas as sessões BGP na topologia.
Configuração do dispositivo E
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 de usuário do Junos OS CLI.
Para configurar o dispositivo E:
Definir a CLI para o dispositivo E.
user@host> set cli logical-system E
Configure a interface para o dispositivo conectado diretamente (para D) e configure a interface de loopback.
[edit interfaces fe-1/2/0 unit 14] user@E# set description to-D user@E# set family inet address 10.10.10.14/30 [edit interfaces lo0 unit 5] user@E# set family inet address 192.168.6.7/32
Configure uma sessão de EBGP com o Dispositivo E.
A
neighbor
declaração aponta para a interface de loopback no dispositivo C.[edit protocols bgp group external-peers] user@E# set local-address 192.168.6.7 user@E# set export send-static user@E# set peer-as 17 user@E# set neighbor 192.168.40.4
Configure a declaração para permitir que o
multihop
dispositivo C e o dispositivo E se tornem pares de EBGP.Como os pares estão a dois saltos um do outro, o exemplo usa a
ttl 2
declaração.[edit protocols bgp group external-peers] user@E# set multihop ttl 2
Configure a conectividade ao dispositivo E, usando rotas estáticas.
Você deve configurar uma rota para o endereço da interface de loopback e para o endereço na interface física.
[edit routing-options] user@E# set static route 10.10.10.8/30 next-hop 10.10.10.13 user@E# set static route 192.168.40.4/32 next-hop 10.10.10.13
Configure a ID do roteador local e o número do sistema autônomo (AS).
[edit routing-options] user@E# set router-id 192.168.6.7 user@E# set autonomous-system 18
Configure uma política que aceite rotas diretas.
Outras opções úteis para este cenário podem ser aceitar rotas aprendidas por meio de OSPF ou rotas locais.
[edit policy-options policy-statement send-static term 1] user@E# set from protocol static user@E# set then accept
Resultados
A partir do modo de configuração, confirme sua configuração entrando noshow interfaces
, show protocols
show policy-options
e show routing-options
comandos. Se a saída não exibir a configuração pretendida, repita as instruções neste exemplo para corrigir a configuração.
user@E# show interfaces fe-1/2/0 { unit 14 { description to-D; family inet { address 10.10.10.14/30; } } } lo0 { unit 5 { family inet { address 192.168.6.7/32; } } }
user@E# show protocols bgp { group external-peers { multihop { ttl 2; } local-address 192.168.6.7; export send-static; peer-as 17; neighbor 192.168.40.4; } }
user@E# show policy-options policy-statement send-static { term 1 { from protocol static; then accept; } }
user@E# show routing-options static { route 10.10.10.8/30 next-hop 10.10.10.13; route 192.168.40.4/32 next-hop 10.10.10.13; } router-id 192.168.6.7; autonomous-system 18;
Se você terminar de configurar o dispositivo, entre no commit
modo de configuração.
Verificação
Confirme se a configuração está funcionando corretamente.
- Verificando a conectividade
- Verificando se as sessões bgp estão estabelecidas
- Visualização de rotas anunciadas
Verificando a conectividade
Propósito
Certifique-se de que o dispositivo C possa pingar o dispositivo E, especificando o endereço da interface de loopback como a fonte da solicitação de ping.
O endereço da interface de loopback é o endereço fonte que o BGP usará.
Ação
A partir do modo operacional, insira o ping 10.10.10.14 source 192.168.40.4
comando do Dispositivo C e insira o ping 10.10.10.9 source 192.168.6.7
comando do Dispositivo E.
user@C> ping 10.10.10.14 source 192.168.40.4 PING 10.10.10.14 (10.10.10.14): 56 data bytes 64 bytes from 10.10.10.14: icmp_seq=0 ttl=63 time=1.262 ms 64 bytes from 10.10.10.14: icmp_seq=1 ttl=63 time=1.202 ms ^C --- 10.10.10.14 ping statistics --- 2 packets transmitted, 2 packets received, 0% packet loss round-trip min/avg/max/stddev = 1.202/1.232/1.262/0.030 ms
user@E> ping 10.10.10.9 source 192.168.6.7 PING 10.10.10.9 (10.10.10.9): 56 data bytes 64 bytes from 10.10.10.9: icmp_seq=0 ttl=63 time=1.255 ms 64 bytes from 10.10.10.9: icmp_seq=1 ttl=63 time=1.158 ms ^C --- 10.10.10.9 ping statistics --- 2 packets transmitted, 2 packets received, 0% packet loss round-trip min/avg/max/stddev = 1.158/1.206/1.255/0.049 ms
Significado
As rotas estáticas estão funcionando se os pings funcionarem.
Verificando se as sessões bgp estão estabelecidas
Propósito
Verifique se as sessões bgp estão ativas.
Ação
A partir do modo operacional, entre no show bgp summary
comando.
user@C> show bgp summary Groups: 1 Peers: 1 Down peers: 0 Table Tot Paths Act Paths Suppressed History Damp State Pending inet.0 2 0 0 0 0 0 Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped... 192.168.6.7 18 147 147 0 1 1:04:27 0/2/2/0 0/0/0/0
user@E> show bgp summary Groups: 1 Peers: 1 Down peers: 0 Table Tot Paths Act Paths Suppressed History Damp State Pending inet.0 2 0 0 0 0 0 Peer AS InPkt OutPkt OutQ Flaps Last Up/Dwn State|#Active/Received/Accepted/Damped... 192.168.40.4 17 202 202 0 1 1:02:18 0/2/2/0 0/0/0/0
Significado
A saída mostra que ambos os dispositivos têm um peer cada. Nenhum colega está para baixo.
Visualização de rotas anunciadas
Propósito
Verifique se as rotas estão sendo anunciadas pelo BGP.
Ação
A partir do modo operacional, entre no show route advertising-protocol bgp neighbor
comando.
user@E> show route advertising-protocol bgp 192.168.6.7 inet.0: 5 destinations, 7 routes (5 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 10.10.10.14/32 Self I * 192.168.6.7/32 Self I
user@C> show route advertising-protocol bgp 192.168.40.4 inet.0: 5 destinations, 7 routes (5 active, 0 holddown, 0 hidden) Prefix Nexthop MED Lclpref AS path * 10.10.10.8/30 Self I * 192.168.40.4/32 Self I
Significado
A send-static
política de roteamento é exportar as rotas estáticas da tabela de roteamento para o BGP. O BGP está anunciando essas rotas entre os pares porque a sessão de peer BGP está estabelecida.