2016-07-02 27 views
0

Zum Beispiel, ich habe zwei Tabellen:Wie ist die Reihenfolge der Tabellen/Ketten in Nftables angeordnet?

table inet filter2 { 
    chain forward { 
    type filter hook forward priority 0; policy accept; 
    ct state established,related accept 
    iifname $wireif oifname $wirelessif accept 
    } 
} 

table inet filter { 
    chain forward { 
    type filter hook forward priority 0; policy accept; 
    drop 
    } 
} 

Die filter zuerst ausgeführt wird, so dass alle meine Vorwärts-Pakete fallen gelassen werden, die nicht das, was ich will. Wie kann ich eine Tabelle/Kette so einrichten, dass sie als Standardoption ausgeführt wird?

Antwort

1

Nftables verwendet das zugrundeliegende Netfilter-Framework, das sich an verschiedenen Stellen im Linux-Kernel-Netzwerkstack befindet, has 6 hooks points.

Wenn eine oder mehrere Regeln bei gleichen Hook-Point-Netfilter-Rahmenprioritäten hinzugefügt werden, gelten die Regeln unter priority type.

Zum Beispiel in Ihrem Fall beim Hinzufügen von Kette können Sie verschiedene Prioritätstyp für jede Kette verwenden. Können sagen, Sie höhere Priorität geben wollen forward chain von

definiert rule

filter table als forward chain von filter2 table

.

nft add table ip filter2

nft add chain ip filter2 forward {type filter hook forward priority 0 \;}

nun höhere Priorität forward chain von filter Tabelle assign Priorität geben weniger als 0.

nft add table inet filter

nft add chain inet filter '{type filter hook forward priority -1 }'

Hier bedeutet höhere Priorität niedrigere Priorität und umgekehrt.

Seien Sie jedoch vorsichtig, wenn Sie einen anderen Prioritätstyp verwenden, da dies zu unbeabsichtigtem Verhalten des Pakets führen kann. Für weitere Informationen lesen Sie this

PS: Es gibt leichte different syntax for negative priority.

+0

Wenn die Frage gestellt wurde, war die Priorität nicht implementiert (obwohl wir sie spezifizieren können, es funktioniert einfach nicht). Trotzdem werde ich deine Antwort akzeptieren. Vielen Dank! –