k001
k001
:...
April 2032
        1 2 3
4 5 6 7 8 9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30

как я провёл вечер

Вы будете смеяться. И правильно сделаете. Я лох колючий. Расписываюсь (не впервой).

Как-то у меня странно дома на десктопе работал resolver. То есть иной раз работал, а иной раз ну совсем даже нет. В основном работал, но с бааальшой задержкой.

Надо сказать, что у меня стоит кеширующий DNS, который форвардит все запросы на DNS провайдера. Вернее, я так думал. Но таки вчера после часового чтения /etc/named.conf нашёл ошибку. В глобальных опциях стоит форвардить запросы, а в локальных, на зону “.” - написано спрашивать по полной программе, начиная с рутовых серверов (type “hint”;). Отчего - заключил я - оно и тормозило. Поправил, закомментировав зону “.” - вроде заработало. Ура!

Сегодня же совсем всё стало глухо. Ну его, думаю, в баню - этот named, напишу, как все простые люди, nameserverы провайдера в /etc/resolv.conf, а секс с named оставлю на потом. Фсё равно не работает!

Запускаю strace на host, а в другом окне - tcpdump -p port 53. Судя по стрейсу, ответ от сервера не приходит (процесс висит на futex-чего-то-там и по таймауту в пять секунд отваливается - и так два раза), судя по логу тисипидампа - ответ от сервера приходит.

Решил (сразу скажу, что неправильно), что с фютексами всё плохо у меня - недаром на них порой rpm виснет. Решил, что потому, что ядро ванильное, а не федористое. Поставил федористое. На всякий случай проапгрейдил glibc, а за ним потянулось ещё 90 с лихуем пакетов. Но мы и не такое видали - справились. Пофиксил конфиг иксов (которые поставились по депенденсам - причём были XFree86, а стали xorg-x11) и багу в /etc/rc.d/rc.sysinit, благодаря которой у меня перестали грузиться модули usb контроллера.

А ему всё нипочём! Не работает всё равно. Нашёл, что с помощью LD_ASSUME_KERNEL=2.2.4 (или как-то так) можно фютексы отключить. Всё равно висит - только уже на poll(). Тут-то я и подумал, что фютексы не виноваты.

Сказал /etc/init.d/iptables stop. Заработало! Сказал /etc/init.d/iptables start. Не работает! Вписал правило, разрешающее входящие с eth0 UDP-пакеты, имеющие source port 53. Работает! Вона как. Тисипидамп, оказывается, показывает пакеты до того момента, когда они попадают в INPUT chain нетфильтра. Век живи, век учись. Дураком помрёшь anyway.

Тем, кто дочитал до этого места, предлагаю в качестве домашнего задания вопрос. Почему всё-таки до этого (когда входящие UDP были закрыты) DNS-resolving у меня тупо, медленно, но всё же работал?

From:
( )Anonymous- this user has disabled anonymous posting.
Identity URL: 
имя пользователя:    
Вы должны предварительно войти в LiveJournal.com
 
E-mail для ответов: 
Вы сможете оставлять комментарии, даже если не введете e-mail.
Но вы не сможете получать уведомления об ответах на ваши комментарии!
Внимание: на указанный адрес будет выслано подтверждение.
Username:
Password:
Subject:
No HTML allowed in subject
Message:



Notice! This user has turned on the option that logs IP addresses of anonymous posters.