Форум программистов, компьютерный форум, киберфорум
FreeBSD
Войти
Регистрация
Восстановить пароль
 
 
Рейтинг 4.70/30: Рейтинг темы: голосов - 30, средняя оценка - 4.70
10 / 10 / 2
Регистрация: 11.01.2013
Сообщений: 153
1

Unbound: No buffer space available

25.02.2014, 19:53. Просмотров 5720. Ответов 25
Метки нет (Все метки)


Имеется Unbound 1.4.21 module Iterator.
Обслуживает абонентскую сеть, в логи сыпятся сообщения вида:

HTML5
1
2
unbound[8221:0] notice: sendto failed: No buffer space available
unbound[8221:0] notice: remote address is 10.10.10.91 port 50051
Всё как бы работает, пробелов в работе днса я не вижу, но таких сообщений тонны.
Гуглить пробовал, ничего толкового не нашёл.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.02.2014, 19:53
Ответы с готовыми решениями:

Где ошибка: ClearBuffer(Buffer,sizeof(Buffer)); WRITE(Buffer,test,20,ALL);
Cho ne pravilno v sledyushem code: #define ALL; ........ ClearBuffer(Buffer,sizeof(Buffer));...

Маппирование памяти из user space в system space
В драйвер передается указатель из приложения, который указывает на область памяти в приложении....

Fwrite (buffer , sizeof(char), sizeof(buffer), pFile)
как записать часть массива чаров? допустим у нас arr; мне надо записать с позиции массива 500 до...

Variable is unbound
Всем привет. Имеем тривиальный Erlang код. -module( test ). -export( ). format_temp( ) ->...

25
115 / 105 / 2
Регистрация: 07.09.2011
Сообщений: 413
26.02.2014, 08:33 2
[-] в каментах глянь, там вроде допилили проблему
0
10 / 10 / 2
Регистрация: 11.01.2013
Сообщений: 153
19.03.2014, 01:47  [ТС] 3
Как раз ничего не помогло.
Памяти в unbound хватает на всех.
Кто что ещё подскажет?
0
222 / 180 / 5
Регистрация: 12.01.2009
Сообщений: 1,095
19.03.2014, 11:10 4
L1ght13aby, посмотри нагрузку на сетевую карту, статистику по очередям, статистику по буферам. Если увидишь переполнение , то гугли какие настройки из sysctl могут увеличить размер данных буферов/очередей или попробуй сменить сетевую карту на получше.

Более геморройный вариант: запустить unbound через ktrace и смотреть по логам что там не так.
0
10 / 10 / 2
Регистрация: 11.01.2013
Сообщений: 153
19.03.2014, 23:59  [ТС] 5
Сетевая карта портовая intel pro/1000 pt dual port server adapter, менять тоже пробовал.
Увеличить буфер по udp можно только на приём, а именно:
Кликните здесь для просмотра всего текста
net.inet.udp.recvspace

Получается есть NAS на FreeBSD, который выпускает абонентов в интернет.
Авторизация - PPPoE, шейпит dummynet и ipfw nat, в общем вполне стандартно.
Порты для абонентов не закрыты.
На нём крутится unbound, до это был bind.
В логи сыпалось примерно тоже самое, что-то из разряда:
Кликните здесь для просмотра всего текста
Not enough free resources

Пытался менять буферы в sysctl, но результат особо не менялся.
Могу привести весь sysctl.conf если надо.
А по возможности ткните носом какие буферы проверить.
Буду очень благодарен.
0
222 / 180 / 5
Регистрация: 12.01.2009
Сообщений: 1,095
20.03.2014, 15:11 6
L1ght13aby, попробуй
Bash
1
netstat -m
или
Bash
1
vmstat -z |grep buf
Добавлено через 1 час 7 минут
L1ght13aby, и еще уточни, стоит ли фаерволл, не заполнен ли канал от dns до того, куда он воткнут, нормально ли на той стороне определяется режим работы порта ? (half/full duplex, 10/100/1000)
0
10 / 10 / 2
Регистрация: 11.01.2013
Сообщений: 153
20.03.2014, 22:15  [ТС] 7
Тут немного не так.
Unbound использует named.cache что бы общаться с корневыми серверами напрямую.
Сам он работает как кеширующий рекурсивный dns сервер.
Вся сеть абонентов направлена на него.
Кеш у него живет минуту, что бы небыло проблем с ресурсами типо rutor.org, у которых ip может менятся.

vmstat -z |grep buf
Кликните здесь для просмотра всего текста
mbuf_packet: 256, 0, 8453, 2811,2507455563, 0, 0
mbuf: 256, 0, 1641, 2455,3867793535, 0, 0
mbuf_cluster: 2048, 60000, 11264, 326, 15592, 0, 0
mbuf_jumbo_page: 4096, 19712, 0, 135, 48372, 0, 0
mbuf_jumbo_9k: 9216, 9856, 0, 0, 0, 0, 0
mbuf_jumbo_16k: 16384, 4928, 0, 0, 0, 0, 0
mbuf_ext_refcnt: 4, 0, 0, 609, 35385, 0, 0


netstat -m
Кликните здесь для просмотра всего текста
10043/5317/15360 mbufs in use (current/cache/total)
8400/3190/11590/60000 mbuf clusters in use (current/cache/total/max)
8400/2864 mbuf+clusters out of packet secondary zone in use (current/cache)
0/135/135/19712 4k (page size) jumbo clusters in use (current/cache/total/max)
0/0/0/9856 9k jumbo clusters in use (current/cache/total/max)
0/0/0/4928 16k jumbo clusters in use (current/cache/total/max)
19365K/8249K/27614K bytes allocated to network (current/cache/total)
0/0/0 requests for mbufs denied (mbufs/clusters/mbuf+clusters)
0/0/0 requests for jumbo clusters denied (4k/9k/16k)
0/132/10112 sfbufs in use (current/peak/max)
0 requests for sfbufs denied
0 requests for sfbufs delayed
427 requests for I/O initiated by sendfile
0 calls to protocol drain routines


К сожалению слишком много на одной машине задач. Но имеем то что имеем.
Фаер стоит - ipfw. Для абонентов для обращения к нему никаких ограничений нет.
Сетевая работает в режиме:
Кликните здесь для просмотра всего текста
ifconfig em1
em1: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> metric 0 mtu 1500
options=98<VLAN_MTU,VLAN_HWTAGGING,VLAN_HWCSUM>
ether 00:1b:78:5b:9a:89
inet 192.168.12.1 netmask 0xffffff00 broadcast 192.168.12.255
inet6 fe80::21b:78ff:fe5b:9a89%em1 prefixlen 64 scopeid 0x2
inet 192.168.14.1 netmask 0xffffff00 broadcast 192.168.14.255
inet 192.168.17.1 netmask 0xffffff00 broadcast 192.168.17.255
inet 192.168.20.1 netmask 0xffffff00 broadcast 192.168.20.255
inet 192.168.34.1 netmask 0xffffff00 broadcast 192.168.34.255
inet 192.168.35.1 netmask 0xffffff00 broadcast 192.168.35.255
inet 172.16.0.1 netmask 0xffffff00 broadcast 172.16.0.255
inet 172.16.1.1 netmask 0xffffff80 broadcast 172.16.1.127
inet 172.16.2.1 netmask 0xffffff80 broadcast 172.16.2.127
inet 172.16.3.1 netmask 0xffffff80 broadcast 172.16.3.127
inet 172.16.4.1 netmask 0xffffff80 broadcast 172.16.4.127
nd6 options=29<PERFORMNUD,IFDISABLED,AUTO_LINKLOCAL>
media: Ethernet autoselect (1000baseT <full-duplex>)
status: active


Добавлено через 18 минут
Вот конфиги unbound:
Кликните здесь для просмотра всего текста
# The server clause sets the main parameters.
server:
# whitespace is not necessary, but looks cleaner.

# verbosity number, 0 is least verbose. 1 is default.
verbosity: 1

# print statistics to the log (for every thread) every N seconds.
# Set to "" or 0 to disable. Default is disabled.
statistics-interval: 0

# enable cumulative statistics, without clearing them after printing.
statistics-cumulative: no

# enable extended statistics (query types, answer codes, status)
extended-statistics: yes

# number of threads to create. 1 disables threading.
num-threads: 1

# specify the interfaces to answer queries from by ip-address.
interface: 127.0.0.1@53
interface: xxx.xxx.xxx.xxx@53
interface: 172.16.0.1@53

# port to answer queries from
port: 53

# specify the interfaces to send outgoing queries to authoritative
outgoing-interface: xxx.xxx.xxx.xxz
outgoing-interface: xxx.xxx.xxx.xxy
outgoing-interface: xxx.xxx.xxx.xxx

# number of ports to allocate per thread, determines the size of the
# port range that can be open simultaneously. About double the
# num-queries-per-thread, or, use as many as the OS will allow you.
outgoing-range: 512

# permit unbound to use this port number or port range for
# making outgoing queries, using an outgoing interface.
outgoing-port-permit: 50000-65000

# deny unbound the use this of port number or port range for
outgoing-port-avoid: "3200-3208"

# number of outgoing simultaneous tcp buffers to hold per thread.
outgoing-num-tcp: 10

# number of incoming simultaneous tcp buffers to hold per thread.
incoming-num-tcp: 10
# buffer size for UDP port 53 incoming (SO_RCVBUF socket option).
# 0 is system default. Use 4m to catch query spikes for busy servers.
so-rcvbuf: 4m

# buffer size for UDP port 53 outgoing (SO_SNDBUF socket option).
# 0 is system default. Use 4m to handle spikes on very busy servers.
so-sndbuf: 4m

# EDNS reassembly buffer to advertise to UDP peers (the actual buffer
# is set with msg-buffer-size). 1480 can solve fragmentation (timeouts).
edns-buffer-size: 1480

# buffer size for handling DNS data. No messages larger than this
# size can be sent or received, by UDP or TCP. In bytes.
msg-buffer-size: 65552

# the amount of memory to use for the message cache.
msg-cache-size: 16m

# the number of slabs to use for the message cache.
msg-cache-slabs: 4

# the number of queries that a thread gets to service.
num-queries-per-thread: 128

# the amount of memory to use for the RRset cache.
rrset-cache-size: 32m

# the number of slabs to use for the RRset cache.
rrset-cache-slabs: 4

cache-min-ttl: 60

# the time to live (TTL) value cap for RRsets and messages in the
# cache. Items are not cached for longer. In seconds.
cache-max-ttl: 1800

# the time to live (TTL) value for cached roundtrip times, lameness and
# EDNS version information for hosts. In seconds.
infra-host-ttl: 60

# the number of slabs to use for the Infrastructure cache.
infra-cache-slabs: 4

# the maximum number of hosts that are cached (roundtrip, EDNS, lame).
infra-cache-numhosts: 10000

# Enable IPv4, "yes" or "no".
do-ip4: yes

# Enable IPv6, "yes" or "no".
do-ip6: no

# Enable UDP, "yes" or "no".
do-udp: yes

# Enable TCP, "yes" or "no".
do-tcp: yes

# Detach from the terminal, run in background, "yes" or "no".
do-daemonize: yes
# control which clients are allowed to make (recursive) queries
access-control: 0.0.0.0/0 refuse
access-control: ::0/0 refuse
access-control: ::1 refuse
access-control: 127.0.0.0/8 allow
access-control: 192.168.0.0/16 allow
access-control: 172.16.0.0/19 allow
access-control: 10.0.0.0/8 allow
access-control: xxx.xxx.xxx.xxx/29 allow

# If you give "" no chroot is performed. The path must not end in a /.
chroot: "/usr/local/etc/unbound"

# if given, user privileges are dropped (after binding port),
# and the given username is assumed. Default is user "unbound".
# If you give "" no privileges are dropped.
username: "unbound"

# the working directory. The relative files in this config are
# relative to this directory. If you give "" the working directory
# is not changed.
directory: "/usr/local/etc/unbound"

# the log file, "" means log to stderr.
# Use of this option sets use-syslog to "no".
logfile: "/usr/local/etc/unbound/dns.log"

# Log to syslog(3) if yes. The log facility LOG_DAEMON is used to
# log to, with identity "unbound". If yes, it overrides the logfile.
use-syslog: no

# the pid file. Can be an absolute path outside of chroot/work dir.
pidfile: "/usr/local/etc/unbound/unbound.pid"

# file to read root hints from.
# get one from ftp://FTP.INTERNIC.NET/domain/named.cache
root-hints: "/usr/local/etc/unbound/named.cache"

# enable to not answer id.server and hostname.bind queries.
hide-identity: yes

# enable to not answer version.server and version.bind queries.
identity: "DNS"

# the version to report. Leave "" or default to return package version.
version: ""

# Harden against out of zone rrsets, to avoid spoofing attempts.
harden-glue: yes

do-not-query-localhost: no

# module configuration of the server. A string with identifiers
module-config: "iterator"

remote-control:
control-enable: yes
control-interface: 127.0.0.1
control-port: 953
server-key-file: "/usr/local/etc/unbound/unbound_server.key"
server-cert-file: "/usr/local/etc/unbound/unbound_server.pem"
control-key-file: "/usr/local/etc/unbound/unbound_control.key"
control-cert-file: "/usr/local/etc/unbound/unbound_control.pem"


Вот ipfw show:
Кликните здесь для просмотра всего текста
Код
00001     110064      10472717 fwd 127.0.0.1,80 ip from table(47) to not me dst-port 80
00002     372963      28663997 deny udp from table(47) to any not dst-port 53
00003     104757       6154744 deny tcp from table(47) to any not dst-port 80
00004     149313      22205169 allow ip from any to table(47)
00005     156111      10292233 allow ip from table(47) to any
00006      83973       4256956 deny tcp from any to any dst-port 135,137,138,139,445
00007    1654852     142059189 deny udp from any 135,137,138,139,445 to any
00008       1413        112374 deny udp from any to any dst-port 135,137,138,139,445
00009          3           168 deny tcp from any 135,137,138,139,445 to any
00010     146749      36649676 deny ip from not table(127) to 10.8.29.0/24
00011       4514       1257485 deny ip from not table(126) to 10.20.60.0/24
00012     171532      13036450 allow udp from any 123 to any via em2
00013    3668206     278783762 allow udp from any to any dst-port 123 via em2
00014     194662      11907105 allow tcp from any to me dst-port 1723 in
00015     224915      13265326 allow tcp from me 1723 to any out
00016  169788191  103110793828 allow gre from any to any
00017       1595        133956 allow ip from me to 10.8.29.0/24
00018       1373         96575 allow ip from 10.8.29.0/24 to me
06000  358506374   61992978500 nat 1 ip from table(11) to not table(9) out xmit em2
06001  484775931  496893488230 nat 1 ip from any to xxx.xxx.xxx.xxx in recv em2
06002  315769938   55562118251 nat 2 ip from table(12) to not table(9) out xmit em2
06003  446690833  491040650997 nat 2 ip from any to xxx.xxx.xxx.xxy in recv em2
06004  365946921   55726360942 nat 3 ip from table(13) to not table(9) out xmit em2
06005  509589089  570675452349 nat 3 ip from any to xxx.xxx.xxx.xxz in recv em2
06007     192836     138665008 allow ip from any to table(20)
06008     187705      45560548 allow ip from table(20) to any
12000   24635376   26766550113 pipe tablearg ip from any to table(4) out xmit em1
12001   21939350    5554454987 pipe tablearg ip from table(3) to any in recv em1
12002 1351679407 1525521437541 pipe tablearg ip from any to table(4) out
12003 1028739355  171825090662 pipe tablearg ip from table(3) to any in
65521          0             0 allow tcp from me to any dst-port 43 out xmit em2
65522      53656      21715508 allow udp from any 67 to any
65523     197063      96987993 allow udp from any to any dst-port 67
65524    2950680    2768480642 allow ip from any to table(10) via em1
65525    3232153     559169551 allow ip from table(10) to any via em1
65526    8392966   11230961643 allow ip from any to any via lo0
65527          0             0 allow udp from any to any dst-port 123 via em2
65528      57731      11616459 allow tcp from me 59,80,81,82,83,84,8291 to any via em2 limit src-addr 20
65529    2859186    2941376519 allow tcp from me 80,85,90,554,3389,8002,9000,37777,37778,37779,37780,59 to any via em2 limit src-addr 20
65530          4           660 allow udp from me to any dst-port 33434-33525 via em2
65531          0             0 allow gre from any to any
65532       1427         81961 allow tcp from me to any dst-port 53 out xmit em2
65533    2448233     183435893 allow udp from me to any dst-port 53 out xmit em2
65534     252036      29670925 deny ip from any to any
65535    1314178     164995793 allow ip from any to any
0
222 / 180 / 5
Регистрация: 12.01.2009
Сообщений: 1,095
21.03.2014, 11:02 8
Покажи значения из sysctl:

kern.ipc.nmbclusters
kern.ipc.maxsockbuf
hw.em.rxd
hw.em.txd

Добавлено через 6 минут
net.inet.tcp.sendbuf_max
net.inet.tcp.recvbuf_max
net.inet.tcp.sendbuf_inc
net.inet.tcp.recvbuf_inc
0
10 / 10 / 2
Регистрация: 11.01.2013
Сообщений: 153
24.03.2014, 06:14  [ТС] 9
Ну вот собсно и сами значения:
Кликните здесь для просмотра всего текста
kern.ipc.nmbclusters: 60000
kern.ipc.maxsockbuf: 16777216
hw.em.rxd: 4096
hw.em.txd: 4096
net.inet.tcp.sendbuf_max: 16777216
net.inet.tcp.recvbuf_max: 16777216
net.inet.tcp.sendbuf_inc: 524288
net.inet.tcp.recvbuf_inc: 524288
0
222 / 180 / 5
Регистрация: 12.01.2009
Сообщений: 1,095
24.03.2014, 10:51 10
да нормальные значения, должно хватать, возможно проблема во взаимодействии с другим концом (что там на нем) такое может быть если у тебя гигабитная карточка, а с того конца 10мбит.
0
10 / 10 / 2
Регистрация: 11.01.2013
Сообщений: 153
24.03.2014, 20:27  [ТС] 11
Да там куча свичей. Машина с Unbound соединена с гигабитным свичем, абоненты на 100мегабитных портах.
0
10 / 10 / 2
Регистрация: 11.01.2013
Сообщений: 153
26.03.2014, 05:48  [ТС] 12
Вопрос всё ещё остался нерешенным.
Кто что ещё может сказать?
0
10 / 10 / 2
Регистрация: 11.01.2013
Сообщений: 153
28.03.2014, 05:16  [ТС] 13
Решилось тем что поставил:
Кликните здесь для просмотра всего текста
outgoing-range: 256
num-queries-per-thread: 128


Спасибо за внимание, может кому поможет.
0
Заблокирован
28.03.2014, 12:44 14
Интересно - а нафига тебе вообще unbound?
0
10 / 10 / 2
Регистрация: 11.01.2013
Сообщений: 153
29.03.2014, 02:55  [ТС] 15
Потому что named глючный.
0
Заблокирован
29.03.2014, 03:05 16
30 лет им пользуются - оказывается он глючный... Заявление для детсада, аргументы?
0
10 / 10 / 2
Регистрация: 11.01.2013
Сообщений: 153
30.03.2014, 11:05  [ТС] 17
Ну пока стоял named, при запросе nslookup он мог несколько раз не отвечать, что не может не расстраивать.
Перешел на unbound - работает быстрее, отвечает стабильно, только в логах столько же мусора.
Что named мусорил:
Кликните здесь для просмотра всего текста
Not enough free resources

Что unbound мусорит:
Кликните здесь для просмотра всего текста
No buffer space available

А проблема так и не решилась, просто у лог файла права сменились и я забыл дать файлу chown unbound.
0
Заблокирован
30.03.2014, 14:35 18
Дай угадаю - у тебя указан forwarder и dns открыт всем?
0
10 / 10 / 2
Регистрация: 11.01.2013
Сообщений: 153
31.03.2014, 11:30  [ТС] 19
Не угадали.
Используется named.cache и отвечает только тем кому разрешено.
Когда named использовал стоял forwarder но использовался acl.
0
10 / 10 / 2
Регистрация: 11.01.2013
Сообщений: 153
03.04.2014, 12:24  [ТС] 20
Ну я так понял что проблема в dummynet.
Всем спасибо!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
03.04.2014, 12:24

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь или здесь.

Существует ли unbound Grid?
Нужен грид в который пользователь набивал-бы данные (типа Excelя) но ни к чему не присоединенный...

Error: unbound function - EQUALP
Доброго всем вечера. Столкнулась с проблемой, что XLISP-PLUS 3.04 на запрос (equalp 3.0 3) и...

Преобразование object to buffer, buffer to object
Занимаюсь разработкой клиент серверного приложения на node js. Собственно данные ходят по сети в...

Z-buffer
Вот нашел прогу по Z-buffer только что-то не понятно, может поясните void putpix(int X,int Y,int...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.