Isso não funciona (via systemd restart nftables, que deve carregar /etc/nftables.conf
):
cat /etc/nftables.d/forward/example.conf
meta oifname "eth2" ip daddr 5.6.7.8/30 accept
^^^^^^^^^^^^^^^^^^^ ~~~~
Error: Statement after terminal statement has no effect
Mas isso também não funciona:
ip daddr 5.6.7.8/30 meta oifname "eth2" accept
^^^^^^^^^^^^^^^^^^^ ~~~~
Error: Statement after terminal statement has no effect
Nem isso (usando um exemplo de concatenação)
ip daddr . meta oifname {5.6.7.8/30 . "eth2"} accept
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
Error: Statement after terminal statement has no effect
Nota: Conteúdo de /etc/nftables.conf:
#!/usr/sbin/nft -f
flush ruleset
table inet filter {
chain input {
type filter hook input priority filter;
}
chain forward {
type filter hook forward priority filter;
include "/etc/nftables.d/forward/*.conf"
}
chain output {
type filter hook output priority filter;
}
}
Como faço as duas coisas, o que seria necessário se esse intervalo de IP não for sempre roteado para eth2 (rotas de política, por exemplo) e eth2 não contiver apenas esse intervalo de IP?
Eu encontrei o problema (finalmente). Terminações de linha do DOS . Eu não tinha corrigido todos os arquivos e tentei diferentes notações encontradas em guias (que estavam erradas).
/r/n
é invisível, mas/r
é claro que é um símbolo 'antes' do final da linha. O nftables não gosta/r
e tenta lê-lo como um símbolo de sintaxe, depois reclama que há 'algo extra' após o final da regra.