O algoritmo do BGP não permite que rotas aprendidas via iBGP sejam anunciadas para roteadores vizinhos. Lembrando que uma rota aprendida via eBGP deve ser ensinada para um vizinho iBGP, mas uma rota aprendida via iBGP não deve ser anunciada para roteadores vizinhos.
Quando BGP foi projetado originalmente, não havia nenhuma provisão para a prevenção de loop dentro de um Sistema Autônomo (AS ou ASN). Em vez disso, a regra de prefixos iBGP proíbe o anuncio de rotas aprendidas via iBGP para outro peer BGP interno.
Esta é a razão principal pela qual a inteligência do BGP necessita de conexões full mesh entre roteadores iBGP, isto é, todos roteadores devem estar conectados entre si. Mas a topologia iBGP com full mesh, traz problemas de escalabilidade na configuração, uma vez que o número de sessões para troca de tráfego irá ser N (N-1) / 2, onde N é o número de roteadores internos BGP
Perceba no diagrama abaixo que o prefixo aprendido por R3 via iBGP não é encaminhado para o roteador R4 devido a regra de prefixos aprendidos via iBGP citado acima.
Utilizando Roteadores Refletores (Router Reflectors ou RRs) em uma topologia iBGP, permitirá ao protocolo BGP quebrar a regra de proibição ao ensinar rotas aprendidas via iBGP para vizinhos internos.
Os roteadores configurados como Router Reflector dividem os seus vizinhos iBGP em duas classes: clientes e não-clientes.
As rotas aprendidas por roteadores iBGP clientes serão anunciadas para roteadores clientes e não-clientes. No, entanto as rotas aprendidas a partir de não-clientes serão anunciadas apenas para clientes.
Perceba no diagrama abaixo o prefixo anunciado para o Roteador R4 pelo Roteador R3 configurado como RR.
A configuração do Router Reflector só é necessária no roteador RR “servidor”, nenhuma configuração é necessária nos equipamentos clientes. Segue abaixo a configuração de R3.
! Configuração R3 ! bgp 234 peer 2.2.2.2 as-number 234 peer 2.2.2.2 description R2 peer 2.2.2.2 reflect-client peer 2.2.2.2 connect-interface LoopBack1 !
Cluster_List e Originator_ID
A configuração de Route Reflector é geralmente a atribuída a ambientes bem complexos. O BGP utiliza-se de alguns mecanismos para prevenção de loops como Cluster List e Originator ID:
– Cluster ID: O RR adiciona seu cluster ID ao encaminhar o update. Quando recebe um update BGP que contem o seu próprio Cluster ID os prefixos recebidos são descartados, evitando assim o gerar loop de roteamento pelos anuncios entre clusters.
– Originator ID: Uma lista de clusters (cluster-list) é uma seqüência de cluster-IDs que a rota atravessou. Quando um RR reflete uma rota de seus clientes para non-clients fora do cluster, ele adiciona o cluster-id local no final da cluster-list. Usando este atributo, um RR pode identificar se uma informação de roteamento fez um loop e voltou ao mesmo cluster que a originou (por alguma falha de configuração). Se o cluster-id local é encontrado na cluster-list, o anúncio da rota será descartado.
Conforme diagrama abaixo, segue um exemplo do output com a lista do Cluster list:
[R1]display bgp routing-table 55.55.55.0
BGP local router ID : 1.1.1.1
Local AS number : 234
Paths: 1 available, 1 best
BGP routing table entry information of 55.55.55.0/24:
RR-client route.
From : 4.4.4.4 (4.4.4.4)
Relay Nexthop : 192.168.45.5
Original nexthop: 2.2.2.2
AS-path : 5
Origin : igp
Attribute value : MED 0, localpref 100, pref-val 0, pre 255
State : valid, internal,
Originator : 2.2.2.2
Cluster list : 0.0.0.2, 0.0.0.1
Segue abaixo a configuração de R3 e R4 (lembrando que nenhuma configuração BGP adicional é necessária para o Roteador cliente Router Reflector
# ! Configuração R3 router bgp 234 bgp cluster-id 1 neighbor 2.2.2.2 remote-as 234 neighbor 2.2.2.2 description R2 neighbor 2.2.2.2 update-source Loopback1 neighbor 2.2.2.2 route-reflector-client ! neighbor 4.4.4.4 remote-as 234 neighbor 4.4.4.4 description R4 neighbor 4.4.4.4 update-source Loopback1 ! # ! Configuração R4 router bgp 234 bgp cluster-id 2 neighbor 1.1.1.1 remote-as 234 neighbor 1.1.1.1 description R1 neighbor 1.1.1.1 update-source Loopback1 neighbor 1.1.1.1 route-reflector-client ! neighbor 3.3.3.3 remote-as 234 neighbor 3.3.3.3 description R3 neighbor 3.3.3.3 update-source Loopback1 !
Até logo
Referências
http://blog.ipexpert.com/2012/02/20/understanding-bgp-originator-id-and-cluster-id/#top
http://www.rnp.br/newsgen/0109/bgp4_dicas2.html#ng-6
http://www.rotadefault.com.br/teste-mesa-para-router-reflectors/
http://www.rotadefault.com.br/resumo-bgp-router-reflectors/
CCIE Routing and Switching Certification Guide, 4th Edition, Cisco Press, Wendell Odom, Rus Healy, Denise Donohue