Large BGP Communities (Internet Draft)

Na semana passada estava perdido a passear “pela internet” e dei de caras com um draft IETF interessante. Este draft é do grupo Inter Domain Routing Working Group (IDR WG) e tem o nome de Large BGP Communities, actualmente na 6ª versão.

O que são?

Provavelmente já ouviu falar de BGP communities. Este atributo BGP definido no RFC 1997 é dos mais utilizados para ajudar empresas e ISPs a aplicar políticas de roteamento a um grupo de prefixos partilhando alguma propriedade em comum.

BGP communities são valores de 4 Bytes (32 bits) representados em grupos de 2 Bytes como A:B. O valor A é a representação hexadecimal dos primeiros 2 Bytes e o valor B a representação decimal dos outros 2 Bytes. É prática comum utilizar os primeiros 2 Bytes como o ASN (Autonomous System Number) e os 2 últimos para passar informação para os routers upstream (por exemplo, o valor de Local Preference a ser atribuído às rotas).

Mas há um problema com estas communities. O RFC1997 está em uso desde 1996 e desde então muita coisa mudou. Uma destas mudanças é o RFC6793 que define a capacidade dos routers utilizarem ASN de 4 Bytes (32 bits) ao invés do valor mais pequeno de 2 Bytes (16 bits).Desde o RFC6793, qualquer companhia a quem tenha sido atribuído um ASN de 4 Bytes não tem como codificar correctamente valores de BGP communities com o primeiro grupo de octetos como o seu ASN. Os 4 Bytes do ASN utilizariam por completo os 4 Bytes disponíveis nas communities e nenhuma informação adicional poderia ser incluída. Utilizar somente 2 Bytes do ASN ou ASNs privados não é recomendado dado ao potencial de colisões com ASNs de 2 Bytes existentes.

É aí que entram as “Large BGP Communities”.

Quão grande são essas tais de Large Communities?

O draft define um novo type code para o atributo, type code 32. O atributo tem 12 Bytes (3 vezes mais que as BGP communities actuais).

largebgpcommunitiesbytes

Cada valor de 12 Bytes é representado por 3 grupos de 4 Bytes como se segue:

  • Global Administrator: Deve ser o ASN tal como as communities RFC1997.
  • Local Data Part 1: Valor definido pelo operador
  • Local Data Part 2: Outro valor definido pelo operador

Uma large community deve ser representada em 3 partes: A:B:C, cada um representado como um número decimal. Por exemplo:

64496:1:2   /    64497:0:9   /    64496:64511:501   ….

Se estiver confuso, não se preocupe. Tal como as communities “originais”, Large communities não passam de números que são divididos e representados de uma forma especial em que cada porção do número recebe um significado especial. Se conhecer bem o endereçamento IPv4 já está familiarizado com este conceito. Endereços IPv4 são números de 4 Bytes (32 bits) representados como 4 grupos de números decimais (conhecidos também como octetos). A sua organização pode planear o endereçamento de tal maneira que o valor de cada octeto tenha um significado especial dentro da sua empresa.

O draft não tem utilização rígida e obrigatória para os 3 valores. É responsabilidade das organizações que fazem o peering entre elas definir o que cada valor representa. Mas geralmente, à medida que as implementações aumentam há a tendência para convergir em pelo menos um pequeno conjunto de regras comuns. Um dos autores deste draft já criou um outro draft “Usage of Large BGP Communities” (utilização das Large BGP Communities) que nos dá alguma orientação.

Este novo atributo agrada aos programadores porque é simplesmente um valor maior que as communities actuais, sem muitas extensões ou a adição de funcionalidades complexas. Os valores de ASNs de 2 Bytes são facilmente suportados simplesmente pondo os Bytes mais significados em 0 (zero) e até as communities well-known (valores com funções predefinidas) podem ser codificados como 0:0:VALOR.

Implementações

O site tem uma página dedicada ao controlo das implementações existentes deste draft. Actualmente, a maioria são de software BGP open source com um único “grande nome” na lista: Cisco Systems no IOS XR. Não encontrei qualquer informação pública nos guias de configuração referindo-se a este novo atributo mas provavelmente virá nas próximas versões de software ou SMUs (Software Maintenance Updates).

Quer saber mais?

Se quiser seguir o progresso deste documento pode seguir o site:

largebgpcommunities.net

ASNs de 4 Bytes em Angola

Cá na banda, 11 dos 42 ASNs (26%) são de 4 Bytes. O primeiro foi alocado em Agosto de 2010 e o mais recente há menos de 1 mês em Outubro de 2016 (de acordo com dados de 8/Novembro/2016).

AS 327691    11/08/2010
AS 327775    07/07/2014
AS 327788    01/09/2014
AS 327801    01/10/2014
AS 327806    13/10/2014
AS 327833    28/01/2015
AS 327918    11/08/2015
AS 327932    17/09/2015
AS 328042    12/07/2016
AS 328046    19/07/2016
AS 328085    14/10/2016

… e África?

Em África, dos 1409 ASNs alocados, 401 são ASNs de 4 Bytes. Isto são 28% de ASNs, muito próximo de 1/3!!

Para ser sincero, os números surpreenderam-me. Há motivos mais que suficientes para nos preocuparmos com este draft.

Onde consegui estes dados?

Da AFRINIC, o nosso Regional Internet Registry (RIR). Todos publicam informação dos ASN e endereços IP (v4 e v6) alocados e têm a informação disponível por FTP. É livre te consultar os dados actuais e passados em: ftp.afrinic.net/pub/stats/afrinic/.

 

——-

Large BGP Communities Internet Draft
https://tools.ietf.org/html/draft-heitz-idr-large-community

Large BGP Communities Website
http://largebgpcommunities.net/

NLNOG 2016 – Large BGP Communities – Job Snijders (Youtube)

BGP Communities Attribute
https://tools.ietf.org/html/rfc1997

An Application of the BGP Community Attribute in Multi-home Routing
https://tools.ietf.org/html/rfc1998

BGP Support for Four-Octet Autonomous System (AS) Number Space
https://tools.ietf.org/html/rfc6793

A Border Gateway Protocol 4 (BGP-4)
https://tools.ietf.org/html/rfc4271

IANA BGP Parameters
http://www.iana.org/assignments/bgp-parameters/bgp-parameters.xhtml

Afrinic extended allocation and assignment report (Latest)
http://ftp.afrinic.net/pub/stats/afrinic/delegated-afrinic-extended-latest

Understanding BGP Communities and Configuration
https://www.noction.com/blog/understanding_bgp_communities
http://www.cisco.com/c/en/us/support/docs/ip/border-gateway-protocol-bgp/28784-bgp-community.html

1 Comment Large BGP Communities (Internet Draft)

  1. Pingback: BGP Large Communities: RFC 8092 | Ignorante e Indeciso

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *