Во-первых:
FreeBSD 5.3-RELEASE-p10
ipacctd: v 1.46 из портов.
NAT работает, то есть без ipacctd инет есть.
# cat /etc/rc.conf|grep ipacctd:
ipacctd_enable="YES"
ipacctd_flags="-v -w"
ipacctd_rules="rl0"
ipacctd_rule_rl0_flags="-p 10000"
# cat /etc/ipfw.conf:
/sbin/ipfw add divert natd all from any to 213.27.18.42 via rl0
/sbin/ipfw add divert 10000 all from any to 1.0.0.0/24 in via rl0
/sbin/ipfw add divert 10000 all from 1.0.0.0/24 to any out via rl0
/sbin/ipfw add divert natd all from 1.0.0.0/24 to any out via rl0
Проблема состоит в невозможности выхода в инет с машин в локалке (подсеть 1.0.0.*). В /var/log/messages имеется такое:
May 27 17:32:22 box ipacctd[533]: (port 10000) accounting started ($Revision: 1.46 $, using 'divert' socket, verbose statistic, threshold = 30000, socket buffer = 0)
Меня смущает строка socket buffer = 0. Я пробовал руками добавлять параметр -b со значением, равным kern.ipc.maxsockbuf, но это приводило к следующим ошибкам в messages:
May 27 16:48:33 box ipacctd[471]: (port 10000) setsockopt(SO_RCVBUF): No buffer space available
May 27 16:48:33 box ipacctd[471]: (port 10000) setsockopt(SO_SNDBUF): No buffer space available
Что посоветуете, как побороть?
Заранее спасибо.