sábado, 29 de maio de 2010

BGP - Melhor rota pelo Router-ID


1        Seleção de rotas

O protocolo BGP possui um critério de seleção de rotas Baseado nos atributos aplicados nas rotas recebidas. Seu critério de seleção segue abaixo:
1.     Preferir o cainho com o maior WEIGHT configurado.
O WEIGHT é um parâmetro específico da Cisco System e é avaliado localmente no routeador que é configurado, ou seja, não é enviado para os vizinhos junto com a rota.
2.     Preferir o caminho com o maior valor de LOCAL_PREF.
Um caminho sem LOCAL_PREF possui o valor configurado no comando “bgp default local-preference” ou o valor de 100 por padrão.
3.     Preferir o caminho originado localmente pelo comando network ou aggregate ou por uma redistribuição do IGP. Caminhos locais que são originados pelos comandos network ou redistribute são preferidos do que os aggregates.
4.     Preferir o caminho com o menor AS_PATH.
Considerações:
         Esse passo é ignorado se estiver configurado “bgp bestpath as-path ignore”.
         Um AS_SET conta como 1, no importando quantos Ass existem no set.
         Os ASs de confederation não são incluidos no tamanho do AS_PATH.
5.     Preferir o caminho com o menor tipo de origem.
O IGP (i) é melhor que o EGP (e) e o EGP ié melhor que INCOMPLETE (?).
6.     Preferir o caminho com a menor métrica multi-exit discriminator (MED).
Considerações:
         Essa comparação somente ocorre se o primeiro AS (AS vizinho) for o mesmo dos dois caminhos. Todos os confederation sub-Ass são ignorados.
         Se o comando “bgp always-compare-med” estiver configurado o MED sera comparado para todos os caminhos. Você deve desabilitar essa opção em todo o AS, caso contrário loops poderão ocorrer.
         Se o comando “bgp bestpath med-confed” estiver configurado o MED será comparado paratodos os caminhos que estiverem somente no AS_CONFED_SEQUENCE. Esses caminhos são originados dentro da confederação local.
         Por padrão um caminho é recebido com o MED no valor 0 ao menos que tenha sido configurado  0 comando “bgp bestpath med missing-as-worst” que ajusta o MED do caminho para 4,294,967,294.
         O MED dos caminhos que são recebidos dos vizinhos com o valor 4,294,967,295 são alterados para o valor 4,294,967,294 antes de serem inseridos na tabela de roteamento BGP.
7.     Preferir caminhos externos (eBGP) à internos (iBGP).
Caminhos que contenham sequencia de AS de confederation são considerados locais a confederação. Portanto, esses caminhos são tratados como caminhos internos. Não há distinção entre externo e interno na confederação.
8.     Preferir os caminhos com menor métrica IGP para o nexthop BGP.
9.     Preferir rotas externas mais antigas. Essa regra é válida caso não esteja configurado nenhum “bgp bestpath”.
10. Preferir as rotas recebidas de um roteador BGP com menor Router ID. O router ID é o maior endereço IP do roteador que é escolhido o IP da loopback. Pode-se usar o comando “bgp router-id” para configurar manualmente.
Se um caminho for aprendido por um route reflector (RR), o originator ID substitui o router ID.
11. Se o originator ID ou o router ID for o mesmo para caminhos múltiplos, preferir o caminho com o menor tamanho de cluster list. Isso só existe em ambientes com RR.
12. Preferir um caminho com o menor endereço do vizinho. Esse endereço é o endereço IP que é usado na configuração de vizinhança BGP.

2        Cenário

2.1           Objetivo

Seis roteadores (R1, R2, R3, R4, R5 e R6) são conectados fisicamente R1-R2-R3-R4-R5-R6-R1 e devem ser configurados com roteamento BGP seguindo os criterios abaixo:
         Os roteadores R1, R2 e R3 devem possuir como IGP o OSPF na área 0 divulgando suas interfaces físicas, porém as interfaces externas do AS deverão ficar no modo passivo;
         Os roteadores R4, R5 e R6 pertencem aos AS 4, 5 e 6 respectivamente e deverão fazer conexão EBGP R4 com R5 e R5 com R6;
         O R1 (AS 123) deverá fazer conexão EBGP com o R4 (AS 456) e IBGP com o R2 (AS 123) divulgando somente a sua loopback (1.1.1.1);
         O R3 (AS 123) deverá fazer conexão EBGP com o R6 (AS 456) e IBGP com o R2 (AS 123);
         O roteador R2 é Router-reflectors do seu AS;

2.2           Topologia

Figure-01:              Topologia

2.3           IOS utilizados

         R1, R2, R3, R4, R5 e R6 – c7200-js-mz.123-7.T.bin

2.4           Configuração dos Roteadores

Em todos os roteadores, antes de configurar o roteamento BGP, deve-se configurar o IGP, ou seja, o roteamento interno para que os roteadores possam conhecer o endereço IP para fechar a conexão BGP e também para que a rota seja divulgada na tabela de roteamento BGP. Esse IGP pode ser OSPF, ISIS, estático, etc.

2.4.1      Configurações do OSPF

Para o OSPF a configuração é feita pelo comando “router ospf ” onde o “processo” é um numero do processo OSPF. Para adicionar interfaces usa-se o comando “network
area ”. Para o roteador fazer vizinhança OSPF é necessário que a rede da interface esteja no comando “network” e a interface não esteja configurada como “passive-interface”.
As interfaces de borda dos roteadores de borda são configuradas como “passive-interface” dentro das configurações de roteamento.

2.4.2      Configurações do BGP

No BGP, agora que os roteadores conhecem os endreços IPs de seus vizinhos pelo IGP, configura-se-o em todos os roteadores pelo comando “router bgp ” onde o “AS” é o Autonomous System do provedor. Dentro da configuração de BGP adicionam-se os vizinhos estaticamente com o comando “neighbor remote-as ”, onde se o for igual ao AS do roteador a conexão é IBGP, se for diferente será EBGP.
Adiciona-se o IP da interface loopback como Router-ID pelo comando “router-id ”. Para divulgar rede no BGP é necessário que a rede exista na tabela de roteamento interna e ou adicionar o comando “network mask ” ou redistribuindo rotas para o BGP com o comando “redistribute ”.
Os roteadores dentro do mesmo AS não divulgarão as rotas IBGP entre eles, pois o BGP só divulga para o vizinho rotas aprendidas por EBGP, ou seja, rotas externas. Para isso ou faz-se o full-mesh de conexão BGP ou configuram-se os roteadores centrais como Router-reflectors adicionando os demais roteadores como clientes pelo comando “neighbor router-reflector-client”.
De acordo com o critério de seleção de rotas do BGP, é necessário que os critérios Weight, Local Preference, AS_PATH, origem e métrica IGP empatem e também seja adicionado o comand “bgp bestpath compare-routerid” para que seja feita a avaliação da rota baseado no Router-ID. O comando “bgp bestpath compare-routerid” é necessário para que não seja usada a rota mais antiga como melhor caminho.

2.5           Observações e Bugs

Documentação:

2.6           Comandos Importantes de Verificação

R5#sh ip bgp 1.1.1.1
BGP routing table entry for 1.1.1.1/32, version 3
Paths: (2 available, best #2, table Default-IP-Routing-Table)
  Advertised to update-groups:
     1        
  4 123
    45.45.45.4 from 45.45.45.4 (44.44.44.44)
      Origin IGP, localpref 100, valid, external
  6 123
    56.56.56.6 from 56.56.56.6 (6.6.6.6)
      Origin IGP, localpref 100, valid, external, best  1        

3        Configuração

3.1           R1

!
router ospf 1
 network 12.12.12.1 0.0.0.0 area 0
 network 14.14.14.1 0.0.0.0 area 0
!
router bgp 123
 network 1.1.1.1 mask 255.255.255.255
 neighbor 12.12.12.2 remote-as 123
 neighbor 14.14.14.4 remote-as 4
!      

3.2           R2

!
router ospf 1
 network 12.12.12.2 0.0.0.0 area 0
 network 23.23.23.2 0.0.0.0 area 0
!
router bgp 123
 neighbor 12.12.12.1 remote-as 123
 neighbor 23.23.23.3 remote-as 123
!      

3.3           R3

!
router ospf 1
 network 23.23.23.3 0.0.0.0 area 0
 network 36.36.36.3 0.0.0.0 area 0
!
router bgp 123
 neighbor 23.23.23.2 remote-as 123
 neighbor 36.36.36.6 remote-as 6
!      

3.4           R4

!
router bgp 4
 bgp router-id 44.44.44.44
 neighbor 14.14.14.1 remote-as 123
 neighbor 45.45.45.5 remote-as 5
!      

3.5           R5

!
router bgp 5
 bgp bestpath compare-routerid
 neighbor 45.45.45.4 remote-as 4
 neighbor 56.56.56.6 remote-as 6
!      

3.6           R6

!
router bgp 6
 bgp router-id 6.6.6.6
 neighbor 36.36.36.3 remote-as 123
 neighbor 56.56.56.5 remote-as 5
!     

Nenhum comentário: