[devel] iniscripts and vserver

Anton Farygin =?iso-8859-1?q?rider_=CE=C1_altlinux=2Ecom?=
Пн Янв 12 20:32:04 MSK 2004


On Mon, Jan 12, 2004 at 08:23:27PM +0300, Алексей Любимов wrote:
> 
> 
> Dmitry V. Levin пишет:
> 
> >On Mon, Jan 12, 2004 at 07:56:29PM +0300, Алексей Любимов wrote:
> > 
> >
> >>Dmitry V. Levin пишет:
> >>   
> >>
> >>>On Mon, Jan 12, 2004 at 07:22:43PM +0300, Anton Farygin wrote:
> >>>
> >>>     
> >>>
> >>>>Господа, возник интересный вопрос с стартовыми скриптами и vserver'ом:
> >>>>
> >>>>как известно, для корректной работы виртуальных серверов необходимо
> >>>>сделать так, что бы запускаемые сервера в host системе не захватывали
> >>>>алиасы для виртуальных серверов. Так поступают, в частности nfs, dhcp и
> >>>>т.д.
> >>>>       
> >>>>
> >>>У них у всех есть возможность указать listen interface.
> >>>
> >>>     
> >>>
> >>bind() в chbind и bind("interface") - разные вещи.
> >>Если первый цепляется ко всем интерфейсам, которые ему показаны chbind, 
> >>то второй цепляется только к конкретному (одному) интерфейсу.
> >>   
> >>
> >
> >На самом деле, к списку интерфейсов, см. напр. sshd_config(5).
> > 
> >
> А вот программ, для которых
> Multiple ListenAddress options are permitted.
> уже значительно меньше.
> 
> Мне что то ничего кроме апача в голову и не приходит.
> 
> xinetd нет?
> 
>       bind             Allows  a  service to be bound to a specific 
> interface
>                        on the machine.  This means  you  can  have  a  
> telnet
>                        server  listening  on  a local, secured 
> interface, and
>                        not on the external interface.  Or  one  port  
> on  one
>                        interface  can  do something, while the same 
> port on a
>                        different interface can do something  
> completely  dif-
>                        ferent.  Syntax: bind = (ip address of interface).
> 
> proftpd тоже только в своих виртульных серверах разделяет ip.
> 
> 
> 
> > 
> >
> >>>Если у кого=то такой возможности нет, то это, скорее всего, bug.
> >>>
> >>>     
> >>>
> >>и соотственно много много соровождаемого кода в этих забаженных пакетах.
> >>оно нам надо?
> >>   
> >>
> >
> >Почему много-много?
> > 
> >
> опцию добавить, которую никто из авторов себе не возьмет и заодно не 
> просто аргумент в bind(), а списочек с прогоном по нему + парсер, чего 
> там нам подсунули.
> 
> >>>>Для этого в util-vserver есть утилитка chbind, запускающая сервисы таким
> >>>>образом, что бы они не видели ничего кроме того, что им разрешат.
> >>>>
> >>>>Вопрос заключается в том, как бы сделать так, что бы после установки
> >>>>ядра с vserver'ом и утилит все запускаемые из initscripts сервисы
> >>>>стартовали через chbind ?
> >>>>       
> >>>>
> >>>Запускать /etc/rc.d/rc через chbind?
> >>>     
> >>>
> >>а если ядро не поддерживает chbind?
> >>   
> >>
> >
> >Тогда либо не надо запускать через chbind, либо надо игнорировать
> >ошибки ENOSYS.
> >
> > 
> >
> А какой пакет будет добавлять эту функциональность в initscripts? или 
> зашить это дело в initscripts сразу и для всех?
> Или ручками после установки предлагаете курочить?
> Мне это дело интересно, вот и спрашиваю, какие варианты возможны.

Самый, конечно, замечательный вариант - после установки некоего пакета
(vserver-startup) - запуск всех сервисов через chbind только в том случае,
если ядро поддерживает ipv4root. Это можно, кстати, отработать и в chbind
- не проблема. Может быть реализовать что-то вроде конфига со списком IP
адресов или интерфейсов + списком сервисов, которые необходимо запускать
через chbind.

Rgds,
Rider




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