sábado, 29 de maio de 2010

BGP - Seleção de rota pelo IGP


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 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.
10. 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.
11. 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 devem possuir como IGP o também o OSPF na área 0 divulgando suas interfaces físicas, porém as interfaces externas do AS deverão ficar no modo passivo;
         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);
         Os roteadores R2 e R5 deverão ser Router-reflectors dos seus respectivos 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 e origem empatem para que seja feita a avaliação da rota baseado no IGP, no caso o OSPF. Configura-se então o custo do link no OSPF priorizando um caminho.

2.5           Observações e Bugs

Documentação:

3        Configuração

3.1           Comandos Importantes de Verificação

R5#sh ip route

Gateway of last resort is not set

     1.0.0.0/32 is subnetted, 1 subnets
B       1.1.1.1 [200/0] via 36.36.36.3, 00:09:16
     5.0.0.0/32 is subnetted, 1 subnets
C       5.5.5.5 is directly connected, Loopback0
     36.0.0.0/24 is subnetted, 1 subnets
O       36.36.36.0 [110/6] via 56.56.56.6, 00:09:56, FastEthernet1/0
     56.0.0.0/24 is subnetted, 1 subnets
C       56.56.56.0 is directly connected, FastEthernet1/0
     14.0.0.0/24 is subnetted, 1 subnets
O       14.14.14.0 [110/11] via 45.45.45.4, 00:09:56, FastEthernet0/0
     45.0.0.0/24 is subnetted, 1 subnets
C       45.45.45.0 is directly connected, FastEthernet0/0

R5#show ip bgp 1.1.1.1
BGP routing table entry for 1.1.1.1/32, version 4
Paths: (2 available, best #2, table Default-IP-Routing-Table)
  Advertised to update-groups:
     1        
  123, (Received from a RR-client)
    14.14.14.1 (metric 11) from 45.45.45.4 (4.4.4.4)
      Origin IGP, metric 0, localpref 100, valid, internal
  123, (Received from a RR-client)
    36.36.36.3 (metric 6) from 56.56.56.6 (6.6.6.6)
      Origin IGP, metric 0, localpref 100, valid, internal, best

R5#show ip ospf interface bri
Interface    PID   Area            IP Address/Mask    Cost  State Nbrs F/C
Fa1/0        1     0               56.56.56.5/24      5     BDR   1/1
Fa0/0        1     0               45.45.45.5/24      10    DR    1/1

3.2           R1

router ospf 1
 passive-interface FastEthernet1/0
 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 456
!

3.3           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 12.12.12.1 route-reflector-client
 neighbor 23.23.23.3 remote-as 123
 neighbor 23.23.23.3 route-reflector-client
!

3.4           R3

!
router ospf 1
 passive-interface FastEthernet0/0
 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 456
!

3.5           R4

!
router ospf 1
 passive-interface FastEthernet1/0
 network 14.14.14.4 0.0.0.0 area 0
 network 45.45.45.4 0.0.0.0 area 0
!
router bgp 456
 neighbor 14.14.14.1 remote-as 123
 neighbor 45.45.45.5 remote-as 456
!

3.6           R5

!
interface FastEthernet0/0
 ip ospf cost 10
!        
interface FastEthernet1/0
 ip ospf cost 5
!
router ospf 1
 network 45.45.45.5 0.0.0.0 area 0
 network 56.56.56.5 0.0.0.0 area 0
!
router bgp 456
 neighbor 45.45.45.4 remote-as 456
 neighbor 45.45.45.4 route-reflector-client
 neighbor 56.56.56.6 remote-as 456
 neighbor 56.56.56.6 route-reflector-client
!

3.7           R6

!
router ospf 1
 passive-interface FastEthernet0/0
 network 36.36.36.6 0.0.0.0 area 0
 network 56.56.56.6 0.0.0.0 area 0
!
router bgp 456
 neighbor 36.36.36.3 remote-as 123
 neighbor 56.56.56.5 remote-as 456
!

Nenhum comentário: