[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