Puncte:4

Statisticile /proc/net/stat/nf_conntrack lipsesc pe serverul Linux

drapel aq

Din anumite motive, nu am un astfel de fișier pe serverul meu..

root@serv:~# uname -a
Linux serv 5.4.0-87-generic #98~18.04.1-Ubuntu SMP miercuri 22 sept 10:45:04 UTC 2021 x86_64 x86_64 x86_64 GNU/Linux
root@serv:~# cat /proc/net/stat/nf_conntrack
cat: /proc/net/stat/nf_conntrack: Nu există un astfel de fișier sau director

Dar conttrack-ul meu este cu siguranță activat:

root@serv:~# lsmod | grep conntr
xt_conntrack 16384 1
nf_conntrack_netlink 45056 0
nf_conntrack 139264 2 xt_conntrack,nf_conntrack_netlink
nf_defrag_ipv6 24576 1 nf_conntrack
nf_defrag_ipv4 16384 1 nf_conntrack
libcrc32c 16384 1 nf_conntrack
nfnetlink 16384 1 nf_conntrack_netlink
x_tables 45056 3 xt_conntrack,iptable_filter,ip_tables

Și conttrack -L functioneaza perfect.
Dar lnstat -f ip_conntrack arată, de asemenea, ieșirea goală.
Care este motivul? Ar trebui să inserez un modul kernel pentru ca acest fișier să apară în procfs?

Puncte:2
drapel cl
A.B

Configurația necesară relevantă necesară contratrack disponibil in /proc este CONFIG_NF_CONNTRACK_PROCFS:

CONFIG_NF_CONNTRACK_PROCFS: Furnizare listă CT în procfs (învechit)

[...]

Text de ajutor

Această opțiune permite ca lista de intrări cunoscute de conntrack să fie afișat în procfs sub net/netfilter/nf_conntrack. Acest lucru este luat în considerare învechit în favoarea utilizării instrumentului conntrack(8) care utilizează Netlink.

Nucleul lui OP pare să fi fost construit cu caracteristicile descrise în acest pachet: linux-buildinfo-5.4.0-87-generic.

Din păcate, conținutul /usr/lib/linux/5.4.0-87-generic/config din pachetul de mai sus spune:

# CONFIG_NF_CONNTRACK_PROCFS nu este setat

Deci cei doi /proc/ intrări de obicei furnizat de contratrack: /proc/net/nf_conntrack și /proc/net/stat/nf_conntrack nu va exista.

După cum arată documentația, acest lucru a fost depășit de către contratrack instrument care utilizează netlink(7) kernel API în schimb.

Majoritatea conținutului de /proc/net/stat/nf_conntrack poate fi inlocuit cu:

conttrack --count

care oferă numărul de intrări (aceasta este prima coloană de date prezentă în /proc/net/stat/nf_conntrack) și:

conttrack --stats
conttrack --stats expect

care oferă conținutul majorității celorlalte coloane disponibile în /proc/net/stat/nf_conntrack, uneori pentru (principal) contratrack masa, uneori pentru aştepta tabel, câte unul pe CPU. Câteva statistici nu par să fie disponibile în acest fel (sau ar putea fi ascunse în altă parte, sau ar fi fost depășite...).

Dacă chiar ai nevoie /proc/net/stat/nf_conntrack va trebui să comutați la un alt nucleu cu această caracteristică disponibilă sau să reconstruiți nucleul cu diferite opțiuni. Această opțiune de kernel nu mai pare să fie aleasă de Ubuntu, inclusiv în versiunile mai noi de kernel.


Pentru referință, iată un exemplu dintr-un nucleu diferit care are această opțiune și rulează cu 4 procesoare:

# cat /proc/net/stat/nf_conntrack | coloana -t
intrări conflicte găsite noi nevalide ignora șterge șterge_list inserează insert_failed drop early_drop icmp_error expect_new expect_create expect_delete search_restart
0000000A 00000092 00000000 00000000 00000276 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000016 0000000A 00000016 00002463
0000000A 00000000 00000000 00000000 00000009 00000000 00000000 00000000 00000000 00000001 00000001 00000000 000000 00000000 00000004 000000 000000EB
0000000A 00000000 00000000 00000000 00000008 00000000 00000000 00000000 00000000 00000007 00000007 00000000 000000 00000000 00000004 00000000 00000100
0000000A 00000000 00000000 00000000 00000048 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000000 00000004 000000 00000325
# conttrack -C
10
# conttrack -S
cpu=0 găsit=0 invalid=630 insert=0 insert_failed=0 drop=0 early_drop=0 error=0 search_restart=9315 
cpu=1 găsit=0 invalid=9 insert=0 insert_failed=1 drop=1 early_drop=0 error=0 search_restart=235 
cpu=2 găsit=0 invalid=8 insert=0 insert_failed=7 drop=7 early_drop=0 error=0 search_restart=256 
cpu=3 găsit=0 invalid=72 insert=0 insert_failed=0 drop=0 early_drop=0 error=0 search_restart=805 
# conttrack -S așteptați
cpu=0 expect_new=22 expect_create=10 expect_delete=22 
cpu=1 expect_new=0 expect_create=4 expect_delete=0 
cpu=2 expect_new=0 expect_create=4 expect_delete=0 
cpu=3 expect_new=0 expect_create=4 expect_delete=0 
# 
narotello avatar
drapel aq
Mulțumesc, dar unde pot găsi `noile` statistici - a patra coloană din `/proc/net/stat/nf_conntrack`? Cred că „nou” este o valoare importantă care poate fi folosită pentru a calcula valoarea CPS (conexiuni pe secundă).
narotello avatar
drapel aq
Ce înseamnă că unele valori sunt pe CPU? Se pare că tabelul de sesiune ar trebui să fie comun, adică partajat între nucleele CPU.
A.B avatar
drapel cl
A.B
Am abordat deja întrebarea dvs. explicând de ce lipsește fișierul și ce se poate face pentru a-l recupera (schimbați nucleul) și am mers dincolo. Nu am răspunsuri pregătite pentru aceste comentarii. Cu excepția faptului că traficul este împărțit între procesoare, așa că aspectul se întâmplă la fel și pentru statistici.

Postează un răspuns

Majoritatea oamenilor nu înțeleg că a pune multe întrebări deblochează învățarea și îmbunătățește legătura interpersonală. În studiile lui Alison, de exemplu, deși oamenii își puteau aminti cu exactitate câte întrebări au fost puse în conversațiile lor, ei nu au intuit legătura dintre întrebări și apreciere. În patru studii, în care participanții au fost implicați în conversații ei înșiși sau au citit transcrieri ale conversațiilor altora, oamenii au avut tendința să nu realizeze că întrebarea ar influența – sau ar fi influențat – nivelul de prietenie dintre conversatori.