Отчего-то неверно разрешаются имена хостов, все IP-адреса хостов указывают на локальную машину. Структура самая простейшая: есть роутер (он же ADSL-модем) D-Link DSL-504T (192.168.1.1) и два компа (.2 и .3), подсеть /24 . Включено DHCP для обеих машин, но при прописке сетевых своств статически ситуация не меняется.
Смотрю tcpdump -i eth0 . Если дана команда
host www.opennet.ru
то имя разрешается быстро и правильно, после чего тот же lynx нормально идёт на этот сайт. А если например
lynx http://www.opennet.me/
то на 192.168.1.1 идёт некий пакет AAAA? что-то_там, и в итоге возвращается мой IP! После этого тот же host www.opennet.ru говорит, что OpenNet , оказывается, хостится у меня. %-|
С одной стороны это вроде как вина софта на роутере, ведь с него же идёт ответ (tcpdump ясно это показывает). С другой стороны, другие операционки прекрасно работают.
Также к роутеру подключён ноутбук с WinXP, с сетью проблем нет.
Раньше на машине стояла Slackware 10.2, в ней в этом плане всё было хорошо. Вообще был принцип "работает -- и ладно", теперь хочу выяснить, почему работает, а главное, почему НЕ работает. :-)
Буду благодарен на помощь и/или отправку к нужной документации.
может с роутера DNS указана одна из локальны машин, а не провайдер...
>может с роутера DNS указана одна из локальны машин, а не провайдер...Да нет, только два сервера провайдера, это Стрим. 212.188.4.10 (первичный) и 195.34.32.116 (вторичный).
Есть какая-то разница между тем, как работают lynx и aptitude (к примеру; другие наверняка так же) и host, который правильно определяет IP. Есть подозрение, что host работает через функционал пакета dhclient, который идёт в поставке Debian (/usr/bin/host оттуда же, из этого пакета), а все остальные через процедуры ядра группы resolver(3). Как-то они по-разному взаимодействуют с DNS...
В /etc/resolv.conf всего две строчки:
search
nameserver 192.168.1.1
Проблема решилась прописыванием имени домена в /etc/resolv.conf , т.е.search mydomain
nameserver 192.168.1.1Пришлось раскопать все дебри, которые проходит процедура DCHP при загрузке для динамической генерации resolv.conf .
Разъясните, кто в курсе: что всё-таки по хорошему надо иметь в /etc/hostname , только имя хоста или FQDN?
Однако я поспешил утешаться, проблема осталась. Первые несколько обращений к любым сайтам через lynx проходили более-менее нормально ("более-менее" -- это значит в итоге я получал ответ, но поиск сайта занимал секунд 10), следующие запросы ломались.
tcpdump показывает какую-то околесицу. "nehebhau" -- имя роутера, он же 192.168.1.1; 192.168.1.3 -- проблемная машина; "takemet" -- имя домена.
Вот пакеты, приведшие к нормальному разрешению имени "www.opennet.ru". Сделано host-ом.17:28:55.097363 arp who-has nehebhau.takemet tell 192.168.1.3
17:28:55.097786 arp reply nehebhau.takemet is-at 00:11:95:d1:92:ba
17:28:55.097797 IP 192.168.1.3.32768 > nehebhau.takemet.domain: 14537+ A? www.opennet.ru. (32)
17:28:55.103293 IP 192.168.1.3.32769 > nehebhau.takemet.domain: 58876+ PTR? 3.1.168.192.in-addr.arpa. (42)
17:28:55.116395 IP nehebhau.takemet.domain > 192.168.1.3.32768: 14537 1/2/2 A www.opennet.ru (123)
17:29:00.102613 IP 192.168.1.3.32769 > nehebhau.takemet.domain: 58876+ PTR? 3.1.168.192.in-addr.arpa. (42)
17:29:00.114841 arp who-has 192.168.1.3 tell nehebhau.takemet
17:29:00.114853 arp reply 192.168.1.3 is-at 00:04:61:9d:4d:88
17:29:05.103416 IP 192.168.1.3.32769 > nehebhau.takemet.domain: 58877+ PTR? 90.161.137.82.in-addr.arpa. (44)
17:29:05.105065 IP nehebhau.takemet.domain > 192.168.1.3.32769: 58877- 1/0/0 (72)
17:29:07.105592 IP nehebhau.takemet.domain > 192.168.1.3.32769: 58876 ServFail- 0/0/0 (42)
17:29:07.105614 IP 192.168.1.3 > nehebhau.takemet: icmp 78: 192.168.1.3 udp port 32769 unreachableВ 5-й строчке я получил ответ от DNS-сервера, в 9-й мы видим искомый IP адрес.
Теперь что происходит при запросе www.linux.org.ru с помощью lynx-а.
17:36:24.512434 arp who-has nehebhau.takemet tell 192.168.1.3
17:36:24.512760 arp reply nehebhau.takemet is-at 00:11:95:d1:92:ba
17:36:24.512771 IP 192.168.1.3.32770 > nehebhau.takemet.domain: 22609+ PTR? 3.1.168.192.in-addr.arpa. (42)
17:36:24.512777 IP 192.168.1.3.32769 > nehebhau.takemet.domain: 22769+ AAAA? www.linux.org.ru. (34)
17:36:24.533584 IP nehebhau.takemet.domain > 192.168.1.3.32769: 22769 0/1/0 (90)
17:36:24.533646 IP 192.168.1.3.32771 > nehebhau.takemet.domain: 22770+ AAAA? www.linux.org.ru.takemet. (42)
17:36:29.512286 IP 192.168.1.3.32770 > nehebhau.takemet.domain: 22609+ PTR? 3.1.168.192.in-addr.arpa. (42)
17:36:29.527836 arp who-has 192.168.1.3 tell nehebhau.takemet
17:36:29.527845 arp reply 192.168.1.3 is-at 00:04:61:9d:4d:88
17:36:29.533281 IP 192.168.1.3.32771 > nehebhau.takemet.domain: 22770+ AAAA? www.linux.org.ru.takemet. (42)
17:36:34.533539 IP 192.168.1.3.32771 > nehebhau.takemet.domain: 22771+ A? www.linux.org.ru. (34)
17:36:34.535365 IP nehebhau.takemet.domain > 192.168.1.3.32771: 22771- 1/0/0 A 192.168.1.3 (50)
17:36:36.528592 IP nehebhau.takemet.domain > 192.168.1.3.32771: 22770 ServFail- 0/0/0 (42)
17:36:36.528605 IP 192.168.1.3 > nehebhau.takemet: icmp 78: 192.168.1.3 udp port 32771 unreachable
17:36:36.529827 IP nehebhau.takemet.domain > 192.168.1.3.32770: 22609 ServFail- 0/0/0 (42)
17:36:36.529835 IP 192.168.1.3 > nehebhau.takemet: icmp 78: 192.168.1.3 udp port 32770 unreachableВ 4-й строчке идёт запрос, в 5-й получаем странный ответ "1/0/0" ("один ответ, ни одного сервера имён и ни одной доп. записи", это моё скромное понимание man tcpdump).
6-я строка запрашивает то же имя хоста, но с прибавлением моего локального домена! На 11-й вновь спрашиваем IP адрес нормального хоста, без моего домена (запрос 22771) и на 12-й _на этот запрос 22771_ получаем мой IP!Ещё ерунда: www.n0te.net (да любой адрес, только что попробовал) определяется как 1.0.0.0:
23:54:40.337640 IP (tos 0x0, ttl 64, id 60924, offset 0, flags [DF], length: 58) 192.168.1.3.32768 > 192.168.1.1.53: [udp sum ok] 1562+ AAAA? www.n0te.net. (30)
23:54:40.559163 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], length: 149) 192.168.1.1.53 > 192.168.1.3.32768: [udp sum ok] 1562* 1/1/0 www.n0te.net. CNAME n0te.net. (121)
23:54:40.559256 IP (tos 0x0, ttl 64, id 61146, offset 0, flags [DF], length: 58) 192.168.1.3.32768 > 192.168.1.1.53: [udp sum ok] 1563+ A? www.n0te.net. (30)
23:54:40.561715 IP (tos 0x0, ttl 64, id 0, offset 0, flags [DF], length: 74) 192.168.1.1.53 > 192.168.1.3.32768: [udp sum ok] 1563- 1/0/0 www.n0te.net. A 1.0.0.0 (46)Только что поэкспериментировал: три адреса медленно, но ответили, на четвёртом начинается выдача 1.0.0.0 в ответ на любой запрос.
Что за фигня, сможет кто-нибудь объяснить?