<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pt-BR">
	<id>https://wiki.brasilpeeringforum.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Guilherme.rigueti</id>
	<title>Wiki BPF - Contribuições do(a) usuário(a) [pt-br]</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.brasilpeeringforum.org/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=Guilherme.rigueti"/>
	<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/w/Especial:Contribui%C3%A7%C3%B5es/Guilherme.rigueti"/>
	<updated>2026-04-22T01:58:28Z</updated>
	<subtitle>Contribuições do(a) usuário(a)</subtitle>
	<generator>MediaWiki 1.35.14</generator>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Fundamentos-do-bgp&amp;diff=3219</id>
		<title>Fundamentos-do-bgp</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Fundamentos-do-bgp&amp;diff=3219"/>
		<updated>2022-04-25T23:39:31Z</updated>

		<summary type="html">&lt;p&gt;Guilherme.rigueti: Simples correção ortográfica&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A proposta deste artigo é dimenssionar alguns pontos fundamentais do BGP. Não será mostrado a configuração e muito menos troubleshooting de BGP. Na versão PDF, pode ser acessada clicando neste [https://github.com/iagojonathas/recursos-fundamentos-do-bgp link].&lt;br /&gt;
&lt;br /&gt;
'''OBS:''' Técnica de troubleshooting está sendo elaborado em outro artigo e o conteúdo sobre ''BGP'' ''attributes'' também está em produção.&lt;br /&gt;
&lt;br /&gt;
=== O QUE É BGP ===&lt;br /&gt;
&lt;br /&gt;
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.  NLRI é totalmente conhecido e válido tanto que os prefixos só podem trocados se estiverem presente na IP routing table de um router BGP.&lt;br /&gt;
&lt;br /&gt;
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 '''precisam''' estar diretamente conectado para formar uma vizinhança, ao contrário dos protocolos IGPs, tais como: EIGRP. OSPF, ISIS e RIP; devem estar diretamente conectado para forma uma adjacência. &lt;br /&gt;
&lt;br /&gt;
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  (processo a ser discutido em mais detalhes no decorrer do artigo).&lt;br /&gt;
&lt;br /&gt;
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 aceito nas indústrias de telcos e em algumas empresas corporativas, e podemos afirma que o protocolo é uma '''APLICAÇÃO DE ROTEAMENTO'''.&lt;br /&gt;
&lt;br /&gt;
==== CARACTERÍSTICA DO BGP ====&lt;br /&gt;
&lt;br /&gt;
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 abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;gt; '''Construção de Gráfico de ASN''':&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Gráfico de ASN.jpg|centro|miniaturadaimagem|699x699px|FONTE: Implementing Cisco IP Routing (ROUTE) Foundation Learning Guide - Chapter 7]]  &lt;br /&gt;
&lt;br /&gt;
Na perspectiva do ASN 64520 (imagem acima) constrói uma gráfico de ASN por onde prefixo foi deslocado, para ele alcança os prefixos contidos no ASN 64700, precisa passar por ASNs:        &lt;br /&gt;
&lt;br /&gt;
* 64520 64600 64700&lt;br /&gt;
* 64520 64540 64700&lt;br /&gt;
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 Attributes''). 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. O formato da mensagem UPDATE será discutido ao longo desse material.&lt;br /&gt;
&lt;br /&gt;
Lembra do primeiro seção onde um speaker 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 adjacente e envia informações presentes na IP routing table. Ou seja, o 64512 terá um caminho possível na sua BGP routing table:&lt;br /&gt;
&lt;br /&gt;
* 64512 64520 64600 64700&lt;br /&gt;
[[Arquivo:Single Dualhomed.jpg|miniaturadaimagem|717x717px|FONTE: Implementing Cisco IP Routing (ROUTE) Foundation Learning Guide - Chapter 7]]&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* 64512 64520 64600 64700&lt;br /&gt;
&lt;br /&gt;
* 64512 64530 64540 64700&lt;br /&gt;
&lt;br /&gt;
Vale enfatizar que o BGP é uma aplicação de roteamento, permitindo-a realizar roteamento assimétrico, ou seja tanto ''upload''  quanto ''download'' pode vir por rotas distintas, por exemplo, o ASN 64512 pode ter um upload via ASN 64520 e o download via ASN 64530 dependo da sua política de roteamento, para mais informções de como influenciar o upload e download no seu vizinho, pode consultar este [https://wiki.brasilpeeringforum.org/w/O_Minimo_que_Voce_precisa_saber_sobre_o_BGP link].&lt;br /&gt;
&lt;br /&gt;
'''OBS''': BGP routing table e IP routing table serão discutido ao longo deste artigo!&lt;br /&gt;
&lt;br /&gt;
&amp;gt; '''Mitigação de looping''':&lt;br /&gt;
&lt;br /&gt;
O nome  DV (''distance vector'') é derivado do fato de que as rotas são anunciadas como vetores (distance, vector), onde a distance é definida em termos de uma métrica e a vector é definida em termos do roteador next-hop. Por exemplo, &amp;quot;O destino A está a uma '''''distance''''' de 5 saltos, no '''''vector''''' do roteador X next-hop&amp;quot;. Como essa declaração implica, cada roteador aprende rotas a partir das perspectivas dos roteadores vizinhos e, em seguida, anuncia as rotas a partir de sua própria perspectiva. Como cada roteador depende de seus vizinhos para obter informações, o que os vizinhos podem ter aprendido com seus vizinhos, e assim por diante, o roteamento do vetor de distância às vezes são chamados de &amp;quot;roteamento por rumor&amp;quot;, segundo [https://www.ciscopress.com/articles/article.asp?p=24090&amp;amp;seqNum=3 ciscopress.com]. Se você observar minuciosamente 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 (IP routing table). Constituindo o conceito '''''Distance Path''''' (DP). Vejamos a diferença entre eles:&lt;br /&gt;
* '''Distance Vector''': Distance = quantidade de salto; Vector = roteador;&lt;br /&gt;
* '''Path vector''': Path = Atributos e Vector = ASN.&lt;br /&gt;
Então, podemos afirma que o BGP é semelhante ao RIP, mas com algumas particularidades e melhorias!&lt;br /&gt;
&lt;br /&gt;
Ambos protocolos respeitam a regra '''''split horizon''''' evitando looping ou flapping de roteamento, por exemplo, na [[:Arquivo:Single Dualhomed.jpg|ú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 enviou. O ASN 64550 envia NLRI 209.165.200.224 para o ASN 64540, no entanto, o ASN 64540 '''aceitará''' esse update, pois o atributo as-path não tem o seu próprio ASN e manterá essa informação na BGP routing table. Todavia, o ASN 64540 enviará esse NLRI para o neighbor 64700 e o mesmo vai '''descarta''' porque no atributo as-path já consta seu próprio ASN; mitigando a possibilidade de looping ou flapping em toda topologia BGP.&lt;br /&gt;
&lt;br /&gt;
==== BGP routing table vs IP routing Table ====&lt;br /&gt;
&lt;br /&gt;
BGP routing table é uma estrutura analítica do BGP, onde um roteador tazem uma analise complexa de 10 a 11 critérios, dependo do fornecedor sendo usado. IP routing table é a tabela de roteamento que um roteador possa encaminar tráfego para redes de destino. Assumindo que a IP routing table é uma tabela confiável elaborado por protocolo de roteamento, o BGP usa essa tabela para publicar os NLRIs aos seus vizinhos.  &lt;br /&gt;
&lt;br /&gt;
A tabela BGP pode ter seguintes nomes: &lt;br /&gt;
* BGP table;&lt;br /&gt;
* BGP topology table;&lt;br /&gt;
* BGP topology database;&lt;br /&gt;
* BGP routing table;&lt;br /&gt;
* BGP forwarding database. &lt;br /&gt;
&lt;br /&gt;
OBS:  BGP routing table e IP routing table têm outras relevâncias quando a ISP trabalha com atributos ''atomic aggregate'' e ''aggregator'', porém está além do escopo deste artigo.&lt;br /&gt;
&lt;br /&gt;
=== FUNCIONAMENTO DO BGP ===&lt;br /&gt;
Assim como qualquer outro protocolo de redes, o BGP utiliza mensagens para realizar a sua convergência. O BGP usa quatro mensagens, elas são open, keepalive, update e notification. E na camada de transporte do modelo OSI, usufrui da confiabilidade e rapidez, a característica mais significativa do TCP, em termos de troca de rotas entre dois peerings. As trocas de mensagens são trocadas após de estabelecer uma sessão TCP na porta 179.&lt;br /&gt;
&lt;br /&gt;
Como TCP deixa o processo de convergência do BGP mais rápido? Protocolo de roteamento do tipo IGP, como OSPF, não é aplicação de roteamento, atuando diretamente na camada de rede do modelo OSI e possuindo o seu próprio protocolo na camada de transporte. No entanto, tem ''window one-for-one'', ou seja, se um roteador OSPF precisa enviar mais de uma LSU para o seu vizinho, ele precisa enviar apenas um update e esperar um LSAck. Se não receber um LSAck, ele enviará o primeiro update até receber um LSAck. Também, único update do OSPF suporta no máximo 10.000 rotas. Portanto, se a sua rede corporativa for de 100.000 rotas OSPF, o roteador precisa enviá 10 updates. Isso é muito ineficiente e demorado se você tiver uma grande rede, como a IP routing table global têm 840.791 rotas, segundo o site ''cidr report'' na data de 01/07/2020. OSPF precisaria enviar aproximadamente 84 updates. Deixando-a a convergência menos eficiente em qual tange 840.791 rotas.&lt;br /&gt;
&lt;br /&gt;
Já o BGP precisa lidar com a 840.791 rotas, com a função TCP implementada na camada de transporte do modelo OSI; quebrando o paradigma ''window one-for-one'' e usa ''sliding window'', permitindo que único update possa enviar milhares de rota, deixando-a muito mais eficiente e eficaz.&lt;br /&gt;
&lt;br /&gt;
'''OBS''': as mensagens do BGP são trocados APÓS do estabelecimento da sessão BGP, como mostrado na imagem a seguir.&lt;br /&gt;
[[Arquivo:Mensagens do BGP.png|centro|miniaturadaimagem|555x555px|Trocas de mensagens BGP, extraído do wireshark]]&lt;br /&gt;
&lt;br /&gt;
==== MENSAGEM OPEN ====&lt;br /&gt;
Ḿensagem open, é a primeira mensagem a ser trocada assim de estabelecer uma sessão TCP. Se uma mensagem open é aceitável, uma mensagem keepalive é enviado como resposta. No cabeçalho da mensagem open possuem seguintes campos:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Mensagem Open.png|miniaturadaimagem|516x516px|centro|FONTE: [[rfc:4271#section-4.2|RFC 4271]] - Página 12]]&lt;br /&gt;
* '''Version:''' campo de 8-bit indica o número da versão mensagem BGP. Atualmente o número da versão é o 4 (BGP-4);&lt;br /&gt;
* '''My Autonomous System:''' campo de 16-bit indica o ASN do remetente;&lt;br /&gt;
* '''Hold Time:''' campo de 16-bit indica o maior número de segundos que pode decorrer entre a mensagem keepalive ou update sucessivamente pelo remetente. Com um aceite de uma mensagem open, o roteador BGP deve calcular o valor do hold time a ser usado com o seu neighbor, por padrão, o hold time são de 180 segundos. Se o hold time local de um roteador é menor do que holdtime mínimo, a relação de vizinhança não pode ser formada;&lt;br /&gt;
* &amp;lt;strong&amp;gt;Version: &amp;lt;/strong&amp;gt;'''BGP Identifier:''' um campo composto por 32-bit, identificando o router-id do speaker BGP, um endereço IPv4 é constituído por 32-bit e por isso é usado. A designação de 32-bit tem a seguinte ordem: router-id explícito dentro da configuração; o maior endereço IPv4 de uma interface loopback ativa; maior endereço IPv4 de qualquer interface física ativa;&lt;br /&gt;
* &amp;lt;strong&amp;gt;Version: &amp;lt;/strong&amp;gt;'''Optional Parameters:''' identifica o tamanho total do comprimento do optional parameters. Esse parâmetros são Type, Length e Value (TLV). Um exemplo de um optional parameters é o fator de autenticação.&lt;br /&gt;
&lt;br /&gt;
==== MENSAGEM UPDATE ====&lt;br /&gt;
A mensagem update tem a finalidade de trocar informação de roteamento entre os peerings BGP e da mesma forma construir um gráfico em que os prefixos já foi passado.&lt;br /&gt;
&lt;br /&gt;
Uma mensagem update é usado para propagar uma rota ou prefixo presente na tabela de roteamento e com os atributos desse prefixo. A mensagem update sempre terá um tamanho fixo no cabeçalho BGP e também campos de informações, como demonstrado abaixo.&lt;br /&gt;
[[Arquivo:Mensagem UPDATE BGP.png|centro|miniaturadaimagem|439x439px|FONTE: [[rfc:4271#section-4.3|RFC 4271]] - Página 14]]&lt;br /&gt;
&lt;br /&gt;
'''Atenção''': alguns desses campos podem estar ausente em todas mensagens updates. Por isso que enfatizamos os principais campos, para mais informações pode consultar a &amp;lt;nowiki&amp;gt;RFC 4271&amp;lt;/nowiki&amp;gt;! A justificativa da ausência será discutida no próximo artigo sobre BGP attributes.&lt;br /&gt;
&lt;br /&gt;
*  '''Withdrawn Routes:''' é um valor variável que consta uma lista de prefixo de endereço IP para as rotas são withdram &amp;quot;retirada&amp;quot; do serviço . O valor 0 indica que não há nenhuma rota sendo retirada do serviço e o campo Withdrawn Routes não está sendo constatado nessa mensagem update;&lt;br /&gt;
* &lt;br /&gt;
* '''Path Attributes:''' uma sequência de atributos do BGP sendo transportado nesse campo, tais como: AS-path, origin, local preference, next hop e assim por adiante. Cada atributo pode ter atributo type, atributo length e atributo value (TLV). O atributo type há flags, seguido por código do atributo, de acordo com ''[https://www.iana.org/assignments/bgp-parameters/bgp-parameters.xhtml iana.com]'' :&lt;br /&gt;
# ORIGIN (Type code 1);&lt;br /&gt;
# AS-PATH (Type code 2):&lt;br /&gt;
# Next Hop (Type code 3);&lt;br /&gt;
# MED (Type code 4);&lt;br /&gt;
# Local Prefer (Type code 5);&lt;br /&gt;
# Atomic Aggregate (Type code 6);&lt;br /&gt;
# Aggregator (Type code 7);&lt;br /&gt;
# Community (Type code 8);&lt;br /&gt;
# Originator_ID (Type code 9);&lt;br /&gt;
* '''Network Layer Reachability Information:''' Uma lista de redes que pode ser alcançada por esse update.&lt;br /&gt;
&lt;br /&gt;
==== MENSAGEM NOTIFICATION ====&lt;br /&gt;
É enviado quando há uma condição de erro ou um router BGP restabeleceu a sua sessão TCP e a sessão é encerrada '''imediatamente'''. Um exemplo do processo notification:&lt;br /&gt;
[[Arquivo:Processo do BGP Notification.png|alt=|miniaturadaimagem|545x545px|centro|Processo de Mensagem Notification]]&lt;br /&gt;
&lt;br /&gt;
==== MENSAGEM KEEPALIVE ====&lt;br /&gt;
Keepalive têm duas funções no BGP. Uma é manter a sessão TCP estabelecida por padrão, é enviada a cada 60 segundos. E atua como resposta da mensagem open.&lt;br /&gt;
&lt;br /&gt;
=== ESTADOS DE VIZINHANÇA DO BGP (FSM) ===&lt;br /&gt;
BGP é protocolo ''Finite State Machine,'' ou seja, precisa passar por vários estágio com o seu neighbor. ''Finite State Machine'' em curta palavra é: &amp;quot;o estágio atual em um FSM é determinado pelos estágios anteriores e pelas operações executadas para fazer a transição entre os estágios. Uma transição de um estágio para outro depende do sucesso ou fracasso de uma operação&amp;quot;, segundo a ''[https://www.cisco.com/c/en/us/td/docs/unified_computing/ucs/ts/guide/UCSTroubleshooting/UCSTroubleshooting_chapter_010.pdf cisco.com]''.Então, o BGP desloca por vários estágio ou estados até alcançar a sua convergência completa/established.&lt;br /&gt;
&lt;br /&gt;
Os estágios de vizinhança são:&lt;br /&gt;
&lt;br /&gt;
* '''Idle:''' o roteador procura uma rota para o endereço IP do neighbor configurado,  em sua tabela de roteamento e envia um SYN;&lt;br /&gt;
* '''Connect:''' o roteador encontra uma rota para o neighbor e finaliza o three-way handshake TCP;&lt;br /&gt;
* '''Active:''' um problema persiste no peering BGP e está impactando do roteador de avançar para os próximos estágios.&lt;br /&gt;
* '''Open Sent:''' uma mensagem Open foi enviada, com os parâmetros da sessão;&lt;br /&gt;
* '''Open Confirm:''' o roteador recebeu um aceite nos parâmetros para estabelecer uma sessão;&lt;br /&gt;
* '''Established:''' os speakers BGP estão trocando informação de roteamento - envio e recebimento da mensagem Update;&lt;br /&gt;
&lt;br /&gt;
Como podemos observar um flowchart / fluxograma dos estágios state machine do protocolo BGP, na imagem subsequente. E uma numeração para descrever cada estágio.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:FSM do BGP.png|centro|miniaturadaimagem|653x653px|FSM do BGP]]&lt;br /&gt;
# Quando o administrador insere o endereço IP do neighbor dentro do processo ID BGP. o FSM do BGP fica em idle e nesse estágio o roteador começa procurar uma rota em sua tabela de roteamento, do endereço IP configurado. Se tiver uma rota o roteador envia um SYN e passa para estágio Connect em poucos segundos ou milésimos de segundos, se não tiver rota em sua tabela de roteamento o estágio permanecerá em Idle;&lt;br /&gt;
# Após de encontrar uma rota e enviar um SYN, entrará no estado Connect. Nesse estágio espera que o three-way handshake TCP na porta 179 seja completada;&lt;br /&gt;
# Se o roteador não receber um SYN, ACK do seu neighbor, o estágio vá para o Active;&lt;br /&gt;
# Após do um speaker BGP estabelecer uma sessão TCP, o roteador local precisa enviar uma mensagem Open (já discutido anteriormente neste artigo) e quando o speaker BGP já enviou uma Open, entra no estágio Open Sent;&lt;br /&gt;
# Se ele não receber uma mensagem Open como resposta do primeiro Open dentro de 5 segundos, o estágio é movido para o Idle;&lt;br /&gt;
# No entanto, se o roteador local receber um Open dentro de 5 segundos, o estágio FSM do BGP é movido para o Open Confirm;&lt;br /&gt;
# Open Confirm começa a escanear a tabela de roteamento dos caminhos para enviar para o neighbor e nesse estágio o BGP espera receber uma mensagem keepalive ou notification;&lt;br /&gt;
# Um vez, alcançando o estágio Established, os peering BGP começa trocar rotas (prefixos ou NLRI) entre si. Ou seja, há trocas de updates.&lt;br /&gt;
&lt;br /&gt;
==== PRINCIPAIS CAUSAS DE ESTÁGIO ACTIVE ====&lt;br /&gt;
Se um roteador BGP alcançou esse estágio quer dizer que o mesmo tem uma rota para o endereço IP do seu vizinho, todavia, é que o vizinho não tenha uma rota para o endereço IP para a origem, certifica-se que o roteador tenha uma rota presente na tabela de roteamento do speaker BGP.&lt;br /&gt;
&lt;br /&gt;
Um outro problema muito corriqueiro é quando o roteador consegue estabelecer uma sessão TCP na porta 179 (estágio Connect) e o roteador envia uma mensagem Open, porém o speaker BGP de destino não tem configuração para a origem ou tem algum parâmetro errado do BGP, como por exemplo, endereço IP do peering, ASN, autenticação, holdtimer da mensagem configurado erroneamente.&lt;br /&gt;
&lt;br /&gt;
=== QUANDO USAR E NÃO O BGP ===&lt;br /&gt;
Adoção ou não adoção do BGP, depende de muitos aspectos e do que a empresa precisa, mas o fator crucial é quantidade link ou tipos de conexões:&lt;br /&gt;
* Single Homed;&lt;br /&gt;
* Dual-Homed;&lt;br /&gt;
* Single-Multihomed;&lt;br /&gt;
* Dual-Multihomed.&lt;br /&gt;
&lt;br /&gt;
'''Single-Homed''': é um tipo de conexão que só tem um caminho de saída para internet, não precisa executar o BGP. Uma rota default é mais do que suficiente. Single homed é conhecido como rede '''''stub''''';&lt;br /&gt;
&lt;br /&gt;
'''Dual-homed''': a empresa ou a telco tem caminho redundante por mais de um link ou por mais de dois roteadores, porém para o mesmo ISP, se a ISP cair toda o acesso a internet é paralisada. Esse tipo de rede,  pode não precisar do BGP em si, mas se torna uma tarefa desafiaente para o administrador de rede, podemos ver uma topologia na imagem a seguir:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Dual-homed.jpg|centro|miniaturadaimagem|419x419px|CCNP Routing and Switching ROUTE 300-101 Official Cert Guide- Chaper 13]]&lt;br /&gt;
&lt;br /&gt;
'''Single-MultiHomed''': um link para vários ISPs (pelo menos dois), como demonstrado na imagem abaixo. Aqui fica impossível ter caminhos redundantes e o acesso a internet ficar ininterrupto usando apenas rota default, nesta topologia é necessário a implementação do BGP;&lt;br /&gt;
[[Arquivo:Single-homed.jpg|centro|miniaturadaimagem|478x478px|CCNP Routing and Switching ROUTE 300-101 Official Cert Guide- Chaper 13]]&lt;br /&gt;
&lt;br /&gt;
'''Dual-Multihomed''': uma topologia de rede que a empresa possui vários link de conexão para vários telco, se tornando imaginável usar rota default, o uso do BGP se torna essencial nessa rede para fazer a uma rápido ''reroute''.&lt;br /&gt;
[[Arquivo:Dual-multihomed.jpg|centro|miniaturadaimagem|480x480px]]&lt;br /&gt;
&lt;br /&gt;
=== '''RECURSO DISPONÍVEL'''  ===&lt;br /&gt;
Mapa menta e versão em PDF: [https://github.com/iagojonathas/recursos-fundamentos-do-bgp https://github.com/iagojonathas/fundamentos-do-bgp]&lt;br /&gt;
&lt;br /&gt;
=== '''CONCLUSÃO''' ===&lt;br /&gt;
O BGP não é apenas um protocolo de roteamento simples, pelo ao contrário ele se estende para diversos protocolos, cujo é conhecido como MP-BGP (Multiprotocol BGP). Também, foi desenvolvida diversas features (next-hop-self, update-source, eBGP multihop, eBGP multipath, route reflectors e dentre outros) para afirmar que seu comportamento é de uma aplicação. O BGP é um protocolo '''''manualizado''''' que é super bom, pois o analista de rede consegue ter um total controle desse magnífico protocolo e eles (analistas) podem usar  filtros para manipular o que ser transmitido ou não, e influencia o fluxo de tráfego de outro ASN.&lt;br /&gt;
&lt;br /&gt;
Esse artigo foi escrito o mais breve possível e deixando, cirúrgico e transparente. Então, alguns aspectos não foram mencionadas por se tratar de uma linguajar mais técnico, necessitando-a de um estudo mais robusto. Entretanto, é o conhecimento básico para quem administra um ASN! Se você quiser ter um conhecimento mais aprofundado vá em: [https://wiki.brasilpeeringforum.org/w/Categoria:Roteamento Catagorias &amp;amp; Roteamento] ou [https://wiki.brasilpeeringforum.org/w/O_Minimo_que_Voce_precisa_saber_sobre_o_BGP O Minimo que Voce precisa saber sobre o BGP]&lt;br /&gt;
&lt;br /&gt;
Espero ter colaborado para a wiki e seja útil para os eleitores - para dúvida, esclarecimento e elogio só acionar no [https://www.linkedin.com/in/iagojonatas/ linkedin] ou [https://t.me/iagojonathas telegram] e ABS!&lt;br /&gt;
&lt;br /&gt;
“E lembre-se: você é seu próprio general. Então, tome agora a iniciativa, planeje e marche decido para a vitória”- Sun Tzu - A Arte da Guerra&lt;br /&gt;
&lt;br /&gt;
=== '''REFERÊNCIA BIBLIOGRÁFICA '''  ===&lt;br /&gt;
'''FUNCIONAMENTO DO BGP''':&lt;br /&gt;
&lt;br /&gt;
rfc:4271;&lt;br /&gt;
&lt;br /&gt;
'''O QUE É BGP, FUNCIONAMENTO DO BGP e ESTADOS DE VIZINHANÇA DO BGP (FSM)''':&lt;br /&gt;
&lt;br /&gt;
Implementing Cisco IP Routing (ROUTE) Foundation Learning Guide: (CCNP ROUTE 300-101);&lt;br /&gt;
&lt;br /&gt;
'''QUANDO USAR E NÃO USAR O BGP''':&lt;br /&gt;
&lt;br /&gt;
CCNP Routing and Switching ROUTE 300-101 Official Cert Guide.&lt;br /&gt;
&lt;br /&gt;
== '''SOBRE AUTOR'''  ==&lt;br /&gt;
Autor: [https://wiki.brasilpeeringforum.org/w/Usu%C3%A1rio:Iagosousa Iago Jonathas]&lt;br /&gt;
[[Categoria:Roteamento]]&lt;/div&gt;</summary>
		<author><name>Guilherme.rigueti</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Fundamentos-do-bgp&amp;diff=3218</id>
		<title>Fundamentos-do-bgp</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Fundamentos-do-bgp&amp;diff=3218"/>
		<updated>2022-04-25T23:25:48Z</updated>

		<summary type="html">&lt;p&gt;Guilherme.rigueti: A ordem dos Estágios de vizinhança estavam errados&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;A proposta deste artigo é dimenssionar alguns pontos fundamentais do BGP. Não será mostrado a configuração e muito menos troubleshooting de BGP. Na versão PDF, pode ser acessada clicando neste [https://github.com/iagojonathas/recursos-fundamentos-do-bgp link].&lt;br /&gt;
&lt;br /&gt;
'''OBS:''' Técnica de troubleshooting está sendo elaborado em outro artigo e o conteúdo sobre ''BGP'' ''attributes'' também está em produção.&lt;br /&gt;
&lt;br /&gt;
=== O QUE É BGP ===&lt;br /&gt;
&lt;br /&gt;
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.  NLRI é totalmente conhecido e válido tanto que os prefixos só podem trocados se estiverem presente na IP routing table de um router BGP.&lt;br /&gt;
&lt;br /&gt;
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 '''precisam''' estar diretamente conectado para formar uma vizinhança, ao contrário dos protocolos IGPs, tais como: EIGRP. OSPF, ISIS e RIP; devem estar diretamente conectado para forma uma adjacência. &lt;br /&gt;
&lt;br /&gt;
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  (processo a ser discutido em mais detalhes no decorrer do artigo).&lt;br /&gt;
&lt;br /&gt;
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 aceito nas indústrias de telcos e em algumas empresas corporativas, e podemos afirma que o protocolo é uma '''APLICAÇÃO DE ROTEAMENTO'''.&lt;br /&gt;
&lt;br /&gt;
==== CARACTERÍSTICA DO BGP ====&lt;br /&gt;
&lt;br /&gt;
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 abaixo:&lt;br /&gt;
&lt;br /&gt;
&amp;gt; '''Construção de Gráfico de ASN''':&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Gráfico de ASN.jpg|centro|miniaturadaimagem|699x699px|FONTE: Implementing Cisco IP Routing (ROUTE) Foundation Learning Guide - Chapter 7]]  &lt;br /&gt;
&lt;br /&gt;
Na perspectiva do ASN 64520 (imagem acima) constrói uma gráfico de ASN por onde prefixo foi deslocado, para ele alcança os prefixos contidos no ASN 64700, precisa passar por ASNs:        &lt;br /&gt;
&lt;br /&gt;
* 64520 64600 64700&lt;br /&gt;
* 64520 64540 64700&lt;br /&gt;
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 Attributes''). 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. O formato da mensagem UPDATE será discutido ao longo desse material.&lt;br /&gt;
&lt;br /&gt;
Lembra do primeiro seção onde um speaker 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 adjacente e envia informações presentes na IP routing table. Ou seja, o 64512 terá um caminho possível na sua BGP routing table:&lt;br /&gt;
&lt;br /&gt;
* 64512 64520 64600 64700&lt;br /&gt;
[[Arquivo:Single Dualhomed.jpg|miniaturadaimagem|717x717px|FONTE: Implementing Cisco IP Routing (ROUTE) Foundation Learning Guide - Chapter 7]]&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* 64512 64520 64600 64700&lt;br /&gt;
&lt;br /&gt;
* 64512 64530 64540 64700&lt;br /&gt;
&lt;br /&gt;
Vale enfatizar que o BGP é uma aplicação de roteamento, permitindo-a realizar roteamento assimétrico, ou seja tanto ''upload''  quanto ''download'' pode vir por rotas distintas, por exemplo, o ASN 64512 pode ter um upload via ASN 64520 e o download via ASN 64530 dependo da sua política de roteamento, para mais informções de como influenciar o upload e download no seu vizinho, pode consultar este [https://wiki.brasilpeeringforum.org/w/O_Minimo_que_Voce_precisa_saber_sobre_o_BGP link].&lt;br /&gt;
&lt;br /&gt;
'''OBS''': BGP routing table e IP routing table serão discutido ao longo deste artigo!&lt;br /&gt;
&lt;br /&gt;
&amp;gt; '''Mitigação de looping''':&lt;br /&gt;
&lt;br /&gt;
O nome  DV (''distance vector'') é derivado do fato de que as rotas são anunciadas como vetores (distance, vector), onde a distance é definida em termos de uma métrica e a vector é definida em termos do roteador next-hop. Por exemplo, &amp;quot;O destino A está a uma '''''distance''''' de 5 saltos, no '''''vector''''' do roteador X next-hop&amp;quot;. Como essa declaração implica, cada roteador aprende rotas a partir das perspectivas dos roteadores vizinhos e, em seguida, anuncia as rotas a partir de sua própria perspectiva. Como cada roteador depende de seus vizinhos para obter informações, o que os vizinhos podem ter aprendido com seus vizinhos, e assim por diante, o roteamento do vetor de distância às vezes são chamados de &amp;quot;roteamento por rumor&amp;quot;, segundo [https://www.ciscopress.com/articles/article.asp?p=24090&amp;amp;seqNum=3 ciscopress.com]. Se você observar minuciosamente 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 (IP routing table). Constituindo o conceito '''''Distance Path''''' (DP). Vejamos a diferença entre eles:&lt;br /&gt;
* '''Distance Vector''': Distance = quantidade de salto; Vector = roteador;&lt;br /&gt;
* '''Path vector''': Path = Atributos e Vector = ASN.&lt;br /&gt;
Então, podemos afirma que o BGP é semelhante ao RIP, mas com algumas particularidades e melhorias!&lt;br /&gt;
&lt;br /&gt;
Ambos protocolos respeitam a regra '''''split horizon''''' evitando looping ou flapping de roteamento, por exemplo, na [[:Arquivo:Single Dualhomed.jpg|ú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 enviou. O ASN 64550 envia NLRI 209.165.200.224 para o ASN 64540, no entanto, o ASN 64540 '''aceitará''' esse update, pois o atributo as-path não tem o seu próprio ASN e manterá essa informação na BGP routing table. Todavia, o ASN 64540 enviará esse NLRI para o neighbor 64700 e o mesmo vai '''descarta''' porque no atributo as-path já consta seu próprio ASN; mitigando a possibilidade de looping ou flapping em toda topologia BGP.&lt;br /&gt;
&lt;br /&gt;
==== BGP routing table vs IP routing Table ====&lt;br /&gt;
&lt;br /&gt;
BGP routing table é uma estrutura analítica do BGP, onde um roteador tazem uma analise complexa de 10 a 11 critérios, dependo do fornecedor sendo usado. IP routing table é a tabela de roteamento que um roteador possa encaminar tráfego para redes de destino. Assumindo que a IP routing table é uma tabela confiável elaborado por protocolo de roteamento, o BGP usa essa tabela para publicar os NLRIs aos seus vizinhos.  &lt;br /&gt;
&lt;br /&gt;
A tabela BGP pode ter seguintes nomes: &lt;br /&gt;
* BGP table;&lt;br /&gt;
* BGP topology table;&lt;br /&gt;
* BGP topology database;&lt;br /&gt;
* BGP routing table;&lt;br /&gt;
* BGP forwarding database. &lt;br /&gt;
&lt;br /&gt;
OBS:  BGP routing table e IP routing table têm outras relevâncias quando a ISP trabalha com atributos ''atomic aggregate'' e ''aggregator'', porém está além do escopo deste artigo.&lt;br /&gt;
&lt;br /&gt;
=== FUNCIONAMENTO DO BGP ===&lt;br /&gt;
Assim como qualquer outro protocolo de redes, o BGP utiliza mensagens para realizar a sua convergência. O BGP usa quatro mensagens, elas são open, keepalive, update e notification. E na camada de transporte do modelo OSI, usufrui da confiabilidade e rapidez, a característica mais significativa do TCP, em termos de troca de rotas entre dois peerings. As trocas de mensagens são trocadas após de estabelecer uma sessão TCP na porta 179.&lt;br /&gt;
&lt;br /&gt;
Como TCP deixa o processo de convergência do BGP mais rápido? Protocolo de roteamento do tipo IGP, como OSPF, não é aplicação de roteamento, atuando diretamente na camada de rede do modelo OSI e possuindo o seu próprio protocolo na camada de transporte. No entanto, tem ''window one-for-one'', ou seja, se um roteador OSPF precisa enviar mais de uma LSU para o seu vizinho, ele precisa enviar apenas um update e esperar um LSAck. Se não receber um LSAck, ele enviará o primeiro update até receber um LSAck. Também, único update do OSPF suporta no máximo 10.000 rotas. Portanto, se a sua rede corporativa for de 100.000 rotas OSPF, o roteador precisa enviá 10 updates. Isso é muito ineficiente e demorado se você tiver uma grande rede, como a IP routing table global têm 840.791 rotas, segundo o site ''cidr report'' na data de 01/07/2020. OSPF precisaria enviar aproximadamente 84 updates. Deixando-a a convergência menos eficiente em qual tange 840.791 rotas.&lt;br /&gt;
&lt;br /&gt;
Já o BGP precisa lidar com a 840.791 rotas, com a função TCP implementada na camada de transporte do modelo OSI; quebrando o paradigma ''window one-for-one'' e usa ''sliding window'', permitindo que único update possa enviar milhares de rota, deixando-a muito mais eficiente e eficaz.&lt;br /&gt;
&lt;br /&gt;
'''OBS''': as mensagens do BGP são trocados APÓS do estabelecimento da sessão BGP, como mostrado na imagem a seguir.&lt;br /&gt;
[[Arquivo:Mensagens do BGP.png|centro|miniaturadaimagem|555x555px|Trocas de mensagens BGP, extraído do wireshark]]&lt;br /&gt;
&lt;br /&gt;
==== MENSAGEM OPEN ====&lt;br /&gt;
Ḿensagem open, é a primeira mensagem a ser trocada assim de estabelecer uma sessão TCP. Se uma mensagem open é aceitável, uma mensagem keepalive é enviado como resposta. No cabeçalho da mensagem open possuem seguintes campos:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Mensagem Open.png|miniaturadaimagem|516x516px|centro|FONTE: [[rfc:4271#section-4.2|RFC 4271]] - Página 12]]&lt;br /&gt;
* '''Version:''' campo de 8-bit indica o número da versão mensagem BGP. Atualmente o número da versão é o 4 (BGP-4);&lt;br /&gt;
* '''My Autonomous System:''' campo de 16-bit indica o ASN do remetente;&lt;br /&gt;
* '''Hold Time:''' campo de 16-bit indica o maior número de segundos que pode decorrer entre a mensagem keepalive ou update sucessivamente pelo remetente. Com um aceite de uma mensagem open, o roteador BGP deve calcular o valor do hold time a ser usado com o seu neighbor, por padrão, o hold time são de 180 segundos. Se o hold time local de um roteador é menor do que holdtime mínimo, a relação de vizinhança não pode ser formada;&lt;br /&gt;
* &amp;lt;strong&amp;gt;Version: &amp;lt;/strong&amp;gt;'''BGP Identifier:''' um campo composto por 32-bit, identificando o router-id do speaker BGP, um endereço IPv4 é constituído por 32-bit e por isso é usado. A designação de 32-bit tem a seguinte ordem: router-id explícito dentro da configuração; o maior endereço IPv4 de uma interface loopback ativa; maior endereço IPv4 de qualquer interface física ativa;&lt;br /&gt;
* &amp;lt;strong&amp;gt;Version: &amp;lt;/strong&amp;gt;'''Optional Parameters:''' identifica o tamanho total do comprimento do optional parameters. Esse parâmetros são Type, Length e Value (TLV). Um exemplo de um optional parameters é o fator de autenticação.&lt;br /&gt;
&lt;br /&gt;
==== MENSAGEM UPBATE ====&lt;br /&gt;
A mensagem update tem a finalidade de trocar informação de roteamento entre os peerings BGP e da mesma forma construir um gráfico em que os prefixos já foi passado.&lt;br /&gt;
&lt;br /&gt;
Uma mensagem update é usado para propagar uma rota ou prefixo presente na tabela de roteamento e com os atributos desse prefixo. A mensagem update sempre terá um tamanho fixo no cabeçalho BGP e também campos de informações, como demonstrado abaixo.&lt;br /&gt;
[[Arquivo:Mensagem UPDATE BGP.png|centro|miniaturadaimagem|439x439px|FONTE: [[rfc:4271#section-4.3|RFC 4271]] - Página 14]]&lt;br /&gt;
&lt;br /&gt;
'''Atenção''': alguns desses campos podem estar ausente em todas mensagens updates. Por isso que enfatizamos os principais campos, para mais informações pode consultar a &amp;lt;nowiki&amp;gt;RFC 4271&amp;lt;/nowiki&amp;gt;! A justificativa da ausência será discutida no próximo artigo sobre BGP attributes.&lt;br /&gt;
&lt;br /&gt;
*  '''Withdrawn Routes:''' é um valor variável que consta uma lista de prefixo de endereço IP para as rotas são withdram &amp;quot;retirada&amp;quot; do serviço . O valor 0 indica que não há nenhuma rota sendo retirada do serviço e o campo Withdrawn Routes não está sendo constatado nessa mensagem update;&lt;br /&gt;
* &lt;br /&gt;
* '''Path Attributes:''' uma sequência de atributos do BGP sendo transportado nesse campo, tais como: AS-path, origin, local preference, next hop e assim por adiante. Cada atributo pode ter atributo type, atributo length e atributo value (TLV). O atributo type há flags, seguido por código do atributo, de acordo com ''[https://www.iana.org/assignments/bgp-parameters/bgp-parameters.xhtml iana.com]'' :&lt;br /&gt;
# ORIGIN (Type code 1);&lt;br /&gt;
# AS-PATH (Type code 2):&lt;br /&gt;
# Next Hop (Type code 3);&lt;br /&gt;
# MED (Type code 4);&lt;br /&gt;
# Local Prefer (Type code 5);&lt;br /&gt;
# Atomic Aggregate (Type code 6);&lt;br /&gt;
# Aggregator (Type code 7);&lt;br /&gt;
# Community (Type code 8);&lt;br /&gt;
# Originator_ID (Type code 9);&lt;br /&gt;
* '''Network Layer Reachability Information:''' Uma lista de redes que pode ser alcançada por esse update.&lt;br /&gt;
&lt;br /&gt;
==== MENSAGEM NOTIFICATION ====&lt;br /&gt;
É enviado quando há uma condição de erro ou um router BGP restabeleceu a sua sessão TCP e a sessão é encerrada '''imediatamente'''. Um exemplo do processo notification:&lt;br /&gt;
[[Arquivo:Processo do BGP Notification.png|alt=|miniaturadaimagem|545x545px|centro|Processo de Mensagem Notification]]&lt;br /&gt;
&lt;br /&gt;
==== MENSAGEM KEEPALIVE ====&lt;br /&gt;
Keepalive têm duas funções no BGP. Uma é manter a sessão TCP estabelecida por padrão, é enviada a cada 60 segundos. E atua como resposta da mensagem open.&lt;br /&gt;
&lt;br /&gt;
=== ESTADOS DE VIZINHANÇA DO BGP (FSM) ===&lt;br /&gt;
BGP é protocolo ''Finite State Machine,'' ou seja, precisa passar por vários estágio com o seu neighbor. ''Finite State Machine'' em curta palavra é: &amp;quot;o estágio atual em um FSM é determinado pelos estágios anteriores e pelas operações executadas para fazer a transição entre os estágios. Uma transição de um estágio para outro depende do sucesso ou fracasso de uma operação&amp;quot;, segundo a ''[https://www.cisco.com/c/en/us/td/docs/unified_computing/ucs/ts/guide/UCSTroubleshooting/UCSTroubleshooting_chapter_010.pdf cisco.com]''.Então, o BGP desloca por vários estágio ou estados até alcançar a sua convergência completa/established.&lt;br /&gt;
&lt;br /&gt;
Os estágios de vizinhança são:&lt;br /&gt;
&lt;br /&gt;
* '''Idle:''' o roteador procura uma rota para o endereço IP do neighbor configurado,  em sua tabela de roteamento e envia um SYN;&lt;br /&gt;
* '''Connect:''' o roteador encontra uma rota para o neighbor e finaliza o three-way handshake TCP;&lt;br /&gt;
* '''Active:''' um problema persiste no peering BGP e está impactando do roteador de avançar para os próximos estágios.&lt;br /&gt;
* '''Open Sent:''' uma mensagem Open foi enviada, com os parâmetros da sessão;&lt;br /&gt;
* '''Open Confirm:''' o roteador recebeu um aceite nos parâmetros para estabelecer uma sessão;&lt;br /&gt;
* '''Established:''' os speakers BGP estão trocando informação de roteamento - envio e recebimento da mensagem Update;&lt;br /&gt;
&lt;br /&gt;
Como podemos observar um flowchart / fluxograma dos estágios state machine do protocolo BGP, na imagem subsequente. E uma numeração para descrever cada estágio.&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:FSM do BGP.png|centro|miniaturadaimagem|653x653px|FSM do BGP]]&lt;br /&gt;
# Quando o administrador insere o endereço IP do neighbor dentro do processo ID BGP. o FSM do BGP fica em idle e nesse estágio o roteador começa procurar uma rota em sua tabela de roteamento, do endereço IP configurado. Se tiver uma rota o roteador envia um SYN e passa para estágio Connect em poucos segundos ou milésimos de segundos, se não tiver rota em sua tabela de roteamento o estágio permanecerá em Idle;&lt;br /&gt;
# Após de encontrar uma rota e enviar um SYN, entrará no estado Connect. Nesse estágio espera que o three-way handshake TCP na porta 179 seja completada;&lt;br /&gt;
# Se o roteador não receber um SYN, ACK do seu neighbor, o estágio vá para o Active;&lt;br /&gt;
# Após do um speaker BGP estabelecer uma sessão TCP, o roteador local precisa enviar uma mensagem Open (já discutido anteriormente neste artigo) e quando o speaker BGP já enviou uma Open, entra no estágio Open Sent;&lt;br /&gt;
# Se ele não receber uma mensagem Open como resposta do primeiro Open dentro de 5 segundos, o estágio é movido para o Idle;&lt;br /&gt;
# No entanto, se o roteador local receber um Open dentro de 5 segundos, o estágio FSM do BGP é movido para o Open Confirm;&lt;br /&gt;
# Open Confirm começa a escanear a tabela de roteamento dos caminhos para enviar para o neighbor e nesse estágio o BGP espera receber uma mensagem keepalive ou notification;&lt;br /&gt;
# Um vez, alcançando o estágio Established, os peering BGP começa trocar rotas (prefixos ou NLRI) entre si. Ou seja, há trocas de updates.&lt;br /&gt;
&lt;br /&gt;
==== PRINCIPAIS CAUSAS DE ESTÁGIO ACTIVE ====&lt;br /&gt;
Se um roteador BGP alcançou esse estágio quer dizer que o mesmo tem uma rota para o endereço IP do seu vizinho, todavia, é que o vizinho não tenha uma rota para o endereço IP para a origem, certifica-se que o roteador tenha uma rota presente na tabela de roteamento do speaker BGP.&lt;br /&gt;
&lt;br /&gt;
Um outro problema muito corriqueiro é quando o roteador consegue estabelecer uma sessão TCP na porta 179 (estágio Connect) e o roteador envia uma mensagem Open, porém o speaker BGP de destino não tem configuração para a origem ou tem algum parâmetro errado do BGP, como por exemplo, endereço IP do peering, ASN, autenticação, holdtimer da mensagem configurado erroneamente.&lt;br /&gt;
&lt;br /&gt;
=== QUANDO USAR E NÃO O BGP ===&lt;br /&gt;
Adoção ou não adoção do BGP, depende de muitos aspectos e do que a empresa precisa, mas o fator crucial é quantidade link ou tipos de conexões:&lt;br /&gt;
* Single Homed;&lt;br /&gt;
* Dual-Homed;&lt;br /&gt;
* Single-Multihomed;&lt;br /&gt;
* Dual-Multihomed.&lt;br /&gt;
&lt;br /&gt;
'''Single-Homed''': é um tipo de conexão que só tem um caminho de saída para internet, não precisa executar o BGP. Uma rota default é mais do que suficiente. Single homed é conhecido como rede '''''stub''''';&lt;br /&gt;
&lt;br /&gt;
'''Dual-homed''': a empresa ou a telco tem caminho redundante por mais de um link ou por mais de dois roteadores, porém para o mesmo ISP, se a ISP cair toda o acesso a internet é paralisada. Esse tipo de rede,  pode não precisar do BGP em si, mas se torna uma tarefa desafiaente para o administrador de rede, podemos ver uma topologia na imagem a seguir:&lt;br /&gt;
&lt;br /&gt;
[[Arquivo:Dual-homed.jpg|centro|miniaturadaimagem|419x419px|CCNP Routing and Switching ROUTE 300-101 Official Cert Guide- Chaper 13]]&lt;br /&gt;
&lt;br /&gt;
'''Single-MultiHomed''': um link para vários ISPs (pelo menos dois), como demonstrado na imagem abaixo. Aqui fica impossível ter caminhos redundantes e o acesso a internet ficar ininterrupto usando apenas rota default, nesta topologia é necessário a implementação do BGP;&lt;br /&gt;
[[Arquivo:Single-homed.jpg|centro|miniaturadaimagem|478x478px|CCNP Routing and Switching ROUTE 300-101 Official Cert Guide- Chaper 13]]&lt;br /&gt;
&lt;br /&gt;
'''Dual-Multihomed''': uma topologia de rede que a empresa possui vários link de conexão para vários telco, se tornando imaginável usar rota default, o uso do BGP se torna essencial nessa rede para fazer a uma rápido ''reroute''.&lt;br /&gt;
[[Arquivo:Dual-multihomed.jpg|centro|miniaturadaimagem|480x480px]]&lt;br /&gt;
&lt;br /&gt;
=== '''RECURSO DISPONÍVEL'''  ===&lt;br /&gt;
Mapa menta e versão em PDF: [https://github.com/iagojonathas/recursos-fundamentos-do-bgp https://github.com/iagojonathas/fundamentos-do-bgp]&lt;br /&gt;
&lt;br /&gt;
=== '''CONCLUSÃO''' ===&lt;br /&gt;
O BGP não é apenas um protocolo de roteamento simples, pelo ao contrário ele se estende para diversos protocolos, cujo é conhecido como MP-BGP (Multiprotocol BGP). Também, foi desenvolvida diversas features (next-hop-self, update-source, eBGP multihop, eBGP multipath, route reflectors e dentre outros) para afirmar que seu comportamento é de uma aplicação. O BGP é um protocolo '''''manualizado''''' que é super bom, pois o analista de rede consegue ter um total controle desse magnífico protocolo e eles (analistas) podem usar  filtros para manipular o que ser transmitido ou não, e influencia o fluxo de tráfego de outro ASN.&lt;br /&gt;
&lt;br /&gt;
Esse artigo foi escrito o mais breve possível e deixando, cirúrgico e transparente. Então, alguns aspectos não foram mencionadas por se tratar de uma linguajar mais técnico, necessitando-a de um estudo mais robusto. Entretanto, é o conhecimento básico para quem administra um ASN! Se você quiser ter um conhecimento mais aprofundado vá em: [https://wiki.brasilpeeringforum.org/w/Categoria:Roteamento Catagorias &amp;amp; Roteamento] ou [https://wiki.brasilpeeringforum.org/w/O_Minimo_que_Voce_precisa_saber_sobre_o_BGP O Minimo que Voce precisa saber sobre o BGP]&lt;br /&gt;
&lt;br /&gt;
Espero ter colaborado para a wiki e seja útil para os eleitores - para dúvida, esclarecimento e elogio só acionar no [https://www.linkedin.com/in/iagojonatas/ linkedin] ou [https://t.me/iagojonathas telegram] e ABS!&lt;br /&gt;
&lt;br /&gt;
“E lembre-se: você é seu próprio general. Então, tome agora a iniciativa, planeje e marche decido para a vitória”- Sun Tzu - A Arte da Guerra&lt;br /&gt;
&lt;br /&gt;
=== '''REFERÊNCIA BIBLIOGRÁFICA '''  ===&lt;br /&gt;
'''FUNCIONAMENTO DO BGP''':&lt;br /&gt;
&lt;br /&gt;
rfc:4271;&lt;br /&gt;
&lt;br /&gt;
'''O QUE É BGP, FUNCIONAMENTO DO BGP e ESTADOS DE VIZINHANÇA DO BGP (FSM)''':&lt;br /&gt;
&lt;br /&gt;
Implementing Cisco IP Routing (ROUTE) Foundation Learning Guide: (CCNP ROUTE 300-101);&lt;br /&gt;
&lt;br /&gt;
'''QUANDO USAR E NÃO USAR O BGP''':&lt;br /&gt;
&lt;br /&gt;
CCNP Routing and Switching ROUTE 300-101 Official Cert Guide.&lt;br /&gt;
&lt;br /&gt;
== '''SOBRE AUTOR'''  ==&lt;br /&gt;
Autor: [https://wiki.brasilpeeringforum.org/w/Usu%C3%A1rio:Iagosousa Iago Jonathas]&lt;br /&gt;
[[Categoria:Roteamento]]&lt;/div&gt;</summary>
		<author><name>Guilherme.rigueti</name></author>
	</entry>
</feed>