自分がはてなブログに書いていた記事の移植です。

CentOS6.8でBonding(チーミング)する手順です。

NetworkManagerの無効化

まずNetworkManagerを無効化します。

1
2
sudo service NetworkManager stop
sudo chkconfig NetworkManager off

Bondingの準備

bondingモジュールのエイリアスをbond0に張ります。

1
sudo echo "alias bonding bond0" >> /etc/modprobe.d/bonding.conf

Bondingモジュールを有効化します。

1
sudo modprobe bonding

モジュール有効化を確認します。

1
lsmod | grep bonding

BondingとNICの設定

今回はBondingを行うだけなので固定IPではなく、DHCPでIPアドレスを取得します。

bond0の設定(/etc/sysconfig/network-script/ifcfg-bond0)

今回はmodeを1にしているので負荷分散はされません。
普段はプライマリに設定したNICが使用され、プライマリ側がダメになったら他のNICでの通信に切り替わります。
miimonで設定している値はNICの状態を監視する頻度です。
単位はミリ秒です。

1
2
3
4
DEVICE=bond0
BOOTPROTO=dhcp
ONBOOT=yes
BONDING_OPTS="mode=1 primary=eth0 miimon=500"

eth0の設定(/etc/sysconfig/network-script/ifcfg-eth0,ifcfg-eth1)

普段の設定とは別にMASTERとSLAVEの設定を行う必要があります。
MASTERはBondingに使用するデバイスを指定し、
SLAVEでは自らをSLAVEであることを示します。

1
2
3
4
5
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
1
2
3
4
5
DEVICE=eth1
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes

networkの再起動

ここで失敗した場合は設定を見直してください。
それかNetworkManagerの無効化を忘れている場合があります。

1
sudo service network restart

動作の確認

ifconfigを叩くとbond0にIPアドレスが割り当てられていると思います。
また

1
cat /proc/net/bonding/bond0

でbondingの状態が確認できます。