Início > Atributos, BGP, Mikrotik, TCP/IP > Atributos do BGP

Atributos do BGP

 

Introdução

Antes de avançarmos a outros tópicos do BGP é interessante uma abordagem mais efetiva sobre atributos no BGP (atributos de caminho). O significado de atributo e sua categorização estão definidos na RFC42711. Mas, o BGP é uma complexidade em constante movimento. Outros atributos foram aparecendo, recomendados, incorporados em novas implementações, e assim excedendo-se ás especificações da RFC principal. Como veremos, a importância de tais mudanças é relativa.

Como novos atributos são incorporados ao BGP

O IANA11 (Internet Assigned Numbers Authority) é o órgão que coordena e garante que qualquer código ou número utilizado pelos protocolos da Internet seja único12. Inclui nessa relação, IPv4, IPv6, números de portas e todos os outros valores necessários. Em particular, ele é responsável pelos códigos referentes aos atributos do BGP. As novas implementações de atributos foram regulamentadas pela RFC170010 e depois, atualizada pela RFC32329. Quando a RFC42711 substituiu a RF1771, haviam 7 atributos especificados para o BGP (códigos de 1 a 7). A RFC204213 informa a maneira como novos tipos de atributos podem ser registrados e exibe 13 atributos registrados até sua publicação (1997):

Value      Code 

   1       ORIGIN  
   2       AS_PATH
   3       NEXT_HOP
   4       MULTI_EXIT_DISC
   5       LOCAL_PREF
   6       ATOMIC_AGGREGATE
   7       AGGREGATOR
   8       COMMUNITY
   9       ORIGINATOR_ID
  10       CLUSTER_LIST
  11       DPA 
  12       ADVERTISER
  13       RCID_PATH / CLUSTER_ID
  ...
 255       reserved for development

Da lista acima, o valor 11 (DPA) é um atributo proposto por Chen & Bates em http://tools.ietf.org/html/draft-ietf-idr-bgp-dpa-05 e nunca definido ou aceito, embora tenha sido caracterizado na RF19987. Já os valores 12 e 13, foram caracterizados pela RFC1683, que foi reclassificada como histórica pela RFC4223. Por tais razões, somente iremos nos concentrar naqueles atributos mais usados ou bem qualificados pela literatura. Também, é interessante observar, que novos atributos podem não estar presentes, ainda, nas implementações de BGP e, um bom exemplo, são as comunidades extendidas, que permitem o uso de ASN de 64 bits, entre outras facilidades5. A relação completa dos atributos registrados no IANA pode ser consultada aqui, na qual há referências específicas sobre cada atributo, inclusive, qualificando o estado atual de cada um.

Uma curiosidade é o weight, que na literatura às vezes aparece como atributo do BGP. Se olharmos na relação do IANA, weight não aparece. Realmente, ele não é um atributo do BGP. É apenas um mecanismo, muito importante, que impacta a seleção de rotas locais e, não afeta as decisões de roteamento em outros ASes do empareamento.

O presente trabalho, de natureza prática, tem como objetivo caracterizar os atributos do BGP, sem a preocupação dos detalhes, mas com foco nas referências, até porque, o uso está sendo apresentado na série de artigos que começam em https://juliaobraga.wordpress.com/category/mikrotik/page/8/.

Categorização dos atributos

Os atributos do BGP são encaminhados entre os BGPs que falam, através das mensagens de UPDATE. A RFC42711, classifica os atributos em quatro categorias a saber:

  1. Conhecido obrigatório (Well-known mandatory): São atributos que devem estar presentes em TODAS as implementações do BGP (conhecido) e, também, presentes em TODAS as mensagens de UPDATE (obrigatório).
  2. Conhecido discricionário (Well-known discretionary): São atributos que devem estar presentes em TODAS as implementações do BGP (conhecido) e NÃO NECESSARIAMENTE presentes em mensagens de UPDATE (discricionário).
  3. Opcional transitivo (Optional transitive): São atributos que podem ou não estar presentes em implementações de BGP (opcional). Se estiver presente, ele deve ser reencaminhado (transitivo) a outros BGPs que falam e empareados, também, via mensagens UPDATE.
  4. Opcional não-transitivo (Optional non-transitive): São atributos que podem ou não estar presentes em implementações de BGP (opcional). Ao receber um atributo nesta categoria, o BGP que fala não deve reencaminhá-lo (não-transitivo) a outros BGPs que falam empareados.

Detalhes específicos, em particular, aqueles relacionados com a transitividade envolvem comportamentos importantes do BGP, que não estão sendo ditos neste texto. Os interessados devem recorrer às página 22/23 da RFC42711, item 5. A mesma RFC especifica erros que podem ocorrer em cada etapa da mensagem de UPDATE, sem afetar diretamente o funcionamento normal das políticas de roteamento.

Atributos do BGP representam um importante recursos/facilidade, diretamente associada às políticas de roteamento, como falamos. A categorização dos atributos é suficientemente inteligente para permitir versões competitivas entre os diversos fabricantes de roteadores. Ao mesmo tempo oferece ao administrador uma confortável posição de escolha, sob a ótica da compatibilidade.

Referências

  1. RFC4271, A Border Gateway Protocol 4 (BGP-4) Y. Rekhter, T. Li, S. Hares [January 2006] (TXT = 222702) (Obsoletes RFC1771) (Status: DRAFT STANDARD) (Stream: IETF, Area: rtg, WG: idr).

  2. RFC5701, IPv6 Address Specific BGP Extended Community Attribute Y. Rekhter [November 2009] (TXT = 9626) (Status: PROPOSED STANDARD) (Stream: IETF, Area: rtg, WG: l3vpn)

  3. RFC5668, 4-Octet AS Specific BGP Extended Community Y. Rekhter, S. Sangli, D. Tappan [October 2009] (TXT = 9017) (Status: PROPOSED STANDARD) (Stream: IETF, Area: rtg, WG: l3vpn)

  4. RFC4384, BGP Communities for Data Collection D. Meyer [February 2006] (TXT = 26078) (Also BCP0114) (Status: BEST CURRENT PRACTICE) (Stream: IETF, Area: ops, WG: grow)

  5. RFC4360, BGP Extended Communities Attribute S. Sangli, D. Tappan, Y. Rekhter [February 2006] (TXT = 24145) (Status: PROPOSED STANDARD) (Stream: IETF, Area: rtg, WG: idr)

  6. RFC3765, NOPEER Community for Border Gateway Protocol (BGP) Route Scope Control G. Huston [April 2004] (TXT = 16500) (Status: INFORMATIONAL) (Stream: INDEPENDENT)

  7. RFC1998, An Application of the BGP Community Attribute in Multi-home Routing E. Chen, T. Bates [August 1996] (TXT = 16953) (Status: INFORMATIONAL) (Stream: IETF, Area: rtg, WG: idr)

  8. RFC1997, BGP Communities Attribute R. Chandra, P. Traina, T. Li [August 1996] (TXT = 8275) (Status: PROPOSED STANDARD) (Stream: IETF, Area: rtg, WG: idr)

  9. RFC3232, Assigned Numbers: RFC 1700 is Replaced by an On-line Database J. Reynolds [ January 2002 ] (TXT = 3849) (Obsoletes RFC1700) (Status: INFORMATIONAL) (Stream: Legacy)

  10. RFC1700, Assigned Numbers J. Reynolds, J. Postel [ October 1994 ] (TXT = 458860) (Obsoletes RFC1340) (Obsoleted-By RFC3232) (Status: HISTORIC) (Stream: Legacy)

  11. IANA, Number Resources. Disponível em http://www.iana.org/numbers/. Acessado em: 11/05/2011.

  12. IANA, Protocol Registries. Disponível em http://www.iana.org/protocols/. Acessado em: 11/05/2011.

  13. RFC2042, Registering New BGP Attribute Types B. Manning [ January 1997 ] (TXT = 4001) (Status: INFORMATIONAL) (Stream: Legacy)

  14. RFC4456, BGP Route Reflection: An Alternative to Full Mesh Internal BGP (IBGP) T. Bates, E. Chen, R. Chandra [ April 2006 ] (TXT = 23209) (Obsoletes RFC2796, RFC1966) (Status: DRAFT STANDARD) (Stream: IETF, Area: rtg, WG: idr)

  15. Cisco, Border Gateway Protocol. Disponível em http://docwiki.cisco.com/wiki/Border_Gateway_Protocol#BGP_Attributes. Acessado em: 06/05/2011.

  16. Cisco, BGP Best Path Selection Algorithm. Disponível em http://www.cisco.com/en/US/tech/tk365/technologies_tech_note09186a0080094431.shtml. Acessado em: 06/05/2011.

Categorias:Atributos, BGP, Mikrotik, TCP/IP

Deixe uma resposta

Faça o login usando um destes métodos para comentar:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair / Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair / Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair / Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair / Alterar )

Conectando a %s