xpl route-filter NOME_DO_FILTRO
if <condição> then
<ações>
approve | finish
endif
if <condição> then
...
endif
end-filter
| Instrução | Comportamento |
|---|---|
approve |
Aceita a rota e continua para o próximo if |
finish |
Aceita a rota e para o processamento |
| (sem instrução) | Comportamento padrão — segue o fluxo |
if ip route-destination in { 10.0.0.0 24 } # prefixo inline
if ip route-destination in NOME_PREFIX_LIST # prefix-list XPL
if community matches-any { 52468:670 } # community inline
if community matches-any NOME_COMMUNITY_LIST # community-list XPL
apply local-preference 200
apply community { 52468:55768, 53013:670 } overwrite
apply community { 52468:55768 } overwrite
apply med 100
# NOTA: apply as-path overwrite NÃO existe no route-filter, apenas no route-policy
xpl ip-prefix-list NOME
10.0.0.0 24,
192.168.0.0 16 le 24
end-list
xpl community-list NOME
52468:670,
53013:1000
end-list
ATENÇÃO: Objetos XPL (ip-prefix-list, community-list) não são visíveis no route-policy tradicional.
Para usar em route-policy, criarip ip-prefixeip community-filterseparados.
apply as-path X overwritegoto next-noderoute-policy NOME permit node 0
if-match ip-prefix NOME_PREFIX
apply local-preference 200
apply as-path 53013 overwrite
goto next-node # continua para próximo node
#
route-policy NOME permit node 5
if-match community NOME_COMMUNITY
apply community 52468:55768 53013:670
apply local-preference 200
# sem goto = para aqui (permit)
#
route-policy NOME permit node 10
if-match ip-prefix OUTRA_PREFIX
apply community 52468:55768
apply local-preference 200
#
| Situação | Comportamento |
|---|---|
Node faz match + goto next-node |
Aplica e continua para próximo node |
Node faz match sem goto |
Aplica e para (permit implícito) |
| Node não faz match | Cai automaticamente para o próximo node |
| Nenhum node faz match | Rota negada implicitamente |
apply as-path 53013 overwrite # substitui todo o AS-PATH por 53013
apply as-path 53013 additive # prepend (adiciona 53013 na frente)
apply community 52468:55768 53013:670 # overwrite (padrão sem additive)
apply community 52468:55768 53013:670 additive # adiciona às existentes
ip ip-prefix NOME index 10 permit 38.226.18.0 24
ip ip-prefix NOME index 20 permit 168.232.220.0 22 le 24
ip community-filter basic NOME index 10 permit 52468:670
| XPL | route-policy |
|---|---|
if ip route-destination in {prefixo} |
if-match ip-prefix NOME (criar ip ip-prefix) |
if community matches-any {X:Y} |
if-match community NOME (criar ip community-filter) |
if ip route-destination in PFXLISTA |
if-match ip-prefix NOME (recriar como ip ip-prefix) |
approve |
goto next-node |
finish |
node sem goto (permit implícito) |
apply community {...} overwrite |
apply community X Y (sem additive = overwrite) |
apply as-path X additive |
apply as-path X overwrite (corrigir comportamento) |
~/OneDrive/Projetos de Telecom/Ufinet/conf/NE40_parcial.txtdisplay bgp routing-table 10.0.0.0 24 ← CORRETO
display bgp routing-table 10.0.0.0/24 ← ERRO: "Wrong parameter found at '^' position"
display bgp routing-table peer <IP> advertised-routes ← CORRETO
display bgp peer <IP> advertised-routes ← ERRO: "Unrecognized command"
display bgp routing-table 10.0.0.0 24
Mostra todos os paths disponíveis com Community:, AS-path, localpref, best/select.
display bgp peer <IP> verbose
Mostra Import route policy, Export route policy, Advertised total routes, Received total routes.
display route-policy NOME
Mostra cada node com matched counts — útil para confirmar se rotas estão passando.
display ip community-filter NOME
display ip community-filter # lista todos
No VRP com commit, não use undo route-policy NOME deny node N — falha com "Too many parameters".
Basta re-entrar no mesmo node: o if-match anterior é sobrescrito.
system-view
route-policy NOME deny node 100
if-match community-filter NOVA_CONDICAO ← sobrescreve o node 100 anterior
route-policy NOME permit node 150
if-match community-filter OUTRA
commit
ip community-filter advanced NOME index 20 permit 52468:1000
commit