Políticas de roteamento para comunidades BGP
Entender as comunidades BGP, comunidades estendidas e grandes comunidades como condições de correspondência da política de roteamento
Uma comunidade BGP é um grupo de destinos que compartilham uma propriedade comum. As informações da comunidade são incluídas como um atributo de caminho nas mensagens de atualização do BGP. Essas informações identificam membros da comunidade e permitem que você realize ações em um grupo sem precisar detalhar cada membro. Você pode usar atributos da comunidade e comunidades estendidas para desencadear decisões de roteamento, como aceitação, rejeição, preferência ou redistribuição.
Você pode atribuir tags da comunidade a rotas não BGP por meio de configuração (para rotas estáticas, agregadas ou geradas) ou uma política de roteamento de importação. Essas etiquetas podem então ser combinadas quando o BGP exporta as rotas.
Um valor de comunidade é um campo de 32 bits que é dividido em duas seções principais. Os primeiros 16 bits do valor codificam o número AS da rede que originou a comunidade, enquanto os últimos 16 bits carregam um número único atribuído pelo AS. Esse sistema tenta garantir um conjunto globalmente único de valores de comunidade para cada AS na Internet. O Junos OS usa uma notação de as-number:community-value
, onde cada valor é um número decimais. Os valores de AS de 0 e 65.535 estão reservados, assim como todos os valores da comunidade dentro desses números DE. Cada comunidade, ou conjunto de comunidades, recebe um nome dentro da hierarquia de [edit policy-options]
configuração. O nome da comunidade o identifica exclusivamente para o dispositivo de roteamento e serve como o método pelo qual as rotas são categorizadas. Por exemplo, uma rota com um valor comunitário de 64510:1111 pode pertencer à comunidade nomeada AS64510-routes
. O nome da comunidade também é usado dentro de uma política de roteamento como critério de correspondência ou como ação. A sintaxe de comando para criar uma comunidade é: opções community name members [community-ids]
de políticas. Ou community-ids
são um único valor de comunidade ou vários valores da comunidade. Quando mais de um valor é atribuído a um nome de comunidade, o dispositivo de roteamento interpreta isso como um E lógico dos valores da comunidade. Em outras palavras, uma rota deve ter todos os valores configurados antes de receber o nome da comunidade.
O atributo da comunidade regular é de quatro octets. Aprimoramentos de rede, como VPNs, têm requisitos de funcionalidade que podem ser satisfeitos por um atributo como uma comunidade. No entanto, o valor da comunidade de 4 octets não oferece expansão e flexibilidade suficientes para acomodar os requisitos de VPN. Isso leva à criação de comunidades estendidas. Uma comunidade estendida é um valor de 8 octets que também é dividido em duas seções principais. Os primeiros 2 octets da comunidade codificam um campo do tipo, enquanto os últimos 6 octets transportam um conjunto único de dados em um formato definido pelo campo do tipo. Comunidades estendidas oferecem uma gama maior para agrupar ou categorizar comunidades.
O formato de atributo de comunidades estendidas BGP tem três campos: type:administrator:assigned-number
. O dispositivo de roteamento espera que você use as palavras target
ou origin
represente o campo do tipo. O campo de administrador usa um número decimal para o AS ou um endereço IPv4, enquanto o campo de número atribuído espera um número decimal não maior do que o tamanho do campo (65.535 para 2 octets ou 4.294.967.295 para 4 octets).
Ao especificar IDs da comunidade para atributos de comunidade padrão e estendidos, você pode usar expressões regulares no estilo UNIX. A única exceção é para políticas de importação de VPN (vrf-import
), que não suportam expressões regulares para os atributos das comunidades estendidas.
Atributos regulares das comunidades BGP são um atributo de comprimento variável que consiste em um conjunto de valores de um ou mais de 4 byte que foi dividido em valores de 16 bits. A palavra mais significativa é interpretada como um número AS e uma palavra menos significativa é um valor definido localmente atribuído pelo operador do AS. Desde a adoção de ASNs de 4 byte, a comunidade regular BGP de 4 byte e a comunidade estendida BGP de 6 byte não podem mais suportar atributos da comunidade BGP. Os operadores geralmente codificam o número AS na parte local da comunidade BGP, o que significa que às vezes o formato da comunidade é ASN:ASN. Com a ASN de 4 byte, você precisa de 8 bytes para codificar. Embora a comunidade estendida bgp permita que um AS de 4 byte seja codificado como o campo de administrador global, o campo de administrador local tem apenas 2 byte de espaço disponível. Assim, o atributo da comunidade estendida de 6 byte também é inadequado. Para superar isso, o Junos OS permite configurar atributos de caminho transitivo opcionais — uma comunidade BGP de 12 byte que fornece o valor mais significativo de 4 byte para codificar o número do sistema autônomo como administrador global e os dois números atribuídos de 4 byte restantes para codificar os valores locais conforme definido no RFC 8092. Você pode configurar uma grande comunidade BGP nos [edit policy-options community community-name members]
níveis de [edit routing-options static route ip-address community]
hierarquia. O formato de atributos de comunidade de grande porte BGP tem quatro campos: large
:global administrator:assigned number:assigned number
.
A comunidade estendida específica do endereço unicast BGP IPv6 é codificada como um conjunto de valor de 20 bytes. O valor de 20 byte é interpretado no seguinte formato:
-
Os 2 bytes mais significativos codificam o valor do tipo e sub-tipo (alto valor (byte mais significativo) e baixo valor (segundo byte mais significativo)).
-
Os próximos 16 bytes codificam o endereço unicast IPv6. É o administrador global da RFC IETF.
-
Os últimos 2 bytes codificam os valores locais definidos pelo operador. É administrador local no IETF RFC.
Os atributos específicos da comunidade estendida BGP do IPv6 são representados por uma palavra-chave ipv6-target
, ipv6-origin
ou ipv6-extended
seguidos pelo IPv6 e pelo administrador local separados por <, > e :.
A duração do valor do atributo das grandes comunidades BGP deve ser um múltiplo não zero de 12.
Consulte também
Exemplo: Configurando uma política de roteamento para redistribuir rotas BGP com uma tag de comunidade específica no IS-IS
Este exemplo define uma política que tira rotas BGP da comunidade e as Edu
coloca no IS-IS com uma métrica de 63.
Requisitos
Nenhuma configuração especial além da inicialização do dispositivo é necessária antes de configurar este exemplo.
Visão geral
Figura 1 mostra a topologia usada neste exemplo.
Neste exemplo, o Dispositivo A, o Dispositivo B, o Dispositivo C e o Dispositivo D estão no sistema autônomo (AS) 1 e estão executando o IS-IS. Todos os dispositivos AS 1, exceto o Dispositivo D, estão executando BGP interno (IBGP).
O dispositivo E está no AS 2 e tem uma sessão de peering BGP (EBGP) externa com o dispositivo C. O dispositivo E tem duas rotas estáticas, 10.2.0.0/16 e 10.3.0.0/16. Essas rotas são marcadas com o atributo da comunidade Edu 2:5 e são anunciadas por meio do EBGP para o dispositivo C.
O dispositivo C aceita as rotas BGP que são marcadas com o atributo da comunidade Edu 2:5, redistribui as rotas para o IS-IS e aplica uma métrica IS-IS de 63 a essas rotas.
Configuração rápida da CLI mostra a configuração de todos os dispositivos em Figura 1. A seção #d205e62__d205e383 descreve as etapas do dispositivo C e do dispositivo E.
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.
Dispositivo A
set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.5/30 set interfaces fe-1/2/0 unit 0 family iso set interfaces lo0 unit 0 family inet address 192.168.0.1/32 set interfaces lo0 unit 0 family iso address 49.0002.0192.0168.0001.00 set protocols bgp group int type internal set protocols bgp group int local-address 192.168.0.1 set protocols bgp group int neighbor 192.168.0.2 set protocols bgp group int neighbor 192.168.0.3 set protocols isis interface fe-1/2/0.0 level 1 disable set protocols isis interface lo0.0 set routing-options router-id 192.168.0.1 set routing-options autonomous-system 1
Dispositivo B
set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.6/30 set interfaces fe-1/2/0 unit 0 family iso set interfaces fe-1/2/1 unit 0 family inet address 10.0.0.9/30 set interfaces fe-1/2/1 unit 0 family iso set interfaces lo0 unit 0 family inet address 192.168.0.2/32 set interfaces lo0 unit 0 family iso address 49.0002.0192.0168.0002.00 set protocols bgp group int type internal set protocols bgp group int local-address 192.168.0.2 set protocols bgp group int neighbor 192.168.0.1 set protocols bgp group int neighbor 192.168.0.3 set protocols isis interface fe-1/2/0.0 level 1 disable set protocols isis interface fe-1/2/1.0 level 1 disable set protocols isis interface lo0.0 set routing-options router-id 192.168.0.2 set routing-options autonomous-system 1
Dispositivo C
set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.10/30 set interfaces fe-1/2/0 unit 0 family iso set interfaces fe-1/2/1 unit 0 family inet address 10.0.0.13/30 set interfaces fe-1/2/1 unit 0 family iso set interfaces fe-1/2/2 unit 0 family inet address 10.0.0.25/30 set interfaces fe-1/2/2 unit 0 family iso set interfaces lo0 unit 0 family inet address 192.168.0.3/32 set interfaces lo0 unit 0 family iso address 49.0002.0192.0168.0003.00 set protocols bgp group int type internal set protocols bgp group int local-address 192.168.0.3 set protocols bgp group int neighbor 192.168.0.1 set protocols bgp group int neighbor 192.168.0.2 set protocols bgp group external-peers type external set protocols bgp group external-peers export send-isis-and-direct set protocols bgp group external-peers peer-as 2 set protocols bgp group external-peers neighbor 10.0.0.26 set protocols isis export Edu-to-isis set protocols isis interface fe-1/2/0.0 level 1 disable set protocols isis interface fe-1/2/1.0 level 1 disable set protocols isis interface fe-1/2/2.0 level 1 disable set protocols isis interface fe-1/2/2.0 level 2 passive set protocols isis interface lo0.0 set policy-options policy-statement Edu-to-isis term 1 from protocol bgp set policy-options policy-statement Edu-to-isis term 1 from community Edu set policy-options policy-statement Edu-to-isis term 1 then metric 63 set policy-options policy-statement Edu-to-isis term 1 then accept set policy-options policy-statement send-isis-and-direct term 1 from protocol isis set policy-options policy-statement send-isis-and-direct term 1 from protocol direct set policy-options policy-statement send-isis-and-direct term 1 from route-filter 10.0.0.0/16 orlonger set policy-options policy-statement send-isis-and-direct term 1 from route-filter 192.168.0.0/16 orlonger set policy-options policy-statement send-isis-and-direct term 1 then accept set policy-options community Edu members 2:5 set routing-options router-id 192.168.0.3 set routing-options autonomous-system 1
Dispositivo D
set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.14/30 set interfaces fe-1/2/0 unit 0 family iso set interfaces lo0 unit 0 family inet address 192.168.0.4/32 set interfaces lo0 unit 0 family iso address 49.0002.0192.0168.0004.00 set protocols isis interface fe-1/2/0.0 level 1 disable set protocols isis interface lo0.0 set routing-options router-id 192.168.0.4 set routing-options autonomous-system 1
Dispositivo E
set interfaces fe-1/2/0 unit 0 family inet address 10.0.0.26/30 set interfaces lo0 unit 7 family inet address 192.168.0.5/32 primary set interfaces lo0 unit 7 family inet address 10.2.0.1/32 set interfaces lo0 unit 7 family inet address 10.3.0.1/32 set protocols bgp group external-peers type external set protocols bgp group external-peers export statics set protocols bgp group external-peers peer-as 1 set protocols bgp group external-peers neighbor 10.0.0.25 set policy-options policy-statement statics from protocol static set policy-options policy-statement statics then community add Edu set policy-options policy-statement statics then accept set policy-options community Edu members 2:5 set routing-options static route 10.2.0.0/16 reject set routing-options static route 10.2.0.0/16 install set routing-options static route 10.3.0.0/16 reject set routing-options static route 10.3.0.0/16 install set routing-options router-id 192.168.0.5 set routing-options autonomous-system 2
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 dispositivo E:
Configure as interfaces.
[edit interfaces] user@E# set fe-1/2/0 unit 0 family inet address 10.0.0.26/30 user@E# set lo0 unit 7 family inet address 192.168.0.5/32 primary user@E# set lo0 unit 7 family inet address 10.2.0.1/32 user@E# set lo0 unit 7 family inet address 10.3.0.1/32
Configure a
statics
política, que adiciona o atributo daEdu
comunidade às rotas estáticas.[edit policy-options] user@E# set policy-statement statics from protocol static user@E# set policy-statement statics then community add Edu user@E# set policy-statement statics then accept user@E# set community Edu members 2:5
Configure o EBGP e aplique a
statics
política.[edit protocols bgp group external-peers] user@E# set type external user@E# set export statics user@E# set peer-as 1 user@E# set protocols bgp group external-peers neighbor 10.0.0.25
Configure as rotas estáticas.
[edit routing-options static] user@E# set route 10.2.0.0/16 reject user@E# set route 10.2.0.0/16 install user@E# set route 10.3.0.0/16 reject user@E# set route 10.3.0.0/16 install
Configure a ID do roteador e o número AS.
[edit routing-options] user@E# set router-id 192.168.0.5 user@E# set autonomous-system 2
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 dispositivo C:
Configure as interfaces.
[edit interfaces] user@C# set fe-1/2/0 unit 0 family inet address 10.0.0.10/30 user@C# set fe-1/2/0 unit 0 family iso user@C# set fe-1/2/1 unit 0 family inet address 10.0.0.13/30 user@C# set fe-1/2/1 unit 0 family iso user@C# set fe-1/2/2 unit 0 family inet address 10.0.0.25/30 user@C# set fe-1/2/2 unit 0 family iso user@C# set lo0 unit 0 family inet address 192.168.0.3/32 user@C# set lo0 unit 0 family iso address 49.0002.0192.0168.0003.00
Configure IBGP.
[edit protocols bgp group int] user@C# set type internal user@C# set local-address 192.168.0.3 user@C# set neighbor 192.168.0.1 user@C# set neighbor 192.168.0.2
Configure a política de Edu-to-isis, que redistribui as rotas BGP com tags Edu aprendidas com o Dispositivo E e aplica uma métrica de 63.
[edit policy-options] user@C# set policy-statement Edu-to-isis term 1 from protocol bgp user@C# set policy-statement Edu-to-isis term 1 from community Edu user@C# set policy-statement Edu-to-isis term 1 then metric 63 user@C# set policy-statement Edu-to-isis term 1 then accept user@C# set community Edu members 2:5
Habilite o IS-IS nas interfaces e aplique a política de Edu-to-isis.
[edit protocols isis] user@C# set export Edu-to-isis user@C# set interface fe-1/2/0.0 level 1 disable user@C# set interface fe-1/2/1.0 level 1 disable user@C# set interface fe-1/2/2.0 level 1 disable user@C# set interface fe-1/2/2.0 level 2 passive user@C# set interface lo0.0
Configure a política de envio e encaminhamento direto, que redistribui rotas para o Dispositivo E, através do EBGP.
Sem essa política, o Dispositivo E não teria conectividade com as redes no AS 1.
[edit policy-options policy-statement send-isis-and-direct term 1] user@C# set from protocol isis user@C# set from protocol direct user@C# set from route-filter 10.0.0.0/16 orlonger user@C# set from route-filter 192.168.0.0/16 orlonger user@C# set then accept
Configure o EBGP e aplique a política de envio e direto.
[edit protocols bgp group external-peers] user@C# set type external user@C# set export send-isis-and-direct user@C# set peer-as 2 user@C# set neighbor 10.0.0.26
Configure a ID do roteador e o número do sistema autônomo (AS).
[edit routing-options] user@C# set router-id 192.168.0.3 user@C# set autonomous-system 1
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.
Dispositivo E
user@E# show interfaces
fe-1/2/0 {
unit 0 {
family inet {
address 10.0.0.26/30;
}
}
}
lo0 {
unit 0 {
family inet {
address 192.168.0.5/32 {
primary;
}
address 10.2.0.1/32;
address 10.3.0.1/32;
}
}
}
user@E# show protocols
bgp {
group external-peers {
type external;
export statics;
peer-as 1;
neighbor 10.0.0.25;
}
}
user@E# show policy-options
policy-statement statics {
from protocol static;
then {
community add Edu;
accept;
}
}
community Edu members 2:5;
user@E# show routing-options
static {
route 10.2.0.0/16 {
reject;
install;
}
route 10.3.0.0/16 {
reject;
install;
}
}
router-id 192.168.0.5;
autonomous-system 2;
Dispositivo C
user@C# show interfaces
fe-1/2/0 {
unit 0 {
family inet {
address 10.0.0.10/30;
}
family iso;
}
}
fe-1/2/1 {
unit 0 {
family inet {
address 10.0.0.13/30;
}
family iso;
}
}
fe-1/2/2 {
unit 0 {
family inet {
address 10.0.0.25/30;
}
family iso;
}
}
lo0 {
unit 0 {
family inet {
address 192.168.0.3/32;
}
family iso {
address 49.0002.0192.0168.0003.00;
}
}
}
user@C# show protocols
bgp {
group int {
type internal;
local-address 192.168.0.3;
neighbor 192.168.0.1;
neighbor 192.168.0.2;
}
group external-peers {
type external;
export send-isis-and-direct;
peer-as 2;
neighbor 10.0.0.26;
}
}
isis {
export Edu-to-isis;
interface fe-1/2/0.0 {
level 1 disable;
}
interface fe-1/2/1.0 {
level 1 disable;
}
interface fe-1/2/2.0 {
level 1 disable;
level 2 passive;
}
interface lo0.0;
}
user@C# show policy-options
policy-statement Edu-to-isis {
term 1 {
from {
protocol bgp;
community Edu;
}
then {
metric 63;
accept;
}
}
}
policy-statement send-isis-and-direct {
term 1 {
from {
protocol [ isis direct ];
route-filter 10.0.0.0/16 orlonger;
route-filter 192.168.0.0/16 orlonger;
}
then accept;
}
}
community Edu members 2:5;
user@C# show routing-options
router-id 192.168.0.3;
autonomous-system 1;
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 o vizinho IS-IS
Propósito
Verifique se as rotas BGP do Dispositivo E são comunicadas na rede IS-IS no AS 1.
Ação
A partir do modo operacional, entre no show route protocol isis
comando.
user@D> show route protocol isis inet.0: 11 destinations, 11 routes (11 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 10.0.0.4/30 *[IS-IS/18] 22:30:53, metric 30 > to 10.0.0.13 via fe-1/2/0.0 10.0.0.8/30 *[IS-IS/18] 22:30:53, metric 20 > to 10.0.0.13 via fe-1/2/0.0 10.0.0.24/30 *[IS-IS/18] 03:31:21, metric 20 > to 10.0.0.13 via fe-1/2/0.0 10.2.0.0/16 *[IS-IS/165] 02:36:31, metric 73 > to 10.0.0.13 via fe-1/2/0.0 10.3.0.0/16 *[IS-IS/165] 02:36:31, metric 73 > to 10.0.0.13 via fe-1/2/0.0 192.168.0.1/32 *[IS-IS/18] 03:40:28, metric 30 > to 10.0.0.13 via fe-1/2/0.0 192.168.0.2/32 *[IS-IS/18] 22:30:53, metric 20 > to 10.0.0.13 via fe-1/2/0.0 192.168.0.3/32 *[IS-IS/18] 22:30:53, metric 10 > to 10.0.0.13 via fe-1/2/0.0 iso.0: 1 destinations, 1 routes (1 active, 0 holddown, 0 hidden)
Significado
Como esperado, as rotas 10.2.0.0/16 e 10.3.0.0/16 estão na tabela de roteamento do Dispositivo D como rotas externas IS-IS com uma métrica de 73. Se o dispositivo C não tivesse adicionado 63 à métrica, o Dispositivo D teria uma métrica de 10 para essas rotas.
Exemplo: Configuração de uma política de roteamento que remove comunidades BGP
Este exemplo mostra como criar uma política que aceita rotas BGP, mas remove as comunidades BGP das rotas.
Requisitos
Nenhuma configuração especial além da inicialização do dispositivo é necessária antes de configurar este exemplo.
Visão geral
Este exemplo mostra dois dispositivos de roteamento com uma conexão BGP (EBGP) externa entre eles. O Dispositivo R2 usa a sessão BGP para enviar duas rotas estáticas ao dispositivo R1. No dispositivo R1, uma política de importação especifica que todas as comunidades BGP devem ser removidas das rotas.
Por padrão, quando as comunidades são configuradas em pares de EBGP, elas são enviadas e aceitas. Para suprimir a aceitação das comunidades recebidas de um vizinho, você pode remover todas as comunidades ou um conjunto especificado de comunidades. Quando o resultado de uma política é um conjunto vazio de comunidades, o atributo da comunidade não está incluído. Para remover todas as comunidades, primeiro defina um conjunto curinga de comunidades (aqui, a comunidade é nomeada wild
):
[edit policy-options] community wild members "* : *";
Em seguida, na declaração de política de roteamento, especifique a ação community delete
:
[edit policy-options] policy-statement policy-name { term term-name { then community delete wild; } }
Para suprimir uma determinada comunidade de qualquer sistema autônomo (AS), defina a comunidade como community wild members "*:community-value"
.
Configuração
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 R1
set interfaces fe-1/1/0 unit 0 description to-R2 set interfaces fe-1/1/0 unit 0 family inet address 10.0.0.1/30 set interfaces lo0 unit 0 family inet address 192.168.0.1/32 set protocols bgp group external-peers type external set protocols bgp group external-peers peer-as 2 set protocols bgp group external-peers neighbor 10.0.0.2 import remove-communities set policy-options policy-statement remove-communities term 1 from protocol bgp set policy-options policy-statement remove-communities term 1 then community delete wild set policy-options policy-statement remove-communities term 1 then accept set policy-options policy-statement remove-communities term 2 then reject set policy-options community wild members *:* set routing-options router-id 192.168.0.1 set routing-options autonomous-system 1
Dispositivo R2
set interfaces fe-1/1/0 unit 0 description to-R1 set interfaces fe-1/1/0 unit 0 family inet address 10.0.0.2/30 set interfaces lo0 unit 0 family inet address 192.168.0.2/32 set protocols bgp group external-peers type external set protocols bgp group external-peers export statics set protocols bgp group external-peers peer-as 1 set protocols bgp group external-peers neighbor 10.0.0.1 set policy-options policy-statement statics from protocol static set policy-options policy-statement statics then community add 1 set policy-options policy-statement statics then accept set policy-options community 1 members 2:1 set policy-options community 1 members 2:2 set policy-options community 1 members 2:3 set policy-options community 1 members 2:4 set policy-options community 1 members 2:5 set policy-options community 1 members 2:6 set policy-options community 1 members 2:7 set policy-options community 1 members 2:8 set policy-options community 1 members 2:9 set policy-options community 1 members 2:10 set routing-options static route 10.2.0.0/16 reject set routing-options static route 10.2.0.0/16 install set routing-options static route 10.3.0.0/16 reject set routing-options static route 10.3.0.0/16 install set routing-options router-id 192.168.0.3 set routing-options autonomous-system 2
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 no Guia de usuário do Junos OS CLI.
Para configurar o dispositivo R1:
Configure as interfaces.
[edit interfaces] user@R1# set fe-1/1/0 unit 0 description to-R2 user@R1# set fe-1/1/0 unit 0 family inet address 10.0.0.1/30 user@R1# set lo0 unit 0 family inet address 192.168.0.1/32
Configure BGP.
Aplique a política de importação na sessão de peering BGP com o Dispositivo R2.
[edit protocols bgp group external-peers] user@R1# set type external user@R1# set peer-as 2 user@R1# set neighbor 10.0.0.2 import remove-communities
Configure a política de roteamento que exclui as comunidades.
[edit policy-options policy-statement remove-communities] user@R1# set term 1 from protocol bgp user@R1# set term 1 then community delete wild user@R1# set term 1 then accept user@R1# set term 2 then reject
Configure o número do sistema autônomo (AS) e o ID do roteador.
[edit routing-options ] user@R1# set router-id 192.168.0.1 user@R1# set autonomous-system 1
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 R2:
Configure as interfaces.
[edit interfaces] user@R2# set fe-1/1/0 unit 0 description to-R1 user@R2# set fe-1/1/0 unit 0 family inet address 10.0.0.2/30 user@R2# set lo0 unit 0 family inet address 192.168.0.2/32
Configure a ID do roteador e o número do sistema autônomo (AS).
[edit routing-options] user@R2# set router-id 192.168.0.3 user@R2# set autonomous-system 2
Configure BGP.
[edit protocols bgp group external-peers] user@R2# set type external user@R2# set peer-as 1 user@R2# set neighbor 10.0.0.1
Configure várias comunidades ou configure uma única comunidade com vários membros.
[edit policy-options community 1] user@R2# set members 2:1 user@R2# set members 2:2 user@R2# set members 2:3 user@R2# set members 2:4 user@R2# set members 2:5 user@R2# set members 2:6 user@R2# set members 2:7 user@R2# set members 2:8 user@R2# set members 2:9 user@R2# set members 2:10
Configure as rotas estáticas.
[edit routing-options static] user@R2# set route 10.2.0.0/16 reject user@R2# set route 10.2.0.0/16 install user@R2# set route 10.3.0.0/16 reject user@R2# set route 10.3.0.0/16 install
Configure uma política de roteamento que anuncia rotas estáticas para o BGP e adiciona a comunidade BGP às rotas.
[edit policy-options policy-statement statics] user@R2# set from protocol static user@R2# set then community add 1 user@R2# set then accept
Aplicar a política de exportação.
[edit protocols bgp group external-peers] user@R2# set export statics
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.
Dispositivo R1
user@R1# show interfaces fe-1/1/0 { unit 0{ description to-R2; family inet { address 10.0.0.1/30; } } } lo0 { unit 0 { family inet { address 192.168.0.1/32; } } }
user@R1# show protocols bgp { group external-peers { type external; peer-as 2; neighbor 10.0.0.2 { import remove-communities; } } }
user@R1# show policy-options policy-statement remove-communities { term 1 { from protocol bgp; then { community delete wild; accept; } } term 2 { then reject; } } community wild members *:*;
user@R1# show routing-options router-id 192.168.0.1; autonomous-system 1;
Dispositivo R2
user@R2# show interfaces fe-1/1/0 { unit 0 { description to-R1; family inet { address 10.0.0.2/30; } } } lo0 { unit 0 { family inet { address 192.168.0.2/32; } } }
user@R2# show protocols bgp { group external-peers { type external; export statics; peer-as 1; neighbor 10.0.0.1; } }
user@R2# show policy-options policy-statement statics { from protocol static; then { community add 1; accept; } } community 1 members [ 2:1 2:2 2:3 2:4 2:5 2:6 2:7 2:8 2:9 2:10 ];
user@R2# show routing-options static { route 10.2.0.0/16 { reject; install; } route 10.3.0.0/16 { reject; install; } } router-id 192.168.0.3; autonomous-system 2;
Se você terminar de configurar os dispositivos, entre no commit
modo de configuração.
Verificação
Confirme se a configuração está funcionando corretamente.
Verificação das rotas BGP
Propósito
Certifique-se de que a tabela de roteamento no Dispositivo R1 não contenha comunidades BGP.
Ação
No dispositivo R1, execute o
show route protocols bgp extensive
comando.user@R1> show route protocols bgp extensive inet.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden) 10.2.0.0/16 (1 entry, 1 announced) TSI: KRT in-kernel 10.2.0.0/16 -> {10.0.0.2} *BGP Preference: 170/-101 Next hop type: Router, Next hop index: 671 Address: 0x9458270 Next-hop reference count: 4 Source: 10.0.0.2 Next hop: 10.0.0.2 via lt-1/1/0.5, selected Session Id: 0x100001 State: <Active Ext> Local AS: 1 Peer AS: 2 Age: 20:39:01 Validation State: unverified Task: BGP_2.10.0.0.2+179 Announcement bits (1): 0-KRT AS path: 2 I Accepted Localpref: 100 Router ID: 192.168.0.3 10.3.0.0/16 (1 entry, 1 announced) TSI: KRT in-kernel 10.3.0.0/16 -> {10.0.0.2} *BGP Preference: 170/-101 Next hop type: Router, Next hop index: 671 Address: 0x9458270 Next-hop reference count: 4 Source: 10.0.0.2 Next hop: 10.0.0.2 via lt-1/1/0.5, selected Session Id: 0x100001 State: <Active Ext> Local AS: 1 Peer AS: 2 Age: 20:39:01 Validation State: unverified Task: BGP_2.10.0.0.2+179 Announcement bits (1): 0-KRT AS path: 2 I Accepted Localpref: 100 Router ID: 192.168.0.3
No dispositivo R1, desative a
community remove
configuração na política de importação.[edit policy-options policy-statement remove-communities term 1] user@R1# deactivate then community delete wild user@R1# commit
No dispositivo R1, execute o
show route protocols bgp extensive
comando para visualizar as comunidades anunciadas.user@R1> show route protocols bgp extensive inet.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden) 10.2.0.0/16 (1 entry, 1 announced) TSI: KRT in-kernel 10.2.0.0/16 -> {10.0.0.2} *BGP Preference: 170/-101 Next hop type: Router, Next hop index: 671 Address: 0x9458270 Next-hop reference count: 4 Source: 10.0.0.2 Next hop: 10.0.0.2 via lt-1/1/0.5, selected Session Id: 0x100001 State: <Active Ext> Local AS: 1 Peer AS: 2 Age: 20:40:53 Validation State: unverified Task: BGP_2.10.0.0.2+179 Announcement bits (1): 0-KRT AS path: 2 I Communities: 2:1 2:2 2:3 2:4 2:5 2:6 2:7 2:8 2:9 2:10 Accepted Localpref: 100 Router ID: 192.168.0.3 10.3.0.0/16 (1 entry, 1 announced) TSI: KRT in-kernel 10.3.0.0/16 -> {10.0.0.2} *BGP Preference: 170/-101 Next hop type: Router, Next hop index: 671 Address: 0x9458270 Next-hop reference count: 4 Source: 10.0.0.2 Next hop: 10.0.0.2 via lt-1/1/0.5, selected Session Id: 0x100001 State: <Active Ext> Local AS: 1 Peer AS: 2 Age: 20:40:53 Validation State: unverified Task: BGP_2.10.0.0.2+179 Announcement bits (1): 0-KRT AS path: 2 I Communities: 2:1 2:2 2:3 2:4 2:5 2:6 2:7 2:8 2:9 2:10 Accepted Localpref: 100 Router ID: 192.168.0.3
Significado
A saída mostra que na tabela de roteamento do Dispositivo R1, as comunidades são suprimidas nas rotas BGP enviadas do Dispositivo R2. Quando a community remove
configuração da política de importação do Dispositivo R1 é desativada, as comunidades não são mais suprimidas.
Exemplo: Configuração de uma política de roteamento com base no número de comunidades BGP
Este exemplo mostra como criar uma política que aceita rotas BGP com base no número de comunidades BGP.
Requisitos
Nenhuma configuração especial além da inicialização do dispositivo é necessária antes de configurar este exemplo.
Visão geral
Este exemplo mostra dois dispositivos de roteamento com uma conexão BGP (EBGP) externa entre eles. O Dispositivo R2 usa a sessão BGP para enviar duas rotas estáticas ao dispositivo R1. No Dispositivo R1, uma política de importação especifica que as rotas recebidas pelo BGP podem conter até cinco comunidades a serem consideradas compatíveis. Por exemplo, se uma rota contém três comunidades, ela é considerada compatível e é aceita. Se uma rota contém seis ou mais comunidades, ela é considerada inigualálida e é recusada.
É importante lembrar que a política padrão do EBGP é aceitar todas as rotas. Para garantir que as rotas sem conformidade sejam recusadas, você deve incluir uma then reject
ação ao final da definição de políticas.
Topologia
Figura 3 mostra a rede de amostra.
Configuração
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 R1
set interfaces fe-1/1/0 unit 0 description to-R2 set interfaces fe-1/1/0 unit 0 family inet address 10.0.0.1/30 set interfaces lo0 unit 0 family inet address 192.168.0.1/32 set protocols bgp group external-peers type external set protocols bgp group external-peers peer-as 2 set protocols bgp group external-peers neighbor 10.0.0.2 import import-communities set policy-options policy-statement import-communities term 1 from protocol bgp set policy-options policy-statement import-communities term 1 from community-count 5 orlower set policy-options policy-statement import-communities term 1 then accept set policy-options policy-statement import-communities term 2 then reject set routing-options router-id 192.168.0.1 set routing-options autonomous-system 1
Dispositivo R2
set interfaces fe-1/1/0 unit 0 description to-R1 set interfaces fe-1/1/0 unit 0 family inet address 10.0.0.2/30 set interfaces lo0 unit 0 family inet address 192.168.0.2/32 set protocols bgp group external-peers type external set protocols bgp group external-peers export statics set protocols bgp group external-peers peer-as 1 set protocols bgp group external-peers neighbor 10.0.0.1 set policy-options policy-statement statics from protocol static set policy-options policy-statement statics then community add 1 set policy-options policy-statement statics then accept set policy-options community 1 members 2:1 set policy-options community 1 members 2:2 set policy-options community 1 members 2:3 set policy-options community 1 members 2:4 set policy-options community 1 members 2:5 set policy-options community 1 members 2:6 set policy-options community 1 members 2:7 set policy-options community 1 members 2:8 set policy-options community 1 members 2:9 set policy-options community 1 members 2:10 set routing-options static route 10.2.0.0/16 reject set routing-options static route 10.2.0.0/16 install set routing-options static route 10.3.0.0/16 reject set routing-options static route 10.3.0.0/16 install set routing-options router-id 192.168.0.3 set routing-options autonomous-system 2
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 no Guia de usuário do Junos OS CLI.
Para configurar o dispositivo R1:
Configure as interfaces.
[edit interfaces] user@R1# set fe-1/1/0 unit 0 description to-R2 user@R1# set fe-1/1/0 unit 0 family inet address 10.0.0.1/30 user@R1# set lo0 unit 0 family inet address 192.168.0.1/32
Configure BGP.
Aplique a política de importação na sessão de peering BGP com o Dispositivo R2.
[edit protocols bgp group external-peers] user@R1# set type external user@R1# set peer-as 2 user@R1# set neighbor 10.0.0.2 import import-communities
Configure a política de roteamento que envia rotas diretas.
[edit policy-options policy-statement import-communities] user@R1# set term 1 from protocol bgp user@R1# set term 1 from community-count 5 orlower user@R1# set term 1 then accept user@R1# set term 2 then reject
Configure o número do sistema autônomo (AS) e o ID do roteador.
[edit routing-options ] user@R1# set router-id 192.168.0.1 user@R1# set autonomous-system 1
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 R2:
Configure as interfaces.
[edit interfaces] user@R2# set fe-1/1/0 unit 0 description to-R1 user@R2# set fe-1/1/0 unit 0 family inet address 10.0.0.2/30 user@R2# set lo0 unit 0 family inet address 192.168.0.2/32
Configure a ID do roteador e o número do sistema autônomo (AS).
[edit routing-options] user@R2# set router-id 192.168.0.3 user@R2# set autonomous-system 2
Configure BGP.
[edit protocols bgp group external-peers] user@R2# set type external user@R2# set peer-as 1 user@R2# set neighbor 10.0.0.1
Configure várias comunidades ou configure uma única comunidade com vários membros.
[edit policy-options community 1] user@R2# set members 2:1 user@R2# set members 2:2 user@R2# set members 2:3 user@R2# set members 2:4 user@R2# set members 2:5 user@R2# set members 2:6 user@R2# set members 2:7 user@R2# set members 2:8 user@R2# set members 2:9 user@R2# set members 2:10
Configure as rotas estáticas.
[edit routing-options static] user@R2# set route 10.2.0.0/16 reject user@R2# set route 10.2.0.0/16 install user@R2# set route 10.3.0.0/16 reject user@R2# set route 10.3.0.0/16 install
Configure uma política de roteamento que anuncia rotas estáticas para o BGP e adiciona a comunidade BGP às rotas.
[edit policy-options policy-statement statics] user@R2# set from protocol static user@R2# set then community add 1 user@R2# set then accept
Aplicar a política de exportação.
[edit protocols bgp group external-peers] user@R2# set export statics
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.
Dispositivo R1
user@R1# show interfaces fe-1/1/0 { unit 0{ description to-R2; family inet { address 10.0.0.1/30; } } } lo0 { unit 0 { family inet { address 192.168.0.1/32; } } } }
user@R1# show protocols bgp { group external-peers { type external; peer-as 2; neighbor 10.0.0.2 { import import-communities; } } }
user@R1# show policy-options policy-statement import-communities { term 1 { from { protocol bgp; community-count 5 orlower; } then accept; } term 2 { then reject; } }
user@R1# show routing-options router-id 192.168.0.1; autonomous-system 1;
Dispositivo R2
user@R2# show interfaces fe-1/1/0 { unit 0 { description to-R1; family inet { address 10.0.0.2/30; } } } lo0 { unit 0 { family inet { address 192.168.0.2/32; } } }
user@R2# show protocols bgp { group external-peers { type external; export statics; peer-as 1; neighbor 10.0.0.1; } }
user@R2# show policy-options policy-statement statics { from protocol static; then { community add 1; accept; } } community 1 members [ 2:1 2:2 2:3 2:4 2:5 2:6 2:7 2:8 2:9 2:10 ];
user@R2# show routing-options static { route 10.2.0.0/16 { reject; install; } route 10.3.0.0/16 { reject; install; } } router-id 192.168.0.3; autonomous-system 2;
Se você terminar de configurar os dispositivos, entre no commit
modo de configuração.
Verificação
Confirme se a configuração está funcionando corretamente.
Verificação das rotas BGP
Propósito
Certifique-se de que a tabela de roteamento do dispositivo R1 contém as rotas BGP esperadas.
Ação
No dispositivo R1, execute o
show route protocols bgp
comando.user@R1> show route protocols bgp inet.0: 5 destinations, 5 routes (3 active, 0 holddown, 2 hidden)
No dispositivo R1, altere a
community-count
configuração da política de importação.[edit policy-options policy-statement import-communities term 1] user@R1# set from community-count 5 orhigher user@R1# commit
No dispositivo R1, execute o
show route protocols bgp
comando.user@R1> show route protocols bgp inet.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden) + = Active Route, - = Last Active, * = Both 10.2.0.0/16 *[BGP/170] 18:29:53, localpref 100 AS path: 2 I, validation-state: unverified > to 10.0.0.2 via fe-1/1/0.0 10.3.0.0/16 *[BGP/170] 18:29:53, localpref 100 AS path: 2 I, validation-state: unverified > to 10.0.0.2 via fe-1/1/0.0
No dispositivo R1, execute o
show route protocols bgp extensive
comando para visualizar as comunidades anunciadas.user@R1> show route protocols bgp extensive inet.0: 5 destinations, 5 routes (5 active, 0 holddown, 0 hidden) 10.2.0.0/16 (1 entry, 1 announced) TSI: KRT in-kernel 10.2.0.0/16 -> {10.0.0.2} *BGP Preference: 170/-101 Next hop type: Router, Next hop index: 671 Address: 0x9458270 Next-hop reference count: 4 Source: 10.0.0.2 Next hop: 10.0.0.2 via fe-1/1/0.0, selected Session Id: 0x100001 State: <Active Ext> Local AS: 1 Peer AS: 2 Age: 18:56:10 Validation State: unverified Task: BGP_2.10.0.0.2+179 Announcement bits (1): 0-KRT AS path: 2 I Communities: 2:1 2:2 2:3 2:4 2:5 2:6 2:7 2:8 2:9 2:10 Accepted Localpref: 100 Router ID: 192.168.0.3 10.3.0.0/16 (1 entry, 1 announced) TSI: KRT in-kernel 10.3.0.0/16 -> {10.0.0.2} *BGP Preference: 170/-101 Next hop type: Router, Next hop index: 671 Address: 0x9458270 Next-hop reference count: 4 Source: 10.0.0.2 Next hop: 10.0.0.2 via fe-1/1/0.0, selected Session Id: 0x100001 State: <Active Ext> Local AS: 1 Peer AS: 2 Age: 18:56:10 Validation State: unverified Task: BGP_2.10.0.0.2+179 Announcement bits (1): 0-KRT AS path: 2 I Communities: 2:1 2:2 2:3 2:4 2:5 2:6 2:7 2:8 2:9 2:10 Accepted Localpref: 100 Router ID: 192.168.0.3
Significado
A saída mostra que, na tabela de roteamento do Dispositivo R1, as rotas BGP enviadas do Dispositivo R2 estão ocultas. Quando a community-count
configuração da política de importação do Dispositivo R1 é modificada, as rotas BGP não ficam mais ocultas.