Closed JoyHusky closed 1 year ago
Этот же сервер, но ядро по-старее, всё работает:
a@a# uname -a Linux pavl-nat-1 5.10.8-arch1-1 #1 SMP PREEMPT Sun, 17 Jan 2021 22:07:13 +0000 x86_64 GNU/Linux
a@a# head -n7 /proc/net/stat/ipt_netflow ipt_NETFLOW 2.6-12-g40fefb2, srcversion D591EC4E9D437B9AA55C498; aggr llist mac nel Protocol version 5 (netflow) Timeouts: active 1800s, inactive 15s. Maxflows 2000000 Natevents enabled, count start 296, stop 281. Flows: active 0 (peak 0 reached 0d0h4m ago), mem 1250K, worker delay 30/300 [1..30] (20 ms, 0 us, 0:0 0 [cpu12]). Hash: size 160000 (mem 1250K), metric 1.00 [1.00, 1.00, 1.00]. InHash: 0 pkt, 0 K, InPDU 0, 0. Rate: 0 bits/sec, 0 packets/sec; Avg 1 min: 0 bps, 0 pps; 5 min: 0 bps, 0 pps
natevents в этом модуле не работают на ядрах >=6, подтверждаю, пытался найти проблему, но не осилил... Единственное что удалось понять, то что это условие с NULL не срабатывает, на 5 ядре - срабатывает:
static int set_notifier_cb(NET_STRUCT)
{
struct nf_ct_event_notifier *notifier;
notifier = rcu_dereference(nf_conntrack_event_cb);
if (notifier == NULL) {
в ядро 5.19 добавили новое значение для net.netfilter.nf_conntrack_events=2
и сделали его значением по умолчанию. оно означает, что пока нет netlink соединений, слушающих nat events - не создавать собственно nat events. Поэтому со свежими ядрами при установках по умолчанию модуль не работает.
sysctl net.netfilter.nf_conntrack_events=1
решает проблему
@aabc mark it resolved
Resolved by set sysctl net.netfilter.nf_conntrack_events=1
thx vvfedorenko
ipt_NETFLOW не шлёт flow-ы на указаный в destination IP, до тех пор, пока не запущу conntrack -E. В счётчике "Total x pkts" соответственно тоже по нулям, пока не запущу вышеуказанную утилиту.
uname -a
Linux nat1.pvl 6.0.10-arch2-1 #1 SMP PREEMPT_DYNAMIC Sat, 26 Nov 2022 16:51:18 +0000 x86_64 GNU/Linux
cat /proc/net/stat/ipt_netflow
ipt_NETFLOW 2.6-12-g40fefb2, srcversion D591EC4E9D437B9AA55C498; llist nel
cat /etc/modprobe.d/ipt_NETFLOW.conf
options ipt_NETFLOW hashsize=160000 sndbuf=1000000 destination=46.36.x.x:9999 protocol=5 natevents=1
установка: