pf can't get memory for tables
Scott Bennett
bennett at sdf.org
Fri Feb 17 09:19:26 UTC 2017
[I forgot to send a copy to the list of my response to Doug Hardie,
so I'm posting it now. --SB]
Doug Hardie <doug at sermon-archive.info> wrote:
Thank you very much for your quick reply!
>
> > On 15 February 2017, at 22:12, Scott Bennett <bennett at sdf.org> wrote:
> >
> > I have a rather long list of IP addresses and address ranges in a file
> > loaded by pf for reference by a block rule. After the latest addition of a
> > batch of addresses to be blocked, I got an error when I tried to reload the
> > file into the table in pf.
> >
> > hellas# pfctl -f /ztmp3c/pf/pfbnew -t Crackers -T replace
> > pfctl: Cannot allocate memory.
> > hellas#
> >
> > What value can I increase to accommodate pf, so that it can reload the table?
> > (Stopping and restarting pf also fails with the same error message.) I expect
> > to continue adding more addresses into the foreseeable future, so I have to
> > be able to continue to satisfy pf's needs.
>
> I believe you are hitting the table-entries hard limit. See Peter N M Hansteen's "The Book of PF" for details. The 3rd edition is available here:
>
> https://pdf.k0nsl.org/C/Computer%20and%20Internet%20Collection/2015%20Computer%20and%20Internet%20Collection%20part%201/No%20Starch%20Press%20The%20Book%20of%20PF,%20A%20No-Nonsense%20Guide%20to%20the%20OpenBSD%20Firewall%203rd%20(2015).pdf
>
> Good luck with that URL. I found it by searching for his name and the book name. That might be easier than trying to enter that URL.
"Copy + paste" worked fine. :-)
>
> Anyway, this is addressed in Section 10 in the Limits section. The limits are changeable quite easily, but there are significant concerns with such. The book addresses those better than I can.
>
Thank you ever so much for both the book link and the suggestion as to
where in the book to look. I suspect that the table-entries limit is indeed
part of the problem, and yes, I had definitely forgotten about those limit
values in pf. I upped the table-entries limit to 300000 and tried again.
It failed in the same place in /etc/pf.conf, but it took slightly longer to
do so--this slight increase is repeatable--with the higher limit. After
puzzling over this turn of events on my screen for several seconds...aha!
The machine has only 4 GB of RAM, so a long while back I added
vm.kmem_size_max=805306368
to /boot/loader.conf in order to limit the tendency at the time for ZFS to
take over everything with a growing ARC. Unfortunately, vm.kmem_size_max
is one of those tunables that can only be set at boot time, so I can't easily
experiment with increasing the value. However, I am finally going to order
a couple of larger DIMMs tomorrow with a bit of luck, so I should be able to
greatly increase vm.kmem_size_max sometime next week and then see what happens.
Again, thank you for the information. I don't know whether I would ever
have thought to look at limits in /etc/pf.conf otherwise.
Scott Bennett, Comm. ASMELG, CFIAG
**********************************************************************
* Internet: bennett at sdf.org *xor* bennett at freeshell.org *
*--------------------------------------------------------------------*
* "A well regulated and disciplined militia, is at all times a good *
* objection to the introduction of that bane of all free governments *
* -- a standing army." *
* -- Gov. John Hancock, New York Journal, 28 January 1790 *
**********************************************************************
More information about the freebsd-questions
mailing list