Войти в систему

Home
    - Создать дневник
    - Написать в дневник
       - Подробный режим

LJ.Rossia.org
    - Новости сайта
    - Общие настройки
    - Sitemap
    - Оплата
    - ljr-fif

Редактировать...
    - Настройки
    - Список друзей
    - Дневник
    - Картинки
    - Пароль
    - Вид дневника

Сообщества

Настроить S2

Помощь
    - Забыли пароль?
    - FAQ
    - Тех. поддержка



Пишет Yuriy Al. Shirokov ([info]yushi)
@ 2006-08-15 22:11:00


Previous Entry  Add to memories!  Tell a Friend!  Next Entry
GPRS, pppd, DNS
Дорогие компьютерно продвинутые френды, а не поможете ли разобраться?

Дальше просьба о помощи, нудно, длинно и про компьютеры, чисто техническое, так что убираю под кат.

Сидим мы сейчас с Катериной на даче у родственников и, соответственно, пытаемся выйти в Сеть с ноута через GPRS (провайдер — МТС, хотя вряд ли это важно). И наблюдаем удивительное явление.

Говорю

[uri@gatteria uri]$sudo pppd call gprs


Машина выходит в Сеть, радостно сообщает на 12 консоли свой IP и IP DNS-серверов, я говорю

[uri@gatteria uri]$ ping www.ru
PING www.ru (194.87.0.50) 56(84) bytes of data.
64 bytes from www.ru (194.87.0.50): icmp_seq=1 ttl=59 time=735 ms
64 bytes from www.ru (194.87.0.50): icmp_seq=2 ttl=59 time=680 ms
64 bytes from www.ru (194.87.0.50): icmp_seq=3 ttl=59 time=681 ms
64 bytes from www.ru (194.87.0.50): icmp_seq=4 ttl=59 time=680 ms
64 bytes from www.ru (194.87.0.50): icmp_seq=5 ttl=59 time=738 ms
...


Ура, стало быть? А вот, оказывается, ни фига не ура.


[uri@gatteria uri]$ wget www.ru
--21:49:14-- http://www.ru/
=> `index.html'
Распознаётся www.ru... сбой: Temporary failure in name resolution.


Lynx, Firefox — то же самое:

[uri@gatteria uri]$ lynx www.ru

Looking up www.ru first
Looking up www.ru.com, guessing...
Looking up www.ru.edu, guessing...
Looking up www.ru.net, guessing...
Looking up www.ru.org, guessing...
Can't Access `file://localhost/home/uri/www.ru'
Alert!: Unable to access document.

lynx: Can't access startfile


Etc.

Что это за напасть такая? Я, конечно, ни разу ни сисадмин и не специалист ни по *nix'ам, ни по сетям, но по моим представлениям, такого просто не может быть: либо DNS работает, либо нет, но он не может работать для одной программы и не работать для остальных.

Или я не прав? Тогда в чём? Куда можно посмотреть-то вообще?

UPD Да, система — ALT Linux Compact 3.0. Надо было сразу написать, но "очень неудобно копытом номер набирать" — постить в ЖЖ при отсутствии доменных имён это некоторая эквилибристика, очень отвлекает. =)
UPD2Всем спасибо, засада была в правах на /etc/resolv.conf. Почему они такие — это отдельный вопрос, буду разбираться (у /etc/ppp/resolv.conf правильные права).



(Добавить комментарий)


[info]tiphareth
2006-08-15 23:56 (ссылка)
Попробуй
wget 194.87.0.50
Может, это и не ДНС

(Ответить) (Ветвь дискуссии)


[info]yushi
2006-08-16 00:00 (ссылка)
Так работает!

(Ответить) (Уровень выше)


[info]nidd.livejournal.com
2006-08-16 00:00 (ссылка)
cat /etc/resolv.conf ?

(Ответить) (Ветвь дискуссии)


[info]yushi
2006-08-16 00:10 (ссылка)
nameserver 213.87.0.1
nameserver 213.87.1.1

Это именно те DNS, которые раздаёт провайдер.

Скрипт в /etc/ppp/ip-up.d/ заодно с заменой resolv.conf на этот пинает /usr/sbin/update_chrooted conf, без этого вообще ничего не работало.

(Ответить) (Уровень выше)


[info]yushi
2006-08-16 00:14 (ссылка)
И потом, с кривым resolv.conf, по идее, ничего не должно работать. Но ping-то видит доменные имена!

(Ответить) (Уровень выше)


[info]bosik.livejournal.com
2006-08-16 00:25 (ссылка)
Давай начнём с того, что попробуем сходить по http не по hostname, a по 194.87.0.50
Работает?

(Ответить) (Ветвь дискуссии)


[info]yushi
2006-08-16 00:57 (ссылка)
Лёш, ну не совсем я всё-таки балда. =) Как я этот пост-то написал? По IP все хосты доступны.

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]bosik.livejournal.com
2006-08-16 01:00 (ссылка)
Ну тогда пробуй другие DNS. Если выяснится, что эффект устойчив, буду думать дальше. А пока я пошёл спать.
Привет Катерине

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]yushi
2006-08-16 01:06 (ссылка)
И тебе от неё привет!

Спокойной ночи. =)

(Ответить) (Уровень выше)


[info]bosik.livejournal.com
2006-08-16 00:29 (ссылка)
Можно также попробовать другой DNS. Например, этот: 217.118.66.243

(Ответить)


[info]bosik.livejournal.com
2006-08-16 00:33 (ссылка)
Или этот: 212.188.4.10
В данный момент я сам через него хожу

(Ответить) (Ветвь дискуссии)


[info]yushi
2006-08-16 01:04 (ссылка)
Попробовал. Картина следующая: с 217.118.66.243 продолжается всё то же безобразие (доменные имена видит ping, но ни одна другая программа из тех, которые у меня хватило фантазии попробовать), с 212.188.4.10 вообще ничего не работает.

Т.е. проблема, видимо, в моих настройках.

Да, и спасибо за идеи, в любом случае.

(Ответить) (Уровень выше)


[info]yushi
2006-08-16 15:28 (ссылка)
Разобрался. Дело было в правах на /etc/resolv.conf (ping'y они пофигу, он suid-ный).

(Ответить) (Уровень выше)


[info]nelis.livejournal.com
2006-08-16 01:16 (ссылка)
Юр, похоже, это с настройками gprs что-то, а не с осью и не с компьютером.
Не скажу, в чем дело, но такое же с дачи было. С одного тлф — нормально, с другого — такая вот Ж.

(Ответить) (Ветвь дискуссии)


[info]yushi
2006-08-16 15:32 (ссылка)
Наладонник при этом спокойно ходил в Сеть.

Впрочем, разобрался. В моём случае дело было всё-таки в настройках ОС.

Спасибо.

(Ответить) (Уровень выше)


[info]tiphareth
2006-08-16 01:20 (ссылка)
Проверь
dig www.ru
dig www.ru @213.87.0.1
dig www.ru @213.87.1.1

(на мои запросы оба твои сервера не отвечают).

Такие дела
Миша

(Ответить) (Ветвь дискуссии)


[info]yushi
2006-08-16 15:07 (ссылка)
Я разобрался (благодаря [info]toshische@lj. Проблема была в кривых правах на resolv.conf (ping'y это было пофигу, т.к. он SUID).

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]tiphareth
2006-08-17 16:02 (ссылка)
Охуенно!
Наука однако, да

(Ответить) (Уровень выше)


[info]max-ushakov.livejournal.com
2006-08-16 08:23 (ссылка)
Мистика...
Интересно, а "host www.ru"? а "telnet www.ru 80"?

А пришли содержимое ещё /etc/hosts, /etc/host.conf и /etc/nsswitch.conf?

(Ответить) (Ветвь дискуссии)


[info]yushi
2006-08-16 15:09 (ссылка)
Антон подсказал правильное решение. Файл /etc/resolv.conf имел права 600 (с какого фига, если это делаемая при коннекте копия /etc/ppp/resolv.conf, имеющего права 644 — другой вопрос).

(Ответить) (Уровень выше)

Несколько глупых идей
[info]max-ushakov.livejournal.com
2006-08-16 08:34 (ссылка)
1. А какие у тебя есть chrooted environments?
2. Попробуй ldd `which ping` -- вдруг он собран статически и там стоит какой-то фиксированный DNS-сервер? Впрочем, тьфу, он же может быть собран и не статически!
3. dig это тоже правильная идея.
4. Попробуй поставить nameserver 62.117.108.2 -- этот должен тебе ответить.
5. Ха-ха, можно попробовать и tcpdump! Куда ходит ping за DNS? А куда wget?

(Ответить)


[info]toshische.livejournal.com
2006-08-16 11:54 (ссылка)
Я вижу как минимум одно важное отличие между ping и wget -- ping это suid бинарник. Думаю, плясать надо от этого. Кстати, а не chrooted ли он в Compact? Если да -- он может пользоваться совершенно другим resolv.conf

(Ответить) (Ветвь дискуссии)


[info]toshische.livejournal.com
2006-08-16 12:07 (ссылка)
Да, он chroot-ится в /var/resolv

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]max-ushakov.livejournal.com
2006-08-16 12:50 (ссылка)
Неисповедимы пути ALT Linux Team...

(Ответить) (Уровень выше) (Ветвь дискуссии)


[info]toshische.livejournal.com
2006-08-16 13:39 (ссылка)
Ну, за-chroot-ить всё suid-ное -- достаточно логичный путь.

(Ответить) (Уровень выше)


[info]yushi
2006-08-16 14:57 (ссылка)
Ну, update_chrooted-то я при коннекте пинаю (подсказали в comm@).

(Ответить) (Уровень выше)

Yesss!
[info]yushi
2006-08-16 14:37 (ссылка)
Антон, спасибо. Я понял, где проблема.

Действительно, от рута wget спокойно забрал страницу.

Я, естественно, первым делом проверил права на resolv.conf. Он был недоступен для пользователя (600)!

Однако права на /etc/ppp/resolv.conf — 644! Как такое может быть? М.б., дело в umask?

Как решать проблему, я, видимо, уже понял — прописать в скрипт, лежащий в /etc/ppp/ip-up.d смену прав на resolv.conf. Однако это отдаёт маразмом, и хочется понять, в чём же было дело.

(Ответить) (Уровень выше) (Ветвь дискуссии)

Re: Yesss!
[info]toshische.livejournal.com
2006-08-16 17:04 (ссылка)
На здоровье!
Думаю, у этой проблемы есть и иное решение, возможно стоит спросить в community@. А так -- да, странно..

(Ответить) (Уровень выше)


[info]toshische.livejournal.com
2006-08-16 11:55 (ссылка)
Из "простых решений". Я бы попробовал поставить bind в кэширующем режиме и смотрел бы его диагностику.

(Ответить) (Ветвь дискуссии)


[info]max-ushakov.livejournal.com
2006-08-16 12:49 (ссылка)
А я бы запустил tcpdump :)

(Ответить) (Уровень выше)