Mudanças entre as edições de "Fundamentos-do-bgp"

De Wiki BPF
Ir para: navegação, pesquisa
(mitigação de looping)
Linha 15: Linha 15:
 
==== CARACTERÍSTICA DO BGP ====
 
==== CARACTERÍSTICA DO BGP ====
  
Como dito anteriormente, o BGP é um protocolo Path Vector, que elabora um gráfico de mapeamento por todos ASNs de onde o prefixo foi passado e mitiga looping de roteamento, um exemplo pode ser ilustrado na imagem 1.1. a seguir:
+
Como dito anteriormente, o BGP é um protocolo Path Vector, que elabora um gráfico de mapeamento por todos ASNs de onde o prefixo foi passado e mitiga looping de roteamento, um exemplo pode ser ilustrado na imgem abaixo, a seguir:
  
 
> '''Construção de Gráfico de ASN''':
 
> '''Construção de Gráfico de ASN''':
  
[[Arquivo:Gráfico de ASN.jpg|centro|miniaturadaimagem|699x699px|FONTE: Implementing Cisco IP Routing (ROUTE) Foundation Learning Guide - Chapter 7]]
+
[[Arquivo:Gráfico de ASN.jpg|centro|miniaturadaimagem|699x699px|FONTE: Implementing Cisco IP Routing (ROUTE) Foundation Learning Guide - Chapter 7]]
  
Na perspectiva do ASN 64520 (imagem acima) constrói uma gráfico de ASN por onde prefixo foi repassado, para ele alcança os prefixos contido no ASN 64700, precisa passar por ASNs:
+
Na perspectiva do ASN 64520 (imagem acima) constrói uma gráfico de ASN por onde prefixo foi repassado, para ele alcança os prefixos contido no ASN 64700, precisa passar por ASNs:  
  
 
* 64520 64600 64700
 
* 64520 64600 64700
Linha 45: Linha 45:
  
 
> '''Mitigação de looping''':
 
> '''Mitigação de looping''':
 +
 +
Antes de entrar nesse subtópico precisamos entender o nome Path Vector, derivado do Distance Vector. O nome Distance Vector quer dizer: roteadores usando Distance Vector (DV) não passa informação topológica sobre a rede, mas confiar na informação (update) do vizinho. O nome distance '''''vector''''' é derivado de que as as rotas são publicadas com um '''''vector''''' (distância, direção) e onde a '''''distance''''' é definida em termos de uma métrica e a direção é definida em termos do roteador do próximo salto. Se você observar o speaker BGP não passa a informação topológica sobre da rede BGP (BGP routing table) e um speaker confia nas informações recebida do seu neighbor. Contituindo o conceito Distance Path (DP). Vejamos a diferença entre eles:
 +
 +
* Distance Vector: Distance = direção;  Vector = roteador;
 +
* Path vector: Path = Atributos e Vector = ASN.
 +
 +
Então, podemos afirma que o BGP é semelhante ao RIP, mas com algumas particularidades e melhorias.
 +
 +
Ambos protocolos respeitam a regra '''''split horizon''''' evitando looping ou flapping de roteamento, por exemplo, na [[FONTE: Implementing Cisco IP Routing (ROUTE) Foundation Learning Guide - Chapter 7|última imagem]] tem ASN 64700 e ele envia um update com NLRI 209.165.200.224 aos neighbors simultaneamente, como o BGP é um DP, o ASN 64550 recebe um update constando NLRI 209.165.200.224 e repassa isso para todos neighbors adjacente, exceto o neighbor que o roteador local recebeu. Contudo, o ASN recebe NLRI 209.165.200.224 (vias ASN 64540 64700 e ASN 64540 64550 64700) e repassa o NLRI 209.165.200.224 para ASN 64700 e 64600, no entanto, o ASN 64700 '''descarta''' esse update, pois o atributo as-path presente na mensagem update já tem seu ASN.

Edição das 14h50min de 13 de julho de 2020

A proposta deste artigo é dimenssionar alguns pontos fundamentais do BGP. Não será mostrado a configuração e muito menos troubleshooting de BGP.

OBS: Técnica de troubleshooting está sendo elaborado em outro artigo e o conteúdo sobre BGP attributes também está em produção.

O QUE É BGP

BGP é um protocolo de roteamento baseado em política, mas precisamente o BGP se comporta mais como uma aplicação de roteamento do que protocolo de roteamento em si. BGP troca NLRI (Network Layer Reachability Information) entre dois speakers BGP. NLRI é uma lista de redes que são compostas por endereço IP e a máscara, ou prefixo em caso do IPv6, o NLRI é totalmente conhecido e válido tanto que os prefixos só podem trocados se estiverem presente na IP routing table de um router BGP.

O BGP se situa na borda do ASN, permitindo que o protocolo BGP trace um mapa de conectividade de ASN. Por isso, em algumas literaturas, o BGP é categorizado como um protocolo ASpath to ASpath ou Path Vector, em suma é uma aplicação interdomain. A classificação do BGP como aplicação respalda-se no fato de ele utilizar a porta de destino 179 para o estabelecimento de uma sessão TCP e os vizinhos não devem estar diretamente conectado para formar uma vizinhança, como por exemplo protocolo do tipo IGP. tais como: EIGRP. OSPF, ISIS e RIP. Característica específica da sétima camada do modelo OSI.

Após, o estabelecimento da sessão TCP, o BGP inicia seu processo de convergência realizando a troca de mensagem entre os peers envolvidos na relação (processo a ser discutido em mais detalhes no decorrer do artigo).

O BGP oferece suporte a várias  address family IPv4/IPv6 unicast e multicast, dispondo também de recursos para a utilização de aplicações como l2vpn, nsap, rtfilter, VPNv4 e VPNv6. Ou seja, o BGP não foi desenvolvido apenas para IPv4 ou IPv6. Por causa, disso o BGP é super difundido nas indústrias de telcos e em algumas empresas corporativas, e podemos afirma que o protocolo é uma APLICAÇÃO DE ROTEAMENTO.

CARACTERÍSTICA DO BGP

Como dito anteriormente, o BGP é um protocolo Path Vector, que elabora um gráfico de mapeamento por todos ASNs de onde o prefixo foi passado e mitiga looping de roteamento, um exemplo pode ser ilustrado na imgem abaixo, a seguir:

> Construção de Gráfico de ASN:

FONTE: Implementing Cisco IP Routing (ROUTE) Foundation Learning Guide - Chapter 7

Na perspectiva do ASN 64520 (imagem acima) constrói uma gráfico de ASN por onde prefixo foi repassado, para ele alcança os prefixos contido no ASN 64700, precisa passar por ASNs:

  • 64520 64600 64700
  • 64520 64600 64540 64550 64700
  • 64520 64540 64600 64700
  • 64520 64540 64550 64700

Então, o speaker BGP do ASN 64520 armazena esses dados na sua BGP routing table para selecionar o melhor caminho, dependendo do vendor sendo usado pode ter entre 10 a 11 critérios para determinar o melhor caminho (discutido no artigo BGP Attibutes). Após, do BGP escolher o melhor caminho, esse caminho é ofertado na IP routing table e em seguida o router pode encaminhar pacotes aprendido via BGP. O router BGP consegue fazer esse gráfico graça aos atributo AS-PATH presente na mensagem UPDATE. Formato da mensagem UPDATE será discutido ao longo desse material.

Lembra do primeiro parágrafo onde um peer BGP só envia NLRI se estiver na IP routing table? Embora, que a BGP routing table tenham informações anallítica sobre NLRI recebido do seu vizinho, o router não enviará essa tabela para o seu vizinho e envia informações presentes na IP routing table. Ou seja, o 64512 terá um caminho possível em sua BGP routing table:

  • 64512 64520 64600 64700
FONTE: Implementing Cisco IP Routing (ROUTE) Foundation Learning Guide - Chapter 7

Caso o ASN 64512 queira uma BGP routing table mais robustica e/ou sofistacada, eliminando o single point of failure (ponto único de falha) pode contratar outra telco ou ISP, formando uma topologia single dualhomed (demostrado na imagem ao lado) Com isso, a BGP routing table fica:

  • 64512 64520 64600 64700
  • 64512 64530 64540 64700

Vale enfatizar que o BGP é uma aplicação de roteamento, permitindo-a realizar roteamento assimétrico ou, upload  ou download pode vir por rotas distintas, por exemplo, o ASN 64512 pode ter um upload via ASN 64520 e o download via 64530 dependo da sua política de roteamento, para mais de como influênciar o upload e download no seu vizinho, pode consultar este link.

OBS: BGP routing table e IP routing table serão discutido alongo desse artigo.

> Mitigação de looping:

Antes de entrar nesse subtópico precisamos entender o nome Path Vector, derivado do Distance Vector. O nome Distance Vector quer dizer: roteadores usando Distance Vector (DV) não passa informação topológica sobre a rede, mas confiar na informação (update) do vizinho. O nome distance vector é derivado de que as as rotas são publicadas com um vector (distância, direção) e onde a distance é definida em termos de uma métrica e a direção é definida em termos do roteador do próximo salto. Se você observar o speaker BGP não passa a informação topológica sobre da rede BGP (BGP routing table) e um speaker confia nas informações recebida do seu neighbor. Contituindo o conceito Distance Path (DP). Vejamos a diferença entre eles:

  • Distance Vector: Distance = direção; Vector = roteador;
  • Path vector: Path = Atributos e Vector = ASN.

Então, podemos afirma que o BGP é semelhante ao RIP, mas com algumas particularidades e melhorias.

Ambos protocolos respeitam a regra split horizon evitando looping ou flapping de roteamento, por exemplo, na última imagem tem ASN 64700 e ele envia um update com NLRI 209.165.200.224 aos neighbors simultaneamente, como o BGP é um DP, o ASN 64550 recebe um update constando NLRI 209.165.200.224 e repassa isso para todos neighbors adjacente, exceto o neighbor que o roteador local recebeu. Contudo, o ASN recebe NLRI 209.165.200.224 (vias ASN 64540 64700 e ASN 64540 64550 64700) e repassa o NLRI 209.165.200.224 para ASN 64700 e 64600, no entanto, o ASN 64700 descarta esse update, pois o atributo as-path presente na mensagem update já tem seu ASN.