ALIX 2D13 und pfSense 2.2: kern.ipc.nmbufs limit reached
-
Zugegeben: ich laste das kleine ALIX-Board ganz schön aus. VLANs, dhcpd, dnsmasq, IPSEC, ntpd, OpenVPN (1 x Server, 3 x Client), igmproxy. Das alles war unter 2.1 kein Problem. Nach einer kompletten Neuinstallation von pfSense 2.2 (das automatische Update hat leider nicht funktioniert), kann ich den Router nur noch mit abgeschaltetem IPSEC betreiben. Mit eingeschaltetem IPSEC hängt sich der Router nach einer unbestimmten Zeit komplett auf oder bootet neu.
Ein mitlaufendes minicom heute Nacht brachte Folgendes zum Vorschein:
vr1_vlan7: unable to prepend VLAN header vr1_vlan7: unable to prepend VLAN header vr1_vlan7: unable to prepend VLAN header vr1_vlan7: unable to prepend VLAN header vr1_vlan7: unable to prepend VLAN header vr1_vlan7: unable to prepend VLAN header vr1_vlan7: unable to prepend VLAN header [zone: mbuf] kern.ipc.nmbufs limit reached [zone: mbuf] kern.ipc.nmbufs limit reached [zone: mbuf] kern.ipc.nmbufs limit reached [zone: mbuf] kern.ipc.nmbufs limit reached [zone: mbuf] kern.ipc.nmbufs limit reached [zone: mbuf] kern.ipc.nmbufs limit reached [zone: mbuf] kern.ipc.nmbufs limit reached [zone: mbuf] kern.ipc.nmbufs limit reached [zone: mbuf] kern.ipc.nmbufs limit reached [zone: mbuf] kern.ipc.nmbufs limit reached [zone: mbuf] kern.ipc.nmbufs limit reached [zone: mbuf] kern.ipc.nmbufs limit reached vr1_vlan8: unable to prepend VLAN header [zone: mbuf] kern.ipc.nmbufs limit reached [zone: mbuf] kern.ipc.nmbufs limit reached [zone: mbuf] kern.ipc.nmbufs limit reached [zone: mbuf] kern.ipc.nmbufs limit reached [zone: mbuf] kern.ipc.nmbufs limit reached [zone: mbuf] kern.ipc.nmbufs limit reached [zone: mbuf] kern.ipc.nmbufs limit reached [zone: mbuf] kern.ipc.nmbufs limit reached [zone: mbuf] kern.ipc.nmbufs limit reached vr1_vlan8: unable to prepend VLAN header
Danach war der Router wieder tot. Sowohl die internen als auch die externen Interfaces reagierten nicht mal mehr auf einen Ping. Ein Login über die serielle Konsole war nicht mehr möglich.
Ein nach extern geschriebenes Syslog enthält die gleichen Fehlermeldungen:
Feb 12 03:23:10 pfsense-vpnint kernel: vr1_vlan7: unable to prepend VLAN header Feb 12 03:23:11 pfsense-vpnint kernel: vr1_vlan7: unable to prepend VLAN header Feb 12 03:23:11 pfsense-vpnint kernel: vr1_vlan7: unable to prepend VLAN header Feb 12 03:23:13 pfsense-vpnint kernel: vr1_vlan7: unable to prepend VLAN header Feb 12 03:23:14 pfsense-vpnint kernel: vr1_vlan7: unable to prepend VLAN header Feb 12 03:23:14 pfsense-vpnint kernel: vr1_vlan7: unable to prepend VLAN header Feb 12 03:23:14 pfsense-vpnint kernel: vr1_vlan7: unable to prepend VLAN header Feb 12 03:23:17 pfsense-vpnint kernel: vr1_vlan7: unable to prepend VLAN header Feb 12 03:23:18 pfsense-vpnint kernel: vr1_vlan7: unable to prepend VLAN header Feb 12 03:23:18 pfsense-vpnint kernel: vr1_vlan7: unable to prepend VLAN header Feb 12 03:23:18 pfsense-vpnint ppp: NgFuncSendQuery: can't send message: No buffer space available Feb 12 03:23:18 pfsense-vpnint ppp: [wan] can't get stats, link=0: No buffer space available Feb 12 03:23:18 pfsense-vpnint ppp: [wan_link0] LCP: peer not responding to echo requests Feb 12 03:23:18 pfsense-vpnint ppp: [wan_link0] LCP: state change Opened --> Stopping Feb 12 03:23:18 pfsense-vpnint ppp: NgFuncSendQuery: can't send message: No buffer space available Feb 12 03:23:18 pfsense-vpnint ppp: [wan] can't get stats, link=0: No buffer space available
Nun habe ich lt. Dashboard eine MBUF-Usage von 22%. Leider stehen die RRD-Graphen im Moment nicht zur Verfügung, so dass man sehen könnte, wann das Drama los geht. Ich habe jetzt erst das RRD-Backup auf eine Stunde gestellt.
Leider weiss ich nicht mehr, wo ich suchen soll :( Ich weiss auch nicht, ob wirklich IPSEC bzw. StrongSwan der Verursacher ist. Fakt ist nur, dass ohne StrongSwan die Uptime stetig steigt.
Wo könnte ich noch suchen?
-
Ahoi,
was spricht denn dagegen den jetzigen mbuf Wert auszulesen und zu erhöhen?
Zusätzlich gab es was ähnliches in der Testphase: https://forum.pfsense.org/index.php?topic=85316.msg468078#msg468078
Grüße -
was spricht denn dagegen den jetzigen mbuf Wert auszulesen und zu erhöhen?
Ich ging davon aus, dass für das ALIX eh schon alles maximal getuned ist.
Ich habe jetzt in /boot/boot.loader.local mal kern.ipc.nmbclusters=7006 und gesetzt und mit sysctl ins laufende System eingetragen. Das entspricht dem 1,5fachen Wert, welcher voreingestellt war.
Zusätzlich gab es was ähnliches in der Testphase: https://forum.pfsense.org/index.php?topic=85316.msg468078#msg468078
Dort wird allerdings davon gesprochen, dass durch fehlerhaftes Routing bzw. über OpenVPN gepushte Routen ein Loop entstehen kann, welcher das von mir beobachtete Phänomen auslöst. Im Routing der OpenVPN-Clients konnte ich keinen Fehler entdecken, das sind alles Net-to-Host Clients mit jeweils einem eigenen Subnetz. Auch der OpenVPN-Server sieht "normal" aus. Er hat ebenfalls ein eigenes Subnetz. Ob über IPSEC überhaupt Routen gepusht werden können, weiß ich bis jetzt leider nicht. Routing-Protokolle wie RIP, OSPF oder gar BGP setze ich nicht ein. Merkwürdig ist auch, dass exakt die gleiche Konfiguration mit 2.1 noch korrekt lief.
Trotzdem Danke für die schnelle Reaktion und die Tipps. Ich werde weiter testen, berichten und fragen ;)
Gruß
-
Ich habe jetzt in /boot/boot.loader.local mal kern.ipc.nmbclusters=7006 und gesetzt und mit sysctl ins laufende System eingetragen. Das entspricht dem 1,5fachen Wert, welcher voreingestellt war.
Das ist ja interessant. Ich habe noch eine pfSense 2.1.5 auf einem 2D13 laufen und hier ist der Defaultwert 8512.
Sollte das in 2.2 reduziert worden sein? Für dieselbe Hardware?Stand der Wert bei dir in der loader.conf? Bei mir steht da nämlich
kern.ipc.nmbclusters="0"
drinnen. Der tatsächliche max. Wert könnte sich also aufgrund der übrigen Konfiguration ergeben.