Por que usar o iBGP dentro de um sistema autônomo, se os protocolos IGP atendem à necessidade de comunicação interna

22

Alguém pode explicar por que precisamos do iBGP para as rotas quando temos os protocolos IGP (OSPF, RIP) para comunicação interna no AS?

Eu li muitos artigos e livros, mas não consegui encontrar a resposta.

user2720323
fonte

Respostas:

26

Alguém pode me explicar qual é a necessidade de comunicação IBGP para as rotas, quando temos os protocolos IGP (OSPF, RIP) para comunicação interna?

  • Escalabilidade 1 : Imagine que você está recebendo 500.000 rotas EBGP em mais de um local 2 e precisa influenciar o ponto de saída por rota no seu AS. O BGP pode lidar com muito mais rotas que os protocolos IGP. Portanto, o iBGP é necessário, a menos que você esteja disposto a redistribuir todas as rotas que aprendeu via eBGP
  • Impor limites de confiança / controle: o BGP tem mais maneiras de filtrar pares do que IGPs (para controlar o que você anuncia e recebe).

  • Estruturas de dados flexíveis (um pouco relacionadas ao item anterior): comunidades BGP , comunidades BGP Extended , local-pref , etc ... tornam o BGP uma maneira atraente de implementar políticas de roteamento personalizadas em seu próprio sistema autônomo (usando o iBGP).

Como em tudo, existem compensações; a escalabilidade, controle e flexibilidade que você obtém do iBGP significa que é um protocolo de convergência mais lento que os IGPs (em geral).


Notas finais:

1 Escalabilidade :

  • Você usa o BGP porque não deseja carregar toda a tabela de roteamento da Internet no seu IGP (ou seja, no meu caso, OSPF) ...
  • O OSPF não foi projetado para lidar com muitos milhares de rotas nas tabelas BGP da Internet ... se você tentar usar o OSPF para esse fim, ele interromperá a sua rede. Usando o exemplo do OSPF, os requisitos de processamento / inundação do LSA de 500.000 rotas usam muitos recursos em seus roteadores. Nomeie qualquer outro IGP (EIGRP, RIPv1 / 2, IS-IS, IGRP) e a mesma história é verdadeira.
  • Houve alguns casos notórios em que um ISP de camada 1 redistribuiu acidentalmente sua tabela BGP em seu IGP (mesmo quando a tabela da Internet era uma pequena fração do seu tamanho atual) e causou grandes interrupções. As contramedidas foram implementadas nos protocolos IGP ( como este para OSPF no IOS ) para impedir que a redistribuição do BGP no OSPF cause uma grande interrupção.

2 Exemplo de roteamento iBGP :

Para entender por que você pode querer o iBGP, considere esta entrada de roteamento como 4.2.2.2 ...

R2>sh ip bgp 4.2.2.2
BGP routing table entry for 4.0.0.0/9, version 3146
Paths: (32 available, best #7, table Default-IP-Routing-Table)
... <!-- extra BGP RIB entries deleted -->
  7660 2516 3356, (aggregated by 3356 4.69.130.4)
    203.181.248.168 from 203.181.248.168 (203.181.248.168)
      Origin IGP, localpref 100, valid, internal, atomic-aggregate
      Community: 2516:1030
  3356, (aggregated by 3356 4.69.130.6)
    4.69.184.193 from 4.69.184.193 (4.69.184.193)
      Origin IGP, metric 0, localpref 100, valid, internal, atomic-aggregate, best
      Community: 3356:0 3356:3 3356:100 3356:123 3356:575 3356:2012
... <!-- extra BGP RIB entries deleted -->

Existem 32 caminhos a serem considerados ... Nesse caso, o BGP optou por ir para 4.0.0.0/9 via 4.69.184.193 (observe a bestentrada RIB). Nesse caso, o BGP escolheu isso porque essa rota possui a lista mais curta do caminho AS. No entanto, nem todas as rotas serão preferidas via AS3356 (anexado ao R1). Alguns podem ser preferidos em relação ao R3 (via AS7660). O iBGP permite que você saiba (no R2) qual caminho seguir para seguir o caminho mais curto do BGP.

BGP route to 4.0.0.0/9 via                                              
NH: 4.69.184.193 [Path: 3356]                                  
  -------->                                                     

 eBGP w/ AS3356 }{              iBGP inside AS64000          }{   eBGP w/ AS7660

                 S1/0       S1/2   S2/1     S2/3   S3/2    S3/0
Peered w/ AS3356    +------+         +------+        +------+       Peered w/ AS7660
4.69.184.193 <------|  R1  |---------|  R2  |--------|  R3  |-----> 203.181.248.168
                    +------+         +------+        +------+
                                         | S2/0
                                         |

                                         ^
                                         ^
                                         | Ingress packet to 4.2.2.2
                                         |

R1, R2 e R3 são totalmente iBGP em malha. Quando o iBGP anuncia uma rota, o próximo salto permanece inalterado . Isso significa que eu preciso carregar a sub-rede para 4.69.184.193 no OSPF ...

R2>sh ip route 4.69.184.193
Routing entry for 4.69.184.192/30
  Known via "ospf 100", distance 110, metric 65536, type intra area
  Last update from 192.0.2.109 on GigabitEthernet3/1, 1w0d ago
  Routing Descriptor Blocks:
  * 192.0.2.109, from 192.0.2.3, 1w0d ago, via Serial2/1
      Route metric is 65536, traffic share count is 1

R2>

Assim, quando um pacote para 4.2.2.2 chega ao R2, o R2 envia o Serial2 / 1 porque é aí que o iBGP nos diz que o próximo salto é.

Mike Pennington
fonte
Não tenho certeza se entendi esta parte: 'O iBGP é necessário, a menos que você esteja disposto a redistribuir todas as rotas que aprendeu via eBGP'. Se tivermos dois roteadores eBGP de fronteira, o roteador A não saberá as rotas que o roteador B aprendeu, ou vice-versa. Eles precisam trocar as informações de alguma forma e isso normalmente é feito usando o iBGP. Como você usaria o eBGP para isso? Não tenho certeza de como o eBGP poderia tornar A e B cientes das rotas que o outro roteador aprendeu.
user4205580
A declaração a que você está se referindo assume que você tem alguns falantes que não são do eBGP. Supondo que você não possa simplesmente viver com rotas padrão para seus fluxos de eBGP, nesse momento você pode: A) redistribuir prefixos de eBGP em seu IGP (geralmente uma má ideia) ou B) usar o iBGP. Minha resposta passa a maior parte do tempo explicando por que o iBGP é útil.
Mike Pennington
10

O IGP geralmente é OSPF ou ISIS, que são baseados no estado do link, isso nos dá todas as informações da rede, todo mundo conhece a rede do ponto de vista de todos, o que permite opções de convergência e engenharia de tráfego muito interessantes.

O BGP é essencialmente um vetor de distância; ele conhece uma visão muito limitada da rede como um todo. O BGP lida muito bem com as informações de filtragem e modificação de roteamento.

O protocolo do estado do link é bastante caro comparado ao vetor de distância, seria bastante problemático escalá-lo para o tamanho do INET DFZ.

Portanto, o motivo pelo qual temos os dois é que, dentro de uma rede específica, temos complexidade suficientemente baixa para lidar com o protocolo de estado de link, o que nos permite obter todas as vantagens do alto grau de conhecimento da rede.
Mas como ele não se adapta ao tamanho da Internet, precisamos de outra rede para conectar essas muitas ilhas de link state.

Você pode, dentro da sua própria rede, transportar todos os prefixos (incluindo o cliente) no seu IGP, mas isso afetará negativamente o desempenho do IGP, enquanto todas as vantagens de convergência e TE podem ser obtidas com o transporte de endereços de loopback dos roteadores principais. A adição de prefixos de clientes ao IGP prejudica apenas o desempenho da rede, tornando o IGP desnecessariamente complexo.

ytti
fonte
1
BGP é um protocolo Path vector , que é não o mesmo como um vetor de distância protocolo
Mike Pennington
3
O vetor de caminho é um caso essencialmente específico do vetor de distância. É importante perceber que eles são muito semelhantes em complexidade e custo, enquanto o estado do link é completamente diferente. Do livro de BGP de Sam Halabi e Danny McPhersons, página 98 'Esta seção não estaria completa sem mencionar que o BGP se enquadra na categoria de vetor de distância'
ytti
2
O vetor de caminho é semelhante, mas ainda é um algoritmo diferente. Você pode ler mais sobre isso em Danny McPherson eo livro de Russ Branco, BGP Prática , publicado em 2004. ligação móvel
Mike Pennington
2
Qual página afirma que o BGP não é um vetor de distância?
ytti
2
O caminho AS é um vetor de distância. Sim, você pode manipular as seleções de caminho opcionalmente com outros parâmetros também. Então, Sam e Danny colocaram isso como vetor de caminho, além de vetor de distância, e compartilho completamente sua opinião sobre o assunto. Pode ser uma maneira divertida de consumir cerveja para discutir sobre o assunto, mas dificilmente construtiva.
ytti
7

Uma das razões pelas quais vi com frequência é a clareza: todas as rotas são transportadas dentro de um protocolo de roteamento (BGP), IS-IS, OSPF ou RIP é usado apenas para adjacência. Como resultado, não há necessidade de redistribuir rotas de um protocolo de roteamento para outro.

Teun Vink
fonte
3

O iBGP não é realmente usado para roteamento interno, é usado por todos os seus roteadores eBGP para compartilhar suas rotas.

Ex: se você estiver pesquisando com outras 3 redes, deseja que todos os seus roteadores eBGP conheçam as rotas recebidas pelos outros, para que eles possam propagar essas informações aos pares, se necessário / necessário (abrindo assim a possibilidade de seu par usar trânsito através vocês)

Remi Letourneau
fonte