From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Date: Tue, 30 Aug 2005 14:05:36 +0400 From: Denis Ovsienko To: ALT Linux Sisyphus discussion list Subject: Re: [sisyphus] =?KOI8-R?Q?=F2=C1=C2=CF=D4=C1_=D3?= PPP =?KOI8-R?Q?=D7?= /etc/net Message-Id: <20050830140536.78ddd8a8.pilot@altlinux.ru> In-Reply-To: <20050830025029.GA10459@vezyolka.home> References: <20050827151539.GA6337@vezyolka.home> <20050829133837.2fea9786.pilot@altlinux.ru> <20050830025029.GA10459@vezyolka.home> Organization: ALT Linux X-Mailer: Sylpheed version 0.9.10 (GTK+ 1.2.10; i586-alt-linux-gnu) Mime-Version: 1.0 Content-Type: text/plain; charset=KOI8-R Content-Transfer-Encoding: 8bit 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 10:07:24 -0000 Archived-At: List-Archive: > Я тут провёл исследования... Результаты таковы: > > 1. Два соединения с одинаковым значением параметра unit нормально > устанавливаются, и одно из них получает unit не > соответствующий указанному в команде. pid-файлы соответствуют > реальным unit-ам. Чего и следовало ожидать. > 2. Два соединения с одинаковым значением параметра linkname > нормально устанавливаются. Каждому соответствует pid-файл с > именем вида pppX.pid. Соединение, запущенное позднее, затирает > информацию о предыдущем соединении в файле ppp-linkname.pid. Также неудивительно. > Ясно, что всё плохо. Например, если в etcnet настроен интерфейс > ppp0, а пользователь уже установил соединение ppp0 при помощи > kppp, например, по etcnet перестаёт адекватно работать. Так как, > во-первых, не запускает своё соединение, во-вторых, без лишних > слов может убить пользовательское соединение, если попросят. Его просят --- оно и убивает. Я предлагаю: 1. Не использовать параметр unit в ppp-интерфейсах /etc/net. Он уже есть в названии интерфейса. 2. Именовать ppp-интерфейсы /etc/net начиная с некоторого стартового unit. Это не исправит фундаментальных недостатков PPP в Linux, но облегчит жизнь и добавит порядка тем, кто последует этим простым рекомендациям. > Поэтому, надо как-то навести соответствие между настроенными > 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 Я специально избавился от всех вызовов awk в /etc/net, потому что ничего кроме { print $1 } ему скормить не умею. Я думал в сторону ipparam. -- DO4-UANIC