@McNetic: Du hast natürlich Recht, ip_conntrack ist ziemlich aktiv, sobald es geladen wurde, sorry!
Ich hab gerade mal in den Sourcen versucht nachzuvollziehen, was die Init-Funktion von ip_conntrack alles so macht. Aber im Prinzip ist es wirklich nur ein bisschen Speicher holen und eine Socket-Option registrieren. Mir sind die Auswirkungen davon allerdings noch bisschen unklar.
Die conntrack-Tabellen kann man übrigens auch via /proc auslesen, halt nur nicht manipulieren:
Code:
tonne:~# cat /proc/net/ip_conntrack
tcp 6 431999 ESTABLISHED src=192.168.8.253 dst=192.168.8.1 sport=22 dport=1277 src=192.168.8.1 dst=192.168.8.253 sport=1277 dport=22 use=1
...
Speicher wird über den SLAB-Allokator abgewickelt (oder SLOB - bin grad zu faul, genau nachzusehen, was AVM da nimmt - aber das macht idR keinen Unterschied). Die Infos bekommt man z.B. via "cat /proc/slabinfo" wobei es eine Zeile beginned mit "ip_conntrack" geben müsste, sobald das Kernel-Modul geladen ist:
Code:
tonne:~# cat /proc/slabinfo | head -n 5
slabinfo - version: 2.0
# name <active_objs> <num_objs> <objsize> <objperslab> <pagesperslab> : tunables <batchcount> <limit> <sharedfactor> : slabdata <active_slabs> <num_slabs> <sharedavail>
ip_conntrack 13 24 320 12 1 : tunables 54 27 0 : slabdata 2 2 0
Aus der Spalte <num_slabs> und <pagesperslab> kann man z.B. ablesen, wieviel Speicher gerade reserviert ist: hier 2 * 1 * 4096 (Byte/Page) => 8 kB.
Wenn ich die Sourcen richtig verstanden habe, dürften auf der Fritzbox mit 32 MB RAM max. 684kB dafür verwendet werden, weil max. 256 Objekte (buckets) verwendet werden. Vielleicht kann jmd nochmal die letzten Zeilen von "dmesg" posten, kurz nachdem das Modul via modprobe geladen wurde?! Da müsste irgendwie ne Zeile
Code:
ip_conntrack version 2.1 (1919 buckets, 15352 max) - 296 bytes per conntrack
auftauchen, wobei mich die Zahlen zur Vollständigkeit mal interessieren würden.
Um den Speicherbedarf auf das Minimalste zu drücken, könnte man auch mal noch "modprobe ip_conntrack hashsize=16" probieren, dann dürften maximal 44kB für den SLAB-Cache draufgehen.
Bin mir aber noch nicht sicher, wie die Anzahl der buckets mit der Anzahl der Verbindungen in Zusammenhang steht...