{"id":1048,"date":"2016-05-28T18:19:54","date_gmt":"2016-05-28T21:19:54","guid":{"rendered":"http:\/\/www.networktips.com.br\/?p=1048"},"modified":"2016-06-20T15:06:58","modified_gmt":"2016-06-20T18:06:58","slug":"o-protocolo-bgp4-parte-3-final","status":"publish","type":"post","link":"http:\/\/www.networktips.com.br\/?p=1048","title":{"rendered":"O Protocolo BGP4 &#8211; Parte 3 (Final)"},"content":{"rendered":"<div style=\"padding-bottom:20px; padding-top:10px;\" class=\"hupso-share-buttons\"><!-- Hupso Share Buttons - https:\/\/www.hupso.com\/share\/ --><a class=\"hupso_toolbar\" href=\"https:\/\/www.hupso.com\/share\/\"><img src=\"http:\/\/static.hupso.com\/share\/buttons\/dot.png\" style=\"border:0px; padding-top: 5px; float:left;\" alt=\"Share Button\"\/><\/a><script type=\"text\/javascript\">var hupso_services_t=new Array(\"Twitter\",\"Facebook\",\"Google Plus\",\"Linkedin\",\"Email\");var hupso_background_t=\"#EAF4FF\";var hupso_border_t=\"#66CCFF\";var hupso_toolbar_size_t=\"medium\";var hupso_image_folder_url = \"\";var hupso_twitter_via=\"jorgeltaioque\";var hupso_url_t=\"\";var hupso_title_t=\"O%20Protocolo%20BGP4%20-%20Parte%203%20%28Final%29\";<\/script><script type=\"text\/javascript\" src=\"http:\/\/static.hupso.com\/share\/js\/share_toolbar.js\"><\/script><!-- Hupso Share Buttons --><\/div><p style=\"text-align: justify;\">Alex Soares de Moura<br \/>\nRede Nacional de Ensino e Pesquisa (RNP)<\/p>\n<p style=\"text-align: justify;\"><a class=\"nu\" href=\"https:\/\/memoria.rnp.br\/newsgen\/9907\/pgbp4p3.html#ng-introducao\">Introdu\u00e7\u00e3o<\/a><br \/>\n<a class=\"nu\" href=\"https:\/\/memoria.rnp.br\/newsgen\/9907\/pgbp4p3.html#ng-tipos\">Tipos de mensagem BGP (cont.)<\/a><br \/>\n<a class=\"nu\" href=\"https:\/\/memoria.rnp.br\/newsgen\/9907\/pgbp4p3.html#ng-atributos\">Atributos BGP<\/a><br \/>\n<a class=\"nu\" href=\"https:\/\/memoria.rnp.br\/newsgen\/9907\/pgbp4p3.html#ng-redistribuicao\">Redistribui\u00e7\u00e3o<\/a><br \/>\n<a class=\"nu\" href=\"https:\/\/memoria.rnp.br\/newsgen\/9907\/pgbp4p3.html#ng-mapas\">Mapas de rotas (Route Maps)<\/a><br \/>\n<a class=\"nu\" href=\"https:\/\/memoria.rnp.br\/newsgen\/9907\/pgbp4p3.html#ng-sincronizacao\">Sincroniza\u00e7\u00e3o<\/a><br \/>\n<a class=\"nu\" href=\"https:\/\/memoria.rnp.br\/newsgen\/9907\/pgbp4p3.html#ng-filtragem\">Filtragem no BGP<\/a><br \/>\n<a class=\"nu\" href=\"https:\/\/memoria.rnp.br\/newsgen\/9907\/pgbp4p3.html#ng-configuracoes\">Configura\u00e7\u00f5es em roteamento Cisco<\/a><br \/>\n<a class=\"nu\" href=\"https:\/\/memoria.rnp.br\/newsgen\/9907\/pgbp4p3.html#ng-dicas\">Dicas e erros de configura\u00e7\u00e3o<\/a><br \/>\n<a class=\"nu\" href=\"https:\/\/memoria.rnp.br\/newsgen\/9907\/pgbp4p3.html#ng-conclusao\">Conclus\u00e3o<\/a><br \/>\n<a class=\"nu\" href=\"https:\/\/memoria.rnp.br\/newsgen\/9907\/pgbp4p3.html#ng-referencias\">Refer\u00eancias<\/a><br \/>\n<a class=\"nu\" href=\"https:\/\/memoria.rnp.br\/newsgen\/9907\/pgbp4p3.html#ng-sites\">Sites relacionados<\/a><br \/>\n<a class=\"nu\" href=\"https:\/\/memoria.rnp.br\/newsgen\/9907\/pgbp4p3.html#p-ref\">Refer\u00eancias bibliogr\u00e1ficas<\/a><\/p>\n<p style=\"text-align: justify;\">Esta \u00e9 a terceira e \u00faltima parte do artigo de introdu\u00e7\u00e3o ao Protocolo BGP-4. A<a href=\"http:\/\/www.rnp.br\/newsgen\/9903\/bgp4.html\"> <u>parte 1<\/u> <\/a>e a<a href=\"http:\/\/www.rnp.br\/newsgen\/9905\/bgp4p2.html\"> <u>parte 2<\/u> <\/a>foram publicadas nas duas edi\u00e7\u00f5es anteriores do RNP NewsGeneration.<\/p>\n<p style=\"text-align: justify;\">\u00c9 importante lembrar que este artigo procura oferecer uma introdu\u00e7\u00e3o a essa tecnologia e tamb\u00e9m facilitar a leitura e compreens\u00e3o das diversas refer\u00eancias t\u00e9cnicas dispon\u00edveis, como as RFCs que especificam o protocolo e suas funcionalidades &#8211; basicamente [RFC 1771] e [RFC 1772] &#8211; al\u00e9m dos excelentes livros que abordam o tema em profundidade.<\/p>\n<p style=\"text-align: justify;\">A principal diretriz da narrativa foi mant\u00ea-la o mais did\u00e1tica poss\u00edvel, e seguindo esta vis\u00e3o, alguns termos t\u00e9cnicos foram traduzidos de forma livre pelo autor, a fim de facilitar a compreens\u00e3o dos assuntos abordados, n\u00e3o sendo obrigatoriamente a tradu\u00e7\u00e3o t\u00e9cnica oficial para a l\u00edngua portuguesa.<\/p>\n<p style=\"text-align: justify;\">Este artigo tamb\u00e9m n\u00e3o se prop\u00f4s a oferecer em profundidade todos os conceitos e t\u00e9cnicas avan\u00e7ados sobre o protocolo BGP-4, mas sim oferecer uma introdu\u00e7\u00e3o, com clareza, para que o leitor tenha um primeiro contato ameno com o assunto e se sinta \u00e0 vontade ao iniciar estudos aprofundados sobre o tema.<\/p>\n<p style=\"text-align: justify;\"><a class=\"arrow\" href=\"https:\/\/memoria.rnp.br\/newsgen\/9907\/pgbp4p3.html#inicio\">^<\/a><\/p>\n<h2 style=\"text-align: justify;\"><a name=\"ng-introducao\"><\/a>Introdu\u00e7\u00e3o<\/h2>\n<p style=\"text-align: justify;\">Na <a href=\"http:\/\/www.rnp.br\/newsgen\/9905\/bgp4p2.html\"><u>parte 2<\/u> <\/a>do artigo, foi iniciada a descri\u00e7\u00e3o de quais s\u00e3o as mensagens trocadas entre roteadores configurados com BGP, que tipo de informa\u00e7\u00f5es elas transportam e sua finalidade.<\/p>\n<p style=\"text-align: justify;\">Dando continuidade a esta descri\u00e7\u00e3o, neste artigo, ser\u00e1 apresentado o \u00faltimo tipo de mensagem BGP, a de atualiza\u00e7\u00e3o de rotas, conhecida por UPDATE. Dessa forma, ser\u00e3o descritos os atributos que as mensagens UPDATE possuem, com suas caracter\u00edsticas e finalidades. Em seguida, ser\u00e3o apresentados mais alguns importantes conceitos como redistribui\u00e7\u00e3o e sincroniza\u00e7\u00e3o. Por fim, ser\u00e3o dadas algumas dicas, exemplos de problemas comuns enfrentados pelos provedores e de erros corriqueiros de configura\u00e7\u00e3o deste protocolo.<\/p>\n<p style=\"text-align: justify;\"><a class=\"arrow\" href=\"https:\/\/memoria.rnp.br\/newsgen\/9907\/pgbp4p3.html#inicio\">^<\/a><\/p>\n<h2 style=\"text-align: justify;\"><a name=\"ng-tipos\"><\/a>Tipos de mensagem BGP (cont.)<\/h2>\n<p style=\"text-align: justify;\"><u>UPDATE<\/u><\/p>\n<p style=\"text-align: justify;\">As mensagens UPDATE, trocadas entre os <em>peers<\/em> ou <em>neighbors<\/em> BGP, s\u00e3o de extrema import\u00e2ncia, pois s\u00e3o elas que levam as informa\u00e7\u00f5es para a atualiza\u00e7\u00e3o da tabela de rotas mantida pelo BGP.<\/p>\n<p style=\"text-align: justify;\">A estrutura b\u00e1sica das mensagens do tipo UPDATE \u00e9 composta de 3 itens:<\/p>\n<ul style=\"text-align: justify;\">\n<li>Rotas Inalcan\u00e7\u00e1veis (<em>Unreachable Routes<\/em>);<\/li>\n<li>Atributos de Caminhos (<em>PATH Attributes<\/em>);<\/li>\n<li>Informa\u00e7\u00e3o de alcance da camada de rede &#8211; (NLRI &#8211; <em>Network Layer Reachability Information<\/em>);<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">O formato da mensagem do tipo UPDATE \u00e9:<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" src=\"https:\/\/memoria.rnp.br\/newsgen\/9907\/msg_update.gif\" width=\"330\" height=\"395\" \/><\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" src=\"https:\/\/memoria.rnp.br\/newsgen\/9907\/msg_update_lgnd.gif\" width=\"300\" height=\"81\" \/><\/p>\n<p style=\"text-align: justify;\">Figura 1 &#8211; O Formato da Mensagem UPDATE<\/p>\n<p style=\"text-align: justify;\"><strong>Comprimento das Rotas Removidas ou Inalcan\u00e7\u00e1veis (<em>Unfeasible Routes Length<\/em>)<\/strong> &#8211; caracter\u00edsticas: [2 bytes, inteiro, positivo].<\/p>\n<p style=\"text-align: justify;\">Neste campo, \u00e9 indicado o comprimento total, em bytes, do total de rotas removidas (<em>Withdrawn Routes<\/em>).<\/p>\n<p style=\"text-align: justify;\"><strong>Rotas Removidas (<em>Withdrawn Routes<\/em>)<\/strong> &#8211; caracter\u00edsticas [comprimento vari\u00e1vel].<\/p>\n<p style=\"text-align: justify;\">Este campo inclui uma lista de prefixos de endere\u00e7os para rotas que devem ser removidas da tabela de rotas BGP. \u00c9 composto por endere\u00e7os IP mais o comprimento do n\u00famero de bits contados a partir da esquerda no endere\u00e7o IP, como mostrado abaixo.<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" src=\"https:\/\/memoria.rnp.br\/newsgen\/9907\/rr.gif\" width=\"300\" height=\"67\" \/><\/p>\n<p style=\"text-align: justify;\">Figura 2 &#8211; O formato do Campo de <em>Withrawn Routes<\/em><\/p>\n<ul style=\"text-align: justify;\">\n<li><strong>Prefixo &#8211; (<em>Prefix<\/em>)<\/strong> &#8211; caracter\u00edsticas [comprimento vari\u00e1vel]<br \/>\nCont\u00e9m prefixos de endere\u00e7os IP seguidos de bits suficientes para fazer o final deste campo terminar &#8220;arredondado&#8221; em bytes completos. O valor dos bits complementares n\u00e3o t\u00eam import\u00e2ncia.<\/li>\n<li><strong>Comprimento (<em>Lenght<\/em>)<\/strong> &#8211; caracter\u00edsticas [1 byte, inteiro, positivo]<br \/>\nDeve indicar o comprimento total, em bits, do total de rotas removidas. Um comprimento igual a 0 (zero), indica que, nesta mensagem UPDATE, n\u00e3o h\u00e1 rotas a serem removidas.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><strong>Comprimento Total do Atributo PATH (<em>Total Path Attribute Length<\/em>)<\/strong> &#8211; caracter\u00edsticas [2 bytes, inteiro, positivo]<\/p>\n<p style=\"text-align: justify;\">Deve indicar o comprimento total, em bits, do campo Atributos PATH. O valor contido neste campo deve permitir a determina\u00e7\u00e3o do comprimento do campo NLRI. Se o valor deste campo for 0 (zero), significa que n\u00e3o h\u00e1 informa\u00e7\u00e3o NLRI presente na mensagem UPDATE.<\/p>\n<p style=\"text-align: justify;\"><strong>Atributos do PATH (<em>PATH Attributes<\/em>)<\/strong> &#8211; caracter\u00edsticas [comprimento vari\u00e1vel]<\/p>\n<p style=\"text-align: justify;\">S\u00e3o um conjunto de par\u00e2metros associados a uma determinada rota que influenciam no processo de decis\u00e3o, feito pelo BGP, para escolha da melhor rota. Mais adiante, estes atributos ser\u00e3o vistos com mais detalhes.<\/p>\n<p style=\"text-align: justify;\"><strong>Informa\u00e7\u00f5es NLRI (<em>NLRI Information<\/em>)<\/strong> &#8211; caracter\u00edsticas [comprimento vari\u00e1vel]<\/p>\n<p style=\"text-align: justify;\">S\u00e3o prefixos de endere\u00e7os IP de informa\u00e7\u00f5es no formato igual ao do campo de rotas removidas (<em>Withdrawn Routes<\/em>). Este campo \u00e9 preenchido por v\u00e1rias entradas:<\/p>\n<div style=\"text-align: justify;\">\n<p><img loading=\"lazy\" src=\"https:\/\/memoria.rnp.br\/newsgen\/9907\/nlri.gif\" width=\"300\" height=\"67\" \/><\/p>\n<p>Figura 3 &#8211; O Formato das Inform\u00e7\u00f5es NLRI<\/p>\n<\/div>\n<p style=\"text-align: justify;\">Um exemplo de entrada seria: &lt;18,192.213.134.0&gt;, que indica uma rota para 192.213.134.0 255.255.192.0 (ou 192.213.134.0\/18, na nota\u00e7\u00e3o CIDR).<\/p>\n<p style=\"text-align: justify;\"><a class=\"arrow\" href=\"https:\/\/memoria.rnp.br\/newsgen\/9907\/pgbp4p3.html#inicio\">^<\/a><\/p>\n<h2 style=\"text-align: justify;\"><a name=\"ng-atributos\"><\/a>Atributos BGP<\/h2>\n<p style=\"text-align: justify;\">Como foi visto, as mensagens UPDATE incluem o campo <em>PATH Attributes<\/em> que carrega as informa\u00e7\u00f5es dos atributos BGP para as rotas anunciadas no campo NLRI. S\u00e3o dadas, a seguir, breves descri\u00e7\u00f5es de alguns dos atributos do BGP. Atributos definidos para uso em implementa\u00e7\u00f5es espec\u00edficas e uso restrito est\u00e3o al\u00e9m do alcance deste artigo introdut\u00f3rio.<\/p>\n<p style=\"text-align: justify;\">Existem as seguintes categorias de atributos:<\/p>\n<ul style=\"text-align: justify;\">\n<li><strong>Conhecido Obrigat\u00f3rio (<em>Well-Known Mandatory<\/em>)<\/strong><br \/>\nTrata-se de um atributo definido na especifica\u00e7\u00e3o original do protocolo BGP. Deve estar sempre presente em todas as mensagens do tipo UPDATE e deve ser obrigatoriamente reconhecido em todas as implementa\u00e7\u00f5es do protocolo. Caso n\u00e3o esteja presente na mensagem UPDATE, ser\u00e1 enviada uma mensagem do tipo NOTIFICATION informando o erro.<\/li>\n<li><strong>Conhecido Arbitr\u00e1rio (<em>Well-Known Discretionary<\/em>)<\/strong><br \/>\n\u00c9 o tipo do atributo reconhecido por todas as implementa\u00e7\u00f5es do protocolo BGP mas que n\u00e3o precisa estar obrigatoriamente presente em todas as mensagens UPDATE enviadas.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Al\u00e9m dos atributos <em>well-known<\/em> acima, existem os opcionais, que podem ser transitivos ou n\u00e3o (<em>Optional Transitive<\/em> e <em>Optional Non-transitive<\/em>) e que n\u00e3o s\u00e3o obrigatoriamente suportados por todas as implementa\u00e7\u00f5es do BGP.<\/p>\n<ul style=\"text-align: justify;\">\n<li><strong>Opcional Transitivo (<em>Optional Transitive<\/em>)<\/strong><br \/>\nAo receber uma mensagem UPDATE, se um atributo opcional n\u00e3o for reconhecido por determinada implementa\u00e7\u00e3o do BGP, a mesma procura verificar se a <em>flag transitive<\/em> (ver explica\u00e7\u00e3o abaixo) est\u00e1 ativada, ou n\u00e3o, para aquele atributo. Em caso positivo, este atributo \u00e9 repassado nas mensagens UPDATE seguintes, enviadas pelo roteador para seus vizinhos.<\/li>\n<li><strong>Opcional N\u00e3o Transitivo (<em>Optional Non-transitive<\/em>)<\/strong><br \/>\nInverso do Opcional Transitivo, se a implementa\u00e7\u00e3o do BGP n\u00e3o reconhecer o atributo opcional e n\u00e3o encontrar a <em>flag transitive<\/em>ativada, o atributo \u00e9 ignorado e n\u00e3o \u00e9 repassado para os vizinhos BGP nas mensagens UPDATE subseq\u00fcentes.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Uma vez descritas as categorias de Atributos, veremos agora eles aparecem na mensagem UPDATE. Os PATH Attributes s\u00e3o uma seq\u00fcencia de comprimento vari\u00e1vel, que deve estar presente em todas as mensagens do tipo UPDATE. Cada atributo \u00e9 um trio de dados, de comprimento vari\u00e1vel, composto por:<\/p>\n<p style=\"text-align: justify;\">.<\/p>\n<p style=\"text-align: justify;\">O tipo do atributo \u00e9 um campo de 2 bytes que cont\u00e9m: <em>Flags<\/em> de Atributos (1 byte) e C\u00f3digo do Tipo de Atributo (1 byte).<\/p>\n<p style=\"text-align: justify;\"><img loading=\"lazy\" src=\"https:\/\/memoria.rnp.br\/newsgen\/9907\/atributo_path.gif\" width=\"380\" height=\"142\" \/><\/p>\n<p style=\"text-align: justify;\">Figura 4 &#8211; O Formato dos Tipos de <em>PATH Attributes<\/em><\/p>\n<p style=\"text-align: justify;\">O primeiro bit das <em>Flags<\/em> de Atributos chama-se Opcional (<em>Optional<\/em>), que determina se o atributo \u00e9 <em>Optional<\/em> ou <em>Well-known<\/em> [ 1 | 0 ].<\/p>\n<p style=\"text-align: justify;\">O segundo bit \u00e9 chamado de Transitivo (<em>Transitive<\/em>). Ele determina se um atributo opcional \u00e9 transitivo ou n\u00e3o [ 1 | 0 ]. No caso de atributos <em>Well-Known<\/em>, o bit <em>Transitive<\/em> deve ter sempre seu valor igual a 1.<\/p>\n<p style=\"text-align: justify;\">O terceiro bit \u00e9 chamado de Parcial (<em>Partial<\/em>). Determina se a informa\u00e7\u00e3o do atributo opcional <em>Transitive<\/em> \u00e9 parcial ou completa [ 1 | 0 ]. Atributos <em>Well-Known<\/em> e atributos opcionais <em>Non-Transitive<\/em> o bit <em>Partial<\/em> deve ser 0 (zero).<\/p>\n<p style=\"text-align: justify;\">O quarto bit \u00e9 o de Comprimento Estendido. Ele diz se o <em>Attribute Length<\/em> tem 1 ou 2 bytes [ 0 | 1 ] e deve ser usado somente se o comprimento do valor Atributo for maior que 255 bytes.<\/p>\n<p style=\"text-align: justify;\">Os outros 4 bits restantes n\u00e3o s\u00e3o usados e devem ser todos zerados. Devem tamb\u00e9m ser ignorados pelo destinat\u00e1rio da mensagem UPDATE.<\/p>\n<p style=\"text-align: justify;\">O campo C\u00f3digo do Tipo de Atributo deve conter os valores num\u00e9ricos correspondentes a cada tipo de atributo. Estes valores num\u00e9ricos atualmente s\u00e3o mantidos pela <em>Internet Assigned Numbers Authority<\/em> &#8211; <a href=\"http:\/\/www.iana.org\/\"><u>IANA<\/u> <\/a>e podem ser encontrados em:<\/p>\n<p style=\"text-align: justify;\"><a href=\"http:\/\/www.isi.edu\/in-notes\/iana\/assignments\/bgp-parameters\"><u>http:\/\/www.isi.edu\/in-notes\/iana\/assignments\/bgp-parameters<\/u> <\/a>.<\/p>\n<p style=\"text-align: justify;\">A lista atual dos Tipos de Atributos BGP (e seus respectivos valores identificadores) \u00e9 a seguinte:<\/p>\n<table border=\"1\" width=\"88%\" align=\"center\">\n<tbody>\n<tr align=\"center\">\n<td align=\"center\" width=\"14%\"><strong>C\u00f3digo de Tipo<\/strong><\/td>\n<td width=\"28%\"><strong>Atributo<\/strong><\/td>\n<td width=\"14%\"><strong>Refer\u00eancia<\/strong><\/td>\n<td width=\"34%\"><strong>Categoria<\/strong><\/td>\n<td width=\"10%\"><strong>Definido por:<\/strong><\/td>\n<\/tr>\n<tr>\n<td align=\"center\" width=\"14%\">1<\/td>\n<td width=\"28%\">ORIGIN<\/td>\n<td width=\"14%\">[RFC1771]<\/td>\n<td width=\"34%\">Well-known mandatory<\/td>\n<td width=\"10%\">\n<div>&#8211;<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td align=\"center\" width=\"14%\">2<\/td>\n<td width=\"28%\">AS_PATH<\/td>\n<td width=\"14%\">[RFC1771]<\/td>\n<td width=\"34%\">Well-known mandatory<\/td>\n<td width=\"10%\">\n<div>&#8211;<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td align=\"center\" width=\"14%\">3<\/td>\n<td width=\"28%\">NEXT_HOP<\/td>\n<td width=\"14%\">[RFC1771]<\/td>\n<td width=\"34%\">Well-known mandatory<\/td>\n<td width=\"10%\">\n<div>&#8211;<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td align=\"center\" width=\"14%\">4<\/td>\n<td width=\"28%\">MULTI_EXIT_DISC<\/td>\n<td width=\"14%\">[RFC1771]<\/td>\n<td width=\"34%\">Optional Non-transitive<\/td>\n<td width=\"10%\">\n<div>&#8211;<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td align=\"center\" width=\"14%\">5<\/td>\n<td width=\"28%\">LOCAL_PREF<\/td>\n<td width=\"14%\">[RFC1771]<\/td>\n<td width=\"34%\">Well-known discretionary<\/td>\n<td width=\"10%\">\n<div>&#8211;<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td align=\"center\" width=\"14%\">6<\/td>\n<td width=\"28%\">ATOMIC_AGGREGATE<\/td>\n<td width=\"14%\">[RFC1771]<\/td>\n<td width=\"34%\">Well-known discretionary<\/td>\n<td width=\"10%\">\n<div>&#8211;<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td align=\"center\" width=\"14%\">7<\/td>\n<td width=\"28%\">AGGREGATOR<\/td>\n<td width=\"14%\">[RFC1771]<\/td>\n<td width=\"34%\">Optional transitive<\/td>\n<td width=\"10%\">\n<div>&#8211;<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td align=\"center\" width=\"14%\">8<\/td>\n<td width=\"28%\">COMMUNITY<\/td>\n<td width=\"14%\">[RFC1771]<\/td>\n<td width=\"34%\">Optional transitive<\/td>\n<td width=\"10%\">Cisco<\/td>\n<\/tr>\n<tr>\n<td align=\"center\" width=\"14%\">9<\/td>\n<td width=\"28%\">ORIGINATOR_ID<\/td>\n<td width=\"14%\">[RFC1998]<\/td>\n<td width=\"34%\">Optional non-transitive<\/td>\n<td width=\"10%\">Cisco<\/td>\n<\/tr>\n<tr>\n<td align=\"center\" width=\"14%\">10<\/td>\n<td width=\"28%\">CLUSTER_LIST<\/td>\n<td width=\"14%\">[RFC1998]<\/td>\n<td width=\"34%\">Optional non-transitive<\/td>\n<td width=\"10%\">Cisco<\/td>\n<\/tr>\n<tr>\n<td align=\"center\" width=\"14%\">11<\/td>\n<td width=\"28%\">DPA<\/td>\n<td width=\"14%\">[Chen]<\/td>\n<td width=\"34%\">\n<div>&#8211;<\/div>\n<\/td>\n<td width=\"10%\">MCI<\/td>\n<\/tr>\n<tr>\n<td align=\"center\" width=\"14%\">12<\/td>\n<td width=\"28%\">ADVERTISER<\/td>\n<td width=\"14%\">[RFC1863]<\/td>\n<td width=\"34%\">\n<div>&#8211;<\/div>\n<\/td>\n<td width=\"10%\">Baynet<\/td>\n<\/tr>\n<tr>\n<td align=\"center\" width=\"14%\">13<\/td>\n<td width=\"28%\">RCID_PATH\/CLUSTER_ID<\/td>\n<td width=\"14%\">[RFC1863]<\/td>\n<td width=\"34%\">\n<div>&#8211;<\/div>\n<\/td>\n<td width=\"10%\">Baynet<\/td>\n<\/tr>\n<tr>\n<td align=\"center\" width=\"14%\">14<\/td>\n<td width=\"28%\">MP_REACH_NLRI<\/td>\n<td width=\"14%\">[RFC2283]<\/td>\n<td width=\"34%\">\n<div>&#8211;<\/div>\n<\/td>\n<td width=\"10%\">\n<div>&#8211;<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td align=\"center\" width=\"14%\">15<\/td>\n<td width=\"28%\">MP_UNREACH_NLRI<\/td>\n<td width=\"14%\">[RFC2283]<\/td>\n<td width=\"34%\">\n<div>&#8211;<\/div>\n<\/td>\n<td width=\"10%\">\n<div>&#8211;<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td align=\"center\" width=\"14%\">16<\/td>\n<td width=\"28%\">EXTENDED COMMUNITIES<\/td>\n<td width=\"14%\">[Rosen]<\/td>\n<td width=\"34%\">\n<div>&#8211;<\/div>\n<\/td>\n<td width=\"10%\">\n<div>&#8211;<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td align=\"center\" width=\"14%\">&#8230;<\/td>\n<td width=\"28%\">\n<div>&#8211;<\/div>\n<\/td>\n<td width=\"14%\">\n<div>&#8211;<\/div>\n<\/td>\n<td width=\"34%\">\n<div>&#8211;<\/div>\n<\/td>\n<td width=\"10%\">\n<div>&#8211;<\/div>\n<\/td>\n<\/tr>\n<tr>\n<td align=\"center\" width=\"14%\">255<\/td>\n<td width=\"28%\">Reservado para desenvolvimento<\/td>\n<td width=\"14%\">\n<div>&#8211;<\/div>\n<\/td>\n<td width=\"34%\">\n<div>&#8211;<\/div>\n<\/td>\n<td width=\"10%\">\n<div>&#8211;<\/div>\n<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: justify;\"><u>ATRIBUTO ORIGIN [<em>TYPE CODE 1<\/em>]<\/u><\/p>\n<p style=\"text-align: justify;\">Indica a origem do an\u00fancio de rota, ou NLRI (que indica o prefixo e a m\u00e1scara de bits), com rela\u00e7\u00e3o ao AS que o originou. Pode conter um dos valores:<\/p>\n<p style=\"text-align: justify;\">As indica\u00e7\u00f5es &#8220;i&#8221;, &#8220;e&#8221; e &#8220;?&#8221; aparecem na extremidade direita da tabela de rotas do BGP como podemos ver no exemplo abaixo.<\/p>\n<p class=\"codigo\" style=\"text-align: justify;\">roteador&gt;show ip bgp BGP table version is 117080, local router ID is 200.180.1.142 Status codes: s suppressed, d damped, h history, * valid, &gt; best, i &#8211; internal Origin codes: i &#8211; IGP, e &#8211; EGP, ? &#8211; incomplete Network Next Hop Metric LocPrf Weight Path * i0.0.0.0 204.189.152.169 100 0 3561 i * i 204.189.152.153 100 0 3561 i *&gt; 204.189.152.141 0 3561 i *&gt; 12.128.70.48\/28 200.255.125.4 0 4230 8031 i * i 200.230.6.4 100 0 4230 8031 i *&gt; 32.96.204.0\/24 200.255.125.4 0 4230 2685 ? * i 200.230.6.4 100 0 4230 2685<\/p>\n<p style=\"text-align: justify;\">Exemplo de Tabela de Rotas com Diferentes Origens<\/p>\n<p style=\"text-align: justify;\"><u>ATRIBUTO AS_PATH [<em>TYPE CODE 2<\/em>]<\/u><\/p>\n<p style=\"text-align: justify;\">\u00c9 uma seq\u00fc\u00eancia de ASNs que uma rota cruza para alcan\u00e7ar uma determinada rede de destino. O AS que origina uma rota acrescenta seu ASN ao anunciar uma rota sua para seus vizinhos BGP externos. Da\u00ed pra frente, cada AS que receber a rota, acrescenta seu pr\u00f3prio ASN no in\u00edcio da seq\u00fcencia de ASNs e repassa a rota para outros <em>peers<\/em> seus que ir\u00e3o fazer o mesmo. A lista final vai representar todos os ASNs que uma rota atravessou com o ASN do AS de origem da rota no final da seq\u00fcencia, tamb\u00e9m conhecida como <em>AS_Sequence<\/em>.<\/p>\n<p style=\"text-align: justify;\">Caso um AS receba um an\u00fancio de rota que contenha seu pr\u00f3prio ASN na seq\u00fcencia inclusa no AS_PATH, este an\u00fancio ser\u00e1 rejeitado e descartado, garantindo assim, que n\u00e3o haver\u00e1 <em>loop<\/em> de roteamento na tabela BGP desse AS.<\/p>\n<p style=\"text-align: justify;\">Caso o AS_PATH seja anunciado para um vizinho do mesmo AS, a informa\u00e7\u00e3o contida no AS_PATH n\u00e3o \u00e9 alterada.<\/p>\n<p style=\"text-align: justify;\">A informa\u00e7\u00e3o contida no AS_PATH \u00e9 uma das usadas no processo de sele\u00e7\u00e3o da melhor rota para determinado destino. Ao comparar duas rotas para um mesmo destino (considerando que os outros atributos sejam id\u00eanticos), o BGP vai preferir a que possuir o AS_PATH menor. Caso o caminho (path) seja do mesmo tamanho, o BGP vai usar outros atributos para fazer a sua escolha da melhor rota.<\/p>\n<p style=\"text-align: justify;\"><u>ATRIBUTO NEXT_HOP [<em>TYPE CODE 3<\/em>]<\/u><\/p>\n<p style=\"text-align: justify;\">Basicamente, este atributo recebe o endere\u00e7o IP da interface do pr\u00f3ximo roteador &#8211; pr\u00f3ximo salto (<em>next hop<\/em>) a ser dado &#8211; para se chegar a determinado destino. No caso, para alcan\u00e7ar as redes de destino inclu\u00eddas na mensagem UPDATE.<\/p>\n<p style=\"text-align: justify;\">Existem tr\u00eas situa\u00e7\u00f5es diferentes que determinam o NEXT_HOP:<\/p>\n<ul style=\"text-align: justify;\">\n<li>Em sess\u00f5es eBGP, onde o NEXT_HOP ser\u00e1 sempre o IP de um roteador de borda (<em>peer<\/em> BGP) de um AS vizinho que originou a rota.<\/li>\n<li>Em sess\u00f5es iBGP onde a rota foi originada dentro do AS, o NEXT_HOP ser\u00e1 o endere\u00e7o IP do vizinho que anunciou a rota originalmente. O NEXT_HOP aprendido pelo eBGP n\u00e3o \u00e9 alterado pelo iBGP, permanecendo o endere\u00e7o IP do <em>peer<\/em> eBGP que originou o an\u00fancio da rota.<\/li>\n<li>Quando a rota \u00e9 anunciada em m\u00eddias de multiacesso (como Ethernet e Frame Relay), o NEXT_HOP geralmente \u00e9 o endere\u00e7o IP da interface do roteador conectada \u00e0 m\u00eddia que originou a rota.<\/li>\n<\/ul>\n<p style=\"text-align: justify;\">Existem, entretanto, outras regras definidas pela [RFC 1771]:<\/p>\n<ul style=\"text-align: justify;\">\n<li>Um roteador que &#8220;fala&#8221; BGP s\u00f3 pode anunciar como NEXT_HOP um roteador de borda de seu pr\u00f3prio AS caso uma interface com endere\u00e7o IP de cada um fa\u00e7a parte de uma mesma sub-rede.<\/li>\n<li>O roteador pode anunciar como NEXT_HOP qualquer roteador de borda externo (AS vizinho), desde que o IP dele tenha sido aprendido de um dos seus pares (peers) BGP e que uma interface com endere\u00e7o IP de ambos fa\u00e7am parte de uma mesma sub-rede.<\/li>\n<li>Ao anunciar uma rota para um vizinho do mesmo AS, o valor do NEXT_HOP associado \u00e0 rota n\u00e3o deve ser alterado.<\/li>\n<li>Um roteador n\u00e3o pode anunciar como NEXT_HOP para um vizinho (peer) o endere\u00e7o IP do mesmo.<\/li>\n<li>Um roteador n\u00e3o pode anunciar como NEXT_HOP o seu pr\u00f3prio endere\u00e7o IP.<\/li>\n<\/ul>\n<p class=\"codigo\" style=\"text-align: justify;\">roteador&gt; show ip bgp BGP table version is 117080, local router ID is 204.189.152.142 Status codes: s suppressed, d damped, h history, * valid, &gt; best, i &#8211; internal Origin codes: i &#8211; IGP, e &#8211; EGP, ? &#8211; incomplete Network Next Hop Metric LocPrf Weight Path *&gt; 139.82.0.0 200.159.255.253 20 0 2715 i *&gt;i143.54.0.0 200.132.0.16 1 100 0 i<\/p>\n<p style=\"text-align: justify;\">Exemplo de Informa\u00e7\u00f5es NEXT_HOP Aprendidas Atrav\u00e9s de Mensagens UPDATE<\/p>\n<p style=\"text-align: justify;\"><u>ATRIBUTO M\u00c9TRICA (<em>MED &#8211; MULTI_EXIT_DISCRIMINATOR<\/em>) [<em>TYPE CODE 4<\/em>]<\/u><\/p>\n<p style=\"text-align: justify;\">Este atributo tem como finalidade informar para os vizinhos BGP externos (<em>peers<\/em>) qual o melhor caminho (<em>path<\/em>) para uma determinada rota do pr\u00f3prio AS; influenciando-os, assim, em rela\u00e7\u00e3o a qual caminho deve ser seguido no caso do AS possuir diversos pontos de entrada.<\/p>\n<p class=\"codigo\" style=\"text-align: justify;\">BGP table version is 117080, local router ID is 204.189.152.142 Status codes: s suppressed, d damped, h history, * valid, &gt; best, i &#8211; internal Origin codes: i &#8211; IGP, e &#8211; EGP, ? &#8211; incomplete Network Next Hop Metric LocPrf Weight Path *&gt; 139.82.0.0 200.159.255.253 20 0 2715 i *&gt;i143.54.0.0 200.132.0.16 1 100 0 i *&gt;i143.106.0.0 200.136.34.1 0 100 0 1251 i *&gt; 146.134.0.0 200.159.255.32 1200 32768 i *&gt; 146.164.0.0 200.159.255.253 20 0 2715 i *&gt; 147.65.0.0 0.0.0.0 0 32768 i *&gt;i150.165.0.0 200.130.255.70 1112000 100 0 i<\/p>\n<p style=\"text-align: justify;\">Exemplo de Tabela de Rotas com Diferentes M\u00e9tricas<\/p>\n<p style=\"text-align: justify;\"><u>ATRIBUTO LOCAL_PREF [<em>TYPE CODE 5<\/em>]<\/u><\/p>\n<p style=\"text-align: justify;\">Este atributo serve para anunciar qual \u00e9 o caminho preferencial de sa\u00edda (de pacotes) para uma determinada rota, destinada a uma rede externa ao AS. Como o pr\u00f3prio nome do atributo sugere, o LOCAL_PREF somente \u00e9 anunciado (repassado) entre os roteadores vizinhos BGP (iBGP)do mesmo AS e n\u00e3o \u00e9 repassado aos roteadores vizinhos externos (eBGP). Caminhos (<em>paths<\/em>) que possuem o LOCAL_PREF com maior valor s\u00e3o preferidos pelo BGP. O valor padr\u00e3o do LOCAL_PREF \u00e9 100.<\/p>\n<p style=\"text-align: justify;\"><u>ATRIBUTO ATOMIC_AGGREGATE [<em>TYPE CODE 6<\/em>]<\/u><\/p>\n<p style=\"text-align: justify;\">Este atributo \u00e9 usado por um roteador que, ao ter que selecionar uma rota dentre outras &#8211; recebidas de seu <em>peer<\/em> &#8211; que se sobrep\u00f5em, escolhe uma, ignorando a mais espec\u00edfica. Ent\u00e3o, ele deve incluir o atributo ATOMIC_AGGREGATE \u00e0 rota quando for propag\u00e1-la a seus vizinhos (caso o atributo ainda n\u00e3o esteja presente na rota menos espec\u00edfica recebida).<\/p>\n<p style=\"text-align: justify;\">Um roteador que receba uma rota com o atributo ATOMIC_AGGREGATE n\u00e3o deve remov\u00ea-lo e n\u00e3o deve fazer nenhum NLRI da rota mais espec\u00edfica quando for propagar a rota aos vizinhos BGP. Ele precisa tamb\u00e9m reconhecer que o caminho atual para os destinos (como especificado no campo NLRI da rota), respeitando a aus\u00eancia de <em>loops<\/em> de roteamento, pode cruzar ASs que n\u00e3o estejam listados no AS_PATH.<\/p>\n<p style=\"text-align: justify;\">Uma outra observa\u00e7\u00e3o importante: n\u00e3o \u00e9 poss\u00edvel agregar um endere\u00e7o sem ter uma rota mais espec\u00edfica daquele endere\u00e7o na tabela de roteamento. Por exemplo: um roteador n\u00e3o pode gerar uma rota agregada para 160.0.0.0 sem possuir previamente uma rota de 160.0.0.0 em sua tabela de roteamento.<\/p>\n<p style=\"text-align: justify;\"><u>ATRIBUTO AGGREGATOR [<em>TYPE CODE 7<\/em>]<\/u><\/p>\n<p style=\"text-align: justify;\">Este atributo pode ser inclu\u00eddo em mensagens UPDATE que sejam formadas por agrega\u00e7\u00e3o. O atributo AGGREGATOR cont\u00e9m o ASN do \u00faltimo roteador que formou uma rota agregada, seguido de seu pr\u00f3prio ASN e endere\u00e7o IP.<\/p>\n<p style=\"text-align: justify;\"><u>ATRIBUTO COMMUNITY [TYPE CODE 8]<\/u><\/p>\n<p style=\"text-align: justify;\">Este atributo \u00e9 usado para representar um agrupamento de destinos que compartilhem uma ou mais caracter\u00edsticas, n\u00e3o sendo estas restritas a um mesmo AS, rede ou conjunto de redes. As delimita\u00e7\u00f5es do agrupamento s\u00e3o pol\u00edticas, podendo envolver mais de um AS, inclusive. As comunidades (<em>communities<\/em>) podem ser compostas de diversas redes pertencentes a qualquer AS, usadas para simplificar pol\u00edticas de roteamento identificando rotas por algum par\u00e2metro l\u00f3gico ao inv\u00e9s de prefixos CIDR ou ASNs. Usando esses atributos, um roteador pode combin\u00e1-los com outros para determinar, para cada comunidade, quais rotas devem ser aceitas, descartadas, preferidas ou repassadas para outros vizinhos.<\/p>\n<p style=\"text-align: justify;\">O valor deste atributo pode estar entre 0 (zero) e 4.294.967.200 e consiste de conjuntos de valores de 4 bytes.<\/p>\n<p style=\"text-align: justify;\"><u>&#8220;ATRIBUTO&#8221; WEIGHT<\/u><\/p>\n<p style=\"text-align: justify;\">Definido pela Cisco Systems, o WEIGHT n\u00e3o \u00e9 propriamente um atributo BGP. Ele influencia no processo de sele\u00e7\u00e3o da melhor rota do roteador onde for definido e, como \u00e9 um atributo local ao roteador, n\u00e3o \u00e9 repassado e nem propagado aos seus vizinhos nas mensagens UPDATE. O WEIGHT \u00e9 um valor decimal entre 0 e 65535, sendo o valor padr\u00e3o igual a 32768, assumido para rotas originadas pelo roteador. Outras rotas possuem o WEIGHT igual a 0 (zero), por padr\u00e3o. Havendo mais de uma poss\u00edvel rota para um mesmo destino, o BGP-4 seleciona a que possuir o atributo WEIGHT com maior valor.<\/p>\n<p style=\"text-align: justify;\">Este atributo \u00e9 comumente usado pelos operadores de redes para influenciar o processo de escolha de rotas do BGP.<\/p>\n<p style=\"text-align: justify;\">O MED \u00e9 anunciado somente entre ASs. Por\u00e9m, s\u00f3 o AS de origem pode fazer an\u00fancios com valores neste atributo, enquanto um AS vizinho que receba o atributo via mensagem UPDATE n\u00e3o pode repassar o valor deste atributo a outros ASs, fazendo uso dos mesmos apenas para tomadas de decis\u00e3o internas ao AS.<\/p>\n<p style=\"text-align: justify;\">Quando repassado o an\u00fancio da rota a um terceiro AS, por exemplo, o atributo MED recebe o valor 0 (zero). O BGP seleciona a rota que possuir o atributo MED com menor valor. Havendo contato com mais de um vizinho BGP pertecentes a um mesmo AS que fa\u00e7am an\u00fancios com m\u00e9trica, o roteador (do AS vizinho) que receber os UPDATEs vai comparar as m\u00e9tricas para os caminhos oferecidos por estes roteadores, se ele n\u00e3o for configurado para o contr\u00e1rio. Para um roteador comparar m\u00e9tricas anunciadas por vizinhos BGP de ASs diferentes, \u00e9 necess\u00e1rio usar um comando especial de configura\u00e7\u00e3o no roteador.<\/p>\n<table border=\"1\" width=\"87%\" align=\"center\">\n<tbody>\n<tr>\n<td>\n<div><strong>Valor<\/strong><\/div>\n<\/td>\n<td><strong>Descri\u00e7\u00e3o<\/strong><\/td>\n<\/tr>\n<tr>\n<td>\n<div>0<\/div>\n<\/td>\n<td><strong>IGP<\/strong> &#8211; a origem \u00e9 interna ao AS origin\u00e1rio da mensagem (indicado por um &#8220;i&#8221; na tabela de rotas), seja ela recebida atrav\u00e9s da redistribui\u00e7\u00e3o das rotas do IGP para o BGP (daquele AS) ou pela simples configura\u00e7\u00e3o do BGP naquele roteador.<\/td>\n<\/tr>\n<tr>\n<td>\n<div>1<\/div>\n<\/td>\n<td><strong>EGP<\/strong> &#8211; a origem \u00e9 de um AS externo e foi recebida por um an\u00fancio de um EGP. \u00c9 identificada por um &#8220;e&#8221; na tabela de rotas. Este tipo de entrada dificilmente ser\u00e1 visto nas tabelas de rotas atualmente.<\/td>\n<\/tr>\n<tr>\n<td>\n<div>2<\/div>\n<\/td>\n<td><strong>INCOMPLETE<\/strong> &#8211; a NLRI \u00e9 desconhecida ou aprendida por outros meios (al\u00e9m dos acima). Geralmente acontece quando uma rota est\u00e1tica (configurada manualmente por um operador) \u00e9 redistribu\u00edda no BGP e a origem da rota fica incompleta. \u00c9 indicada por um &#8220;?&#8221; na tabela de rotas.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p style=\"text-align: justify;\"><a class=\"arrow\" href=\"https:\/\/memoria.rnp.br\/newsgen\/9907\/pgbp4p3.html#inicio\">^<\/a><\/p>\n<h2 style=\"text-align: justify;\"><a name=\"ng-redistribuicao\"><\/a>Redistribui\u00e7\u00e3o<\/h2>\n<p style=\"text-align: justify;\">Num roteador, cada protocolo de roteamento mant\u00e9m a sua tabela de rotas individual na mem\u00f3ria, enquanto o pr\u00f3prio roteador mant\u00e9m uma outra tabela montada com rotas fornecidas por todos os protocolos de roteamento que estiverem sendo executados no mesmo. Esta \u00e9 a tabela utilizada pelo roteador para executar sua fun\u00e7\u00e3o de rotear pacotes de dados.<\/p>\n<p style=\"text-align: justify;\">A redistribui\u00e7\u00e3o acontece quando, em um roteador, um protocolo de roteamento repassa as rotas de sua tabela para outro protocolo de roteamento. O outro protocolo pode aceit\u00e1-las (ou n\u00e3o) todas ou apenas algumas e inclu\u00ed-las em sua tabela de rotas. Posteriormente, estas rotas ser\u00e3o anunciadas por este outro protocolo para os roteadores vizinhos que &#8220;falam&#8221; este mesmo protocolo.<\/p>\n<p style=\"text-align: justify;\">O comando <strong>network<\/strong> \u00e9 uma das formas de anunciar as redes de um AS no protocolo BGP. Outra forma \u00e9 redistribuir as rotas conhecidas pelo IGP para o BGP. Isso pode ser muito perigoso, pois pode-se injetar todas rotas internas do AS no BGP desnecessariamente. Se, por exemplo, uma das rotas podem ter sido aprendidas atrav\u00e9s do pr\u00f3prio BGP, ent\u00e3o n\u00e3o h\u00e1 necessidade de repass\u00e1-las novamente. Uma filtragem cuidadosa deve ser aplicada para garantir que s\u00f3 ser\u00e3o anunciadas para a Internet rotas que, realmente, se deseja anunciar e n\u00e3o anunciar todas indiscriminadamente.<\/p>\n<p style=\"text-align: justify;\"><a class=\"arrow\" href=\"https:\/\/memoria.rnp.br\/newsgen\/9907\/pgbp4p3.html#inicio\">^<\/a><\/p>\n<h2 style=\"text-align: justify;\"><a name=\"ng-mapas\"><\/a>Mapas de rotas (Route Maps)<\/h2>\n<p style=\"text-align: justify;\">S\u00e3o uma forma de controlar e modificar informa\u00e7\u00f5es de roteamento. Os <em>route-maps<\/em> possibilitam a defini\u00e7\u00e3o de condi\u00e7\u00f5es para, por exemplo, redistribui\u00e7\u00e3o de rotas entre protocolos de roteamento &#8211; BGP e algum IGP &#8211; ou o controle das rotas injetadas (ou removidas) no BGP.<\/p>\n<p style=\"text-align: justify;\">A sintaxe do comando para cria\u00e7\u00e3o de um <em>route-map<\/em> \u00e9:<\/p>\n<p class=\"codigo\" style=\"text-align: justify;\">route-map [[permit | deny] | [ n\u00famero seq\u00fcencial ]]<\/p>\n<p style=\"text-align: justify;\">O pode ser qualquer nome escolhido para indentific\u00e1-lo. M\u00faltiplas inst\u00e2ncias do mesmo <em>route-map<\/em> podem ser configuradas (com o mesmo nome), e o \u00e9 um indicativo da posi\u00e7\u00e3o que o novo <em>route-map<\/em> deve ter dentro da lista daqueles j\u00e1 configurados com o mesmo nome. Exemplo:<\/p>\n<p class=\"codigo\" style=\"text-align: justify;\"># route-map MAPA permit 10 # route-map MAPA permit 20<\/p>\n<p style=\"text-align: justify;\">Aplicando as condi\u00e7\u00f5es para rotas de entrada ou de sa\u00edda, o primeiro conjunto de condi\u00e7\u00f5es ser\u00e1 aplicado e, caso nenhuma das condi\u00e7\u00f5es seja atendida, o segundo conjunto ser\u00e9 aplicado. As condi\u00e7\u00f5es s\u00e3o configuradas atrav\u00e9s dos comandos <strong>match<\/strong> e <strong>set<\/strong>.<\/p>\n<p class=\"codigo\" style=\"text-align: justify;\">match ip address 1.1.1.1 set metric 5<\/p>\n<p style=\"text-align: justify;\">A partir da\u00ed, podem ocorrer duas situa\u00e7\u00f5es: o envio da atualiza\u00e7\u00e3o (envio do UPDATE) ser permitido ou negado. Se as condi\u00e7\u00f5es forem encontradas na mensagem, ent\u00e3o ser\u00e1 permitida a redistribui\u00e7\u00e3o ou o controle (pelo comando <strong>set<\/strong>) da atualiza\u00e7\u00e3o de rotas.<\/p>\n<p style=\"text-align: justify;\">Caso as condi\u00e7\u00f5es n\u00e3o sejam encontradas, ser\u00e1 negada a redistribui\u00e7\u00e3o ou controle da atualiza\u00e7\u00e3o de rotas feitos por este <em>route-map<\/em>. Neste caso, a pr\u00f3xima inst\u00e2ncia do <em>route-map (route map MEU-MAPA permit 20)<\/em> ser\u00e1 verificado e assim por diante, at\u00e9 a \u00faltima inst\u00e2ncia deste ser processada. Se a lista de <em>route-maps<\/em> for toda processada e nenhuma condi\u00e7\u00e3o satisfeita, ent\u00e3o a rota n\u00e3o ser\u00e1 aceita ou redistribu\u00edda, ou seja, as rota ser\u00e1 descartada.<\/p>\n<p style=\"text-align: justify;\">A lista de comandos relacionados ao comando <strong>match<\/strong> s\u00e3o:<\/p>\n<p class=\"codigo\" style=\"text-align: justify;\">match as-path match community match clns match interface match ip address match ip next-hop match ip route-source match metric match route-type match tag<\/p>\n<p style=\"text-align: justify;\">A lista de comandos relacionados ao <strong>set<\/strong> s\u00e3o:<\/p>\n<p class=\"codigo\" style=\"text-align: justify;\">set as-path set automatic-tag set community set clns set interface set default interface set ip next-hop set ip default next-hop set ip precedence \u00e8a\u00c9 set level set local-preference set metric set metric-type set next-hop set origin set tag set weight<\/p>\n<p style=\"text-align: justify;\">No exemplo abaixo, deseja-se definir um <em>route-map<\/em> que verifique nas mensagens UPDATE de sa\u00edda se foi encontrado o IP 1.1.1.1. Neste caso, o atributo METRIC (ou MED) deste UPDATE deve ser alterado para 5:<\/p>\n<p style=\"text-align: justify;\"><a class=\"arrow\" href=\"https:\/\/memoria.rnp.br\/newsgen\/9907\/pgbp4p3.html#inicio\">^<\/a><\/p>\n<h2 style=\"text-align: justify;\"><a name=\"ng-sincronizacao\"><\/a>Sincroniza\u00e7\u00e3o<\/h2>\n<p style=\"text-align: justify;\">No caso de um AS servir de tr\u00e2nsito entre outros dois ASs, o BGP n\u00e3o dever\u00e1 anunciar uma rota antes que todos os roteadores do AS tenham aprendido a rota atrav\u00e9s do IGP. Assim, ele dever\u00e1 aguardar at\u00e9 que o IGP tenha propagado a rota por todo o AS e somente ap\u00f3s fa\u00e7a o an\u00fancio para os vizinhos BGP externos. Da\u00ed, o termo sincroniza\u00e7\u00e3o.<\/p>\n<p style=\"text-align: justify;\">Isso \u00e9 importante para evitar &#8220;buracos negros&#8221; de roteamento, ou seja, situa\u00e7\u00f5es em que algum roteador do AS anuncie para um vizinho externo que tem rota para um determinado destino em um terceiro AS, por\u00e9m os roteadores internos do mesmo AS deste roteador anunciante n\u00e3o t\u00eam a menor id\u00e9ia da exist\u00eancia deste destino, pois n\u00e3o receberam informa\u00e7\u00f5es sobre a rota para a rede do terceiro AS atrav\u00e9s do IGP (que a deve receber por redistribui\u00e7\u00e3o do BGP). Assim que pacotes enviados para este destino alcan\u00e7arem algum destes roteadores internos do AS de tr\u00e2nsito, os mesmos ser\u00e3o simplesmente descartados.<\/p>\n<p style=\"text-align: justify;\">\u00c9 poss\u00edvel, entretanto, &#8220;desligar&#8221; a sincroniza\u00e7\u00e3o, caso ela n\u00e3o seja necess\u00e1ria. Por exemplo, se o AS n\u00e3o serve de tr\u00e2nsito entre outros ASs ou se todos os roteadores estiverem usando BGP sem rodar nenhum IGP. Assim, h\u00e1 a vantagem de se ter menos entradas na tabela de rotas e uma maior rapidez de converg\u00eancia do BGP.<\/p>\n<p style=\"text-align: justify;\"><a class=\"arrow\" href=\"https:\/\/memoria.rnp.br\/newsgen\/9907\/pgbp4p3.html#inicio\">^<\/a><\/p>\n<h2 style=\"text-align: justify;\"><a name=\"ng-filtragem\"><\/a>Filtragem no BGP<\/h2>\n<p style=\"text-align: justify;\">O envio e aceita\u00e7\u00e3o de atualiza\u00e7\u00f5es de rotas (mensagens UPDATE) pode ser controlado atrav\u00e9s de filtros. Existem diferentes m\u00e9todos que levam aos mesmos resultados, sendo que a escolha por um deles depende da configura\u00e7\u00e3o da rede. As atualiza\u00e7\u00f5es podem ser filtradas baseado em rotas, caminhos (<em>paths<\/em>) ou em comunidades (<em>communities<\/em>).<\/p>\n<p style=\"text-align: justify;\"><a class=\"arrow\" href=\"https:\/\/memoria.rnp.br\/newsgen\/9907\/pgbp4p3.html#inicio\">^<\/a><\/p>\n<h2 style=\"text-align: justify;\"><a name=\"ng-configuracoes\"><\/a>Configura\u00e7\u00f5es em roteamento Cisco<\/h2>\n<p style=\"text-align: justify;\">Nesta sess\u00e3o, \u00e9 mostrado como fazer a inicial do protocolo BGP em um roteador Cisco. Para tal, assume-se que o ASN ao qual o roteador pertence \u00e9 100. Assim, o comando de configura\u00e7\u00e3o ser\u00e1:<\/p>\n<p class=\"codigo\" style=\"text-align: justify;\">router bgp 100<\/p>\n<p style=\"text-align: justify;\">Com este comando, o BGP j\u00e1 est\u00e1 ativado no roteador. Os mesmos comando deve ser inclu\u00eddo na configura\u00e7\u00e3o de outros roteadores para ativar neles o BGP com seus respectivos ASNs.<\/p>\n<p style=\"text-align: justify;\">O pr\u00f3ximo passo \u00e9 o estabelecimento das vizinhan\u00e7as BGP com roteadores de outro AS (<em>peer<\/em>) ou do mesmo AS (para configurar iBGP), atrav\u00e9s do comando <strong>neighbor<\/strong>:<\/p>\n<p class=\"codigo\" style=\"text-align: justify;\">neighbor remote-as<\/p>\n<p style=\"text-align: justify;\">Exemplo: (retirado de [Halabi-2])<\/p>\n<p class=\"codigo\" style=\"text-align: justify;\">roteador-a#<br \/>\nrouter bgp 100<br \/>\nneighbor 129.213.1.1 remote-as 200<\/p>\n<p style=\"text-align: justify;\">roteador-b#<br \/>\nrouter bgp 200<br \/>\nneighbor 129.213.1.2 remote-as 100<br \/>\nneighbor 175.220.1.2 remote-as 200<\/p>\n<p style=\"text-align: justify;\">roteador-c#<br \/>\nrouter bgp 200<br \/>\nneighbor 175.220.212.1 remote-as 200<\/p>\n<p style=\"text-align: justify;\">Olhando a sa\u00edda do comando <strong>show ip bgp<\/strong> como no exemplo abaixo (ainda de [Halabi-2] ):<\/p>\n<p class=\"codigo\" style=\"text-align: justify;\"># show ip bgp neighbors<\/p>\n<p style=\"text-align: justify;\">BGP neighbor is 129.213.1.1, remote AS 200, external link<br \/>\nBGP version 4, remote router ID 175.220.212.1<br \/>\nBGP state = Established, table version = 3, up for 0:10:59<br \/>\nLast read 0:00:29, hold time is 180, keepalive interval is 60 seconds<br \/>\nMinimum time between advertisement runs is 30 seconds<br \/>\nReceived 2828 messages, 0 notifications, 0 in queue<br \/>\nSent 2826 messages, 0 notifications, 0 in queue<br \/>\nConnections established 11; dropped 10<\/p>\n<p style=\"text-align: justify;\">pode-se confirmar o estabelecimento da sess\u00e3o BGP entre os <em>neighbors,<\/em> observando-se a informa\u00e7\u00e3o <strong>BGP state = Established<\/strong>.<\/p>\n<p style=\"text-align: justify;\">Para reiniciar uma sess\u00e3o BGP no caso de altera\u00e7\u00f5es na configura\u00e7\u00e3o, deve-se usar o comando:<\/p>\n<p class=\"codigo\" style=\"text-align: justify;\">clear ip bgp<\/p>\n<p style=\"text-align: justify;\">ou<\/p>\n<p class=\"codigo\" style=\"text-align: justify;\">clear ip bgp *<\/p>\n<p style=\"text-align: justify;\">Este comando reinicializa TODAS as sess\u00f5es BGP com todos os vizinhos, portanto o seu uso requer cuidados.<\/p>\n<p style=\"text-align: justify;\"><a class=\"arrow\" href=\"https:\/\/memoria.rnp.br\/newsgen\/9907\/pgbp4p3.html#inicio\">^<\/a><\/p>\n<h2 style=\"text-align: justify;\"><a name=\"ng-dicas\"><\/a>Dicas e erros de configura\u00e7\u00e3o<\/h2>\n<p style=\"text-align: justify;\">A seguir s\u00e3o dadas algumas dicas em rela\u00e7\u00e3o a configura\u00e7\u00e3o e mesmo manuten\u00e7\u00e3o do protocolo BGP.<\/p>\n<ul style=\"text-align: justify;\">\n<li><strong>Sempre filtrar<\/strong> as <strong>redes reservadas<\/strong>! A [RFC1918] especifica aloca\u00e7\u00e3o de endere\u00e7os para redes privadas, cujas rotas nunca dever\u00e3o ser anunciadas para a Internet.A IANA reservou os tr\u00eas blocos de endere\u00e7os IP abaixo para uso em redes internet privadas:\n<p class=\"codigo\">10.0.0.0 &#8211; 10.255.255.255 (prefixo: 10\/8 )<br \/>\n172.16.0.0 &#8211; 172.31.255.255 (prefixo: 172.16\/12 )<br \/>\n192.168.0.0 &#8211; 192.168.255.255 (prefixo: 192.168\/16 )<\/p>\n<p>Na nota\u00e7\u00e3o CIDR, o primeiro bloco \u00e9 de 24 bits, o segundo de 20 bits e o terceiro de 16 bits. Na nota\u00e7\u00e3o pr\u00e9-CIDR, o primeiro bloco corresponde a uma Classe A, o segundo, um conjunto de 16 Classes B cont\u00edguas; e o terceiro a um conjunto de 256 Classes C cont\u00edguas.<\/p>\n<p>Toda esta faixa de endere\u00e7os reservados tem que ser devidamente filtrada e n\u00e3o pode ser redistribu\u00edda do IGP (RIP, OSPF, IGRP, EIGRP etc.) para o BGP.<\/li>\n<li>Evitar, a todo custo, fazer redistribui\u00e7\u00e3o entre diferentes protocolos de roteamento. Se n\u00e3o for poss\u00edvel abrir m\u00e3o deste recurso, fa\u00e7a-o com a maior aten\u00e7\u00e3o.<\/li>\n<li>Um erro comum e freq\u00fcente \u00e9 o de n\u00e3o se filtrar os an\u00fancios do protocolo RIP (que em geral roda livremente nas redes locais) que acabam sendo redistribu\u00eddos no IGP (IGRP, EIGRP, OSPF) se n\u00e3o houver o devido <strong>route-map<\/strong> para filtr\u00e1-los.<\/li>\n<li>Sempre anunciar as redes de seu AS atrav\u00e9s do comando <strong>network<\/strong>, cuja sintaxe \u00e9:\n<p class=\"codigo\">network<\/p>\n<p>Para ISPs que desejam pedir seu pr\u00f3prio AS e tornar-se <em>multi-homed<\/em> (ter mais de uma sa\u00edda para diferentes provedores), \u00e9 preciso se tomar algumas decis\u00f5es, como por exemplo:<\/p>\n<ul>\n<li>Qual dever\u00e1 ser a &#8220;rota <em>default<\/em>&#8221; (0.0.0.0) de sa\u00edda do seu AS ?<\/li>\n<li>Caso seu AS vizinho (e, possivelmente, o <em>upstream provider<\/em> do seu AS) anuncie a &#8220;rota <em>default<\/em>&#8221; 0.0.0.0, seu AS deve aceit\u00e1-la ou n\u00e3o?<\/li>\n<li>Estas s\u00e3o algumas quest\u00f5es que surgem ao se tornar um Sistema Aut\u00f4nomo; as quais deve-se refletir com cuidado antes de decidir qual ser\u00e1 a pol\u00edtica de roteamento a ser adotada no seu AS.<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<p style=\"text-align: justify;\"><a class=\"arrow\" href=\"https:\/\/memoria.rnp.br\/newsgen\/9907\/pgbp4p3.html#inicio\">^<\/a><\/p>\n<h2 style=\"text-align: justify;\"><a name=\"ng-conclusao\"><\/a>Conclus\u00e3o<\/h2>\n<p style=\"text-align: justify;\">Nesta parte final do artigo O Protocolo BGP-4, foi descrita a mensagem tipo UPDATE do BGP-4, respons\u00e1vel por divulgar todas as mudan\u00e7as ocorridas nas redes interconectadas e que permite a constru\u00e7\u00e3o das tabelas de roteamento utilizadas pelo protocolo BGP.<\/p>\n<p style=\"text-align: justify;\">Tamb\u00e9m foram descritos os Atributos BGP, que s\u00e3o caracter\u00edsticas associadas \u00e0s rotas que comp\u00f5em a tabela de roteamento do BGP e permitem um controle arbitr\u00e1rio do tr\u00e1fego e dos caminhos utilizados para entrada e sa\u00edda de tr\u00e1fego nos ASs.<br \/>\nPor fim, foram dados alguns exemplos de configura\u00e7\u00e3o b\u00e1sica do BGP em roteadores da plataforma Cisco e, por fim, algumas recomenda\u00e7\u00f5es gerais, dicas e exemplos do que n\u00e3o se deve ou n\u00e3o fazer em termos de configura\u00e7\u00e3o de roteamento.<\/p>\n","protected":false},"excerpt":{"rendered":"<div style=\"padding-bottom:20px; padding-top:10px;\" class=\"hupso-share-buttons\"><!-- Hupso Share Buttons - https:\/\/www.hupso.com\/share\/ --><a class=\"hupso_toolbar\" href=\"https:\/\/www.hupso.com\/share\/\"><img src=\"http:\/\/static.hupso.com\/share\/buttons\/dot.png\" style=\"border:0px; padding-top: 5px; float:left;\" alt=\"Share Button\"\/><\/a><script type=\"text\/javascript\">var hupso_services_t=new Array(\"Twitter\",\"Facebook\",\"Google Plus\",\"Linkedin\",\"Email\");var hupso_background_t=\"#EAF4FF\";var hupso_border_t=\"#66CCFF\";var hupso_toolbar_size_t=\"medium\";var hupso_image_folder_url = \"\";var hupso_twitter_via=\"jorgeltaioque\";var hupso_url_t=\"\";var hupso_title_t=\"O%20Protocolo%20BGP4%20-%20Parte%203%20%28Final%29\";<\/script><script type=\"text\/javascript\" src=\"http:\/\/static.hupso.com\/share\/js\/share_toolbar.js\"><\/script><!-- Hupso Share Buttons --><\/div><p>Alex Soares de Moura Rede Nacional de Ensino e Pesquisa (RNP) Introdu\u00e7\u00e3o Tipos de mensagem BGP (cont.) Atributos BGP Redistribui\u00e7\u00e3o Mapas de rotas (Route Maps) Sincroniza\u00e7\u00e3o Filtragem no BGP Configura\u00e7\u00f5es em roteamento Cisco Dicas e erros de configura\u00e7\u00e3o Conclus\u00e3o Refer\u00eancias &hellip; <a href=\"http:\/\/www.networktips.com.br\/?p=1048\">Continue lendo <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":[],"categories":[10],"tags":[42],"_links":{"self":[{"href":"http:\/\/www.networktips.com.br\/index.php?rest_route=\/wp\/v2\/posts\/1048"}],"collection":[{"href":"http:\/\/www.networktips.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.networktips.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.networktips.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.networktips.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=1048"}],"version-history":[{"count":2,"href":"http:\/\/www.networktips.com.br\/index.php?rest_route=\/wp\/v2\/posts\/1048\/revisions"}],"predecessor-version":[{"id":1050,"href":"http:\/\/www.networktips.com.br\/index.php?rest_route=\/wp\/v2\/posts\/1048\/revisions\/1050"}],"wp:attachment":[{"href":"http:\/\/www.networktips.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=1048"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.networktips.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=1048"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.networktips.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=1048"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}