sexta-feira, 28 de maio de 2010

BGP - Atributo MED 01


1        Atributo MED

O MED, chamado de métrica, é um atributo opcional (optional nontransitive, tipo 4), ou seja, pode não ser avaliado, e não é enviado na informação de rotas para os vizinhos internos, somente para o vizinho do outro AS. É a divulgação de um caminho preferido dentro de um AS para AS’s externos.  Utilizado quando tem 2 entradas para o mesmo AS. Por ser métrica, quanto mais baixo melhor. Se não estiver habilitada a opção de verificar o MED, em routers CISCO é colocado por default o 0 que indica a melhor rota, mas no padrão IETF é colocado como infinito, a pior rota. Pode-se configurar para manter o padrão do IETF: bgp bestpath missing-as-worst
O MED pode ser alterado usando route-maps aplicando para determinadas rotas.
O MED é usado como critério de avaliação de roteamento caso o weight, local preference, as-path e a origem sejam iguais para um mesmo destino.


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 possuem como IGP o OSPF na área 0 divulgando suas interfaces físicas;
         Os roteadores R4, R5 e R6 possuem como IGP o ISIS, Level-2 somente, na área 49.0456 divulgando suas interfaces físicas;
         O R1 (AS 123) faz conexão EBGP com o R4 (AS 456);
         O R3 (AS 123) faz conexão EBGP com o R6 (AS 456);
         Os roteadores R2 e R4 deverão ser Router-reflectors dos seus respectivos AS;
         O router-ID de todos os roteadores é o endereço IP das loopbacks;
         Somente as interfaces loopbacks do R1 e do R3 deverão ser divulgadas no BGP;
         O trafego do AS 456 destinado ao 1.1.1.1 deve ser encaminhado pelo link R6xR3 e o tráfego destinado ao 3.3.3.3 deve er encaminhado via R4xR1. Essa influencia deve ser feita com uso de MED e route-maps.

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 ISIS

Para o ISIS, independente da área e level, é configurado pelo comando “router Isis” e não possui o número de área no comando principal como o OSPF. Na configuração de roteamento é adicionado o endereço NSAP, que é o endereço único do roteador no ISIS configurado pelo comando “net” com o formato “49.XXXX.0000.0000.000Y.00. O “49” indica ser uma área privada e o “Y” um valor diferente dos demais roteadores.
Por padrão, todos os roteadores são Level-1-2. Deve-se alterar o level do roteador dentro do “router Isis” ou nas interfaces.
As interfaces de borda dos roteadores de borda são configuradas como “passive-interface” dentro das configurações de roteamento.

2.4.3      Configurações 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 adicionam-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 adicionando 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 configura-se os roteadores centrais como Router-reflectors adicionando os demais roteadores como clientes pelo comando “neighbor router-reflector-client”.
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 que o tráfego com destino a loopback do R1 seja encaminhado pelo link R6xR3 e o tráfego para a loopback do R3 seja encaminhado pelo link R4xR1, aplicasse no R1 e no R3 route-maps na configuração de vizinhança BGP com o os seus vizinhos externos.
Na configuração de route-map cria-se antes 2 ACLs, uma com o endereço ip 1.1.1.1 e a outra com o endereço IP 3.3.3.3. No route-map usa-se o “mach ip address ” para identificar as rotas da rede, no caso 1.1.1.1 e 3.3.3.3, e depois usa-se “set metric ” para aplicar o valor do MED para aquele endereço. No link R1xR4 a métrica de 1.1.1.1 deve ser maior que a métrica de 1.1.1.1 aplicada no R3xR6. Para 3.3.3.3 faz-se o contrário.

2.5           Observações e Bugs

Observe que, caso o MED não fosse alterado nos roteadores R1 e R3 do AS externo (123), o AS 456 iria encaminhar o seu tráfego para os vizinhos baseado na origem (eBGP). Já o roteador central, R5, iria encaminhar seu tráfego usando como critério de seleção de caminho o menor endereço IP do nexthop da rota, ou seja, 14.14.14.1.
Documentação:
http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a00800c95bb.shtml

2.6           Comandos Importantes de Verificação

R5#sh ip bgp
BGP table version is 18, 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
*>i1.1.1.1/32       36.36.36.3             100    100      0 123 i
*>i3.3.3.3/32       14.14.14.1             100    100      0 123 i

R4#sh ip bgp
BGP table version is 16, local router ID is 4.4.4.4
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
*>i1.1.1.1/32       36.36.36.3             100    100      0 123 i
*                   14.14.14.1             200             0 123 i
*> 3.3.3.3/32       14.14.14.1             100             0 123 i

R6#sh ip bgp               
BGP table version is 13, local router ID is 6.6.6.6
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       36.36.36.3             100             0 123 i
*>i3.3.3.3/32       14.14.14.1             100    100      0 123 i
*                   36.36.36.3             200             0 123 i

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 456
 neighbor 14.14.14.4 route-map SET-MED out
!
!
access-list 10 permit 1.1.1.1
access-list 20 permit 3.3.3.3
!
route-map SET-MED permit 10
 match ip address 10
 set metric 200
!
route-map SET-MED permit 20
 match ip address 20
 set metric 100
!

3.2           R2

!
router ospf 1
 log-adjacency-changes
 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
 no synchronization
 bgp log-neighbor-changes
 neighbor 12.12.12.1 remote-as 123
 neighbor 23.23.23.3 remote-as 123
 neighbor 12.12.12.2 route-reflector-client
 neighbor 23.23.23.3 route-reflector-client
!

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
 network 3.3.3.3 mask 255.255.255.255
 neighbor 23.23.23.2 remote-as 123
 neighbor 36.36.36.6 remote-as 456
 neighbor 36.36.36.6 route-map SET-MED out
!
!
access-list 10 permit 1.1.1.1
access-list 20 permit 3.3.3.3
!
route-map SET-MED permit 10
 match ip address 10
 set metric 100
!
route-map SET-MED permit 20
 match ip address 20
 set metric 200
!

3.4           R4

!
interface FastEthernet0/0
ip router isis
!        
interface FastEthernet1/0
 ip router isis
!
router isis
 net 49.0456.0000.0000.0004.00
 is-type level-2-only
 passive-interface FastEthernet1/0
!
router bgp 456
 no synchronization
 bgp router-id 4.4.4.4
 bgp log-neighbor-changes
 neighbor 14.14.14.1 remote-as 123
 neighbor 45.45.45.5 remote-as 456
!

3.5           R5

!
interface FastEthernet0/0
 ip router isis
!
interface FastEthernet1/0
 ip router isis
!
router isis
 net 49.0456.0000.0000.0005.00
 is-type level-2-only
!
router bgp 456
 bgp router-id 5.5.5.5
 network 5.5.5.5 mask 255.255.255.255
 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.6           R6

!
interface FastEthernet0/0
 ip router isis
!
interface FastEthernet1/0
 ip router isis
!
router isis
 net 49.0456.0000.0000.0006.00
 is-type level-2-only
!
router bgp 456
 bgp router-id 6.6.6.6
 network 6.6.6.6 mask 255.255.255.255
 neighbor 36.36.36.3 remote-as 123
 neighbor 56.56.56.5 remote-as 456
!

Nenhum comentário: