1 Atributo AS_PATH
O AS_PATH é um atributo do BGP mandatório transitável entre diferentes AS (Well-known mandatory, tipo 2) indica a sequencia de AS em que a divulgação daquela rota viaja até chegar ao roteador de origem. Cada AS que a rota passa é adicionado (prepend) o número do AS em que ela está passando no atributo AS_PATH.
Sempre que uma atualização de rota passa através de uma AS o N.º da AS é pré-anexado aquela atualização (colocado no inicio da lista de AS's que foram atravessadas até chegar o destino. Pode-se fazer alterações no AS_PATH, como por exemplo adicionar mais vezes o seu AS para que a rota não seja preferida.
1.1 Prepend
O prepend é um recurso disponível no BGP que serve para adicionar várias vezes o seu AS em um caminho de AS do BGP (AS_PATH). Conforme o atributo diz, quanto menor o caminho, pior.
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 deverão participar do AS 123 fazendo iBGP entre eles full mesh utilizando peer-group e deverão utilizar como IGP o OSPF na área 0 divulgando suas interfaces físicas e as interfaces externas deverão ficar como passivas;
• O router-ID do BGP e OSPF de todos os roteadores é o endereço IP da loopback;
• O R1 pertence ao AS 123 deverá fazer conexão eBGP com o R4 (AS 4) e deverá divulgar somente sua loopback 1.1.1.1 no BGP;
• O R3 pertence ao AS 123 deverá fazer conexão eBGP com o R6 (AS 6) e deverá divulgar somente sua loopback 3.3.3.3 no BGP;
• O R4 pertence ao AS 4 e faz eBGP com o R5 (AS 5). O R4 deverá adicionar 3 vezes o seu AS na rota 1.1.1.1 aprendida do R1;
• O R6 pertence ao AS 6 e faz eBGP com o R5 (AS 5). O R6 deverá adicionar 3 vezes o seu AS na rota 3.3.3.3 aprendida do R3.
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 um IGP, ou seja, um 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ção do IGP
O processo de ativação do OSPF é feito pelo comando “router ospf ” onde o “processo” é um numero do processo OSPF. Para adicionar interfaces usa-se o comando “network
área ”. 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”.
2.4.2 Configuração do BGP
Voltando ao BGP, agora que os roteadores conhecem os endreços IPs de seus vizinhos pelo IGP, configura-se o BGP em todos os roteadores pelo comando “router bgp ” onde o “AS” é o Autonomous System do provedor. Dentro da configuração de BGP adiciona-se os vizinhos estaticamente com o comando “neighbor remote-as ”, onde se o “as_vizinho” 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 redistribuir rotas para o BGP com o comando “redistribute”.
As configurações de BGP atualmente podem ser feitas dentro da família de endereçamento IPv4, ou seja, dentro da configuração de roteamento entra-se no “address-family ipv4” e configuram-se as vizinhanças, router-reflector, community, route-map, etc.
Para adicionar várias vezes o AS no AS_PATH usa-se um route-map aplicado ao vizinho que se deseja divulgar o AS_PATH extenso.
2.5 Observações e Bugs
Caso o AS_Path não fosse modificado com o prepend, o caminho preferencial no R5, tanto para o IP 1.1.1.1 (loopback divulgada pelo R1 no BGP) quanto para o IP 3.3.3.3 (loopback divulgada pelo R3 no BGP), seria via o link entre o R1 x R4 devido ao menor endereço IP do vizinho ser 45.45.45.4 comparado ao 56.56.56.6.
Documentação:
2.6 Comandos Importantes de Verificação
R5#sh ip bgp
BGP table version is 8, local router ID is 5.5.5.5
Status codes: s suppressed, d damped, h history, * valid, > best, i - internal,
r RIB-failure, S Stale
Origin codes: i - IGP, e - EGP, ? - incomplete
Network Next Hop Metric LocPrf Weight Path
*> 1.1.1.1/32 45.45.45.4 0 4 4 4 123 i
*> 3.3.3.3/32 56.56.56.6 0 6 6 6 123 i
3 Configuração
3.1 R1
router ospf 1 router-id 1.1.1.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 bgp router-id 1.1.1.1 neighbor GRUPO peer-group neighbor GRUPO remote-as 123 neighbor 12.12.12.2 peer-group GRUPO neighbor 14.14.14.4 remote-as 4 neighbor 23.23.23.3 peer-group GRUPO ! address-family ipv4 neighbor GRUPO activate neighbor 12.12.12.2 peer-group GRUPO neighbor 14.14.14.4 activate neighbor 23.23.23.3 peer-group GRUPO network 1.1.1.1 mask 255.255.255.255 ! |
3.2 R2
! router ospf 1 router-id 2.2.2.2 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 bgp router-id 2.2.2.2 neighbor GRUPO peer-group neighbor GRUPO remote-as 123 neighbor 12.12.12.1 peer-group GRUPO neighbor 23.23.23.3 peer-group GRUPO ! address-family ipv4 neighbor GRUPO activate neighbor 12.12.12.1 peer-group GRUPO neighbor 23.23.23.3 peer-group GRUPO ! |
3.3 R3
! router ospf 1 router-id 3.3.3.3 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 bgp router-id 3.3.3.3 neighbor GRUPO peer-group neighbor GRUPO remote-as 123 neighbor 12.12.12.1 peer-group GRUPO neighbor 23.23.23.2 peer-group GRUPO neighbor 36.36.36.6 remote-as 6 ! address-family ipv4 neighbor GRUPO activate neighbor 12.12.12.1 peer-group GRUPO neighbor 23.23.23.2 peer-group GRUPO neighbor 36.36.36.6 activate network 3.3.3.3 mask 255.255.255.255 ! |
3.4 R4
! router bgp 4 bgp router-id 4.4.4.4 neighbor 14.14.14.1 remote-as 123 neighbor 45.45.45.5 remote-as 5 ! address-family ipv4 neighbor 14.14.14.1 activate neighbor 45.45.45.5 activate neighbor 45.45.45.5 route-map PREPEND out ! ! ip access-list standard Loopback_R1 permit 1.1.1.1 ! ! route-map PREPEND permit 10 match ip address Loopback_R1 set as-path prepend 4 4 ! route-map PREPEND permit 20 ! |
3.5 R5
! router bgp 5 bgp router-id 5.5.5.5 bgp log-neighbor-changes neighbor 45.45.45.4 remote-as 4 neighbor 56.56.56.6 remote-as 6 ! address-family ipv4 neighbor 45.45.45.4 activate neighbor 56.56.56.6 activate ! |
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 ! address-family ipv4 neighbor 36.36.36.3 activate neighbor 56.56.56.5 activate neighbor 56.56.56.5 route-map PREPEND out ! ! ip access-list standard Loopback_R3 permit 3.3.3.3 ! ! route-map PREPEND permit 10 match ip address Loopback_R3 set as-path prepend 6 6 ! route-map PREPEND permit 20 ! |
Nenhum comentário:
Postar um comentário