Bug 13773

Summary: /etc/resolv.conf doesn't get updated without ancient magic
Product: Sisyphus Reporter: Michael Shigorin <mike>
Component: ppp-commonAssignee: Michael Shigorin <mike>
Status: CLOSED FIXED QA Contact: qa-sisyphus
Severity: critical    
Priority: P1 CC: ahmedsayeed1982, asy, glebfm, hiddenman, ldv, mike, pilot, placeholder, vvk, zerg
Version: unstable   
Hardware: all   
OS: Linux   
Bug Depends on: 4249    
Bug Blocks: 13000, 14014, 14167    
Attachments:
Description Flags
fix broken temp entry handling
none
do update_chrooted conf even if we don't update resolv.conf ourselves none

Description Michael Shigorin 2007-12-22 01:22:47 MSK
Если /etc/resolv.conf не содержит строчки, подпадающей под '#.*ppp temp entry'
-- полученные DNS1/DNS2 не будут туда записаны.  Историю бубна вокруг этого
шаманства можно посмотреть в #4249, но есть сильное подозрение, что смысл этой
строки со временем попросту исказился -- вместо "здесь была звонилка" она
почему-то стала значить "сюда можно записать NS'ы".

Есть необходимость исправить это безобразие, при этом втыкание в setup
начального resolv.conf с этой строкой считается позором, недостойным даже мальчиков.

Если больше никто не занимается -- я в понедельник сажусь проверять свои догадки
на практике, бо припёрло.
Comment 1 Michael Shigorin 2007-12-22 01:23:31 MSK
reassign
Comment 2 Michael Shigorin 2007-12-24 15:22:06 MSK
Created attachment 2333 [details]
fix broken temp entry handling

Судя по kppp/connect.cpp, kppp-3.5.8 в /etc/resolv.conf может засовывать только
маркеры "#kppp temp entry" и "#entry disabled by kppp".  Соответственно мы (в
лице ip-up) на них должны реагировать так, что кто-то уже туда слазил и нам там
делать нечего.

gnome-ppp и draknet у нас уже не осталось (в Gentoo/Ubuntu есть gnome-ppp
0.3.23) -- вторым случаем, который буду проверять, является chestnut-dialer.

Поправил ip-up.

При прозвоне chestnut-dialer пользователем в группе uucp и с симлинком
/dev/modem -> ttyS1 (где висит тестовый IDC) всё просто в порядке: маршруты
перекидываются, в DNS два первых NS заменяются на полученные; при отключении
всё возвращается на место.

При прозвоне kppp тем же пользователем (настройка "Disable existing DNS
servers" _не_ задействована) -- полученные NS добавляются в конец списка и по
существу не используются.  Если включить эту галку -- получается ещё веселей:

search uafoss
nameserver 213.169.64.100
nameserver 213.169.64.101
nameserver 192.168.1.1
nameserver 213.169.64.100	#kppp temp entry
nameserver 213.169.64.101	#kppp temp entry   

Короче говоря, ppp-common совершенно незачем было ломать под сломанный kppp. 
Что с kppp -- буду оформлять отдельным багом.
Comment 3 Michael Shigorin 2007-12-24 16:27:37 MSK
Created attachment 2334 [details]
do update_chrooted conf even if we don't update resolv.conf ourselves

На всякий выделил кусочек про update_chrooted conf в функцию, которая
выполняется вне зависимости от наличия "temp entry".  Надо бы сделать совсем
безусловно, наверное... всё равно не повредит.
Comment 4 Sergey V Turchin 2007-12-24 17:15:55 MSK
(In reply to comment #2)
> сломанный kppp. 
Где он сломан?
Если текущий nameserver не закомментирован "#entry disabled by kppp", то его 
кто-то перезаписал после этого, но до того, как появились "#kppp temp entry"

Comment 5 Sergey V Turchin 2007-12-24 17:17:59 MSK
Но, kppp пропатчу немного. Он ориентируется на "domain" а не "search" при 
прописывании домена
Comment 6 Sergey V Turchin 2007-12-24 17:30:42 MSK
(In reply to comment #5)
> Но, kppp пропатчу немного. Он ориентируется на "domain" а не "search" при 
> прописывании домена
Хотя, нет. Не нужно патчить.
Comment 7 Michael Shigorin 2007-12-24 17:36:39 MSK
fixed in 0.4.1-alt1, please test:
http://paq.osdn.org.ua/~mike/ppp/ppp-common/

2 zerg: надо-надо, domain давно уже объявлен устаревшей формой записи.  Впрочем,
по kppp пошли лучше в #13789.  А про рейс -- понятно, но см. там же про append
(libresolv смотрит максимум три первых nameserver AFAIR).
Comment 8 Sergey V Turchin 2007-12-24 17:45:50 MSK
(In reply to comment #7)
> domain давно уже объявлен устаревшей формой записи.
Но в man я не вижу search, зато domain вижу. Это точно то же самое?
Comment 9 Michael Shigorin 2007-12-24 19:11:59 MSK
(In reply to comment #8)
> > domain давно уже объявлен устаревшей формой записи.
> Но в man я не вижу search, зато domain вижу. Это точно то же самое?
Ой, а где у нас resolv.conf(5) водится?

http://www.linuxmanpages.com/man5/resolver.5.php
http://mail-index.netbsd.org/current-users/1994/12/19/0033.html

search -- это надмножество domain; умеет брать несколько значений.
Comment 10 Andrew Kornilov 2007-12-29 00:16:27 MSK
Вот только что прописал usepeerdns, ifup ppp0. В resolv.conf прописались NS-ы.
dig ya.ru работает, однако, ping ya.ru нет, похоже, конфиги резолвера не
обновились. После ручного update_chrooted all запинговалось. Еще перепроверю.
Comment 11 Andrew Kornilov 2007-12-31 02:31:15 MSK
Ты патч https://bugzilla.altlinux.org/attachment.cgi?id=2334  модифицировал,
из-за этого таки возникла проблема. Долго я искал, в чем дело, ppp почему-то
exit code 0 показывал для ip-up. А дело вот в чем:
/etc/ppp/ip-up
/etc/ppp/ip-up: line 123: local: can only be used in a function
/etc/ppp/ip-up: line 124: conf: command not found

Нужно убрать local, только в функциях разрешено.
Comment 12 Michael Shigorin 2007-12-31 11:50:57 MSK
Проверь
http://paq.osdn.org.ua/~mike/ppp/ppp-common/ppp-common-0.4.2-alt1.noarch.rpm pls
-- модем на конторе остался.
Comment 13 Andrew Kornilov 2008-01-01 04:11:36 MSK
(In reply to comment #12)
> Проверь
> http://paq.osdn.org.ua/~mike/ppp/ppp-common/ppp-common-0.4.2-alt1.noarch.rpm pls
> -- модем на конторе остался.

Сейчас потестирую. Укртелеком почему-то на этот адрес не пускает :-/
tracepath paq.osdn.org.ua
 1:  92.113.89.47 (92.113.89.47)                            1.388ms pmtu 1492
 1:  195.5.5.203 (195.5.5.203)                            asymm  2  39.493ms
 2:  195.5.5.203 (195.5.5.203)                             40.344ms !N

Пойду качать из другого места.
Comment 14 Michael Shigorin 2008-01-03 17:55:28 MSK
Ну и чо, кидать в сизиф/бранч? (не пускает... хм, это wnet -- мож пора разбегаться?)
Comment 15 Andrew Kornilov 2008-01-05 22:49:00 MSK
Без local пока работает. На работу с dhcpd попаду только 8-го, чтобы точно
проверить в старых условиях. Но, скорее всего, всё будет нормально.
Comment 16 Michael Shigorin 2008-01-10 18:43:06 MSK
fixed in 0.4.2-alt1; каким образом будет лучше организовать взаимодействие с
kppp по части (не)обновления /etc/resolv.conf -- предлагаю обсудить в #13789.