Nftables - The Ip (6) Tables Successor
Nftables - The Ip (6) Tables Successor
Nftables - The Ip (6) Tables Successor
February 2016
Intro
What is nftables?
return ip_local_deliver_finish(skb);
Netfilter Framework
POSTROUTING
Local process
iptables
iptables
nftables
nftables - Kernel
nft vs iptables
No builtin tables, to create equivalent of iptables:
#!/bin/nft -f
table ip filter {
chain input { type filter hook input priority 0; }
chain forward { type filter hook forward priority 0; }
chain output { type filter hook output priority 0; }
}
table ip mangle {
chain output { type route hook output priority -150; }
}
Family overview
ebt,arp,ip,ip6tables nft
arp arptables table arp
bridge ebtables table bridge
ipv4 iptables table ip
ipv6 ip6tables table ip6
inet - table inet
netdev - table netdev
nftables nftables userspace
Named sets
Maps
Verdict maps
nft monitor
... works just like ’ip monitor’: you get text output, e.g.:
iptables TRACE
And then you need to look at dmesg to figure out whats going on.
nftables Debugging
nft trace
Future Work
High-level library for 3rd party applications
(Not) yet feature-complete
Some of the missing iptables extensions:
matches:
policy (ipsec)
rateest
rpfilter
hashlimit (work in progress)
targets:
CT
TCPMSS
RATEEST
No nfqueue or conntrack for nft bridge family so far
performance tests and optimization work
http://www.devconf.cz/feedback/325
http://wiki.nftables.org
nftables Future
iif lo accept
ip6 nexthdr icmpv6 icmpv6 type {
nd-neighbor-solicit,
echo-request, nd-router-advert,
nd-neighbor-advert } accept
counter drop
}
}