[Sysadmins] бридж и veth

Michael A. Kangin mak на complife.ru
Чт Ноя 7 03:34:49 MSK 2013


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