BondingによるNIC冗長化(目次)
| Table of Contents |
はじめに
bondingを利用して、アクティブ/バックアップのNIC冗長化を行います。
インストール環境
- OS
- CentOS 5.5 (kernel 2.6.18-194.3.1.el5 x86_64)
bondingモジュールのロード
- modules.confでbondingモジュールの設定を行ないます。
# vi /etc/modprobe.conf alias bond0 bonding
ボンディングインターフェース(bond0)の作成
- インターフェースbond0を作成します。
# vi /etc/sysconfig/network-scripts/ifcfg-bond0 DEVICE=bond0 BOOTPROTO=static ONBOOT=yes NETMASK=255.255.255.0 IPADDR=192.168.11.100 TYPE=Ethernet BONDING_OPTS="mode=1 primary=eth0 miimon=100 updelay=5000"
※BONDING_OPTSについてオプション 説明 mode bondigの動作モードを指定します。詳細は以下を参照 primary アクティブにするインターフェースを指定します。 miimon MII監視間隔を1/1000秒単位で指定します。 updelay リンクアップを検知後、該当NICに切り替えるまでの時間を1/1000秒単位で指定します。対向のスイッチとの通信を確立させるタイミングを調整するために利用します。
※bondingの動作モードは以下の通りです。
モードによっては対向のNW機器で設定が必要になります。
(引用元:http://www.jp.redhat.com/magazine/jp/200904/rhel.html)mode0:balance-rr
負荷分散と耐障害性を提供します。
負荷分散方式はラウンドロビンです。
モードを指定しなかった場合にはこのモードが利用されます。
trunkに対応したネットワークスイッチが必要です。
mode1:active-backup
耐障害性を提供します。
1つのNICのみが通信を行い、障害が発生した場合は、他のNICに切り替わります。
特別なネットワーク機器は特に必要ありません。
非常に良く利用されるモードです。
mode2:balance-xor
負荷分散と耐障害性を提供します。
分散方式は送信先/送信元MACアドレスのxorが使われます。
オプションでMACアドレスをキーとしたハッシュを利用することも可能です。
trunkに対応したネットワークスイッチが必要です。
mode3:broadcast
特殊な環境を除き、ほとんど利用されることはありません。
束ねたNIC全てからパケットが送信されます。
mode4:802.3ad
IEEE 802.3ad Dynamic link aggregation規格で接続します。
IEEE 802.3adに対応したネットワークスイッチが必要です。
mode5:balance-tlb
負荷分散と耐障害性を提供します。
NICの速度及び負荷に応じて負荷分散を行います。
特別なネットワーク機器は特に必要ありません。
mode6:balance-alb
負荷分散と耐障害性を提供します。
NICの速度及び負荷に応じて負荷分散を行います。
特別なネットワーク機器は特に必要ありません。
スレーブインターフェースの設定
ボンディングを構成するインターフェースをスレーブインターフェースと言いますが、その設定を行ないます。
- 設定の前にバックアップを取ります。
# cp /etc/sysconfig/network-scripts/ifcfg-eth0 /etc/sysconfig/network-scripts/ifcfg-eth0.bak # cp /etc/sysconfig/network-scripts/ifcfg-eth1 /etc/sysconfig/network-scripts/ifcfg-eth1.bak
- eth0にスレーブインターフェースの設定を行ないます。
# vi /etc/sysconfig/network-scripts/ifcfg-eth0 DEVICE=eth0 BOOTPROTO=none ONBOOT=yes TYPE=Ethernet MASTER=bond0 SLAVE=yes
- eth1も同様にスレーブインターフェースの設定を行ないます。
# vi /etc/sysconfig/network-scripts/ifcfg-eth1 DEVICE=eth1 BOOTPROTO=none ONBOOT=yes TYPE=Ethernet MASTER=bond0 SLAVE=yes
- ネットワークサービスを再起動して設定変更を有効にします。
# /etc/init.d/network restart
動作確認
- インターフェースの起動確認をします。
# ifconfig -a bond0 Link encap:Ethernet HWaddr 00:0C:29:58:27:89 inet addr:192.168.11.100 Bcast:192.168.11.255 Mask:255.255.255.0 inet6 addr: fe80::20c:29ff:fe58:2789/64 Scope:Link UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1 RX packets:378 errors:0 dropped:0 overruns:0 frame:0 TX packets:124 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:0 RX bytes:30026 (29.3 KiB) TX bytes:13573 (13.2 KiB) eth0 Link encap:Ethernet HWaddr 00:0C:29:58:27:89 UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 RX packets:254 errors:0 dropped:0 overruns:0 frame:0 TX packets:68 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:21643 (21.1 KiB) TX bytes:7049 (6.8 KiB) Interrupt:177 Base address:0x1400 eth1 Link encap:Ethernet HWaddr 00:0C:29:58:27:89 UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1 RX packets:129 errors:0 dropped:0 overruns:0 frame:0 TX packets:69 errors:0 dropped:0 overruns:0 carrier:0 collisions:0 txqueuelen:1000 RX bytes:8683 (8.4 KiB) TX bytes:8526 (8.3 KiB) Interrupt:185 Base address:0x1480
- LANケーブルを抜いて、ボンディングの動作確認をして下さい。
参考
- RHEL5のbonding設定
http://www.jp.redhat.com/magazine/jp/200904/rhel.html