IP Filter (ipf) state limits

Author: | Posted in Solaris 8 Comments

Nach der Installation von Solaris ist die maximale grösse der Statetabelle sehr konservativ eingestellt. Bereits bei einem mässig ausgelastetem Server kann die maximale Anzahl von States bereits erreicht werden, was zur Folge hat, dass ipf Pakete verwirft.

root@planex:~# ipfstat | grep lost
fragment state(in):     kept 0  lost 0  not fragmented 0
fragment state(out):    kept 0  lost 0  not fragmented 0
packet state(in):       kept 33302919   lost 11264
packet state(out):      kept 8572793    lost 214808

Interessant sind hier die lost Werte. Schaut man sich die default Settings an, merkt man, dass die Einstellungen in der Tat doch recht konservativ sind:

root@planex:~# ipf -T list | grep fr_state
fr_statemax     min 0x1 max 0x7fffffff  current 4013
fr_statesize    min 0x1 max 0x7fffffff  current 5737

Um die Limite zu erhöhen, muss als erstes ipf deaktiviert werden und anschliessend wieder aktiviert werden. Zu beachten ist dabei, dass fr_statemax ca. 70% so gross ein sollte wie fr_statesize.

root@planex:~# svcadm disable ipfilter
root@planex:~# /usr/sbin/ipf -T fr_statemax=24500,fr_statesize=35000
root@planex:~# svcadm enable ipfilter

root@planex:~# ipf -T list | grep fr_state
fr_statemax     min 0x1 max 0x7fffffff  current 24500
fr_statesize    min 0x1 max 0x7fffffff  current 35000

Damit die neuen Werte auch über die Reboot-Grenze erhalten bleiben, sollte folgender Eintrag in der /usr/kernel/drv/ipf.conf stehen:

name="ipf" parent="pseudo" instance=0; fr_statemax=24500 fr_statesize=35000;

Abschliessend sollte das Device mit devfsadm konfiguriert werden:

root@planex:~# devfsadm -i ipf
Comments
  1. Posted by holzi
  2. Posted by Ihsan Dogan
  3. Posted by PaulP
  4. Posted by Stephan Mund
  5. Posted by Sharron Clemons
  6. Posted by Ihsan Dogan
  7. Posted by Lacy Wolfe
  8. Posted by Stefan Rothenbuehler

Add Your Comment