É realmente doloroso usar nftable. Eu tenho uma tabela ipv4 e uma cadeia de entrada nela.
table ip filter { # handle 7
chain input { # handle 1
type filter hook input priority 0; policy accept;
ip daddr 192.168.0.102 counter packets 697173 bytes 850761603 # handle 5
ip saddr 192.168.0.100 counter packets 38 bytes 4096 # handle 6
}
}
Mas como posso redefinir o contador para o identificador 5?
Que eu saiba não é possível redefinir um contador anônimo (mesmo problema que não é possível redefinir uma cota anônima , veja no final).
Contadores nomeados
Testado com nftables 0.9.0. Requerido: nftables >= 0.8 e kernel >= 4.10.
O que pode ser feito é usar contadores nomeados , que são um dos (atualmente) três objetos com estado possíveis : counter , (conntrack) helper e quota . Esses contadores nomeados podem ser referenciados a partir de regras. Um determinado contador nomeado é anexado a uma tabela. O conjunto de regras do OP pode ser escrito assim:
Com um comando nft manual , o contador nomeado é criado assim, opcionalmente com valores diferentes de zero definidos:
Agora, pode-se listar ou redefinir esses contadores nomeados:
Como esperado, o comando reset irá listar e redefinir atomicamente o contador fornecido.
Também é possível zerar todos os contadores na mesa (ou em todas as mesas se nenhuma mesa for fornecida):
Referência: objetos com estado - wiki nftables
que fala sobre contadores e cotas. Há um bug vinculado relacionado a não ser possível redefinir uma cota anônima, mesmo redefinindo todas as cotas. Pode-se supor que é exatamente o mesmo problema com contadores: não disponível em janeiro de 2019 (e na data desta resposta):
Bug 1314 - as cotas de redefinição nft não redefinem cotas anônimas