Referência de atributo da política de rota do BGP

Nesta página, mostramos exemplos de políticas de rota do BGP usando a Common Expression Language (CEL) para o Cloud Router.

Atributos de correspondência

A tabela a seguir descreve os atributos de correspondência disponíveis para políticas de rota do BGP:

Atributos

Descrição

communities

Lista de comunidades atribuídas à rota do BGP

destination

Intervalo de IP para a rota do BGP

Operações de correspondência

A tabela a seguir descreve as operações de correspondência disponíveis para políticas de rota do BGP:

Operação

Descrição

communities.matchesEvery('65001:1234')

Retorna verdadeiro se as comunidades forem um superconjunto da lista '65001:1234'.

Um community_value é um campo de 32 bits dividido em duas seções de 16 bits. Convencionalmente, os primeiros 16 bits do valor codificam o número do sistema autônomo (AS, na sigla em inglês) da rede que originou a comunidade, mas o Cloud Router não aplica essa convenção. Os segundos 16 bits do valor codificam um número exclusivo atribuído pelo AS de origem.

Restrita apenas à importação.

destination == '192.168.0.0/24'

Retorna true se uma rota do BGP corresponde a 192.168.0.0/24 (correspondência exata).

destination != '192.168.0.0/24'

Retorna true se uma rota do BGP não corresponder a 192.168.0.0/24 (correspondência exata).

destination.inAnyRange(r)

Retornará true se uma rota do BGP estiver no intervalo r, em que r é um destes:

  • Uma string com um prefixo codificado por CIDER, como 192.168.0.0/24.
  • O tipo abstrato retornado por prefix() ou um dos métodos fluentes que você pode chamar em prefix(), como longer().
  • Uma lista heterogênea em que cada elemento precisa ser um dos valores descritos anteriormente.

Negável com !.

prefix('192.168.0.0/24')

Retorna um objeto de prefixo que representa o intervalo CIDR 192.168.0.0/24, usado com destination.inAnyRange().

prefix('192.168.0.0/24').longer()

Retorna um objeto de intervalo de prefixos que é uma cópia de prefix() com o fim do intervalo definido como o valor máximo da família por endereço (/32 ou /128) e o início do intervalo definido como o comprimento do prefixo de entrada mais um.

prefix().orLonger()

Retorna um objeto de intervalo de prefixos que é uma cópia de prefix() com o fim do intervalo definido como o máximo da família por endereço do prefixo de entrada (/32 ou /128).

prefix().lengthRange(20, 30)

Retorna um objeto de intervalo de prefixos que é uma cópia de prefix(), com o início do intervalo definido como /20 e o fim definido como /30.

prefix().upTo(30)

Retorna um objeto de intervalo de prefixos que é uma cópia de prefix() com o fim do intervalo definido como /30 do prefixo de entrada.

x || y

Retornará true se x ou x for true

x e y precisam ser expressões booleanas que usam o atributo communities ou destination.

Devido às regras para operações || (OR), todas as condições são efetivamente zero ou mais operações de correspondência destination conectadas por OR.

(D0 || D1 || ... || Dm)

A tabela a seguir é um exemplo de como usar prefix para criar expressões regulares complexas em comparação com alguns fornecedores de roteadores:

Cloud Router Cisco Juniper Explicação

'192.168.0.1'

192.168.0.1

192.168.0.1

Corresponde exatamente ao prefixo 192.168.0.1/32

'192.168.0.0/24'

prefix('192.168.0.0/24')

192.168.0.0/24

192.168.0.0/24 exact

Corresponde exatamente ao prefixo 192.168.0.0/24

prefix('192.168.0.0/24').longer()

192.168.0.0/24 ge 25 le 32

192.168.0.0/24 longer

Corresponda o intervalo em 192.168.0.0/25 a 192.168.0.0/32

prefix('192.168.0.0/24').orLonger()

192.168.0.0/24 le 32

192.168.0.0/24 orlonger

Corresponda o intervalo em 192.168.0.0/24 a 192.168.0.0/32

prefix('192.168.0.0/24').lengthRange(25, 30)

192.168.0.0/24 ge 25 le 30

192.168.0.0/24 prefix-length-range /25-/30

Corresponda o intervalo em 192.168.0.0/25 a 192.168.0.0/30

prefix('192.168.0.0/24').upTo(30)

192.168.0.0/24 le 30

192.168.0.0/24 up to /30

Corresponda o intervalo em 192.168.0.0/24 a 192.168.0.0/30

Atributos de ação

A tabela a seguir descreve os atributos de ação disponíveis para políticas de rota do BGP:

Atributo

Descrição

Restrições

asPath

A lista de números do AS que a atualização de rota do BGP percorreu

Exportar e importar

communities

A lista de comunidades da rota

Somente exportação

med

Distribuidor de saídas por vários caminhos (MED, na sigla em inglês) do trajeto

Exportar e importar

Operações de ação

Na tabela a seguir, descrevemos as operações de ação disponíveis para as políticas de rotas do BGP:

Operação

Descrição

Restrições

accept()

Aceita a rota do BGP e interrompe a avaliação posterior das políticas ou dos termos de rota do BGP, incluindo qualquer ação posterior a esta.

Nenhum

drop()

Filtra a rota do BGP e interrompe a avaliação posterior das políticas ou dos termos do BGP, incluindo as ações que vêm depois dele.

Nenhum

nextPolicy()

Interrompe a execução dos termos restantes nesta política de rota do BGP (incluindo qualquer ação após o termo) e avança para a próxima política de rota do BGP aplicada (se houver).

Nenhum

asPath.prependSequence([1, 2, 3])

Adiciona uma lista de números AS ao atributo AS-PATH como uma sequência.

Os argumentos precisam ser números inteiros dentro do intervalo de 32 bits.

Nenhum

communities.add('65001:1234')

Adiciona o valor da comunidade à lista de comunidades.

O valor da comunidade pode ser uma única comunidade ou uma lista.

Todos os valores de comunidade que são comunidades particulares mapeadas com os seguintes ASNs do Google são ignorados pelo Cloud Router:

6432, 15169, 16550, 16591, 19448, 19527, 22859, 26910, 32381, 36039, 36384, 36385, 36492, 55023

Somente exportação

communities.remove('65001:1234')

Remove o valor da comunidade da lista de comunidades.

O valor da comunidade pode ser uma única comunidade ou uma lista.

Todos os valores de comunidade que são comunidades particulares mapeadas com os seguintes ASNs do Google são ignorados pelo Cloud Router:

6432, 15169, 16550, 16591, 19448, 19527, 22859, 26910, 32381, 36039, 36384, 36385, 36492, 55023

Somente exportação

communities.replaceAll('65001:1234')

Substitui a lista de comunidades pelo valor da comunidade, que pode estar vazio.

Todos os valores de comunidade que são comunidades particulares mapeadas com os seguintes ASNs do Google são ignorados pelo Cloud Router:

6432, 15169, 16550, 16591, 19448, 19527, 22859, 26910, 32381, 36039, 36384, 36385, 36492, 55023

Somente exportação

med.set(12345)

Define MED como 12345.

Nenhum