[network] CentOSにおけるbonding設定メモ


またまたお金をかけずに冗長化しようシリーズです(笑)。今回はCentOS 5.2でbonding設定を行ったのでメモ。NICはeth0とeth1があるので、これを組み合わせてbond0にします。今回行う設定は以下の通り。

bond0のIPアドレス・・・192.168.0.100/24
bond0にまとめるインターフェイス・・・eth0とeth1
IPv6は設定しない

1. bondingモジュールの読み込み

[root@ishikari ~]# cd /etc/modprobe.d/
[root@ishikari modprobe.d]# vi bonding
alias bond0 bonding
option bond0 miimon=100 mode=1 primary=eth0

今回はNICの監視をMIIにやらせます。

2. bondingインターフェースの定義

[root@ishikari ~]# cd /etc/sysconfig/network-scripts/
[root@ishikari network-scripts]# vi ifcfg-bond0
DEVICE=bond0
BOOTPROTO=static
BROADCAST=192.168.0.255
IPADDR=192.168.0.100
IPV6ADDR=
IPV6PREFIX=
NETMASK=255.255.255.0
NETWORK=192.168.0.0
ONBOOT=yes

3. bondインターフェースへethXデバイスを参加させる

既存のeth0とeth1にIPアドレスを設定せず、bond0のslaveとして振舞うように設定する。

[root@ishikari network-scripts]# vi ifcfg-eth0
# Realtek Semiconductor Co., Ltd. RTL-8169 Gigabit Ethernet
DEVICE=eth0
BOOTPROTO=static
ONBOOT=yes
MASTER=bond0
SLAVE=yes

[root@ishikari network-scripts]# vi ifcfg-eth1
# Intel Corporation 82540EM Gigabit Ethernet Controller
DEVICE=eth1
BOOTPROTO=static
ONBOOT=yes
MASTER=bond0
SLAVE=yes

あとはネットワークの再起動をするだけ。
# /etc/init.d/network restart

確認してみる。
$ /sbin/ifconfig
bond0     Link encap:Ethernet  HWaddr 00:90:CC:E9:2D:DD
          inet addr:192.168.0.100  Bcast:192.168.0.255  Mask:255.255.255.0
          inet6 addr: fe80::290:ccff:fee9:2ddd/64 Scope:Link
          UP BROADCAST RUNNING MASTER MULTICAST  MTU:1500  Metric:1
          RX packets:226686 errors:0 dropped:0 overruns:0 frame:0
          TX packets:254940 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:53590591 (51.1 MiB)  TX bytes:65817477 (62.7 MiB)

eth0      Link encap:Ethernet  HWaddr 00:90:CC:E9:2D:DD
          inet6 addr: fe80::290:ccff:fee9:2ddd/64 Scope:Link
          UP BROADCAST RUNNING SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:226686 errors:0 dropped:0 overruns:0 frame:0
          TX packets:254942 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:53590591 (51.1 MiB)  TX bytes:65817801 (62.7 MiB)
          Interrupt:193 Base address:0xa000

eth1      Link encap:Ethernet  HWaddr 00:90:CC:E9:2D:DD
          UP BROADCAST SLAVE MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 b)  TX bytes:0 (0.0 b)
          Base address:0xecc0 Memory:fe100000-fe120000

lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:8019 errors:0 dropped:0 overruns:0 frame:0
          TX packets:8019 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:943061 (920.9 KiB)  TX bytes:943061 (920.9 KiB)

はいできたー。あとはケーブルを片方ずつひっこ抜いて、通信が途切れないのを確認すればOK。
ね、簡単でしょ?

※ 注意点
非bond環境からbonding環境にするときはそのままモジュールを読み込めばよいが、bonding環境から非bond環境に戻すときは、ネットワークの再起動だけじゃなくてOSごと再起動したほうがよい。