[devel] RFC: /etc/if{up,down}.d (was: Time servers)

Ivan Zakharyaschev =?iso-8859-1?q?imz_=CE=C1_altlinux=2Eru?=
Ср Янв 30 22:44:23 MSK 2002


	Hello!

Поддерживаю эту инициативу!

Вдобавок предлагаю вместо номеров интерфейсов pppN использовать имена.
Возможно, это не единственное решение проблемы, с которой я столкнулся,
но мне оно кажется самым удобным. А проблема в том, что в случае
нескольких ppp-соединений порядок их установления влияет на номер
интерфейса, а набор действий, которые нужно совершить, по смыслу
завясит, конечно же, не от порядка, а от того с кем установлена связь.

Например, два ppp-соединения: одно -- Inet dialup, другое -- связь с
notebook через последовательный порт. Порядок, в котором они появляются,
неопределен. (И неизвестно кому из них достанется ppp0, аа кому --
ppp1.)

Путаницы можно избежать, дав каждому соединению в /etc/ppp/peers/* имя с
помощью опции linkname (например, lap_link и inet_link). Запомнить
соответствия между номерами интерфейсов и именами соединений мне
помогает такая строчка в /etc/ppp/ip-up.local:

echo "$IFNAME" > "/var/run/ppp-$LINKNAME.iface"

(а в /var/run/ppp-$LINKNAME.pid pppd записывает свой PID). Это позволяет
потом легко манипулировать соединениями по имени. (Например, отработать
какой-нибудь /etc/netlink.d/inet_link/.)

На этом основная часть моего предложения закончено. Вот еще несколько
замечаний:

Одно и то же linkname можно давать нескольким разным peers одного типа,
с которыми может быть установлено соединение. Например, имя inet_link
могут иметь соединения с разными провайдерами через один модем -- все
равно Inet; хотя может и не стоит так делать: какие-то параметры могут
отличаться, например forwarders для named.

Несмотря на то, что c номерами eth* всё жестче, имена для них тоже могут
быть удобными (легче понимать, что за соединение).

Уровень управления соединениями по именам можно представить как более
высокий по отношению к уровню интерфейсов с номерами, устройств.

On Wed, 30 Jan 2002, Mikhail Zabaluev wrote:

> On Wed, Jan 30, 2002 at 09:39:40AM +0200, Michael Shigorin wrote:
> >
> > Может, сделать инфраструктуру для подключения "фишек" для
> > диалапщиков?  нечто вроде /etc/ppp/ppp.d или как-то так.
>
> Тогда лучше уж /etc/if{up,down}.d для /sbin/if{up,down} --
> не PPP единым жив человек.
> Для разных интерфейсов сделать разблюдовку:
> /etc/ifup.d/ppp/
> /etc/ifup.d/eth/
> /etc/ifup.d/0common/
> -- последнее для общих скриптов, на которые делать симлинки из
>    interface-specific каталогов.
>
> Можно даже предусмотреть возможность уточнения номера устройства:
>
> for d in /etc/ifup.d/*; do
>     d="${d#/etc/ifup.d/}"
>     if [ "${DEVICE#$d}" != "$DEVICE" ]; then
>         RunExecutablesInDir "/etc/ifup.d/$d" "$DEVICE"
>     fi
> done
>
> Таким образом, для ppp0 будут выполняться скрипты
> сначала в /etc/ifup.d/ppp/, затем в /etc/ifup.d/ppp0/



-- 
Best regards,
	Ivan Z.





Подробная информация о списке рассылки Devel