Como o BGP "AS_SET" é usado?

11

O RFC 1771 define um tipo de atributo de caminho de AS_PATH da seguinte maneira:

AS_PATH (Type Code 2):

AS_PATH is a well-known mandatory attribute that is composed
of a sequence of AS path segments. Each AS path segment is
represented by a triple <path segment type, path segment
length, path segment value>.

The path segment type is a 1-octet long field with the
following values defined:

Value Segment Type
1 AS_SET:      unordered set of ASs a route in the
               UPDATE message has traversed
2 AS_SEQUENCE: ordered set of ASs a route in
               the UPDATE message has traversed

Usar um tipo AS_PATH de AS_SEQUENCE faz todo sentido: você acaba com uma lista inversa dos ASNs que você cruza para chegar a um prefixo específico.

No entanto, não tenho idéia de qual finalidade ter uma lista não ordenada de ASNs entre você e o prefixo que ocorreria se você optar por usar um AS_PATH de AS_SET.

A citação acima é do formato de mensagem UPDATE; portanto, presumivelmente, um administrador tem a opção de enviar aos pares do BGP uma lista ordenada ou não ordenada. Minha pergunta então é: qual seria o objetivo de enviar uma lista não ordenada ? Em que casos você estaria melhor enviando uma lista não ordenada em vez de uma lista ordenada?

Eddie
fonte

Respostas:

12

Minha pergunta então é: qual seria o objetivo de enviar uma lista não ordenada? Em que casos você estaria melhor enviando uma lista não ordenada em vez de uma lista ordenada?

as-seté comumente usado ao agregar rotas a jusante de um sistema autônomo; portanto, o caso de uso para uma lista não ordenada é a agregação de bgp .

EXEMPLO :

No exemplo abaixo, o AS65500 agrega os anúncios do eBGP do AS65000 e do AS65001 em 10.1.0.0/23. Após agregar os anúncios do AS65000 e do AS65001, o AS65500 envia NETWORK: 10.1.2.0/23 AS-PATH: 65500e NETWORK: 10.1.0.0/23 AS-PATH: 65500 {65000, 65001}(o agregado). Normalmente, um AS será agregado quando delegar partes de um bloco de endereços maior aos clientes.

Não faz sentido criar uma lista ordenada quando você agrega espaço para vários ASNs; por exemplo, um AS-PATH ordenado para o agregado abaixo seria 65500 [65000, 65001]ou 65500 [65001, 65000]. No entanto, ambas as listas ordenadas não fazem sentido porque a ordem é irrelevante para o agregado (ou seja, ambos os sistemas autônomos estão diretamente conectados ao AS 65500). Ordenação implica uma sequência que não faz sentido para o agregado.

Listas não ordenadas (isto é, conjuntos matemáticos ) fazem mais sentido para um AS_SET.

          _.------------.
      ,-''               `--.
    ,'                       `.
   (         AS65000           )
    `.       10.1.0.0/24     ,'
      `--.               _.-'
          `------------''
                    \          ------> NETWORK: 10.1.2.0/23   AS-PATH: 65500
                     \         ------> NETWORK: 10.1.0.0/23   AS-PATH: 65500 {65000, 65001}
           _.--------------.        router bgp 65500
       ,-''                 `--.     no sync
     ,'                         `.   no auto-summary
    (          AS65500             ) neighbor 10.1.0.2 remote-as 65000
     `.        10.1.2.0/23      ,'   neighbor 10.1.1.2 remote-as 65001
       --.                 _.-'      network 10.1.2.0 mask 255.255.254.0
           `--------------''         aggregate-add 10.1.0.0 255.255.254.0 summary-only as-set
                    /
                   /
          _.--------------.
      ,-''                 `--.
   ,'                         `.
  (           AS65001           )
   `.         10.1.1.0/24     ,'
     `--.                 _.-'
         `--------------''
Mike Pennington
fonte