From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Tue, 30 Aug 2005 06:50:29 +0400 From: Yura Zotov To: sisyphus@altlinux.ru Subject: Re: [sisyphus] =?koi8-r?B?8sHCz9TBINMgUFBQ?= =?koi8-r?Q?_=D7?= /etc/net Message-ID: <20050830025029.GA10459@vezyolka.home> Mail-Followup-To: sisyphus@altlinux.ru References: <20050827151539.GA6337@vezyolka.home> <20050829133837.2fea9786.pilot@altlinux.ru> Mime-Version: 1.0 Content-Type: text/plain; charset=koi8-r Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20050829133837.2fea9786.pilot@altlinux.ru> User-Agent: Mutt/1.5.9+cvs20050717i X-SpamTest-Info: Profile: Formal (266/050824) X-SpamTest-Info: Spam Detection Standard; Marking Spam - None X-SpamTest-Status: Not detected X-SpamTest-Version: SMTP-Filter Version 2.0.0 [0125], KAS/Release X-BeenThere: sisyphus@altlinux.ru X-Mailman-Version: 2.1.5 Precedence: list Reply-To: ALT Linux Sisyphus discussion list List-Id: ALT Linux Sisyphus discussion list List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 30 Aug 2005 02:50:32 -0000 Archived-At: List-Archive: On Mon, Aug 29, 2005 at 01:38:37PM +0400, Denis Ovsienko wrote: > > Вопросы и предложения авторам etcnet. > > > > Зачем в опциях pppd используется параметр unit? > Чтобы можно было создать каталог /etc/net/ifaces/ppp20 и быть уверенным, что > интерфейс будет называться так же. > > > Было бы удобнее использовать параметр linkname. Если присваивать > > ему значение, равное имени интерфейса, то конфигурировать > > интерфейсы становится приятнее. В этом случае pppd создаёт > > pid-файл с именем pppd-linkname.pid. Поэтому вы всегда знаете > > каком интерфейсу он принадлежит. Поскольку ppp интерфейсы > А так pppd создаёт файл /var/run/<имя>.pid и я знаю, какому интерфейсу он > (файл) принадлежит. См. скрипт destroy-ppp. > > > виртуальные, при конфигурации удобнее назначать им какие-то > > осмысленные имена, например по имени провайдера, к которому > > устанавливается соединение. > То есть в такой схеме администратор системы видит ppp20, а конфигурировать > должен isp15? > > > На мой взгляд, требуется внести минимальные изменения в скрипты. > > Если вас устраивает, могу сделать их сам... > Покажите вашу редакцию. > Я тут провёл исследования... Результаты таковы: 1. Два соединения с одинаковым значением параметра unit нормально устанавливаются, и одно из них получает unit не соответствующий указанному в команде. pid-файлы соответствуют реальным unit-ам. 2. Два соединения с одинаковым значением параметра linkname нормально устанавливаются. Каждому соответствует pid-файл с именем вида pppX.pid. Соединение, запущенное позднее, затирает информацию о предыдущем соединении в файле ppp-linkname.pid. Ясно, что всё плохо. Например, если в etcnet настроен интерфейс ppp0, а пользователь уже установил соединение ppp0 при помощи kppp, например, по etcnet перестаёт адекватно работать. Так как, во-первых, не запускает своё соединение, во-вторых, без лишних слов может убить пользовательское соединение, если попросят. Поэтому, надо как-то навести соответствие между настроенными PPP-интерфейсами etcnet и установленными PPP-соединениями. Для этого нам нужно заранее обладать некоторой информацией, которая будет верна как до установки соединения, так и после. Поскольку pppd не генерирует сам нечто уникальное, которое он мог бы нам сообщить, то мы вынуждены сгенерировать это сами, и придумать некоторый механизм хранения этой информации. Остаётся только надеяться на то, что пользователь в порыве безумия не разломает этот механизм. :-) Например: PIDFILE=`mktemp /var/run/ppp-XXXXXXXX.pid` || exit 1 LINKNAME=`echo $TMPFILE | awk --re-interval '// { match( $0, "[[:alnum:]]{6,}", q ); print q[0] }'` pppd ... linkname $LINKNAME ln -s /var/run/$PIDFILE /var/run/etcnet/$NAME или типа того. Криво, конечно. Если не нравится, я не настаиваю... -- Юрий А. Зотов