[ANNOUNCE] nftables 0.9.8 release

From: Pablo Neira Ayuso <pablo@netfilter.org>
Date: 2021-01-15 22:00:29
Also in: netfilter-devel

Hi!

The Netfilter project proudly presents:

        nftables 0.9.8

This release contains fixes, documentation updates and new features
available up to the Linux kernel 5.11-rc1 release.

* Complete support for matching ICMP header content fields.

  ... icmp type { echo-reply, echo-request} icmp id 1 icmp sequence 2
  ... icmpv6 type packet-too-big icmpv6 mtu 1280

* Add raw tcp option match support

  ... tcp option @42,16,4

  where you can specify @kind,offset,length

* Allow to check for the presence of any tcp option

  ... tcp option 42 exists

* Support for reject traffic from the ingress chain:

  table netdev x {
      chain y {
            type filter hook ingress device eth0 priority 0; policy accept;

            tcp dport 22 reject with tcp reset
      }
  }

* Optimized bytecode generation for prefix match

# nft --debug=netlink x y ip saddr 192.168.2.0/24
ip
  [ payload load 3b @ network header + 12 => reg 1 ]
  [ cmp eq reg 1 0x0002a8c0 ]

Resulting in two instructions instead of three (bitwise is removed on
byte-boundaries).

* Support for several statements per set element. The example below
  updates a set from the packet path (dynamic set), and it shows how
  to ratelimit first then count packets that go through per set element.

  table ip x {
       set y {
               type ipv4_addr
               size 65535
               flags dynamic,timeout
               timeout 1h
       }

       chain z {
               type filter hook output priority filter; policy accept;
               update @y { ip daddr limit rate 1/second counter }
       }
  }

  You can also use the multi-statement support for (non-dynamic) sets.

  table ip x {
       set y {
               type ipv4_addr
               limit rate 1/second counter
               elements = { 1.1.1.1, 4.4.4.4, 5.5.5.5 }
       }

       chain y {
               type filter hook output priority filter; policy accept;
               ip daddr @y
       }
  }

  In this case, you can add new elements from the control plane:

  # nft add element x y { 6.6.6.6 }

  which run the specified rate limit and counter statements.

  This requires a Linux kernel >= 5.11-rc1.

* editline support for nft -i (CLI), you can enable it at compile time:

        ./configure --with-cli=editline

You can download this new release from:

https://www.netfilter.org/projects/nftables/downloads.html#nftables-0.9.8

To build the code, libnftnl >= 1.1.9 and libmnl >= 1.0.4 are required:

* https://netfilter.org/projects/libnftnl/index.html
* https://netfilter.org/projects/libmnl/index.html

Visit our wikipage for user documentation at:

* https://wiki.nftables.org

For the manpage reference, check man(8) nft.

In case of bugs and feature request, file them via:

* https://bugzilla.netfilter.org

Happy firewalling.

Attachments

Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help