Configuração de prefix-lists: guia prático para provedores
Configuração de prefix-lists: é definir quais prefixos o provedor anuncia e quais aceita em cada sessão BGP. O mínimo é filtrar a saída para anunciar só os seus blocos e os dos clientes, e filtrar a entrada para recusar prefixos reservados, longos demais ou que não pertencem a quem anuncia.
Resumo
- A prefix-list compara cada rota com uma lista ordenada e para na primeira linha que bate.
- Sem filtro de saída, um erro pode fazer o provedor anunciar ao trânsito as rotas que recebeu de outro trânsito.
- Os modificadores le e ge definem a faixa de tamanhos de máscara que cada linha aceita.
- Listas geradas a partir do IRR acompanham cada cliente novo sem depender de edição à mão.
O que uma prefix-list faz na borda do provedor
A prefix-list é uma lista de prefixos com tamanho de máscara que o roteador usa para aceitar ou recusar rotas. Ela é a primeira barreira contra vazamento de rotas e contra anúncios que não deveriam entrar na sua rede.
O roteador compara cada rota com a lista, de cima para baixo, e para na primeira linha que bate. Se nenhuma linha bater, a rota é recusada, porque toda prefix-list termina com uma negação implícita.
Sem filtro de saída, um erro de configuração faz o provedor anunciar ao trânsito a tabela que recebeu de outro trânsito, e parte da internet passa a tentar sair por ele. A configuração de BGP para provedores começa por esses filtros, antes de qualquer ajuste de tráfego.
| Sessão | Direção | O que a lista permite |
|---|---|---|
| Trânsito e IX.br | Saída | Só os blocos do provedor e dos clientes com ASN |
| Trânsito e IX.br | Entrada | Tudo, menos reservados e prefixos longos demais |
| Cliente com ASN | Entrada | Só os blocos registrados do cliente |
| iBGP | Ambas | Normalmente sem prefix-list; o controle fica nas bordas |
O roteador de borda concentra quase todos os filtros, porque é ali que as rotas de fora encontram as de dentro. Dentro da rede, o iBGP confia no que a borda já deixou passar.
Como funciona a configuração de prefix-lists?
A configuração de prefix-lists exige duas etapas: escrever a lista com nome e sequência e aplicá-la numa sessão, numa direção. Uma lista que não está aplicada em sessão nenhuma não filtra nada.
- Nome: identifica a função, como saída para trânsito ou entrada de cliente.
- Sequência: numera as linhas com folga, para inserir regras novas no meio sem reescrever tudo.
- Ação: permit aceita a rota que bate com a linha; deny recusa.
- Aplicação: a lista entra na sessão BGP com in ou out, conforme a direção.
Numerar de 10 em 10 é um hábito simples que evita retrabalho. Quando chega um cliente novo, a linha dele entra entre as existentes sem mexer no resto.
Como funcionam os modificadores le e ge?
Sem modificador, a linha bate só com o prefixo exato. Com le e ge, ela passa a aceitar prefixos mais específicos dentro de uma faixa de tamanhos de máscara.
- 203.0.113.0/24: bate só com o /24 exato.
- 198.51.100.0/22 le 24: bate com o /22 e com qualquer /23 ou /24 dentro dele.
- 0.0.0.0/0 ge 25: bate com qualquer prefixo IPv4 de /25 a /32, útil para recusar rotas longas demais.
- 2001:db8::/32 le 48: bate com o /32 e com subdivisões até /48.
O le quer dizer menor ou igual, e o ge, maior ou igual, sempre em relação ao tamanho da máscara. Os dois podem aparecer juntos na mesma linha para definir uma faixa fechada, como de /20 a /24.
Qual o tamanho máximo de prefixo que circula
Por convenção entre as redes, o prefixo mais longo aceito na internet é /24 em IPv4 e /48 em IPv6 [CONFIRMAR]. Anúncios mais longos costumam ser descartados pelos filtros das outras redes.
Por isso a sua lista de entrada recusa o que passa desses tamanhos, e a de saída não deve anunciar nada mais longo. Se precisa de um /25 alcançável, ele não vai funcionar pela internet aberta.
Configuração de prefix-lists passo a passo
O exemplo usa endereços e ASN de documentação: o provedor tem o bloco 198.51.100.0/22 e atende um cliente com o bloco 203.0.113.0/24. A sintaxe é de Cisco IOS-XE.
- Lista de saída: permita os blocos do provedor, até /24, e os blocos dos clientes com ASN.
- Negação final explícita: termine a saída com uma linha que recusa todo o resto, para deixar a regra visível.
- Lista de entrada: recuse reservados, os próprios blocos e prefixos mais longos que /24.
- Aplicação: coloque as duas listas na sessão do trânsito, uma em cada direção.
- Limite de prefixos: configure um teto de rotas recebidas com aviso antes de chegar nele.
ip prefix-list SAIDA-TRANSITO seq 10 permit 198.51.100.0/22 le 24
ip prefix-list SAIDA-TRANSITO seq 20 permit 203.0.113.0/24
ip prefix-list SAIDA-TRANSITO seq 100 deny 0.0.0.0/0 le 32
!
ip prefix-list ENTRADA-TRANSITO seq 10 deny 0.0.0.0/8 le 32
ip prefix-list ENTRADA-TRANSITO seq 20 deny 10.0.0.0/8 le 32
ip prefix-list ENTRADA-TRANSITO seq 30 deny 100.64.0.0/10 le 32
ip prefix-list ENTRADA-TRANSITO seq 40 deny 127.0.0.0/8 le 32
ip prefix-list ENTRADA-TRANSITO seq 50 deny 172.16.0.0/12 le 32
ip prefix-list ENTRADA-TRANSITO seq 60 deny 192.168.0.0/16 le 32
ip prefix-list ENTRADA-TRANSITO seq 70 deny 198.51.100.0/22 le 32
ip prefix-list ENTRADA-TRANSITO seq 80 deny 0.0.0.0/0 ge 25
ip prefix-list ENTRADA-TRANSITO seq 1000 permit 0.0.0.0/0 le 24
!
router bgp 64500
address-family ipv4
neighbor 192.0.2.1 prefix-list SAIDA-TRANSITO out
neighbor 192.0.2.1 prefix-list ENTRADA-TRANSITO in
neighbor 192.0.2.1 maximum-prefix 1100000 90 warning-onlyA linha 70 da entrada recusa os próprios blocos vindos de fora, o que evita aceitar um sequestro do seu prefixo. A lista de reservados está incompleta de propósito; use a lista de bogons mantida por fontes públicas.
Em outros equipamentos
No RouterOS 7 o mesmo filtro vira regras em /routing/filter/rule; no Huawei VRP, ip ip-prefix. A lógica de permitir os seus blocos e negar o resto é a mesma.
Quer os filtros da borda revisados?
Na configuração de BGP, um Especialista escreve as prefix-lists de cada sessão, aplica com plano de volta e documenta o que cada linha faz.
O que o limite de prefixos protege
O maximum-prefix com warning-only avisa quando o trânsito manda mais rotas do que o esperado, sem derrubar a sessão. O número 90 indica o percentual do teto em que o aviso começa.
Em sessões com clientes, o teto deve ser baixo e derrubar a sessão de verdade. Um cliente que anuncia centenas de rotas por engano não pode encher a memória da sua borda.
Gerar as listas a partir do IRR
Listas escritas à mão envelhecem a cada cliente novo. O caminho seguro é gerar a lista a partir dos objetos de rota registrados no IRR, com revisão antes de aplicar.
- Objetos registrados: cada bloco do provedor e dos clientes precisa de objeto route ou route6 no IRR.
- As-set: o as-set reúne o seu ASN e os ASNs dos clientes.
- Geração da lista: ferramentas como o bgpq4 transformam o as-set em prefix-list no formato do seu roteador.
- Revisão e aplicação: compare a lista nova com a anterior antes de aplicar, em janela de mudança.
Os mesmos blocos também devem ter ROA no RPKI. Veja a criação de ROAs e use communities para marcar a origem de cada rota, como no guia de configuração de communities BGP.
IRR ou RPKI, qual usar para filtrar?
Os dois se completam: o IRR diz quais prefixos um ASN pode anunciar, e o RPKI confirma a origem com assinatura criptográfica. Usar só um deixa uma porta aberta.
| Fonte | O que informa | Como entra no filtro |
|---|---|---|
| IRR | Prefixos ligados a um ASN ou as-set | Gera a prefix-list de cada cliente e do trânsito |
| RPKI | ASN autorizado a originar cada prefixo | Validação de origem na entrada da sessão |
A validação de origem de rotas mostra como ligar o RPKI na borda depois que as prefix-lists estão no lugar.
Erros comuns em redes de provedores
Os erros abaixo aparecem com frequência em revisões de borda de provedores regionais. Todos têm conserto simples quando são encontrados antes de causar um vazamento.
Evite
- Sessão de trânsito sem filtro de saída, confiando só em route-map.
- Linha permit 0.0.0.0/0 le 32 no fim da lista de saída.
- Esquecer a versão IPv6 das listas.
- Aceitar prefixos mais longos que /24 em IPv4 ou /48 em IPv6 vindos da internet.
- Lista de cliente aceitando qualquer coisa porque ninguém atualizou depois da última venda.
O segundo erro é o mais perigoso, porque desfaz a lista inteira. Uma linha que permite tudo no fim transforma o filtro de saída num enfeite, e o primeiro descuido vira vazamento de rotas.
Filtros nas sessões com o IX.br
No IX.br, a sessão com o route server recebe rotas de muitos participantes ao mesmo tempo. A lista de entrada precisa da mesma disciplina das sessões de trânsito.
A lista de saída também é igual: só os seus blocos e os dos clientes. O guia de sessões com route servers detalha o que muda nessas sessões.
Checklist de validação dos filtros
Depois de aplicar, confira o que sai e o que entra em cada sessão. A conferência é rápida e evita descobrir o erro pela reclamação de outra rede.
Confira depois de aplicar as prefix-lists
- Os prefixos anunciados ao trânsito são só os seus e os dos clientes.
- O número de rotas recebidas está perto do esperado.
- Os próprios blocos não aparecem como recebidos de fora.
- Um looking glass externo mostra os seus prefixos com o seu ASN de origem.
- As listas IPv6 estão aplicadas nas sessões IPv6.
Se algum item falhar, desfaça a mudança pelo plano de volta e revise a lista com calma, fora da janela.
A Táquion Tech revisa e escreve os filtros de borda do provedor, aplica em janela combinada e deixa a lógica de cada lista documentada para a equipe.
Perguntas frequentes sobre configuração de prefix-lists
Qual a diferença entre prefix-list e route-map?
A prefix-list só compara prefixos. O route-map usa a prefix-list como condição e também muda atributos, como communities e local-preference.
Preciso de prefix-list se já tenho route-map?
É recomendado. A prefix-list aplicada direto na sessão é uma segunda barreira se alguém errar o route-map.
Posso filtrar o cliente só pelo ASN dele?
Não é suficiente. O filtro por caminho de ASNs confere quem anuncia, mas não o que é anunciado; por isso a prefix-list com os blocos do cliente continua necessária.
Com que frequência atualizar as listas?
A cada cliente com ASN novo ou bloco novo. Gerar a partir do IRR em rotina automática evita esquecimento.
Prefix-list também serve para IPv6?
Serve, mas é uma lista separada, com outra sintaxe e outros reservados. Toda sessão IPv6 precisa dos próprios filtros de entrada e de saída.
Serviços ligados a este guia
- Implantação de cache Meta para provedores BGP e roteamento
- Diagnóstico de perda de pacotes para provedores BGP e roteamento
- Implantação de cache Google para provedores BGP e roteamento
Fontes
- RFC 7454, BGP Operations and Security: recomendações de filtros de prefixos em sessões BGP.
- RFC 5737, IPv4 Address Blocks Reserved for Documentation: blocos usados nos exemplos deste guia.
- MANRS, Mutually Agreed Norms for Routing Security: boas práticas de filtragem para operadores de rede.