O BGP foi projetado para suportar não apenas políticas de roteamento complexas, mas também grandes redes.
O problema com as grandes redes é que, por sua natureza, elas suportam muitos endereços. À medida que a rede cresce, a rotina na rede também cresce:
- Os equipamentos são adicionados ou removidos.
- Links são adicionados ou removidos.
- Os roteadores são adicionados ou removidos.
- Os atributos da rota são alterados.
- As políticas de roteamento são alteradas.
- Os componentes da rede mudam intermitentemente devido à manutenção de rotina.
- Os componentes da rede mudam intermitentemente devido a falhas físicas ou de software.
- Os links de rede ocasionalmente falham
Todas essas atividades afetam as informações de acessibilidade de pelo menos algumas partes da rede, e é tarefa do protocolo de roteamento calcular os efeitos das alterações, atualizar o RIB local e informar seus vizinhos sobre as alterações.
A capacidade de um protocolo, dispositivo ou software crescer em uma rede é chamada de escalabilidade. O BGP pode escalar de uma rede de apenas alguns roteadores para uma rede enorme, como a Internet.
Assim como uma ampla variedade de ferramentas pode ajudá-lo a definir políticas de roteamento no BGP, você também pode usar uma variedade de ferramentas e recursos para ajudar a dimensionar o BGP para grandes redes. Essas ferramentas podem ser classificadas aproximadamente em três categorias:
- Escalar a configuração do BGP em um único roteador
- Escalar o processo BGP em um único roteador
- Escalando a rede BGP.
Existem duas opções para escalar a rede BGP, usando Confederation e/ou Route Reflectors. O Natanael Oliveira já fez um ótimo post sobre os Route Reflectors (encontre o link abaixo), então neste post falaremos sobre Confederation.
Definido no RFC 5065, Autonomous System Confederations for BGP, confederations, assim como route reflectors, são usados para reduzir a necessidade de peerings iBGP full mesh, em implantações de larga escala. Em confederation, um AS público é dividido em Sub Autonomous Systems menores (Sub-ASs), que exibem um comportamento híbrido de iBGP e EBGP. Dentro de um Sub-AS, o requisito para peerings iBGP full mesh ainda se aplica, mas entre Sub-ASs, as regras de anúncio EBGP se aplicam.
Primeiro, o processo BGP é inicializado usando o número Sub-AS, em oposição à inicialização normal com o número AS público. Os números sub-AS normalmente estão no intervalo AS privado (64512 – 65535), mas tecnicamente podem ser qualquer número válido, privado ou não. Em seguida, o confederation id informa ao roteador que ele faz parte de uma confederation, sendo o número de ID seu número AS público.
Qualquer vizinho cujo remote-as corresponda ao Sub-AS local ou a um número listado no bgp confederation peers é considerado parte da confederation. No último caso, esses pares são considerados “vizinhos EBGP confederation”. Vizinhos cujo AS não corresponda nem ao Sub-AS local nem a um AS de mesmo nível da confederation são considerados vizinhos EBGP normais.
Vejamos a configuração do lab:
R1
router bgp 65510
bgp log-neighbor-changes
bgp confederation identifier 9184
bgp confederation peers 65520
neighbor 192.168.12.2 remote-as 65510
neighbor 192.168.12.2 next-hop-self
neighbor 192.168.13.3 remote-as 65520
neighbor 192.168.13.3 next-hop-self
neighbor 192.168.19.9 remote-as 1836
R2
router bgp 65510
bgp log-neighbor-changes
bgp confederation identifier 9184
bgp confederation peers 65530
neighbor 192.168.12.1 remote-as 65510
neighbor 192.168.26.6 remote-as 65530
R3
router bgp 65520
bgp log-neighbor-changes
bgp confederation identifier 9184
bgp confederation peers 65510
neighbor 192.168.13.1 remote-as 65510
neighbor 192.168.13.1 next-hop-self
neighbor 192.168.34.4 remote-as 65520
neighbor 192.168.34.4 next-hop-self
neighbor 192.168.35.5 remote-as 65520
R4
router bgp 65520
bgp log-neighbor-changes
network 4.4.4.4 mask 255.255.255.255
neighbor 192.168.34.3 remote-as 65520
R9
router bgp 1836
bgp log-neighbor-changes
network 9.9.9.9 mask 255.255.255.255
neighbor 192.168.19.1 remote-as 9184
A diferença mais notável entre implementações confederation e route reflection ou ibgp full mesh, é a introdução de um novo atributo BGP conhecido como AS_CONFED_SET. Confederation set ou confed set, é uma lista não ordenada de Sub-AS que é anexada ao AS-Path normal de um prefixo BGP à medida que é passado entre Sub-ASs. O confed set é removido e substituído pelo id confederation quando um prefixo é anunciado para um verdadeiro vizinho EBGP.
Do ponto de vista da seleção do melhor caminho, todo o AS_CONFED_SET conta como apenas um AS.
Consultando a tabela BGP em R9
Vemos somente o ASN público 9184 no AS_PATH. Os Sub-As 65510, 65520 não aparecem.
Consultado a tabela BGP em R4
Leitura adicional
https://community.cisco.com/t5/artigos-routing-switching/bgp-route-reflectors-redundantes/ta-p/4715049
https://www.cisco.com/c/en/us/td/docs/ios-xml/ios/iproute_bgp/configuration/15-mt/irg-15-mt-book/irg-int-features.html