On 04.11.2013 23:59, Валентин Росавицкий wrote:

Реализаций море :)

Я сделал так:

В файле /etc/vz/vznet.conf прописывается вызов EXTERNAL_SCRIPT, дёргаемый каждый раз при запуске veth-интерфейса контейнера:

EXTERNAL_SCRIPT=/usr/local/bin/vznethelper

Содержимое этого vznethelper:
#! /bin/bash

IFACE_NAME=$3
[ -d "/etc/net/ifaces/$IFACE_NAME" ] && ifup $IFACE_NAME

т.е. если мы видим, что интерфейс описан в etcnet, то просто поднимаем его. Наверное сюда можно запихнуть более изощрённую логику.

если veth-интерфейс предназначен для включения в бридж, то мы его можем настроить вот так:

options:
TYPE=eth
ADD_TO_BRIDGE=br0

Хорошая опция такая ADD_TO_BRIDGE, лаконичная. Жаль, не реализована в etcnet.
Придётся реализовывать самим:

/etc/net/ifup-post-local:
. $SCRIPTDIR/functions
pickup_options
if [ -n "$ADD_TO_BRIDGE" ]; then
        ifup $ADD_TO_BRIDGE
        /sbin/brctl addif $ADD_TO_BRIDGE $NAME
fi

/etc/net/ifdown-pre-local
. $SCRIPTDIR/functions
pickup_options
if [ -n "$ADD_TO_BRIDGE" ]; then
        /sbin/brctl delif $ADD_TO_BRIDGE $NAME
fi


(не забудьте сделать эти файлы исполняемыми)


Настроил на openvz впске veth интерфейс и его в бридж запихали. А как
теперь сделать что б после рестарта этой впски ее интерфейс сам
добавлялся в бридж?

breth1          8000.782bcb22b2bf       no              veth3107.0
                                                        vlan2307

После vzctl restart veth3107.0 пропадает с бриджа.


_______________________________________________
Sysadmins mailing list
[email protected]
https://lists.altlinux.org/mailman/listinfo/sysadmins

Ответить