Ao configurar uma cadeia no nftables, é necessário fornecer um priority
valor. Quase todos os exemplos online definem um piority
de 0; às vezes, um valor de 100 é usado com certos hooks ( output
, postrouting
).
O wiki nftables tem a dizer :
A prioridade pode ser usada para ordenar as cadeias ou colocá-las antes ou depois de algumas operações internas do Netfilter. Por exemplo, uma cadeia no gancho de pré-roteamento com prioridade -300 será colocada antes das operações de rastreamento de conexão.
Para referência, aqui está a lista de diferentes prioridades usadas no iptables:
- NF_IP_PRI_CONNTRACK_DEFRAG (-400): prioridade de desfragmentação
- NF_IP_PRI_RAW (-300): prioridade tradicional da tabela bruta colocada antes da operação de rastreamento de conexão
- NF_IP_PRI_SELINUX_FIRST (-225): operações SELinux
- NF_IP_PRI_CONNTRACK (-200): operações de rastreamento de conexão
- NF_IP_PRI_MANGLE (-150): operação mangle
- NF_IP_PRI_NAT_DST (-100): destino NAT
- NF_IP_PRI_FILTER (0): operação de filtragem, tabela de filtros
- NF_IP_PRI_SECURITY (50): Local da tabela de segurança onde secmark pode ser definido por exemplo
- NF_IP_PRI_NAT_SRC (100): fonte NAT
- NF_IP_PRI_SELINUX_LAST (225): SELinux na saída do pacote
- NF_IP_PRI_CONNTRACK_HELPER (300): rastreamento de conexão na saída
Isso afirma que a priority
interação dos controles com as operações internas do Netfilter, mas apenas menciona os valores usados pelo iptables como exemplos.
Em que casos é priority
relevante (ou seja, tem de ser definido para um valor ≠ 0)? Apenas para várias correntes com o mesmo gancho? Que tal combinar nftables e iptables? Quais operações internas do Netfilter são relevantes para determinar o priority
valor correto?