<?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=Iagosousa</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=Iagosousa"/>
	<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/w/Especial:Contribui%C3%A7%C3%B5es/Iagosousa"/>
	<updated>2026-05-31T08:55: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=Conteudos&amp;diff=2637</id>
		<title>Conteudos</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Conteudos&amp;diff=2637"/>
		<updated>2020-07-23T00:05:31Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Conteúdos para os Operadores de Redes ==&lt;br /&gt;
[[Arquivo:Content-BW.png|commoldura]]&lt;br /&gt;
Nesta página você encontrará os links para os diversos artigos, how-tos, tutoriais e vídeos produzidos no âmbito do BPF e direcionados à Comunidade de Internet Brasileira. O intuito é que eles sejam úteis para o dia a dia de operação de redes, infraestrutura, boas práticas e assuntos relacionados.&lt;br /&gt;
&lt;br /&gt;
Para escrever um novo artigo, how-to ou tutorial e compartilhá-lo é necessário criar antes um usuário na Wiki. Existe um artigo com orientações gerais sobre [[Como Escrever na Wiki]]. Após finalizar o artigo não esqueça de indexá-lo nesta página como também compartilhar conosco na lista de emails.&lt;br /&gt;
&lt;br /&gt;
Caso haja interesse em publicar algum material mais completo ou algum projeto envie um email para a lista de discussão geral abordando o assunto de interesse para verificar se já existe alguém o alguma Task Force trabalhando neste assunto ou ainda verifique se já existe algo mais específico em alguma das Task Forces temáticas. Toda contribuição da comunidade é bem vinda e incentivada.&lt;br /&gt;
&lt;br /&gt;
Para facilitar os artigos e materiais publicados abaixo são separados por assuntos.&lt;br /&gt;
== Direitos Autorais, Licença de Uso e Termo de Responsabilidade ==&lt;br /&gt;
Todos os conteúdos, contribuições e obras publicados pelo Brasil Peering Forum (BPF) estão licenciados com uma '''Licença Creative Commons Atribuição-NãoComercial 4.0 Internacional'''. Consulte o nosso [[Direitos Autorais Licenca de Uso|Termo de Responsabilidade]] para verificar a licença, os direitos e restrições de uso, assim como as devidas isenções de responsabilidades.&lt;br /&gt;
&lt;br /&gt;
== Artigos ==&lt;br /&gt;
&lt;br /&gt;
=== Geral ===&lt;br /&gt;
* [[Como Escrever na Wiki]] - Passo a Passo de como criar um novo artigo e contribuir com a Wiki do BPF.&lt;br /&gt;
* [[Assinatura MoU BPF]] - Assinatura do Memorando de Entendimento entre os membros da Board e Comitê de Programa do BPF.&lt;br /&gt;
* [[Enciclopedia e desciclopedia da telecom|Enciclopédia e &amp;quot;Desciclopédia&amp;quot; da Telecom]] - Aqui reunimos expressões, acrônimos e termos conhecidos referentes ao universo de telecomunicações e ISPs.&lt;br /&gt;
&lt;br /&gt;
=== BCOPs ===&lt;br /&gt;
* [[Boas Praticas para Melhorar a Seguranca de seu Provedor]]‎‎ - Boas práticas a serem seguidas para melhorar a segurança de seu Provedor.&lt;br /&gt;
* [[Boas Praticas para Protecao de Roteadores e Switches|Boas Práticas para a Proteção de Roteadores e Switches]] - Artigo que dissemina várias áreas de atenção e práticas para o aumento da segurança da rede do Provedor.&lt;br /&gt;
* [[Boas Praticas para Politicas de Manutencao de Software de Ativos de Rede|Boas Práticas para Políticas de Manutenção de Software de Ativos de Rede]] - Artigo dissertativo sobre boas práticas para a escolha, adoção e manutenção de software de equipamentos de redes.&lt;br /&gt;
* [[Boas Praticas para a Documentacao de Infraestruturas de Redes e Servicos do Provedor|Boas Práticas para a Documentação de Infraestruturas de Redes e Serviços do Provedor]] - Artigo que apresenta boas práticas e sugestões para a documentação de ambientes de redes.&lt;br /&gt;
* [[Boas praticas para a implantacao do ospf em ambientes de isp|Boas praticas para a implantacão do OSPF em ambientes de ISP]] - Artigo discorrendo sobre 12 boas práticas em situações envolvendo OSPF em ambientes ISP.&lt;br /&gt;
&lt;br /&gt;
=== Capacitação ===&lt;br /&gt;
* [[Abordagens para o Troubleshooting Eficaz de Problemas Tipicos na Rede do ISP|Abordagens para o Troubleshooting Eficaz de Problemas Típicos na Rede do ISP]] - Artigo didático que comenta boas práticas para ações de suporte na rede do ISP&lt;br /&gt;
* [[Aprimorando a Disponibilidade da rede do ISP]] - Artigo com vídeo explicando os fundamentos de disponibilidade das infraestruturas de redes do provedor&lt;br /&gt;
* [[Frameworks de industria para a reestuturacao e profissionalizacao do isp|Frameworks de Indústria para a Reestruturação e Profissionalização do ISP]] - Artigo que destaca positivamente o eTOM BPF do Frameworx como conceito de remodelagem de operação e de negócios de ISPs&lt;br /&gt;
&lt;br /&gt;
=== DNS ===&lt;br /&gt;
* [[Porque usar um DNS local e algumas dicas para isto]] - Artigo explicativo das razões porque é uma boa prática para um ISP possuir servidores DNS Recursivos próprios do que direcionar o usuário para um servidor público.&lt;br /&gt;
* [[DNSSEC Seguranca do DNS|DNSSEC - Seguranca do DNS]] - Artigo conceitual explicando o funcionando do DNSSEC baseado no documento DNSSEC: Securing DNS publicado pela ICANN.&lt;br /&gt;
&lt;br /&gt;
=== Infraestrutura ===&lt;br /&gt;
* [[Compatibilidade de GBICs e Cabos Twinax|Compatibilidade de GBICs e cabos Twinax]] - Banco de dados colaborativo sobre experiências de uso de GBICs e cabos Twinax em Roteadores e Switches&lt;br /&gt;
* [[Introducao aos conceitos de programabilidade de infraestruturas de redes|Introdução aos Conceitos de Programabilidade de Infraestruturas de Redes]] - Artigo um tanto extenso e completo cobrindo os fundamentos de programabilidade de redes&lt;br /&gt;
&lt;br /&gt;
=== Interconexão ===&lt;br /&gt;
* [[Modelos Interconexão]] - Artigo sobre os modelos de interconexão Peering e Trânsito&lt;br /&gt;
* [[Looking Glass]] - Artigo com uma lista de Looking Glass nacionais e internacionais&lt;br /&gt;
* [[CDN Peering e PNI - Brasil]] - Lista com as principais CDNs, instruções de como solicitar Servidores, Sessões Bilaterias no IX e PNIs.&lt;br /&gt;
&lt;br /&gt;
=== Roteamento ===&lt;br /&gt;
* [[Dimensionando Roteador para BGP]] - Considerações a serem levadas em conta ao adquirir um novo Roteador para BGP&lt;br /&gt;
* [[Engenharia de Trafego com MPLS TE]]‎ - Artigo explicando o funcionamento do MPLS com Traffic Engineering&lt;br /&gt;
* [[Balanceamento de Trafego em Redes MPLS]] - Artigo explicando o funcionamento de distribuição de tráfego em redes MPLS&lt;br /&gt;
* [[Redes MPLS para Provedores]] - Artigo explicando as vantagens e benefícios de infraestruturas do provedor baseadas no MPLS&lt;br /&gt;
* [[Fundamentos de Roteamento para Provedores]] - Artigo explorando os fundamentos de funções de Camadas 2 e 3, comutação e roteamento, em redes Ethernet IP para provedores&lt;br /&gt;
* [[Protecao e Resiliencia em Redes L2 de Provedores|Proteção e Resiliência em Redes L2 de Provedores]] - Artigo explicando as necessidades e opções para a proteção e resiliência de redes Ethernet para provedores&lt;br /&gt;
* [[Introducao ao IPv6 Provider Edge over MPLS e 6VPE|Introdução ao IPv6 Provider Edge over MPLS (6PE) e 6VPE]] - Artigo abordando as tecnologias 6PE e 6VPE em regime BGP Free Core com MPLS TE. Inclui vídeos demonstrativos&lt;br /&gt;
* [[Introducao ao Unified MPLS|Introdução ao Unified MPLS]] - Artigo explicando a adoção do MPLS em infraestruturas de redes de grandes operadores. Inclui vídeo demonstrativo&lt;br /&gt;
* [[Lista de Communities BGP]] - Listagem com as Communities disponibilizadas pelos principais Operadores de Trânsito IP e Internet Exchanges&lt;br /&gt;
* [[Diferenca entre AS-OVERRIDE e ALLOWAS-IN]] - Explicação básica sobre a diferença entre os dois mecanismos anti-loop do protocolo BGP&lt;br /&gt;
* [[Construção de Redes de Gerenciamento OOB para o ISP]] - Artigo dissertativo sobre conceitos de gerenciamento e redes Fora-de-Banda (OOB)&lt;br /&gt;
* [[Transicao de Solucoes L2VPN MPLS Tradicionais para o EVPN|Transição de Soluções L2VPN MPLS Tradicionais para o Ethernet VPN (EVPN)]] - Artigo explicando muitas das diferenças entre as soluções L2VPN MPLS tradicionais e o Ethernet VPN. Inclui vídeos demonstrativos&lt;br /&gt;
* [[O Minimo que Voce precisa saber sobre o BGP|O Mínimo que Você precisa saber sobre o BGP]] - Artigo bem dissertativo de conceitos fundamentais que todo profissional de ISP precisa saber a respeito do BGP&lt;br /&gt;
* [[Adocao de Quality of Service em Ambientes de Operadores de Redes|Adoção de Quality of Service (QoS) em Ambientes de Operadores de Rede]] - Artigo bastante didático e esclarecedor sobre as tecnologias e ferramentas para o QoS.&lt;br /&gt;
* [[O Minimo que voce precisa saber sobre DDoS]] - Artigo explicando diferenças entre ataques DDoS e maneiras de se prevenir e mitigar.&lt;br /&gt;
* [[Redes que descartam RPKI Invalidos]] - Uma introdução rápida ao RPKI além de listar as operadoras e provedores de trânsito Internet que já implementam o descarte de prefixos inválidos.&lt;br /&gt;
* [[O Minimo que Voce precisa saber sobre IRR]] - Artigo explicando o que é IRR, a importância do uso, principais bases e com um tutorial de como adicionar informações em uma base.&lt;br /&gt;
* [[Solucoes para o gerenciamento efetivo do bgp em um sistema autonomo|Soluções para o Gerenciamento Efetivo do BGP em um Sistema Autônomo]] - Artigo bastante completo dissertando sobre o gerenciamento e monitoramento do BGP em um Sistema Autônomo.&lt;br /&gt;
* [https://wiki.brasilpeeringforum.org/w/Fundamentos-do-bgp Fundamentos do BGP] - Artigo com abordagem sobre os conceitos básicos para quem administra um ASN.&lt;br /&gt;
&lt;br /&gt;
=== Transmissão ===&lt;br /&gt;
* [[Sistemas DWDM de Baixo Custo]] - Artigo explicado sobre como projetar um sistema DWDM de baixo custo.&lt;br /&gt;
&lt;br /&gt;
== How-tos e Tutoriais ==&lt;br /&gt;
&lt;br /&gt;
=== Geral ===&lt;br /&gt;
* [[Como reportar abusos ao Google]] - Instruções sobre como reportar servidores com conteúdos maliciosos hospedados pelo Google.&lt;br /&gt;
* [[Como configurar o Winbox no MacOS Catalina]] - Tutorial sobre como executiar o Winbox em 64Bits no MacOS Catalina.&lt;br /&gt;
&lt;br /&gt;
=== Boas Práticas ===&lt;br /&gt;
* [[Boas práticas de segurança para roteadores Mikrotik]] - How-to com orientações de segurança e regras a serem aplicadas em roteadores Mikrotik rodando RouterOS.&lt;br /&gt;
* [[Como consultar e corrigir a geolocalizacao de seus IPs|Como Consultar e Corrigir a Geolocalização de IPs]] - Tutorial explicando como consultar e corrigir as informações de geolocalização de alocações de um ASN.&lt;br /&gt;
* [[MANRS]] - Passo a passo de como cumprir todos os requisitos do MANRS e para se ter um Sistema Autônomo e uma Internet mais segura.&lt;br /&gt;
* [[PeeringDB - como se cadastrar e atualizar seus dados|PeeringDB - Como se cadastrar e atualizar seus dados]] - Passo a passo de como realizar o cadastro no PeeringDB e preencher as informações necessárias.&lt;br /&gt;
&lt;br /&gt;
=== DNS ===&lt;br /&gt;
* [[Melhorando a performance e resiliencia da rede com Recursive DNS Anycast|Melhorando a performance e resiliência da rede com Recursive DNS Anycast]] - Tutorial que apresenta uma técnica interessante para maior disponibilidade e desempenho dos servidores DNS para os provedores.&lt;br /&gt;
&lt;br /&gt;
=== Edge ===&lt;br /&gt;
* [[Concentradores PPPoE com IPv6]] - Como habilitar suporte a IPv6 e distribuição de prefixos para usuários finais em diferentes concentradores.&lt;br /&gt;
&lt;br /&gt;
=== Infraestrutura ===&lt;br /&gt;
* [[Log de Portas de Origem em Servidores Web]] - Como adicionar a porta de origem ao log dos Servidores Web e ser capaz de identificar usuários atrás de CGNAT.&lt;br /&gt;
* [[CGNAT na pratica|CGNAT na prática]] - Tutorial sobre como configurar um servidor Linux com netfilter para CGNAT com ajustes de configurações voltadas para performance.&lt;br /&gt;
* [[Tutorial DNS Hyperlocal]] - Tutorial descrevendo como hospedar uma cópia da zona raiz de DNS para que os servidores Recursivos locais possam consultar com maior performance e eficiência.&lt;br /&gt;
* [[Monitoramento-telegraf|Monitoramento Telegraf]] - Como configurar uma solução Telegraf + InfluxDB + Grafana para monitoramento via ICMP de destinos desde diferentes endereços de origem.&lt;br /&gt;
* [[Como Ter Seu Proprio Looking Glass|Como Ter Seu Próprio Looking Glass]] - Tutorial ensinando como o ISP poderá facilmente disponibilizar seu próprio Looking Glass para visibilidade e suporte à problemas com o BGP.&lt;br /&gt;
* [[Como capturar pacotes no Mikrotik]] - Tutorial ensinando como realizar captura de pacotes no Mikrotik visando a análise e depuração de protocolos e conversações.&lt;br /&gt;
* [[Como Monitorar 95th percentile]] - Tutorial demonstrando como monitorar tráfego 95th percentile para cobrança de clientes e possibilidade de exportar dados através de um script.&lt;br /&gt;
* [[Orquestrando sua rede com Ansible e Gitlab]] - Tutorial ensinando a utilizar modelos de dados, em uma estrutura CI/CD com Ansible e GitLab.&lt;br /&gt;
* [[464XLAT utilizando a ferramenta Jool]] - Tutorial sobre como configurar um ambiente utilizando o mecanismo de transição 464XLAT com a ferramenta Jool.&lt;br /&gt;
* [[CGNAT com F5 BIG-IP]] - Tutorial de apresentação e demonstração da solução de CGNAT com a plataforma F5 BIG-IP.&lt;br /&gt;
&lt;br /&gt;
=== IPv6 ===&lt;br /&gt;
* [[IPv6 no TPLink WR840N v2]] - Como ativar IPv6 na CPE TPLink WR840N v2&lt;br /&gt;
* [[IPv6 na ONU Huawei HS8546 v2]] - Como ativar IPv6 na ONU Huawei HS8546 v2&lt;br /&gt;
* [[IPv6 no Mikrotik CPE]] - Como ativar IPv6 em uma CPE Mikrotik (RouterOS)&lt;br /&gt;
* [[IPV6 no Ubiquiti AirOS6|IPv6 no Ubiquiti AirOS6]] - Como ativar IPv6 em uma CPE Ubiquiti com AirOS6&lt;br /&gt;
* [[IPV6 no Ubiquiti AirOS8|IPv6 no Ubiquiti AirOS8]] - Como ativar IPv6 em uma CPE Ubiquiti com AirOS8&lt;br /&gt;
* [[Ipv6-TL-WRN849N|IPv6 no TPLink WRN849N]] - Como ativar IPv6 em uma CPE TPLink WRN849N&lt;br /&gt;
* [[IPV6 no Intelbras Wom|IPv6 no Intelbras WOM]] - Como ativar IPv6 em uma CPE Intelbras WOM 500, WOM 5000 MIMO, WOM 5a-23 e WOM 5a MIMO&lt;br /&gt;
* [[IPv6 no Dlink Dir-615|IPv6 no Dlink DIR 615]] - Como ativar IPv6 em uma CPE Dlink DIR 615, DIR 608, DIR 610 e DIR 611&lt;br /&gt;
* [[IPV6 no DLINK DIR-882|IPv6 no D-Link DIR-882]] - Como ativar IPv6 em uma CPE D-Link DIR-882&lt;br /&gt;
* [[Acesso via IPv6 Link-Local]] - Uma maneira de acessar equipamentos via IPv6 Link-Local em caso de perda de conectividade por IPv4&lt;br /&gt;
* [[Como Ativar IPv6 em Servicos de Hosting e CDN]] - Tutorial sobre como ativar IPv6 nos serviços de Hosting e CDN mais utilizados&lt;br /&gt;
* [[Servidor DNS Recursivo com IPV6 e DNSsec]]- Mini tutorial sobre IPv6 e DNSsec em DNS recursivo Unbound.&lt;br /&gt;
* [[Gerando Log de IPv6 Delegation no Mikrotik]] - How to explicando como registrar em um servidor Syslog o Prefixo IPv6 entregue para o usuário em concentradores Mikrotik&lt;br /&gt;
&lt;br /&gt;
=== Interconexão ===&lt;br /&gt;
* [[Ajustes de ARP Cache para o IX]]  - Tutorial explicativo da problemática do ARP cache e comandos para serem aplicados em múltiplos vendors para melhor operação no IX.&lt;br /&gt;
&lt;br /&gt;
=== Roteamento ===&lt;br /&gt;
* [[Como fazer com que um determinado conteudo saia por um link especifico|Como fazer com que um determinado conteúdo saia por um link específico]] - Tutorial bem objetivo ensinando como manipular o roteamento para o recebimento de tráfego em seu AS&lt;br /&gt;
* [[Configuracao de filtros BGP usando Extended Routing Policy Language (XPL) no Huawei|Configuração de filtros BGP usando Extended Routing Policy Language (XPL) no Huawei]] - Tutorial sobre como configurar filtros usando XPL em Huawei&lt;br /&gt;
* [[UTRS Registro e Configuracao|UTRS - Registro e Configuração]] - Artigo que explica o funcionamento do serviço UTRS do Team Cymru, passo a passo para solicitação e configurações exemplo.&lt;br /&gt;
* [[Protegendo seu ASN com RPKI]] - Tutorial que ensina como implementar o Krill para habilitar e autorizar o ROA para o seu ASN.&lt;br /&gt;
&lt;br /&gt;
== Tech Notes ==&lt;br /&gt;
Esta seção contém contribuições fornecidas por fabricantes (&amp;quot;''vendors''&amp;quot;) acerca de suas soluções, tecnologias disponíveis, diferenciais de mercado e afins.&lt;br /&gt;
* [[Otimizacao de balanceamento de tráfego em Link Aggregation utilizando DLB e FAT em switches Datacom|Otimização de balanceamento de tráfego em Link Aggregation utilizando DLB &amp;amp; FAT em switches Datacom]] - Artigo dissertativo acerca das soluções DLB e FAT do portfólio de switches da Datacom&lt;br /&gt;
&lt;br /&gt;
== Informativos ==&lt;br /&gt;
Os informativos do Brasil Peering Forum são editados de forma quinzenal, dependendo do conteúdo e relevância e contém as principais notícias e novidades do mercado  de Infraestrutura de Telecom e Internet.Todos eles são também enviados para a [https://listas.brasilpeeringforum.org/mailman/listinfo/bpf Lista Pública de Discussão] do BPF. Inscreva-se para receber as notificações.&lt;br /&gt;
* [[Informativo Infra 01]] - 16/09/2019&lt;br /&gt;
* [[Informativo Infra 02]] - 22/09/2019&lt;br /&gt;
* [[Informativo Infra 03]] - 25/10/2019&lt;br /&gt;
* [[Informativo Infra 04]] - 04/11/2019&lt;br /&gt;
* [[Informativo Infra 05]] - 17/11/2019&lt;br /&gt;
* [[Informativo Infra 06]] - 02/12/2019&lt;br /&gt;
* [[Informativo Infra 07]] - 29/12/2019&lt;br /&gt;
* [[Informativo Infra 08]] - 26/01/2019&lt;br /&gt;
* [[Informativo Infra 09]] - 16/02/2020&lt;br /&gt;
* [[Informativo Infra 10]] - 09/03/2020&lt;br /&gt;
&lt;br /&gt;
== Vídeos ==&lt;br /&gt;
=== Capacitação ===&lt;br /&gt;
* [https://youtu.be/e00Qs1H26Zo Aprimorando a Disponibilidade da rede do ISP], por Leonardo Furtado&lt;br /&gt;
* [https://youtu.be/8yAGzNuerFg Conceitos e Análises de Investimentos Tecnológicos para o ISP], por Leonardo Furtado&lt;br /&gt;
* [https://youtu.be/rnABNk26pZk Caracterização das Funcionalidades e Recursos para Projetos de Redes no ISP], por Leonardo Furtado&lt;br /&gt;
=== Eventos ===&lt;br /&gt;
* [https://www.youtube.com/watch?v=KG2JZ0A_9yY Painel sobre Peering ocorrido durante o Future ISP em Maio de 2018]&lt;br /&gt;
* [https://www.youtube.com/watch?v=8GVHB52qu5k Apresentação do Brasil Peering Forum feita por Uesley Correa]&lt;br /&gt;
* [https://www.youtube.com/watch?v=SE8YEuVXMWQ Dever de Casa e o Impacto da Negligência Técnica e Administrativa de Participantes do IX-BR], por Elizandro Pacheco no IX Forum 12&lt;br /&gt;
* [https://www.youtube.com/watch?v=2oq7pMBF7Oc Tudo que você gostaria de saber sobre transmissões ópticas e WDM], por Tiago Setti no IX Forum 12&lt;br /&gt;
* [https://www.youtube.com/watch?v=Obh98S5xyQA Automatização de Listas de Prefixos em Peering BGP - Como fazer e sua importância], por Douglas Fischer no GTER 46&lt;br /&gt;
* [https://www.youtube.com/watch?v=hbEC2Sf5o20 BIER: Evolução do IP Multicast, por Tiago Setti] no GTER 46&lt;br /&gt;
* [https://www.youtube.com/watch?v=H-m0sKr8I0Q Problemas e soluções na identificação de usuário IPv6 usando RouterOS], por Uesley Correa no GTER 46&lt;br /&gt;
* [https://www.youtube.com/watch?v=WjSps5huDGU Painel - Trânsito Burstable com 95th] percentil, por Fernando Frediani, Fábio Monteiro, Edivan Silva e Tiago Setti no GTER 46&lt;br /&gt;
* [https://www.youtube.com/watch?v=4-77r2PGKB4 BSDRP - Uma opção de softrouter com FRR], por Antonio Donizeti Corazza Jr no GTER 46&lt;br /&gt;
* [https://www.youtube.com/watch?v=CjTcI0-UApI Ataques DDoS como ação anti-competitiva: prevenção, mitigação e reação], por Thiago Ayub no GTER 46&lt;br /&gt;
* [https://youtu.be/qBD7zCnbTF4 Automatização de Listas de Prefixos em peering BGP], por Douglas Fischer no LACNIC 31/FTL&lt;br /&gt;
* [https://youtu.be/8DdtN_fj_uQ BSDRP - Uma opção de sofftrouter com FRR], por Junior Corazza no LACNIC 31/FTL&lt;br /&gt;
* [https://www.youtube.com/watch?v=utPs-sXsOZg A importância de um CGNAT bem feito], por Fernando Frediani no GTER 47&lt;br /&gt;
* [https://www.youtube.com/watch?v=l2tVyz1Ba1A Entrevista sobre ataques e mitigação DDoS], com Thiago Ayub&lt;br /&gt;
* [https://youtu.be/ElA_71zsc6Y Entrevista com o Carlos Martínez sobre RPKI], com Carlos Martínez, CTO do LACNIC, na 9a Semana de Infraestrutura da Internet no Brasil.&lt;br /&gt;
&lt;br /&gt;
=== Hangouts ===&lt;br /&gt;
[https://www.youtube.com/watch?v=fy4efZZ-yvg Desmistificando o CGNAT] - Hangout realizado para debater o assunto e desmistificar esta necessidade dos ISPs. Durante a conversa foram abordadas boas práticas, diferentes modelos de CGNAT, problemas com Jogos e um case prático.&lt;br /&gt;
&lt;br /&gt;
[https://www.youtube.com/watch?v=ePMfMv3UVOs Boas Práticas de DNS] - Hangout realizado que debateu as melhores práticas para se ter um bom serviço de DNS rodando no seu provedor, a importância de ter seu DNS Reverso configurado corretamente, quando é necessário ter um servidor Autoritativo, DNSSEC e assuntos relacionados.&lt;br /&gt;
&lt;br /&gt;
=== Roteamento e MPLS ===&lt;br /&gt;
* [https://youtu.be/OWI4ndstx-o Demonstração do BGP-Free Core em Redes MPLS para Provedores], por Leonardo Furtado&lt;br /&gt;
* [https://www.youtube.com/watch?v=5Eg5jC2AMaQ Demonstração de Soluções de Conectividade para Redes MPLS de Provedores - Parte 1] (Introdução), [https://www.youtube.com/watch?v=W8HS_y7REiM Parte 2] (Introdução ao L3VPN), [https://www.youtube.com/watch?v=TqdZYK_9rlY Parte 3] (Demonstração de Interconexões com L3VPN MPLS), [https://www.youtube.com/watch?v=bmgWGOPbkfw Parte 4] (Demonstração da Solução Carrier Supporting Carrier - (CsC)), [https://www.youtube.com/watch?v=H4SyKiGBOXM Parte 5] (Demonstração de L3VPN MPLS com VPNs &amp;quot;Complex Overlapping&amp;quot;), [https://www.youtube.com/watch?v=6fQ34nnk-Dk Parte 6] (Demonstração de L2VPN MPLS com AToM/EoMPLS/VPWS), por [[Usuário:Leonardo.Furtado|Leonardo Furtado]].&lt;br /&gt;
* [https://youtu.be/W4tmhK4tJEQ Demonstração de Túneis de Engenharia de Tráfego com MPLS TE], por Leonardo Furtado.&lt;br /&gt;
* [https://youtu.be/zkv2Q3lOiKI Introdução ao IPv6 Provider Edge over MPLS (6PE) e 6VPE, Parte 1] e [https://youtu.be/0N-ejxGncSU Parte 2], por Leonardo Furtado.&lt;br /&gt;
* [https://youtu.be/NqC9nGFVkUU Introdução ao Unified MPLS], por Leonardo Furtado.&lt;br /&gt;
* [https://youtu.be/gNUevLCPgxA Demonstração de Tecnologias L2VPN com EVPN], por Leonardo Furtado.&lt;br /&gt;
* [https://community.cisco.com/t5/eventos-de-routing-switching/evento-webcast-troubleshooting-de-border-gateway-protocol-bgp/bc-p/3104885 Evento Webcast Troubleshooting de BGP, da Comunidade de Suporte Cisco em Português], por Leonardo Furtado.&lt;br /&gt;
* [https://youtu.be/zSiFtIgT1Ig Palestra de Evoluções de Tecnologias MPLS com Segment Routing e EVPN] - Future ISP 2018, por Leonardo Furtado.&lt;br /&gt;
* [https://community.cisco.com/t5/routing-switching-v%C3%ADdeos/webcast-video-redes-mpls-de-%C3%BAltima-gera%C3%A7%C3%A3o-com-evpn-e-segment/ba-p/3880397 Evento Webcast Redes MPLS de Última Geração com EVPN e Segment Routing, da Comunidade de Suporte Cisco em Português], por Leonardo Furtado&lt;br /&gt;
* [https://youtu.be/9aQaCo_yDkU Construção de Redes de Gerenciamento Fora-de-Banda (OOB) para o ISP], por Leonardo Furtado&lt;br /&gt;
* [https://youtu.be/B6Et9MFU7cA Boas Praticas para a Proteção da Infraestrutura de Redes do ISP], por Leonardo Furtado&lt;br /&gt;
* [https://youtu.be/dZvzuCMyxDg Demonstração da Transição de Soluções L2VPN MPLS Tradicionais para o Ethernet VPN (EVPN)], por Leonardo Furtado&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Fundamentos-do-bgp&amp;diff=2636</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=2636"/>
		<updated>2020-07-22T23:58:09Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: &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;
* '''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;
* '''Active:''' um problema persiste no peering BGP e está impactando do roteador de avançar para os próximos estágios.&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>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Fundamentos-do-bgp&amp;diff=2635</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=2635"/>
		<updated>2020-07-22T23:50:54Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: &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;
* '''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;
* '''Active:''' um problema persiste no peering BGP e está impactando do roteador de avançar para os próximos estágios.&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;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Fundamentos-do-bgp&amp;diff=2634</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=2634"/>
		<updated>2020-07-22T23:22:47Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: &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;
* '''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;
* '''Active:''' um problema persiste no peering BGP e está impactando do roteador de avançar para os próximos estágios.&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 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 esses 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 o conceito pontuais, 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 básico para quem administra um ASN.&lt;br /&gt;
&lt;br /&gt;
Espero ter colaborado para a wiki e seja útil - 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;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Usu%C3%A1rio:Iagosousa&amp;diff=2633</id>
		<title>Usuário:Iagosousa</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Usu%C3%A1rio:Iagosousa&amp;diff=2633"/>
		<updated>2020-07-22T23:21:46Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: Criou página com '== Perfil do Colaborador == miniaturadaimagem Iago Sousa é entusiasta de TIC (Tecnologia da Informação e Comunicação) em que tange área de con...'&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;== Perfil do Colaborador ==&lt;br /&gt;
[[Arquivo:Iago Sousa.png|miniaturadaimagem]]&lt;br /&gt;
Iago Sousa é entusiasta de TIC (Tecnologia da Informação e Comunicação) em que tange área de conhecimento de Service Provider e Enterprise, formado em Redes de Computadores pelo Instituto INFNET e Faculdade Senac, possuindo certificações LPI Essentials, CCNA e CCNP Enterprise. Experiências nas soluções Linux, Cisco, Huawei, Juniper, Firewalls, VMware, Cloud Computing e Monitoramento. E apaixonado por Tecnologia e Produção de conteúdo.&lt;br /&gt;
&lt;br /&gt;
== Contatos ==&lt;br /&gt;
'''Linkedin''': https://www.linkedin.com/in/iagojonatas/&lt;br /&gt;
&lt;br /&gt;
'''Telegram''': https://t.me/iagojonathas&lt;br /&gt;
&lt;br /&gt;
'''Github''': https://github.com/iagojonathas&lt;br /&gt;
&lt;br /&gt;
'''E-mail''': iagojonathas.ij@gmail.com&lt;br /&gt;
&lt;br /&gt;
== Artigo já Publicado ==&lt;br /&gt;
[https://wiki.brasilpeeringforum.org/w/Fundamentos-do-bgp Fundamentos sobre BGP]&lt;br /&gt;
&lt;br /&gt;
== Artigos em Produção ==&lt;br /&gt;
Attributes BGP&lt;br /&gt;
&lt;br /&gt;
Técnica de Troubleshooting&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Iago_Sousa.png&amp;diff=2632</id>
		<title>Arquivo:Iago Sousa.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Iago_Sousa.png&amp;diff=2632"/>
		<updated>2020-07-22T23:20:14Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Iago Sousa&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Fundamentos-do-bgp&amp;diff=2630</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=2630"/>
		<updated>2020-07-21T15:39:04Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: /* RECURSO DISPONÍVEL */&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;
* '''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;
* '''Active:''' um problema persiste no peering BGP e está impactando do roteador de avançar para os próximos estágios.&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 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 esses 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 o conceito pontuais, 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 básico para quem administra um ASN.&lt;br /&gt;
&lt;br /&gt;
Espero ter colaborado para a wiki e seja útil - 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://www.linkedin.com/in/iagojonatas/ Iago Jonathas]&lt;br /&gt;
&lt;br /&gt;
Contatos:  [https://t.me/iagojonathas Telegram] ou email: iagojonathas.ij@gmail.com&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Fundamentos-do-bgp&amp;diff=2629</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=2629"/>
		<updated>2020-07-20T23:42:56Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: &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;
* '''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;
* '''Active:''' um problema persiste no peering BGP e está impactando do roteador de avançar para os próximos estágios.&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/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 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 esses 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 o conceito pontuais, 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 básico para quem administra um ASN.&lt;br /&gt;
&lt;br /&gt;
Espero ter colaborado para a wiki e seja útil - 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://www.linkedin.com/in/iagojonatas/ Iago Jonathas]&lt;br /&gt;
&lt;br /&gt;
Contatos:  [https://t.me/iagojonathas Telegram] ou email: iagojonathas.ij@gmail.com&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Fundamentos-do-bgp&amp;diff=2628</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=2628"/>
		<updated>2020-07-20T23:16:46Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: Fim&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/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;
* '''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;
* '''Active:''' um problema persiste no peering BGP e está impactando do roteador de avançar para os próximos estágios.&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/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 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 esses 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 o conceito pontuais, 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 básico para quem administra um ASN.&lt;br /&gt;
&lt;br /&gt;
Espero ter colaborado para a wiki e seja útil - 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://www.linkedin.com/in/iagojonatas/ Iago Jonathas]&lt;br /&gt;
&lt;br /&gt;
Contatos:  [https://t.me/iagojonathas Telegram] ou email: iagojonathas.ij@gmail.com&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Fundamentos-do-bgp&amp;diff=2627</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=2627"/>
		<updated>2020-07-20T23:09:20Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: &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.&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;
* '''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;
* '''Active:''' um problema persiste no peering BGP e está impactando do roteador de avançar para os próximos estágios.&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 mental: 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 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 esses 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 o conceito pontuais, 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 básico para quem administra um ASN.&lt;br /&gt;
&lt;br /&gt;
Espero ter colaborado para a wiki e seja útil - 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://www.linkedin.com/in/iagojonatas/ Iago Jonathas]&lt;br /&gt;
&lt;br /&gt;
Contatos:  [https://t.me/iagojonathas Telegram] ou email: iagojonathas.ij@gmail.com&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Fundamentos-do-bgp&amp;diff=2626</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=2626"/>
		<updated>2020-07-20T23:06:33Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: &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.&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;
* '''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;
* '''Active:''' um problema persiste no peering BGP e está impactando do roteador de avançar para os próximos estágios.&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 mental: 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 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 esses 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 o conceito pontuais, 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 básico para quem administra um ASN.&lt;br /&gt;
&lt;br /&gt;
Espero ter colaborado para a wiki e seja útil - 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;
Autor: [https://www.linkedin.com/in/iagojonatas/ Iago Jonathas]&lt;br /&gt;
&lt;br /&gt;
Contato:  [https://t.me/iagojonathas Telegram] ou iagojonathas.ij@gmail.com&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Fundamentos-do-bgp&amp;diff=2625</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=2625"/>
		<updated>2020-07-20T22:03:28Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: &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.&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;
* '''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;
* '''Active:''' um problema persiste no peering BGP e está impactando do roteador de avançar para os próximos estágios.&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;
== 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 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 esses 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 o conceito pontuais, 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 básico para quem administra um ASN.&lt;br /&gt;
&lt;br /&gt;
Espero ter colaborado para a wiki e seja útil - 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;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Fundamentos-do-bgp&amp;diff=2624</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=2624"/>
		<updated>2020-07-20T22:01:44Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: &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.&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;
* '''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;
* '''Active:''' um problema persiste no peering BGP e está impactando do roteador de avançar para os próximos estágios.&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;
== 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 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 esses 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 o conceito pontuais, 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 básico para quem administra um ASN.&lt;br /&gt;
&lt;br /&gt;
Espero ter colaborado para a wiki e seja útil - para dúvida, esclarecimento e elogio só acionar no linkedin ou 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;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Fundamentos-do-bgp&amp;diff=2623</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=2623"/>
		<updated>2020-07-20T21:14:43Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: &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.&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 ''windown 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 reenviará 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, em tese. 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 estebelecimento 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;
* '''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;
* '''Active:''' um problema persiste no peering BGP e está impactando do roteador de avançar para os próximos estágios.&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;
== CONCLUSÃO ==&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Fundamentos-do-bgp&amp;diff=2622</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=2622"/>
		<updated>2020-07-20T21:04:29Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: &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.&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 ''windown 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 reenviará 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, em tese. 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 estebelecimento 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;
* '''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;
* '''Active:''' um problema persiste no peering BGP e está impactando do roteador de avançar para os próximos estágios.&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 usar 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;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Fundamentos-do-bgp&amp;diff=2621</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=2621"/>
		<updated>2020-07-20T19:13:24Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: &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.&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, 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.&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 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.&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 na relação (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 difundido 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 imgem abaixo, a seguir:&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 repassado, para ele alcança os prefixos contido no ASN 64700, precisa passar por ASNs:        &lt;br /&gt;
&lt;br /&gt;
* 64520 64600 64700&lt;br /&gt;
* 64520 64600 64540 64550 64700&lt;br /&gt;
* 64520 64540 64600 64700&lt;br /&gt;
* 64520 64540 64550 64700&lt;br /&gt;
&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 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.&lt;br /&gt;
&lt;br /&gt;
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:&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, 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 [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 alongo desse artigo.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; '''Mitigação de looping''':&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* Distance Vector: Distance = direção;  Vector = roteador;&lt;br /&gt;
* Path vector: Path = Atributos e Vector = ASN.&lt;br /&gt;
&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 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.&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 ''windown 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 reenviará 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 ''window dynamic'', 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 estebelecimento 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;&lt;br /&gt;
* '''Connect:''' o roteador encontra uma rota para o neighbor e finaliza o three-way handshake TCP;&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;
* '''Active:''' um problema persiste no peering BGP e está impactando do roteador de avançar para os próximos estágios.&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 usar 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 um exemplo 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;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Dual-multihomed.jpg&amp;diff=2620</id>
		<title>Arquivo:Dual-multihomed.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Dual-multihomed.jpg&amp;diff=2620"/>
		<updated>2020-07-20T19:10:04Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dual-multihomed&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Dual-homed.jpg&amp;diff=2619</id>
		<title>Arquivo:Dual-homed.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Dual-homed.jpg&amp;diff=2619"/>
		<updated>2020-07-20T19:06:59Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dual-homed&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Dual-homed_BGP.jpg&amp;diff=2618</id>
		<title>Arquivo:Dual-homed BGP.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Dual-homed_BGP.jpg&amp;diff=2618"/>
		<updated>2020-07-20T19:04:09Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: Iagosousa carregada uma nova versão de Arquivo:Dual-homed BGP.jpg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dual-homed BGP&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Single-homed.jpg&amp;diff=2617</id>
		<title>Arquivo:Single-homed.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Single-homed.jpg&amp;diff=2617"/>
		<updated>2020-07-19T18:07:24Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Single-homed&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Fundamentos-do-bgp&amp;diff=2616</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=2616"/>
		<updated>2020-07-19T18:02:08Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: sds&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.&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, 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.&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 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.&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 na relação (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 difundido 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 imgem abaixo, a seguir:&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 repassado, para ele alcança os prefixos contido no ASN 64700, precisa passar por ASNs:        &lt;br /&gt;
&lt;br /&gt;
* 64520 64600 64700&lt;br /&gt;
* 64520 64600 64540 64550 64700&lt;br /&gt;
* 64520 64540 64600 64700&lt;br /&gt;
* 64520 64540 64550 64700&lt;br /&gt;
&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 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.&lt;br /&gt;
&lt;br /&gt;
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:&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, 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 [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 alongo desse artigo.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; '''Mitigação de looping''':&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* Distance Vector: Distance = direção;  Vector = roteador;&lt;br /&gt;
* Path vector: Path = Atributos e Vector = ASN.&lt;br /&gt;
&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 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.&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 ''windown 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 reenviará 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 ''window dynamic'', 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 estebelecimento 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;&lt;br /&gt;
* '''Connect:''' o roteador encontra uma rota para o neighbor e finaliza o three-way handshake TCP;&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;
* '''Active:''' um problema persiste no peering BGP e está impactando do roteador de avançar para os próximos estágios.&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 usar o BGP ===&lt;br /&gt;
Adoção ou não adoção do BGP, depende de muitos aspectos e do que a empresa preciso, 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 precisa do BGP em si, mas se torna um desafio para o administrador de rede, podemos ver um exemplo na imagem a seguir:&lt;br /&gt;
[[Arquivo:Dual-homed BGP.jpg|centro|miniaturadaimagem|324x324px]]&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Dual-homed_BGP.jpg&amp;diff=2615</id>
		<title>Arquivo:Dual-homed BGP.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Dual-homed_BGP.jpg&amp;diff=2615"/>
		<updated>2020-07-19T17:55:52Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Dual-homed BGP&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Fundamentos-do-bgp&amp;diff=2580</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=2580"/>
		<updated>2020-07-14T02:34:44Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: &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.&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, 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.&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 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.&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 na relação (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 difundido 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 imgem abaixo, a seguir:&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 repassado, para ele alcança os prefixos contido no ASN 64700, precisa passar por ASNs:        &lt;br /&gt;
&lt;br /&gt;
* 64520 64600 64700&lt;br /&gt;
* 64520 64600 64540 64550 64700&lt;br /&gt;
* 64520 64540 64600 64700&lt;br /&gt;
* 64520 64540 64550 64700&lt;br /&gt;
&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 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.&lt;br /&gt;
&lt;br /&gt;
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:&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, 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 [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 alongo desse artigo.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; '''Mitigação de looping''':&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* Distance Vector: Distance = direção;  Vector = roteador;&lt;br /&gt;
* Path vector: Path = Atributos e Vector = ASN.&lt;br /&gt;
&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 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.&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 ''windown 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 reenviará 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 ''window dynamic'', 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 estebelecimento 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;&lt;br /&gt;
* '''Connect:''' o roteador encontra uma rota para o neighbor e finaliza o three-way handshake TCP;&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;
* '''Active:''' um problema persiste no peering BGP e está impactando do roteador de avançar para os próximos estágios.&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;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Fundamentos-do-bgp&amp;diff=2579</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=2579"/>
		<updated>2020-07-14T02:32:39Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: Completo&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.&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, 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.&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 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.&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 na relação (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 difundido 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 imgem abaixo, a seguir:&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 repassado, para ele alcança os prefixos contido no ASN 64700, precisa passar por ASNs:        &lt;br /&gt;
&lt;br /&gt;
* 64520 64600 64700&lt;br /&gt;
* 64520 64600 64540 64550 64700&lt;br /&gt;
* 64520 64540 64600 64700&lt;br /&gt;
* 64520 64540 64550 64700&lt;br /&gt;
&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 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.&lt;br /&gt;
&lt;br /&gt;
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:&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, 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 [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 alongo desse artigo.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; '''Mitigação de looping''':&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* Distance Vector: Distance = direção;  Vector = roteador;&lt;br /&gt;
* Path vector: Path = Atributos e Vector = ASN.&lt;br /&gt;
&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 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.&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 ''windown 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 reenviará 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 ''window dynamic'', 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 estebelecimento 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;&lt;br /&gt;
* '''Connect:''' o roteador encontra uma rota para o neighbor e finaliza o three-way handshake TCP;&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;
* '''Active:''' um problema persiste no peering BGP e está impactando do roteador de avançar para os próximos estágios.&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;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:FSM_do_BGP.png&amp;diff=2578</id>
		<title>Arquivo:FSM do BGP.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:FSM_do_BGP.png&amp;diff=2578"/>
		<updated>2020-07-14T02:31:27Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;FSM do BGP&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Fundamentos-do-bgp&amp;diff=2577</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=2577"/>
		<updated>2020-07-14T01:52:13Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: &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.&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, 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.&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 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.&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 na relação (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 difundido 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 imgem abaixo, a seguir:&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 repassado, para ele alcança os prefixos contido no ASN 64700, precisa passar por ASNs:        &lt;br /&gt;
&lt;br /&gt;
* 64520 64600 64700&lt;br /&gt;
* 64520 64600 64540 64550 64700&lt;br /&gt;
* 64520 64540 64600 64700&lt;br /&gt;
* 64520 64540 64550 64700&lt;br /&gt;
&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 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.&lt;br /&gt;
&lt;br /&gt;
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:&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, 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 [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 alongo desse artigo.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; '''Mitigação de looping''':&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* Distance Vector: Distance = direção;  Vector = roteador;&lt;br /&gt;
* Path vector: Path = Atributos e Vector = ASN.&lt;br /&gt;
&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 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.&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 ''windown 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 reenviará 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 ''window dynamic'', 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 estebelecimento 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 ===&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Fundamentos-do-bgp&amp;diff=2576</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=2576"/>
		<updated>2020-07-13T19:55:46Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: &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.&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, 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.&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 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.&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 na relação (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 difundido 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 imgem abaixo, a seguir:&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 repassado, para ele alcança os prefixos contido no ASN 64700, precisa passar por ASNs:        &lt;br /&gt;
&lt;br /&gt;
* 64520 64600 64700&lt;br /&gt;
* 64520 64600 64540 64550 64700&lt;br /&gt;
* 64520 64540 64600 64700&lt;br /&gt;
* 64520 64540 64550 64700&lt;br /&gt;
&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 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.&lt;br /&gt;
&lt;br /&gt;
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:&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, 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 [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 alongo desse artigo.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; '''Mitigação de looping''':&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* Distance Vector: Distance = direção;  Vector = roteador;&lt;br /&gt;
* Path vector: Path = Atributos e Vector = ASN.&lt;br /&gt;
&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 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.&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 ''windown 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 reenviará 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 ''window dynamic'', 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 estebelecimento 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;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Fundamentos-do-bgp&amp;diff=2575</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=2575"/>
		<updated>2020-07-13T19:51:45Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: &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.&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, 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.&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 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.&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 na relação (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 difundido 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 imgem abaixo, a seguir:&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 repassado, para ele alcança os prefixos contido no ASN 64700, precisa passar por ASNs:        &lt;br /&gt;
&lt;br /&gt;
* 64520 64600 64700&lt;br /&gt;
* 64520 64600 64540 64550 64700&lt;br /&gt;
* 64520 64540 64600 64700&lt;br /&gt;
* 64520 64540 64550 64700&lt;br /&gt;
&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 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.&lt;br /&gt;
&lt;br /&gt;
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:&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, 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 [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 alongo desse artigo.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; '''Mitigação de looping''':&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* Distance Vector: Distance = direção;  Vector = roteador;&lt;br /&gt;
* Path vector: Path = Atributos e Vector = ASN.&lt;br /&gt;
&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 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.&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 ''windown 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 reenviará 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 ''window dynamic'', 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 estebelecimento 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]]&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]]&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;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Fundamentos-do-bgp&amp;diff=2574</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=2574"/>
		<updated>2020-07-13T19:45:59Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: MSG NOTIFICATION&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.&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, 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.&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 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.&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 na relação (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 difundido 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 imgem abaixo, a seguir:&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 repassado, para ele alcança os prefixos contido no ASN 64700, precisa passar por ASNs:        &lt;br /&gt;
&lt;br /&gt;
* 64520 64600 64700&lt;br /&gt;
* 64520 64600 64540 64550 64700&lt;br /&gt;
* 64520 64540 64600 64700&lt;br /&gt;
* 64520 64540 64550 64700&lt;br /&gt;
&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 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.&lt;br /&gt;
&lt;br /&gt;
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:&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, 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 [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 alongo desse artigo.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; '''Mitigação de looping''':&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* Distance Vector: Distance = direção;  Vector = roteador;&lt;br /&gt;
* Path vector: Path = Atributos e Vector = ASN.&lt;br /&gt;
&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 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.&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 ''windown 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 reenviará 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 ''window dynamic'', 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 estebelecimento 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|esquerda]]&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]]&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|495x495px]]&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Processo_do_BGP_Notification.png&amp;diff=2573</id>
		<title>Arquivo:Processo do BGP Notification.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Processo_do_BGP_Notification.png&amp;diff=2573"/>
		<updated>2020-07-13T19:44:31Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Processo do BGP Notification&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Mensagem_UPDATE_BGP.png&amp;diff=2572</id>
		<title>Arquivo:Mensagem UPDATE BGP.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Mensagem_UPDATE_BGP.png&amp;diff=2572"/>
		<updated>2020-07-13T19:31:00Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mensagem UPDATE BGP&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Fundamentos-do-bgp&amp;diff=2571</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=2571"/>
		<updated>2020-07-13T19:23:36Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: MSG OPEN&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.&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, 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.&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 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.&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 na relação (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 difundido 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 imgem abaixo, a seguir:&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 repassado, para ele alcança os prefixos contido no ASN 64700, precisa passar por ASNs:        &lt;br /&gt;
&lt;br /&gt;
* 64520 64600 64700&lt;br /&gt;
* 64520 64600 64540 64550 64700&lt;br /&gt;
* 64520 64540 64600 64700&lt;br /&gt;
* 64520 64540 64550 64700&lt;br /&gt;
&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 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.&lt;br /&gt;
&lt;br /&gt;
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:&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, 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 [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 alongo desse artigo.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; '''Mitigação de looping''':&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* Distance Vector: Distance = direção;  Vector = roteador;&lt;br /&gt;
* Path vector: Path = Atributos e Vector = ASN.&lt;br /&gt;
&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 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.&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 ''windown 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 reenviará 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 ''window dynamic'', 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 estebelecimento 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;
[[Arquivo:Mensagem Open.png|miniaturadaimagem|505x505px]]&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Mensagem_Open.png&amp;diff=2570</id>
		<title>Arquivo:Mensagem Open.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Mensagem_Open.png&amp;diff=2570"/>
		<updated>2020-07-13T19:22:00Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mensagem Open&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Fundamentos-do-bgp&amp;diff=2569</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=2569"/>
		<updated>2020-07-13T19:16:36Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: MSGS DO BGP&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.&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, 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.&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 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.&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 na relação (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 difundido 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 imgem abaixo, a seguir:&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 repassado, para ele alcança os prefixos contido no ASN 64700, precisa passar por ASNs:        &lt;br /&gt;
&lt;br /&gt;
* 64520 64600 64700&lt;br /&gt;
* 64520 64600 64540 64550 64700&lt;br /&gt;
* 64520 64540 64600 64700&lt;br /&gt;
* 64520 64540 64550 64700&lt;br /&gt;
&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 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.&lt;br /&gt;
&lt;br /&gt;
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:&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, 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 [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 alongo desse artigo.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; '''Mitigação de looping''':&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* Distance Vector: Distance = direção;  Vector = roteador;&lt;br /&gt;
* Path vector: Path = Atributos e Vector = ASN.&lt;br /&gt;
&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 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.&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 ''windown 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 reenviará 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 ''window dynamic'', 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 estebelecimento 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;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Mensagens_do_BGP.png&amp;diff=2568</id>
		<title>Arquivo:Mensagens do BGP.png</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Mensagens_do_BGP.png&amp;diff=2568"/>
		<updated>2020-07-13T19:12:51Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Mensagens do BGP&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Fundamentos-do-bgp&amp;diff=2567</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=2567"/>
		<updated>2020-07-13T19:09:27Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: &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.&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, 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.&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 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.&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 na relação (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 difundido 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 imgem abaixo, a seguir:&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 repassado, para ele alcança os prefixos contido no ASN 64700, precisa passar por ASNs:        &lt;br /&gt;
&lt;br /&gt;
* 64520 64600 64700&lt;br /&gt;
* 64520 64600 64540 64550 64700&lt;br /&gt;
* 64520 64540 64600 64700&lt;br /&gt;
* 64520 64540 64550 64700&lt;br /&gt;
&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 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.&lt;br /&gt;
&lt;br /&gt;
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:&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, 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 [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 alongo desse artigo.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; '''Mitigação de looping''':&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* Distance Vector: Distance = direção;  Vector = roteador;&lt;br /&gt;
* Path vector: Path = Atributos e Vector = ASN.&lt;br /&gt;
&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 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.&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 ''windown 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 reenviará 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 ''window dynamic'', permitindo que único update possa enviar milhares de rota, deixando-a muito mais eficiente e eficaz.&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Fundamentos-do-bgp&amp;diff=2566</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=2566"/>
		<updated>2020-07-13T18:33:39Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: /* O QUE É BGP */&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.&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, 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.&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 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.&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 na relação (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 difundido 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 imgem abaixo, a seguir:&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 repassado, para ele alcança os prefixos contido no ASN 64700, precisa passar por ASNs:        &lt;br /&gt;
&lt;br /&gt;
* 64520 64600 64700&lt;br /&gt;
* 64520 64600 64540 64550 64700&lt;br /&gt;
* 64520 64540 64600 64700&lt;br /&gt;
* 64520 64540 64550 64700&lt;br /&gt;
&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 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.&lt;br /&gt;
&lt;br /&gt;
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:&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, 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 [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 alongo desse artigo.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; '''Mitigação de looping''':&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* Distance Vector: Distance = direção;  Vector = roteador;&lt;br /&gt;
* Path vector: Path = Atributos e Vector = ASN.&lt;br /&gt;
&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 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.&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;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Fundamentos-do-bgp&amp;diff=2565</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=2565"/>
		<updated>2020-07-13T18:16:57Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: &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.&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, 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.&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 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.&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 na relação (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 difundido 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 imgem abaixo, a seguir:&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 repassado, para ele alcança os prefixos contido no ASN 64700, precisa passar por ASNs:        &lt;br /&gt;
&lt;br /&gt;
* 64520 64600 64700&lt;br /&gt;
* 64520 64600 64540 64550 64700&lt;br /&gt;
* 64520 64540 64600 64700&lt;br /&gt;
* 64520 64540 64550 64700&lt;br /&gt;
&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 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.&lt;br /&gt;
&lt;br /&gt;
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:&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, 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 [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 alongo desse artigo.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; '''Mitigação de looping''':&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* Distance Vector: Distance = direção;  Vector = roteador;&lt;br /&gt;
* Path vector: Path = Atributos e Vector = ASN.&lt;br /&gt;
&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 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.&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;
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;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Fundamentos-do-bgp&amp;diff=2564</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=2564"/>
		<updated>2020-07-13T17:53:01Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: &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.&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, 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.&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 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.&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 na relação (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 difundido 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 imgem abaixo, a seguir:&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 repassado, para ele alcança os prefixos contido no ASN 64700, precisa passar por ASNs:    &lt;br /&gt;
&lt;br /&gt;
* 64520 64600 64700&lt;br /&gt;
* 64520 64600 64540 64550 64700&lt;br /&gt;
* 64520 64540 64600 64700&lt;br /&gt;
* 64520 64540 64550 64700&lt;br /&gt;
&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 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.&lt;br /&gt;
&lt;br /&gt;
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:&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, 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 [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 alongo desse artigo.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; '''Mitigação de looping''':&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* Distance Vector: Distance = direção;  Vector = roteador;&lt;br /&gt;
* Path vector: Path = Atributos e Vector = ASN.&lt;br /&gt;
&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 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.&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Fundamentos-do-bgp&amp;diff=2563</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=2563"/>
		<updated>2020-07-13T17:50:54Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: &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.&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, 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.&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 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.&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 na relação (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 difundido 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 imgem abaixo, a seguir:&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 repassado, para ele alcança os prefixos contido no ASN 64700, precisa passar por ASNs:    &lt;br /&gt;
&lt;br /&gt;
* 64520 64600 64700&lt;br /&gt;
* 64520 64600 64540 64550 64700&lt;br /&gt;
* 64520 64540 64600 64700&lt;br /&gt;
* 64520 64540 64550 64700&lt;br /&gt;
&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 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.&lt;br /&gt;
&lt;br /&gt;
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:&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, 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 [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 alongo desse artigo.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; '''Mitigação de looping''':&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* Distance Vector: Distance = direção;  Vector = roteador;&lt;br /&gt;
* Path vector: Path = Atributos e Vector = ASN.&lt;br /&gt;
&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 [[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.&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Fundamentos-do-bgp&amp;diff=2562</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=2562"/>
		<updated>2020-07-13T17:02:24Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: mitigação de  looping&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.&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, 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.&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 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.&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 na relação (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 difundido 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 1.1. a seguir:&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 repassado, para ele alcança os prefixos contido no ASN 64700, precisa passar por ASNs:  &lt;br /&gt;
&lt;br /&gt;
* 64520 64600 64700&lt;br /&gt;
* 64520 64600 64540 64550 64700&lt;br /&gt;
* 64520 64540 64600 64700&lt;br /&gt;
* 64520 64540 64550 64700&lt;br /&gt;
&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 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.&lt;br /&gt;
&lt;br /&gt;
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:&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, 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 [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 alongo desse artigo.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; '''Mitigação de looping''':&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Fundamentos-do-bgp&amp;diff=2561</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=2561"/>
		<updated>2020-07-13T16:59:11Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: Mitigação de looping&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.&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;
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.&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 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.&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 na relação (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 difundido 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;
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:&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 repassado, para ele alcança os prefixos contido no ASN 64700, precisa passar por ASNs: &lt;br /&gt;
&lt;br /&gt;
* 64520 64600 64700&lt;br /&gt;
* 64520 64600 64540 64550 64700&lt;br /&gt;
* 64520 64540 64600 64700&lt;br /&gt;
* 64520 64540 64550 64700&lt;br /&gt;
&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 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.&lt;br /&gt;
&lt;br /&gt;
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:&lt;br /&gt;
&lt;br /&gt;
* 64512 64520 64600 64700&lt;br /&gt;
&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, 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 [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 alongo desse artigo.&lt;br /&gt;
&lt;br /&gt;
&amp;gt; '''Mitigação de looping''':&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Single_Dualhomed.jpg&amp;diff=2560</id>
		<title>Arquivo:Single Dualhomed.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Single_Dualhomed.jpg&amp;diff=2560"/>
		<updated>2020-07-13T16:40:15Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Implementing Cisco IP Routing (ROUTE) Foundation Learning Guide - Chapter 7&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Imagem_1.1_mapeamento_de_ASN.jpg&amp;diff=2559</id>
		<title>Arquivo:Imagem 1.1 mapeamento de ASN.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Imagem_1.1_mapeamento_de_ASN.jpg&amp;diff=2559"/>
		<updated>2020-07-13T16:39:31Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: Iagosousa carregada uma nova versão de Arquivo:Imagem 1.1 mapeamento de ASN.jpg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;FONTE: Implementing Cisco IP Routing (ROUTE) Foundation Learning Guide&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Fundamentos-do-bgp&amp;diff=2558</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=2558"/>
		<updated>2020-07-13T16:08:47Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: Parte1&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.&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;
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.&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 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.&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 na relação (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 difundido 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;
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:&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) para ele alcança os prefixos contido no ASN 64700, precisa pode passar por ASNs e contrói por onde quais ASN que o prefixo foi repassado, e então, o ASN64520 amazena essa informação na sua BGP routing table, com seguinte informações:&lt;br /&gt;
&lt;br /&gt;
* 64520 64600 64700&lt;br /&gt;
* 64520 64600 64540 64550 64700&lt;br /&gt;
* 64520 64540 64600 64700&lt;br /&gt;
* 64520 64540 64550 64700&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Gr%C3%A1fico_de_ASN.jpg&amp;diff=2557</id>
		<title>Arquivo:Gráfico de ASN.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Gr%C3%A1fico_de_ASN.jpg&amp;diff=2557"/>
		<updated>2020-07-13T15:59:51Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Implementing Cisco IP Routing (ROUTE) Foundation Learning Guide - Chapter 7&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Imagem_1.1_mapeamento_de_ASN.jpg&amp;diff=2556</id>
		<title>Arquivo:Imagem 1.1 mapeamento de ASN.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Imagem_1.1_mapeamento_de_ASN.jpg&amp;diff=2556"/>
		<updated>2020-07-13T15:59:14Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: Iagosousa carregada uma nova versão de Arquivo:Imagem 1.1 mapeamento de ASN.jpg&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;FONTE: Implementing Cisco IP Routing (ROUTE) Foundation Learning Guide&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:8.jpg&amp;diff=2555</id>
		<title>Arquivo:8.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:8.jpg&amp;diff=2555"/>
		<updated>2020-07-13T15:55:42Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
	<entry>
		<id>https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Imagem_1.1_mapeamento_de_ASN.jpg&amp;diff=2554</id>
		<title>Arquivo:Imagem 1.1 mapeamento de ASN.jpg</title>
		<link rel="alternate" type="text/html" href="https://wiki.brasilpeeringforum.org/index.php?title=Arquivo:Imagem_1.1_mapeamento_de_ASN.jpg&amp;diff=2554"/>
		<updated>2020-07-13T15:21:37Z</updated>

		<summary type="html">&lt;p&gt;Iagosousa: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;FONTE: Implementing Cisco IP Routing (ROUTE) Foundation Learning Guide&lt;/div&gt;</summary>
		<author><name>Iagosousa</name></author>
	</entry>
</feed>