BGP Path Selection
O processo de BGP Path Selection define como o BGP escolhe o melhor caminho entre múltiplos disponíveis para o mesmo prefixo. Como o BGP pode receber várias rotas para um mesmo destino (de diferentes vizinhos ou ASNs) ele precisa seguir uma sequência de critérios para escolher uma única rota que será instalada na tabela de roteamento (RIB) e anunciada aos demais vizinhos.
O BGP não escolhe o menor número de saltos como protocolos como OSPF ou RIP. Em vez disso, ele usa atributos de rota, como local-preference
, AS_PATH
, MED
, entre outros, seguindo uma ordem específica.
A ordem de decisão (Path Selection) é o seguinte:
- Preferir o caminho com maior
weight
(atributo Cisco, local ao roteador). - Preferir o caminho com maior
local-preference
. - Preferir rotas originadas localmente (
network
ouaggregate
). - Preferir o caminho com menor
AS_PATH
(menos sistemas autônomos no caminho). - Preferir o caminho com menor
origin type
(IGP < EGP < Incomplete). - Preferir o menor
MED
(Multi-Exit Discriminator). - Preferir eBGP sobre iBGP.
- Preferir o caminho com menor IGP metric até o next-hop.
- Preferir o caminho mais antigo (estável).
- Preferir o caminho com menor
router ID
do peer. - Preferir o caminho com menor endereço IP do neighbor (desempate final).
Nem todos os critérios precisam ser aplicados, o processo para assim que um critério diferencia um único melhor caminho.
Exemplo prático. Suponha que um roteador receba duas rotas para 192.0.2.0/24
:
Origem | Local-Pref | AS-PATH | MED | Origem BGP |
---|---|---|---|---|
Vizinho A | 100 | 65050 65060 | 0 | iBGP |
Vizinho B | 200 | 65070 | 50 | eBGP |
Neste caso, a rota via Vizinho B será escolhida porque tem maior local-preference
, que é o segundo critério da lista. Os critérios seguintes nem são avaliados.
Local Preference versus Weight
A diferença entre Local Preference e Weight no BGP está no alcance e função de cada atributo.
O Local Preference é válido dentro do seu AS inteiro, ele é usado para influenciar qual saída será usada para destinos externos. Exemplo:
route-map PREFE_ALTA permit 10
set local-preference 200
router bgp 65010
neighbor 198.51.100.1 route-map PREFE_ALTA in
Se você tiver dois links com ISPs diferentes, o tráfego saindo do seu AS vai preferir o caminho com maior LOCAL_PREF.
Já o Weight é local ao roteador apenas, ou seja, não é compartilhado com nenhum outro roteador (como no caso do Local Preference). Ele é usado para decidir qual rota vai entrar na tabela de roteamento local.
route-map PESO_ALTO permit 10
set weight 500
router bgp 65010
neighbor 198.51.100.1 route-map PESO_ALTO in
O tráfego chegando nesse roteador vai preferir a rota com maior weight, mas outros roteadores do seu AS nem sabem disso.
Atributo | Escopo | Propagado para outros routers? | Prioridade no BGP | Finalidade principal |
---|---|---|---|---|
Weight | Local (1 roteador) | ❌ Não | Mais alta (no Cisco) | Escolher rota local preferida |
Local Pref | Todo o AS | ✅ Sim | Menor que weight | Controlar saída do tráfego BGP |
Use Weight para ajustes pontuais em um roteador (ex: preferir uma rota em um roteador específico). Use Local Preference para política de roteamento global dentro do seu AS (ex: preferir um provedor inteiro).
BGP Best Path
O BGP pode aprender várias rotas para o mesmo prefixo (ex: 10.0.0.0/24), vindas de diferentes vizinhos. O algoritmo de Best Path Selection serve para escolher apenas uma delas para instalar na tabela de roteamento (RIB).
Essa escolha segue uma ordem rígida de critérios, avaliando atributos da rota. A primeira que "desempatar" define o caminho vencedor.
A ordem de seleção é a seguinte:
Weight (Cisco-only)
- Maior é preferido.
- Local ao roteador, não propagado.
- Exemplo:
set weight 500
.
Local Preference (LOCAL_PREF)
- Maior é preferido.
- Compartilhado dentro do mesmo AS.
- Define a melhor saída do seu AS.
Origem da Rota (locally originated)
- Rota originada localmente (via
network
ouaggregate
) é preferida.
- Rota originada localmente (via
AS-PATH
- Menor quantidade de ASs é preferida.
- Evita caminhos longos.
Origin
IGP
<EGP
<INCOMPLETE
- Rota com origem mais confiável vence.
MED (Multi Exit Discriminator)
- Menor é preferido.
- Influencia entrada no seu AS.
eBGP vs iBGP
- Rotas aprendidas via eBGP são preferidas a rotas iBGP.
Menor IGP Metric até o NEXT_HOP
- Usa a métrica IGP (ex: OSPF) para alcançar o next-hop.
- Rota com next-hop mais “perto” ganha.
Router ID
- Menor
router-id
vence (se tudo acima empatar).
- Menor
Menor endereço IP do vizinho
- Se ainda houver empate, usa o IP do vizinho como critério final.