Здравструйте.# uname -a
Linux rhns2 2.6.18-194.el5PAE #1 SMP Tue Mar 16 22:00:21 EDT 2010 i686 i686 i386 GNU/Linux# named -v
BIND 9.3.6-P1-RedHat-9.3.6-4.P1.el5_4.2проблема следующая:
tail /var/named/chroot/var/log/system.log
09-Feb-2011 09:35:13.966 socket.c:4373: unexpected error:
09-Feb-2011 09:35:13.966 22/Invalid argument
09-Feb-2011 09:38:24.281 socket.c:4373: unexpected error:
09-Feb-2011 09:38:24.281 22/Invalid argument
09-Feb-2011 09:41:16.296 socket.c:4373: unexpected error:
09-Feb-2011 09:41:16.297 22/Invalid argument
09-Feb-2011 09:41:17.316 socket.c:4373: unexpected error:
09-Feb-2011 09:41:17.316 22/Invalid argument
09-Feb-2011 09:48:31.283 socket.c:4373: unexpected error:
09-Feb-2011 09:48:31.283 22/Invalid argumentВ принципе named работает. Но это всё равно ненормально.
Что делать?
Точнее что именно: обновлять kernel или ставить последний свежий bind?
> Точнее что именно: обновлять kernel или ставить последний свежий bind?named.conf покажи
>> Точнее что именно: обновлять kernel или ставить последний свежий bind?
> named.conf покажиnamed.conf из нескольких частей.
на всякий случай сам named.conf:
include "/etc/named.conf.acl";
include "/etc/named.conf.options";
include "/etc/named.conf.keys";
include "/etc/named.conf.logging";controls {
inet 127.0.0.1 allow { localhost; } keys { rndckey; };
};
view "view1"
{
match-clients { key view1.; "view1"; };
server zz.xx.ccc.vv { keys { view1.; }; };
include "/etc/zones.local";
include "/etc/zones.view1";
};view "view2"
{
match-clients { key view2.; "view2"; };
server zz.xx.ccc.vv { keys { view2.; }; };
include "/etc/zones.local";
include "/etc/zones.view2";
};view "view3"
{
match-clients { key vvv.; "aaa"; "vvv"; };
server zz.xx.ccc.vv { keys { vvv.; }; };
include "/etc/zones.local";
include "/etc/zones.view3";
};а вот наверное то, что действительно нужно:
named.conf.options:
options {
directory "/etc";
pid-file "/var/run/named.pid";
statistics-file "/var/log/stats.log";
query-source address * port *;
allow-query { any; };
recursive-clients 1000;
tcp-clients 1000;
interface-interval 0;
};
> 09-Feb-2011 09:48:31.283 socket.c:4373: unexpected error:
> 09-Feb-2011 09:48:31.283 22/Invalid argument
> В принципе named работает. Но это всё равно ненормально.а гугл говорит что скорее всего это нормально)
ошибка вылетает при connect() и полученный errno не известен named'у> Что делать?
забить сразу или сначала посмотреть куда именно named пытается конектиться.
Готовы пересобрать его?
>> 09-Feb-2011 09:48:31.283 socket.c:4373: unexpected error:
>> 09-Feb-2011 09:48:31.283 22/Invalid argument
>> В принципе named работает. Но это всё равно ненормально.
> а гугл говорит что скорее всего это нормально)
> ошибка вылетает при connect() и полученный errno не известен named'у
>> Что делать?
> забить сразу или сначала посмотреть куда именно named пытается конектиться.
> Готовы пересобрать его?Готов, даже закачал уже 9.7
вот тока со .spec придётся повозиться
> Готов, даже закачал уже 9.7там ничего не менялось в этом плане.
> вот тока со .spec придётся повозиться
Вы уж извините, мне лень накатывать все RH патчи по этому возможно patch будет ругаться на номера строк...
Добавлено логирование адреса
--- bind-9.3.6-P1.orig/lib/isc/unix/socket.c Wed Feb 9 10:00:53 2011
+++ bind-9.3.6-P1/lib/isc/unix/socket.c Wed Feb 9 10:31:30 2011
@@ -4302,6 +4302,7 @@
isc_socketmgr_t *manager;
int cc;
char strbuf[ISC_STRERRORSIZE];
+ char addrbuf[ISC_SOCKADDR_FORMATSIZE];REQUIRE(VALID_SOCKET(sock));
REQUIRE(addr != NULL);
@@ -4370,7 +4371,9 @@
sock->connected = 0;isc__strerror(errno, strbuf, sizeof(strbuf));
- UNEXPECTED_ERROR(__FILE__, __LINE__, "%d/%s", errno, strbuf);
+ isc_sockaddr_format(addr, addrbuf, sizeof(addrbuf));
+ UNEXPECTED_ERROR(__FILE__, __LINE__, "connect(%s) %d/%s",
+ addrbuf, errno, strbuf);UNLOCK(&sock->lock);
isc_event_free(ISC_EVENT_PTR(&dev));
>[оверквотинг удален]
> +
> UNEXPECTED_ERROR(__FILE__, __LINE__, "connect(%s) %d/%s",
> +
>
> addrbuf, errno,
> strbuf);
>
> UNLOCK(&sock->lock);
>
> isc_event_free(ISC_EVENT_PTR(&dev));Благодарю.
Кстати, есть точно такой же сервер, с точно таким же RH и bind, и там эта ошибка не наблюдается.
> Благодарю.
> Кстати, есть точно такой же сервер, с точно таким же RH и
> bind, и там эта ошибка не наблюдается.а бинд не в чруте запускается?
>> Благодарю.
>> Кстати, есть точно такой же сервер, с точно таким же RH и
>> bind, и там эта ошибка не наблюдается.
> а бинд не в чруте запускается?в чруте везде.
>>> Благодарю.
>>> Кстати, есть точно такой же сервер, с точно таким же RH и
>>> bind, и там эта ошибка не наблюдается.
>> а бинд не в чруте запускается?
> в чруте везде.скорее всего что-то не так с чрутом (гадаю). Я бы присоединился strace'ом и посмотрел на ошибку.
> Благодарю.
> Кстати, есть точно такой же сервер, с точно таким же RH и
> bind, и там эта ошибка не наблюдается.Охотно верю)
Кстати почти уверен, что когда мы увидим проблемный адрес, это будет ipv6, причем fec0::/10
>> Благодарю.
>> Кстати, есть точно такой же сервер, с точно таким же RH и
>> bind, и там эта ошибка не наблюдается.
> Охотно верю)
> Кстати почти уверен, что когда мы увидим проблемный адрес, это будет ipv6,
> причем fec0::/10неужели named.root и сервера с ipv6 ???????????? !!!!!!
> неужели named.root и сервера с ipv6 ???????????? !!!!!!ненене этож локальный ipv6
>> неужели named.root и сервера с ipv6 ???????????? !!!!!!
> ненене этож локальный ipv6т.е. он сам к себе ломится на localhost6?
>>> неужели named.root и сервера с ipv6 ???????????? !!!!!!
>> ненене этож локальный ipv6
> т.е. он сам к себе ломится на localhost6?Не совсем, думаю что происходит примерно такое:
клиент просит у рекурсора AAAA, рекурсор пытается честно отработать и тут ему подсовывают эту каку. Впрочем, чего гадать) давайте посмотрим, интересно же.
>>>> неужели named.root и сервера с ipv6 ???????????? !!!!!!
>>> ненене этож локальный ipv6
>> т.е. он сам к себе ломится на localhost6?
> Не совсем, думаю что происходит примерно такое:
> клиент просит у рекурсора AAAA, рекурсор пытается честно отработать и тут ему
> подсовывают эту каку. Впрочем, чего гадать) давайте посмотрим, интересно же.Я правильно понимаю, что это можно сделать только наложив патч?
> Я правильно понимаю, что это можно сделать только наложив патч?Так проще мне кажется.
Upd: по крайней мере я не нашел места где бы этот адрес логировался до connect().