Selfnet: Possible Bugs found in nftables

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Dear nftables-maintainers,

we are currently deploying nftables on our CGN-Linux-Machines at
Selfnet. We have about 5500 members, which we provide with internet
access (from students for students, non-profit). Since we like to
experiment and our Linux machines seemed to reach a high CPU load, we
wanted to test how much we can improve with nftables.

We used to have a quite large iptables setup ( a few 100k rules), which
we want to shorten with nftables. And improve the performance obviously.
After deploying on one of our machines, we have found a couple of things
we would like to report:

- flags interval: We have some maps (e.g. for SNAT), which are supposed
to contain IPv4-nets ( >= /31) as well as single ips ( = /32) as keys.
If we make one named map out of both (with flags interval), the single
IPs are not matched (even if /32 is explicitly given). It is however
possible to load the set (no syntax errors or such).
If we make two maps, one with nets and flags interval, one with ips and
no flags, everything works as expected. According to the wiki for sets,
with flags interval, the set/map "contains intervals". Is it, that a
subnet can be seen as an interval, but a single ip cannot and it
therefore just never matches? Is this expected?

- counters: In our iptables setup, we use the counters to count the
traffic of our users. We want to do the same in nftables. We therefore
created a bunch of named counters (it's about 22k of them) and a map
mapping a certain subnet/ip to the counter name. When we load the rules
with "nft -f", there seems to be a delay of some seconds, where no more
packets are processed. Since we do this frequently, these are frequent
outages of our entire network and this is unacceptable for us. When we
comment the counters and the map, the delay is gone.

Currently, the ruleset looks like this:

add chain inet filter FORWARD { type filter hook forward priority 0;
policy accept; }

add map inet filter inipvnrmap { type ipv4_addr : counter; flags interval;}
add map inet filter outipvnrmap { type ipv4_addr : counter; flags interval;}

add rule inet filter FORWARD counter name ip daddr map @inipvnrmap
add rule inet filter FORWARD counter name ip saddr map @outipvnrmap

... repeat lots of times with different numbers and ips ...
add counter inet filter INV4-VNR12345
add counter inet filter OUTV4-VNR12345
add element inet filter inipvnrmap { 100.65.12.0/28 : "INV4-VNR12345" }
add element inet filter outipvnrmap { 100.65.12.0/28 : "OUTV4-VNR12345" }
... end repeat ...

Any suggestions, if this can be improved or where we go wrong, that we
experience this delay?

Thank you very much for your help!
Jann

Selfnet e.V.
Allmandring 8A U2, 70569 Stuttgart
E-Mail: jann.haber@xxxxxxxxxx
Internet: http://www.selfnet.de

-- 
Selfnet e.V.
Vorstand: Steffen Oesterwind (1. Vorsitzender), Lukas Kramer (2.
Vorsitzender), Tobias Tröps (Kassenwart), Jonas Burgdorf (1. Beisitzer),
Maximilian Weiblen (2. Beisitzer)
Vereinsregister: Amtsgericht Stuttgart VR 6375
Sitz des Vereins: Stuttgart



[Index of Archives]     [Netfitler Users]     [LARTC]     [Bugtraq]     [Yosemite Forum]

  Powered by Linux