The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

форумы  правила/FAQ  поиск  регистрация  вход/выход  слежка  RSS
"Зависает bind"
Вариант для распечатки  
Пред. тема | След. тема 
Форум Открытые системы на сервере (DNS / FreeBSD)
Изначальное сообщение [ Отслеживать ]

"Зависает bind"  +/
Сообщение от ASphinx (??) on 06-Мрт-17, 14:48 
Доброе время суток всем!

Есть старая железка, которая трудится в качестве роутера в маленьком офисе (пяток клиентов) уже не первый год:
FreeBSD 7.3-STABLE #4: Sun Aug  1 23:42:10 EEST 2010
    root@FreeBSDonUSB:/usr/obj/usr/src/sys/ROUTER i386
Timecounter "i8254" frequency 1193182 Hz quality 0
CPU: Intel Celeron (833.06-MHz 686-class CPU)
  Origin = "GenuineIntel"  Id = 0x686  Family = 6  Model = 8  Stepping = 6
  Features=0x383f9ff<FPU,VME,DE,PSE,TSC,MSR,PAE,MCE,CX8,SEP,MTRR,PGE,MCA,CMOV,PAT,PSE36,MMX,FXSR,SSE>
real memory  = 134201344 (127 MB)
avail memory = 121692160 (116 MB)
acpi_timer0: <24-bit timer at 3.579545MHz> port 0xe408-0xe40b on acpi0
acpi_button0: <Power Button> on acpi0
pcib0: <ACPI Host-PCI bridge> port 0xcf8-0xcff on acpi0
pci0: <ACPI PCI bus> on pcib0
agp0: <Intel 82443BX (440 BX) host to PCI bridge> on hostb0
pcib1: <PCI-PCI bridge> at device 1.0 on pci0
pci1: <PCI bus> on pcib1
vgapci0: <VGA-compatible display> port 0xd800-0xd8ff mem 0xe2000000-0xe2ffffff,0xe1800000-0xe1800fff irq 11 at device 0.0 on pci1
isab0: <PCI-ISA bridge> at device 4.0 on pci0
isa0: <ISA bus> on isab0
atapci0: <Intel PIIX4 UDMA33 controller> port 0x1f0-0x1f7,0x3f6,0x170-0x177,0x376,0xb800-0xb80f at device 4.1 on pci0
uhci0: <Intel 82371AB/EB (PIIX4) USB controller> port 0xb400-0xb41f irq 5 at device 4.2 on pci0
usb0: <Intel 82371AB/EB (PIIX4) USB controller> on uhci0
usb0: USB revision 1.0

Ну и т.д... Всё хозяев устраивает, но... Есть один затык - регулярно-периодически умирает bind (BIND 9.4.-ESV-R2). В процессах висит, но на запросы клиентов не отзывается и в тырнет ничего не запрашивает. При этом в лог сыпятся сообщения:
named[9441]: client 192.168.0.251#59680: error sending response: permission denied
named[9441]: client 192.168.0.254#63530: error sending response: permission denied

    Предыдущий админ решил проблему через костыль в кроне - периодически сервис передёргивается. Но это мне кажется неправильным. :) На всех других схожих задачах у меня такого не было, даже на более слабых системах. Замечено, что в спячку сервис уходит, при малой активности клиентов. Есть у кого схожий опыт? Спасибо!

Ответить | Правка | Cообщить модератору

Оглавление

Сообщения по теме [Сортировка по времени | RSS]


1. "Зависает bind"  +/
Сообщение от Vladimir (??) on 06-Мрт-17, 15:10 
http://www.opennet.me/openforum/vsluhforumID1/93878.html


Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

2. "Зависает bind"  +/
Сообщение от Vladimir (??) on 06-Мрт-17, 15:23 
Hi,

Since I have seen this issue resolved nowhere within Google results, I
would like to post it here for future reference - its cause, how to work
around it.

Thanks for rwatson@ for his expertise.

This is what I have seen on my own system:

Nov 11 19:13:02 tarsier named[21464]: client 211.166.10.255#38500: error
sending response: permission denied

Which happens very frequently.

======

The cause:

Some other system on the same subnet produced a DNS query, claiming it
from the IP broadcast address (either full 1's or full 0's from the same
subnet), and unicast to the system running a DNS service.

named(8), in turn, attempts to respond the DNS query.  When sending out
the response packet, the destination IP address would be that IP
broadcast address.  The FreeBSD implementation (also other TCP/IP stacks
I am aware of) does not permit this unless the socket have SO_BROADCAST,
according to sendmsg(2) manual page.

This EACCES would result in the messsage "error sending response:
permission denied".

Basically our TCP/IP stack is doing the right thing.

======

The workaround is to filter out the traffic from the offending host.  I
am not yet aware of which operating system did that.

Another workaround is to patch named (contrib/bind9/bin/named/client.c)
around the log and disable the whole log thing.

======

The fix is to either fix the offending host or remove it.

Cheers,


Ответить | Правка | ^ к родителю #1 | Наверх | Cообщить модератору

3. "Зависает bind"  +/
Сообщение от ASphinx (??) on 06-Мрт-17, 21:08 
Спасибо за оперативный ответ, но проблема несколько в другом. Меня не смущает наличие записей в логе (кстати, к вопросу о системах, генерирующих такой клиентский трафик - там винды: ХР и 7-ка) - меня волнует "замерзание" сервиса. Вот сейчас заглянул на тазик - авторизация по ssh длилась около 5 минут - первый признак того, что dns не работает. Пока рассматривал ситуацию, 10 минут назад "костыль" сработал - тазик опять работает штатно, составить картину не удалось. :(

Вот, ещё минут 20 спустя (включённых клиентов в сети - 2 штуки, но трафика нет, кроме совсем служебного) сервис снова повис.
Делаем так:
ipfw list 0-300
00100 allow ip from any to any via lo0
00200 count ip from any to any via rl1
00250 allow ip from any to any via rl1
00300 deny ip from any to any not antispoof in
%host google.ru
;; connection timed out; no servers could be reached
%host ya.ru
;; connection timed out; no servers could be reached

rl1 - внешний интерфейс

cat /etc/resolv.conf
nameserver 127.0.0.1

%ps -ax|grep named
  666  ??  Ss     6:51.21 /usr/sbin/syslogd -l /var/run/log -l /var/named/var/r
40750  ??  Ss     0:04.69 /usr/sbin/named -t /var/named -u bind

%netstat -an|grep 53
tcp4       0      0 127.0.0.1.53           *.*                    LISTEN
tcp4       0      0 192.168.0.1.53         *.*                    LISTEN
udp4       0      0 127.0.0.1.53           *.*
udp4       0      0 192.168.0.1.53         *.*

В тоже время:
%host google.ru 8.8.8.8
Using domain server:
Name: 8.8.8.8
Address: 8.8.8.8#53
Aliases:

google.ru has address 216.58.209.195
google.ru has IPv6 address 2a00:1450:400d:803::2003
google.ru mail is handled by 20 alt1.aspmx.l.google.com.
google.ru mail is handled by 40 alt3.aspmx.l.google.com.
google.ru mail is handled by 30 alt2.aspmx.l.google.com.
google.ru mail is handled by 50 alt4.aspmx.l.google.com.
google.ru mail is handled by 10 aspmx.l.google.com.
%host ya.ru 8.8.8.8
Using domain server:
Name: 8.8.8.8
Address: 8.8.8.8#53
Aliases:

ya.ru has address 213.180.204.3
ya.ru has address 93.158.134.3
ya.ru has address 213.180.193.3
ya.ru has IPv6 address 2a02:6b8::3
ya.ru mail is handled by 10 mx.yandex.ru.

Т.е., исходящие-входящие на интерфейсе открыты, состояние сервиса нормальное (с виду), но сервис по каким-то причинам не работает. Соответственно, в этом виде клиенты не могут ходить в Сеть - есть жалобы. :( Поведение сервиса и причины - непонятны. :(

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

4. "Зависает bind"  +/
Сообщение от Аноним (??) on 07-Мрт-17, 05:31 
судя по нетстату у вас намид слушает только лупбак и внутренний интерфейс?
хм.. а внешний?

я не понимаю как у вас работает

либо у вас в конфиге намида косяк, либо в правилах файервола
показывайте полностью, закройте свой реал айпи и показывайте всё, а не кусок
и конф намида приложите

Ответить | Правка | ^ к родителю #3 | Наверх | Cообщить модератору

5. "Зависает bind"  +/
Сообщение от ASphinx (??) on 07-Мрт-17, 10:31 
> судя по нетстату у вас намид слушает только лупбак и внутренний интерфейс?

Да.

> хм.. а внешний?

А зачем? Он выходитт наружу как клиент.

> я не понимаю как у вас работает

Зону наружу он не отдаёт - нечего, работает как рекурсивный резолвер для локальных клиентов.

> либо у вас в конфиге намида косяк, либо в правилах файервола
> показывайте полностью, закройте свой реал айпи и показывайте всё, а не кусок

Так я ж открываю всё на внешнем интерфейсе:
ipfw list 0-300
    00100 allow ip from any to any via lo0
    00200 count ip from any to any via rl1
>>> 00250 allow ip from any to any via rl1

    00300 deny ip from any to any not antispoof in
lo0 и счётчик на внешнем интерфейсе, я подозреваю, на работу и живость намеда не влияют.

> и конф намида приложите

Да тут всё минимально (хотя, судя по изыскам со служебными зонами, конфиг от 8-й BSD):
options {
        directory       "/etc/namedb/working";
        pid-file        "/var/run/named/pid";
        dump-file       "/var/dump/named_dump.db";
        statistics-file "/var/stats/named.stats";
        listen-on       { 127.0.0.1; 192.168.0.1; };
        disable-empty-zone "255.255.255.255.IN-ADDR.ARPA";
        disable-empty-zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA";
        disable-empty-zone "1.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.ARPA";
        forwarders {
                8.8.8.8;
                8.8.4.4;
                77.88.8.8;
                4.2.2.1;
                4.2.2.2;
                4.2.2.3;
                4.2.2.4;
                4.2.2.5;
                4.2.2.6;
        };
};
zone "." { type hint; file "/etc/namedb/named.root"; };
zone "localhost"        { type master; file "/etc/namedb/master/localhost-forward.db"; };
zone "127.in-addr.arpa" { type master; file "/etc/namedb/master/localhost-reverse.db"; };
zone "255.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "0.ip6.arpa"       { type master; file "/etc/namedb/master/localhost-reverse.db"; };
zone "0.in-addr.arpa"   { type master; file "/etc/namedb/master/empty.db"; };
zone "10.in-addr.arpa"     { type master; file "/etc/namedb/master/empty.db"; };
zone "16.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "17.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "18.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "19.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "20.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "21.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "22.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "23.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "24.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "25.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "26.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "27.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "28.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "29.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "30.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "31.172.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "168.192.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "254.169.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "2.0.192.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "100.51.198.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "113.0.203.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "test" { type master; file "/etc/namedb/master/empty.db"; };
zone "example" { type master; file "/etc/namedb/master/empty.db"; };
zone "invalid" { type master; file "/etc/namedb/master/empty.db"; };
zone "example.com" { type master; file "/etc/namedb/master/empty.db"; };
zone "example.net" { type master; file "/etc/namedb/master/empty.db"; };
zone "example.org" { type master; file "/etc/namedb/master/empty.db"; };
zone "18.198.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "19.198.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "240.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "241.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "242.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "243.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "244.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "245.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "246.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "247.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "248.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "249.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "250.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "251.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "252.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "253.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "254.in-addr.arpa" { type master; file "/etc/namedb/master/empty.db"; };
zone "1.ip6.arpa"       { type master; file "/etc/namedb/master/empty.db"; };
zone "3.ip6.arpa"       { type master; file "/etc/namedb/master/empty.db"; };
zone "4.ip6.arpa"       { type master; file "/etc/namedb/master/empty.db"; };
zone "5.ip6.arpa"       { type master; file "/etc/namedb/master/empty.db"; };
zone "6.ip6.arpa"       { type master; file "/etc/namedb/master/empty.db"; };
zone "7.ip6.arpa"       { type master; file "/etc/namedb/master/empty.db"; };
zone "8.ip6.arpa"       { type master; file "/etc/namedb/master/empty.db"; };
zone "9.ip6.arpa"       { type master; file "/etc/namedb/master/empty.db"; };
zone "a.ip6.arpa"       { type master; file "/etc/namedb/master/empty.db"; };
zone "b.ip6.arpa"       { type master; file "/etc/namedb/master/empty.db"; };
zone "c.ip6.arpa"       { type master; file "/etc/namedb/master/empty.db"; };
zone "d.ip6.arpa"       { type master; file "/etc/namedb/master/empty.db"; };
zone "e.ip6.arpa"       { type master; file "/etc/namedb/master/empty.db"; };
zone "0.f.ip6.arpa"     { type master; file "/etc/namedb/master/empty.db"; };
zone "1.f.ip6.arpa"     { type master; file "/etc/namedb/master/empty.db"; };
zone "2.f.ip6.arpa"     { type master; file "/etc/namedb/master/empty.db"; };
zone "3.f.ip6.arpa"     { type master; file "/etc/namedb/master/empty.db"; };
zone "4.f.ip6.arpa"     { type master; file "/etc/namedb/master/empty.db"; };
zone "5.f.ip6.arpa"     { type master; file "/etc/namedb/master/empty.db"; };
zone "6.f.ip6.arpa"     { type master; file "/etc/namedb/master/empty.db"; };
zone "7.f.ip6.arpa"     { type master; file "/etc/namedb/master/empty.db"; };
zone "8.f.ip6.arpa"     { type master; file "/etc/namedb/master/empty.db"; };
zone "9.f.ip6.arpa"     { type master; file "/etc/namedb/master/empty.db"; };
zone "a.f.ip6.arpa"     { type master; file "/etc/namedb/master/empty.db"; };
zone "b.f.ip6.arpa"     { type master; file "/etc/namedb/master/empty.db"; };
zone "0.e.f.ip6.arpa"   { type master; file "/etc/namedb/master/empty.db"; };
zone "1.e.f.ip6.arpa"   { type master; file "/etc/namedb/master/empty.db"; };
zone "2.e.f.ip6.arpa"   { type master; file "/etc/namedb/master/empty.db"; };
zone "3.e.f.ip6.arpa"   { type master; file "/etc/namedb/master/empty.db"; };
zone "4.e.f.ip6.arpa"   { type master; file "/etc/namedb/master/empty.db"; };
zone "5.e.f.ip6.arpa"   { type master; file "/etc/namedb/master/empty.db"; };
zone "6.e.f.ip6.arpa"   { type master; file "/etc/namedb/master/empty.db"; };
zone "7.e.f.ip6.arpa"   { type master; file "/etc/namedb/master/empty.db"; };
zone "c.f.ip6.arpa"     { type master; file "/etc/namedb/master/empty.db"; };
zone "d.f.ip6.arpa"     { type master; file "/etc/namedb/master/empty.db"; };
zone "8.e.f.ip6.arpa"   { type master; file "/etc/namedb/master/empty.db"; };
zone "9.e.f.ip6.arpa"   { type master; file "/etc/namedb/master/empty.db"; };
zone "a.e.f.ip6.arpa"   { type master; file "/etc/namedb/master/empty.db"; };
zone "b.e.f.ip6.arpa"   { type master; file "/etc/namedb/master/empty.db"; };
zone "c.e.f.ip6.arpa"   { type master; file "/etc/namedb/master/empty.db"; };
zone "d.e.f.ip6.arpa"   { type master; file "/etc/namedb/master/empty.db"; };
zone "e.e.f.ip6.arpa"   { type master; file "/etc/namedb/master/empty.db"; };
zone "f.e.f.ip6.arpa"   { type master; file "/etc/namedb/master/empty.db"; };
zone "ip6.int"          { type master; file "/etc/namedb/master/empty.db"; };

Ответить | Правка | ^ к родителю #4 | Наверх | Cообщить модератору

6. "Зависает bind"  +/
Сообщение от Аноним (??) on 07-Мрт-17, 11:32 
да ты упоролся 👍
Ответить | Правка | ^ к родителю #5 | Наверх | Cообщить модератору

13. "Зависает bind"  +/
Сообщение от ПавелС email(ok) on 09-Мрт-17, 15:34 
>[оверквотинг удален]
> Basically our TCP/IP stack is doing the right thing.
> ======
> The workaround is to filter out the traffic from the offending host.
>  I
> am not yet aware of which operating system did that.
> Another workaround is to patch named (contrib/bind9/bin/named/client.c)
> around the log and disable the whole log thing.
> ======
> The fix is to either fix the offending host or remove it.
> Cheers,

Если это точно вызывает такую ситуацию, я бы в файерволе запретил входящие на udp/53 с бродкаста локальной сети, а для верности и с адреса сети (что то мне припоминается что в BSD чего то там наоборот :))

Ответить | Правка | ^ к родителю #2 | Наверх | Cообщить модератору

18. "Зависает bind"  +/
Сообщение от ASphinx (??) on 09-Мрт-17, 21:03 
>[оверквотинг удален]
>> am not yet aware of which operating system did that.
>> Another workaround is to patch named (contrib/bind9/bin/named/client.c)
>> around the log and disable the whole log thing.
>> ======
>> The fix is to either fix the offending host or remove it.
>> Cheers,
> Если это точно вызывает такую ситуацию, я бы в файерволе запретил входящие
> на udp/53 с бродкаста локальной сети, а для верности и с
> адреса сети (что то мне припоминается что в BSD чего то
> там наоборот :))

Странная картина получается: в это время бинд, обычно, уже висит и на запросы не реагирует, но в лог выплёвывает сообщения о невозможности отправки ответов... С блокировкой пакетов попробую поиграться.

Ответить | Правка | ^ к родителю #13 | Наверх | Cообщить модератору

7. "Зависает bind"  +/
Сообщение от VladimirV (ok) on 07-Мрт-17, 13:21 
> Доброе время суток всем!
> Есть старая железка, которая трудится в качестве роутера в маленьком офисе (пяток
> клиентов) уже не первый год:
> agp0: <Intel 82443BX (440 BX) host to PCI bridge> on hostb0

очень старая (где-то конец 90-х годов)
может надо внимательно посмотреть на материнку, конденсаторы вздутые поискать ...

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

8. "Зависает bind"  +/
Сообщение от ASphinx (??) on 07-Мрт-17, 22:55 
>> Доброе время суток всем!
>> Есть старая железка, которая трудится в качестве роутера в маленьком офисе (пяток
>> клиентов) уже не первый год:
>> agp0: <Intel 82443BX (440 BX) host to PCI bridge> on hostb0
> очень старая (где-то конец 90-х годов)
> может надо внимательно посмотреть на материнку, конденсаторы вздутые поискать ...

На зависания ящика жалоб нет - всё работает, кроме регулярных зависаний бинда. Даже если сервис "замерзает", его всегда можно перезапустить (вручную или, например, существующий костыль из крона) и всё восстанавливается на какое-то время. Когда проблемы с кондёрами (питанием), обычно вся система зависает или падает, а не какой-то один-единственный сервис.

Ответить | Правка | ^ к родителю #7 | Наверх | Cообщить модератору

9. "Зависает bind"  +/
Сообщение от aurved on 08-Мрт-17, 16:43 
BIND 9.4.-ESV-R2 -- а может пора уже новое поставить. эта версия давно уже не поддерживается, вполне может быть что сервис вешается с чужой "помощью" и эта проблема давно решена в новых версиях.
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

10. "Зависает bind"  +/
Сообщение от ASphinx (??) on 08-Мрт-17, 23:54 
> BIND 9.4.-ESV-R2 -- а может пора уже новое поставить. эта версия давно
> уже не поддерживается, вполне может быть что сервис вешается с чужой
> "помощью" и эта проблема давно решена в новых версиях.

Я думал над этим вопросом, но пока есть трудности: svnup провисел сутки, так ничего и не скачав (я не помню/не вчитывался - есть ли в нём поддержка дерева 7.х?), cvsup тоже пока не принёс положительных результатов: я уже забыл, как его готовить. Диск небольшой, но главное - проц старенький - сколько мир на 128 метрах собираться будет?.. :(

Хотя в моей практике ещё с 4.1 ни разу такого поведения у порядка сотни шлюзов/роутеров не встречалось...

Ответить | Правка | ^ к родителю #9 | Наверх | Cообщить модератору

11. "Зависает bind"  +/
Сообщение от Pahanivo (ok) on 09-Мрт-17, 10:27 
Скачай сурс и собери ручками. Данная версия очень трухлявая.
Ответить | Правка | ^ к родителю #10 | Наверх | Cообщить модератору

16. "Зависает bind"  +/
Сообщение от aurved on 09-Мрт-17, 16:27 
поддерживаю, собрать новый bind в старой системе не сложно.

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

17. "Зависает bind"  +/
Сообщение от aurved on 09-Мрт-17, 16:30 
например 9.9.9-P6 (Current-Stable, ESV) с длинным сроком поддержки -- как говорится https://www.isc.org/downloads/ в помощь
Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

19. "Зависает bind"  +/
Сообщение от ASphinx (??) on 09-Мрт-17, 21:18 
> Скачай сурс и собери ручками. Данная версия очень трухлявая.

О, точно! Как-то забыл о такой возможности... :( :)

Но и целиком систему, мне кажется, тоже неплохо бы обновить.

Ответить | Правка | ^ к родителю #11 | Наверх | Cообщить модератору

12. "Зависает bind"  +1 +/
Сообщение от михалыч (ok) on 09-Мрт-17, 14:53 
знаю организацию, в которой до сих пор работает 7.0-RELEASE
но там памяти чуток поболе будет, named -v BIND 9.4.2
работает и не жужжит ))

ключевое отличие, что роут у них стоит в дмз, наружку бинд не светится

зачастую, в таких бюджетных организациях финансирование строится по остаточному принципу
причём назвать их малобюджетными - язык не поворачивается,
на предложение обновить систему и железо получаешь ответ - а зачем? всё же и так работает!

ну да, работает, но до поры, до времени

ниже приведу их конфиг кэширующего намида, он самый простой

итак, скачайте "свежий" файл named.root

cd /etc/namedb/
fetch ftp://ftp.internic.net/domain/named.root

файл named.conf создайте свой, не редактируйте дефолтный,
он может выглядить, например, так

// задаём acl (access list)
acl "my_list" { 192.168.0.1/24; 127.0.0.1; };

options {
    // рабочая директория
    directory    "/etc/namedb";

    // слушать на указанных IP-адресах
    listen-on    { 192.168.0.1; 127.0.0.1; };

    // путь к pid файлу
    pid-file    "/var/run/named/pid";

    // путь к дамп файлу
    dump-file    "/var/dump/named_dump.db";

    // путь к файлу статистики
    statistics-file    "/var/stats/named.stats";


////////////////////////////////////////////////////////////////
// если есть желание, можно поиграться следующим

    // максимальное время кэширования отрицательных ответов
    max-ncache-ttl    3600;

    // максимальное время кэширования положительных ответов
    max-cache-ttl    604800;

    // максимальный объем памяти для кэша сервера
    max-cache-size    unlimited;
////////////////////////////////////////////////////////////////


    // врубаем рекурсию
    recursion    yes;

    // могут отправлять запросы кто перечислен в acl "my_list"
    allow-query    { "my_list"; };

    // могут отправлять рекурсивные запросы кто перечислен в acl "my_list"
    allow-recursion    { "my_list"; };

    // могут делать запросы из кеша
    allow-query-cache { "my_list"; };

    // версия DNS
    version    "Microsoft DNS";

    // вначале обращаемся к перенаправляющим серверам
    forwarders    { 8.8.8.8; 8.8.4.4; };

    // отключаем пустые зоны
    empty-zones-enable no;

};

// Указатели корневых серверов
zone "." { type hint; file "named.root"; };

// настраиваем обратную зону для адреса 127.0.0.1
zone "0.0.127.in-addr.arpa" {
    type master;
    file "master/localhost.db";
    notify no;
};

переходим в

cd /etc/namedb/master/

файл localhost.db


$TTL    3600

@    IN    SOA    rout.local. root.rout.local. (
                2017030901    ; Serial
                3600        ; Refresh
                900        ; Retry
                3600000        ; Expire
                3600        ; Minimum
                )
    IN    NS    rout.local.
1    IN    PTR    localhost.rout.local.


проверяем
named-checkconf /etc/namedb/named.conf

в принципе, больше ничего и не нужно, как кэширующий такой named вполне может работать
его конфиг всегда можно расширить до полноценного, но вам оно, скорее всего и не нужно будет

добавить для проверки правила в файервол

ipfw add 1 allow all from any to any 53
ipfw add 2 allow all from any 53 to any

проверяем
смотрим tcpdump -vvv -i rl1 port 53
смотрим файервол,
смотрим логи,
врубаем дополнительное логирование в named.conf
добавить после указания acl

logging {
    channel my-default {
        file "/var/log/named" versions 5 size 10m;
        print-time yes;
        print-category yes;
        print-severity yes;
    };

    channel general {
        file "/var/log/general" versions 2 size 10m;
        print-time yes;
        print-category yes;
        print-severity yes;
    };

    channel client {
        file "/var/log/client" versions 2 size 10m;
        print-time yes;
        print-category yes;
        print-severity yes;
        // уровень отладки можно изменить - увеличить цифирьку
        severity debug 3;
    };

    channel security {
        file "/var/log/security" versions 2 size 10m;
        print-time yes;
        print-category yes;
        print-severity yes;
    };

    channel resolver {
        file "/var/log/resolver" versions 2 size 10m;
        print-time yes;
        print-category yes;
        print-severity yes;
    };

    channel network {
        file "/var/log/network" versions 2 size 10m;
        print-time yes;
        print-category yes;
        print-severity yes;
    };

    channel queries {
        file "/var/log/queries" versions 2 size 10m;
        print-time yes;
        print-category yes;
        print-severity yes;
    };

    channel dispatch {
        file "/var/log/dispatch" versions 2 size 10m;
        print-time yes;
        print-category yes;
        print-severity yes;
    };

    channel lame-servers {
        file "/var/log/lame-servers" versions 2 size 10m;
        print-time yes;
        print-category yes;
        print-severity yes;
    };

    category default { my-default; };
    category general { my-default; general; };
    category client { my-default; client;};
    category security { my-default; security; };
    category resolver { my-default; resolver; };
    category network { my-default; network; };
    category queries { queries; };
    category dispatch { my-default; dispatch; };
    category lame-servers { lame-servers; };
};



опять смотрим логи в client и др. и пр.

если ничего не помогло:

аккуратно!, чтобы ничего не расплескать, берём это всё обеими руками и..
подойдя к раковине или унитазу выливаем всё это к xepaм собачьим

начинаем готовить систему со свежим софтом и желательно железом

Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

14. "Зависает bind"  +/
Сообщение от Pahanivo (ok) on 09-Мрт-17, 15:44 
кто бинда ставил, тому это не надо ...
тут и фаер может кривонастроенный такое давать.

Ответить | Правка | ^ к родителю #12 | Наверх | Cообщить модератору

15. "Зависает bind"  +/
Сообщение от михалыч (ok) on 09-Мрт-17, 15:56 
> кто бинда ставил, тому это не надо ...
> тут и фаер может кривонастроенный такое давать.

согласен, но я так понял что ТС к этому делу и вовсе не причастен
наследство от предыдущего админа осталось

Ответить | Правка | ^ к родителю #14 | Наверх | Cообщить модератору

20. "Зависает bind"  +/
Сообщение от ASphinx (??) on 09-Мрт-17, 21:27 
>> кто бинда ставил, тому это не надо ...
>> тут и фаер может кривонастроенный такое давать.
> согласен, но я так понял что ТС к этому делу и вовсе
> не причастен
> наследство от предыдущего админа осталось

Да-да... Приходится, как это часто бывает, разгребать глюки в чужом наследстве...

Ответить | Правка | ^ к родителю #15 | Наверх | Cообщить модератору

21. "Зависает bind"  +/
Сообщение от ASphinx (??) on 19-Мрт-17, 11:22 
>>> кто бинда ставил, тому это не надо ...
>>> тут и фаер может кривонастроенный такое давать.
>> согласен, но я так понял что ТС к этому делу и вовсе
>> не причастен
>> наследство от предыдущего админа осталось
> Да-да... Приходится, как это часто бывает, разгребать глюки в чужом наследстве...

Ну, в общем, мир releng_7, к моему удивлению, пересобрался всего за сутки, ядро - за 5 с небольшим часов, костыль переделал - вместо restart вполне справляется reload. Пока зависания, вроде, прекратились. 6 суток аптайма - жалоб пока нет. Даже вот на выходных проверил - служба работает. Правда, не понял пока - сама по себе или костыль её передёргивает.

Ответить | Правка | ^ к родителю #20 | Наверх | Cообщить модератору

22. "Зависает bind"  +/
Сообщение от михалыч (ok) on 19-Мрт-17, 18:29 
> Даже вот на выходных проверил - служба работает.
> Правда, не понял пока - сама по себе или костыль её передёргивает.

проверить можно посмотрев в /var/log/cron и /var/mail/root

Ответить | Правка | ^ к родителю #21 | Наверх | Cообщить модератору

23. "Зависает bind"  +/
Сообщение от ASphinx (??) on 21-Мрт-17, 23:05 
>> Даже вот на выходных проверил - служба работает.
>> Правда, не понял пока - сама по себе или костыль её передёргивает.
> проверить можно посмотрев в /var/log/cron и /var/mail/root

Прошу прощения, но что я там увижу? То, что скрипт стартует по крону с заданной периодичностью? Я это и так знаю...

Из личной практики - в процессе отладки работы скрипта в кроне я строку запуска скрипта ставлю перед строкой MAILTO="", а после отладки - переношу после этой строчки, чтобы не захламляла рутовую почту почём зря. В этом ящике вообще почта отключена: MTA заглушен, а каталог спула регулярно чистится из того же крона - это то, что я уже из особенностей настройки данного ящика наковырял. Очень простой роутер, без излишеств...

Ответить | Правка | ^ к родителю #22 | Наверх | Cообщить модератору

24. "Зависает bind"  +/
Сообщение от михалыч (ok) on 22-Мрт-17, 10:23 
я не понял, думал что нужно просто узнать
где и как посмотреть выполнение задания из cron

а чтобы узнать что именно выполняет ваш скрипт,
заставьте его быть немного поразговорчевее и писать в лог любую нужную вам информацию ))

например так

#!/bin/sh

LOG="/var/log/check_named"
HOST="ya.ru"

/usr/bin/host ${HOST}

if [ $? -ne 0 ]; then
    # мат-перемат, сопли и слюни в разные стороны ))
    /bin/echo "$(date +%d-%m-%y\ %H:%M:%S)  Fuck! All is lost! The target host isn't available and service named invalid again." >> ${LOG}
    # перезапуск службы named
    /etc/rc.d/named restart && /bin/echo "$(date +%d-%m-%y\ %H:%M:%S)  Service named was restarted." >> ${LOG}
fi


так будет писаться в лог только перезапуск named

и можно в /etc/crontab добавить на выполнение хоть каждую минуту
*/1     *       *       *       *       root    /path/to/script.sh

ну и в /etc/newsyslog.conf добавить строку типа этой:

/var/log/check_named                    644  1     100  *     JC

так лог файл не "распухнет" и не сожрёт лишние драгоценные байты,
а то кто его знает какой объём у вас выделен для /var

Ответить | Правка | ^ к родителю #23 | Наверх | Cообщить модератору

25. "Зависает bind"  +/
Сообщение от Pahanivo (ok) on 22-Мрт-17, 15:42 
смишно васче канечна ...
но попробуйте с бинда хотябы rndc status спросить перед передергиванием ))

Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

26. "Зависает bind"  +/
Сообщение от михалыч (ok) on 22-Мрт-17, 16:45 
> смишно васче канечна ...
> но попробуйте с бинда хотябы rndc status спросить перед передергиванием ))

нет, не смешно

судя по
https://www.opennet.me/openforum/vsluhforumID1/96836.html#3
у ТС named без rndc иначе была бы строка указывающая, что named слушает 953 порт
и было бы так

netstat -na | grep 53
tcp4       0      0  127.0.0.1.953          *.*                    LISTEN
tcp4       0      0  127.0.0.1.53           *.*                    LISTEN

у него же этого нет

опять же, смотрим в конфиг его named'а
https://www.opennet.me/openforum/vsluhforumID1/96836.html#5
и никакого упоминания о rndc (типа include "/etc/namedb/rndc.key";) в этом конфиге нет

такие дела

Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

27. "Зависает bind"  +/
Сообщение от Pahanivo (ok) on 23-Мрт-17, 10:59 
>> смишно васче канечна ...
>> но попробуйте с бинда хотябы rndc status спросить перед передергиванием ))

даже костыль надо строгать правильно ... и учить этому новичков.
а то както уж совсем через *опу.

Ответить | Правка | ^ к родителю #26 | Наверх | Cообщить модератору

28. "Зависает bind"  +/
Сообщение от михалыч (ok) on 23-Мрт-17, 17:53 
>>> смишно васче канечна ...
>>> но попробуйте с бинда хотябы rndc status спросить перед передергиванием ))
> даже костыль надо строгать правильно

флаг в руки


> ... и учить этому новичков.

для этого нужно иметь призвание и талант


> а то както уж совсем через *опу.

не знаю через что оно там у вас, но вам оно виднее - через то самое ))


и да, вполне себе рабочий костыль, предложенный самим ТС,
который просто хочет понять что происходит при вызове из crontab'а -
перезапуск named'а по "зависону" или независимо от этого

и я ему просто показал как можно это узнать
а учить кого-то.. см. выше

Ответить | Правка | ^ к родителю #27 | Наверх | Cообщить модератору

33. "Зависает bind"  +/
Сообщение от Pahanivo (ok) on 23-Мрт-17, 21:28 
Передергивать по крону бинд это полный бред ...
Ответить | Правка | ^ к родителю #28 | Наверх | Cообщить модератору

36. "Зависает bind"  +/
Сообщение от ASphinx (??) on 25-Мрт-17, 07:47 
> Передергивать по крону бинд это полный бред ...

Согласен, вот и хочу от этого избавиться. А для этого, мне кажется, надо понять причину.

PS: Как я уже писал - это первый ящик в моём опыте, начиная с 4.1 версии FreeBSD, на котором вылез подобный глюк.

Ответить | Правка | ^ к родителю #33 | Наверх | Cообщить модератору

31. "Зависает bind"  +/
Сообщение от ASphinx (??) on 23-Мрт-17, 19:37 
> смишно васче канечна ...
> но попробуйте с бинда хотябы rndc status спросить перед передергиванием ))

О! Спасибо - как-то забыл про эту возможность. Хотя, как справедливо указал Михалыч, секции key в конфиге нет - rndc status не работает. :( Посмотрю, как будут развиваться события, если что - прикручу ключ.

Ответить | Правка | ^ к родителю #25 | Наверх | Cообщить модератору

34. "Зависает bind"  +/
Сообщение от Pahanivo (ok) on 24-Мрт-17, 08:54 
> О! Спасибо - как-то забыл про эту возможность. Хотя, как справедливо указал
> Михалыч, секции key в конфиге нет - rndc status не работает.
> :( Посмотрю, как будут развиваться события, если что - прикручу ключ.

бинд обновил? )


Ответить | Правка | ^ к родителю #31 | Наверх | Cообщить модератору

35. "Зависает bind"  +/
Сообщение от ASphinx (??) on 25-Мрт-17, 07:31 
>> О! Спасибо - как-то забыл про эту возможность. Хотя, как справедливо указал
>> Михалыч, секции key в конфиге нет - rndc status не работает.
>> :( Посмотрю, как будут развиваться события, если что - прикручу ключ.
> бинд обновил? )

А как же! Вместе с миром пока на системный, но и новый (новейший) уже скачан и собран - осталось только установить. Но я хочу вначале разобраться с ситуацией. Заменить всегда успеем.

Ответить | Правка | ^ к родителю #34 | Наверх | Cообщить модератору

30. "Зависает bind"  +/
Сообщение от ASphinx (??) on 23-Мрт-17, 19:30 
> я не понял, думал что нужно просто узнать
> где и как посмотреть выполнение задания из cron
> а чтобы узнать что именно выполняет ваш скрипт,
> заставьте его быть немного поразговорчевее и писать в лог любую нужную вам
> информацию ))
> например так
> #!/bin/sh

[skip...]

> так лог файл не "распухнет" и не сожрёт лишние драгоценные байты,
> а то кто его знает какой объём у вас выделен для /var

Ух! Вот это полёт ...фантазии(?)...
У меня костыль пока простенький... На шелле с && и ||. Мне бы и logger(1)-а хватило,вот только не смог заставить отрабатывать в скрипте комбинацию такого плана:

проверка || \( rndc reload ; logger Вот оно!!! \)

То первая скобка теряется, то последняя в лог улетает, то logger каждую минуту отчитывается, независимо от результата проверки... :( Я уже и с кавычками, и с терминаторами по разному игрался - запутался. :( Оставил пока конструкцию без logger-а, вот и гадаю - костыль помогает нормально работать или общая пересборка мира помогла?

Ответить | Правка | ^ к родителю #24 | Наверх | Cообщить модератору

37. "Зависает bind"  +/
Сообщение от ASphinx (??) on 02-Апр-17, 21:26 
> У меня костыль пока простенький... На шелле с && и ||. Мне
> бы и logger(1)-а хватило,вот только не смог заставить отрабатывать в скрипте
> комбинацию такого плана: >
проверка || \( rndc reload ; logger Вот оно!!! \)
> То первая скобка теряется, то последняя в лог улетает, то logger каждую

> минуту отчитывается, независимо от результата проверки... :( Я уже и с
> кавычками, и с терминаторами по разному игрался - запутался. :( Оставил
> пока конструкцию без logger-а, вот и гадаю - костыль помогает нормально
> работать или общая пересборка мира помогла?

В общем, детальное исследование и наблюдение за ситуацией в течение недели показало, что пересборка мира проблему пофиксила. Собранный новый бинд остался в ожидании make install...

Ответить | Правка | ^ к родителю #30 | Наверх | Cообщить модератору

29. "Зависает bind"  +/
Сообщение от IZh (ok) on 23-Мрт-17, 18:47 
У вас может сервак получает инет через какой-либо вид туннеля или через adsl?
В таком случае после переинициализации туннеля named не может забиндиться на внешний айпишник сервера, потому что он меняет права root->bind после запуска и захвата порта 53.
При смене айпишника или передёргивании внешнего интерфейска он не может перезабиндить порт, потому что 53 входит в последовательность привилегированных портов (которые может биндить только root).
Это решается перезапуском сервиса в правилах демона обслуживающего туннель/adsl (проще), или отключением прослушивания порта 53 на внешнем интерфейсе (если ничего кроме рекурсора не используется - то пойдёт), или настройкой mac_portacl (олдово, кошерно).
Ответить | Правка | ^ к родителю #0 | Наверх | Cообщить модератору

32. "Зависает bind"  +/
Сообщение от ASphinx (??) on 23-Мрт-17, 19:55 
> У вас может сервак получает инет через какой-либо вид туннеля или через
> adsl?

Нет - кабельный модем в режиме бриджа от провайдера кабельного TV. DHCP.

> В таком случае после переинициализации туннеля named не может забиндиться на внешний
> айпишник сервера, потому что он меняет права root->bind после запуска и
> захвата порта 53.

На внешний интерфейс named не цепляется - он там только как клиент. Слушает он только на внутреннем интерфейсе и на локалхосте.

> При смене айпишника или передёргивании внешнего интерфейска он не может перезабиндить порт,
> потому что 53 входит в последовательность привилегированных портов (которые может биндить
> только root).
> Это решается перезапуском сервиса в правилах демона обслуживающего туннель/adsl (проще),
> или отключением прослушивания порта 53 на внешнем интерфейсе (если ничего кроме

Так так оно и есть...

> рекурсора не используется - то пойдёт), или настройкой mac_portacl (олдово, кошерно).

Ответить | Правка | ^ к родителю #29 | Наверх | Cообщить модератору

Архив | Удалить

Рекомендовать для помещения в FAQ | Индекс форумов | Темы | Пред. тема | След. тема




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру