VLAN+bonding on CentOS

サーバにネットワークカードが2枚刺さっているので,チーミングをしてネットワークの帯域を増やせないか設定してみました.
OSはCentOS 5+OpenVZパッチです.

192.168.1.11           192.168.1.1
----------- eth0    -----------------
|         |---------|               |
|サーバ   |  eth1   | L2/L3スイッチ |------> インターネット
|         |---------|               |
-----------         -----------------
192.168.0.3
             <----- 内部ネットワーク(192.168.0.0/24)
                          外部ネットワーク(192.168.1.0/24)---->
                             外部とはタグID99のVLAN

設定は以下です.

まず,bondingを有効にする設定です.

/etc/modprobe.conf

alias eth0 tg3
alias eth1 tg3
alias bond0 bonding
options bonding mode=0 miimon=1000

次にネットワークの設定です.

/etc/sysconfig/network

NETWORKING=yes
NETWORKING_IPV6=no
HOSTNAME=linux001
GATEWAY=192.168.1.1
GATEWAYDEV=bond0.99
VLAN=yes
VLAN_NAME_TYPE=DEV_PLUS_VID_NO_PAD

仮想NICの設定.

/etc/sysconfig/netword-scripts/ifcfg-bond0

DEVICE=bond0
BOOTPROTO=static
IPADDR=192.168.0.3
ONBOOT=yes

仮想NICにぶら下がる,物理的なNICの設定.

/etc/sysconfig/netword-scripts/ifcfg-eth0

DEVICE=eth0
BOOTPROTO=none
HWADDR=00:00:CD:AB:34:12
ONBOOT=yes
MASTER=bond0
SLAVE=yes

/etc/sysconfig/netword-scripts/ifcfg-eth1

DEVICE=eth1
BOOTPROTO=none
HWADDR=00:00:CD:AB:34:13
ONBOOT=yes
MASTER=bond0
SLAVE=yes

そして,仮想NICをタグ付きVLAN化します.

/etc/sysconfig/netword-scripts/ifcfg-bond0.99

DEVICE=bond0.13
BOOTPROTO=static
IPADDR=192.168.1.11
NETMASK=255.255.255.0
ONBOOT=yes

miimon=1000と設定しているので,イーサネットケーブルを一本引っこ抜いても,一秒(1000ミリ秒)以内にはもう片方のケーブルとNICで通信を復活させてくれました.
帯域も多少増えました.NICPCI-Expressで,1Gbps対応です.
「多少」なのは,たぶん,

  1. 内部のネットワーク(192.168.0.0/24)の中でベンチマークをした時は,サーバ一台しかチーミングしていないので,相手方のマシン(チーミング無し.NIC一枚.1Gbps)だったこと.
  2. 外部のネットワークで計った時は,そもそも回線が1Gや2G対応じゃないので,回線の限界が来たことだろうと思います.