vethをVE起動時に自動的にブリッジへ
1. "/usr/sbin/vznetcfg"に以下のパッチをあてる。
--- vznetcfg.org 2007-05-09 00:34:41.000000000 +0900 +++ vznetcfg 2007-05-07 11:59:15.000000000 +0900 @@ -26,10 +26,25 @@ function init_veth() { - local dev=$1 + local dev=$1 - /sbin/ifconfig ${dev} up + /sbin/ifconfig ${dev} up + if [ "${VZNET_BRIDGE}" != "" ]; then + echo "/usr/sbin/brctl addif ${VZNET_BRIDGE} ${dev}" + /usr/sbin/brctl addif ${VZNET_BRIDGE} ${dev} + fi + + i=0 + while [ "${VZNET_MBRIDGE[$i]}" != "" -a "${VZNET_MBRIDGE_VETH_PREFIX[$i]}" != "" ]; do + R=`echo -n ${dev} | grep "^${VZNET_MBRIDGE_VETH_PREFIX[$i]}"` + if [ "$R" != "" ]; then + echo "/usr/sbin/brctl addif ${VZNET_MBRIDGE[$i]} ${dev}" + /usr/sbin/brctl addif ${VZNET_MBRIDGE[$i]} ${dev} + fi + i=$[$i+1] + done } + # Call the external script if defined if [ -n "${EXTERNAL_SCRIPT}" -a -x "${EXTERNAL_SCRIPT}" ]; then export VEID
2. "/etc/vz/vznet.conf"を作成し、設定を記述する。
2-1. ブリッジデバイスがひとつの場合。
# # /etc/vz/vznet.conf # VZNET_BRIDGE="br0" #// ブリッジデバイス
2-2. ブリッジデバイスが二つ以上の場合。
# # /etc/vz/vznet.conf # VZNET_MBRIDGE[0]="br0" #// 1番目のブリッジデバイス VZNET_MBRIDGE_VETH_PREFIX[0]="vif0" #// 1番目のブリッジに入れるvethデバイス名の先頭文字列パタン ex. vif0.xxxx VZNET_MBRIDGE[1]="br1" #// 2番目のブリッジデバイス VZNET_MBRIDGE_VETH_PREFIX[1]="vif1" #// 2番目のブリッジに入れるvethデバイス名の先頭文字列パタン ex. vif1.yyyy
余談だけど、vethのMACアドレスやvethデバイス名は、付与するIPアドレスを16進法値としたものに結びつけると、
管理しやすくなるかもしれない。
ex. 192.168.0.1 => ifname=eth0,mac=00:FF:C0:A8:00:01,host_ifname=vif0.C0A80001,host_mac=00:FE:C0:A8:00:01