UNIX/Linux bonding setting


検索しても意外とちゃんと情報がまとまっていなかったので、自分で整理メモ。

設定内容
  • mode はアクティブスタンバイ</p>
    • 運用上の NIC の冗長化を狙っているので、定常時にトラフィックが流れる向きは固定したい
  • 最短で切り替わるようにしたい miimon は最小 100msec
1) /etc/modprobe.conf

以下のように記述


# vi /etc/modprobe.conf



alias bond0 bonding

options bond0 mode=1 primary=eth0

options bond0 miimon=100

2) ifcfg-bond0 を作成

記述形式は ifcfg-eth0 などと同様なので、コピってきたほうが早い。


# cd /etc/sysconfig/network-scripts

# cp ifcfg-eth0 ifcfg-bond0

# vi ifcfg-bond0

記述内容は


DEVICE=bond0

IPADDR=192.168.1.100

NETMASK=255.255.255.0

NETWORK=192.168.1.0

BROADCAST=192.168.1.255

ONBOOT=yes

BOOTPROTO=none

として、保存。

3) 対象となる物理インターフェイスへの設定 ifcfg-eth0, ifcfg-eth1 設定変更

# cd /etc/sysconfig/network-scripts

# vi ifcfg-eth0



DEVICE=eth0

ONBOOT=yes

MASTER=bond0

SLAVE=yes

BOOTPROTO=none


# vi ifcfg-eth1



DEVICE=eth1

ONBOOT=yes

MASTER=bond0

SLAVE=yes

BOOTPROTO=none

4) network の再起動

# /etc/rc.d/init.d/network restart

5) 確認
  • ifconfig でみる

bond0, eth0, eth1 ともに MAC アドレスが同じになっていて、bond0 “MASTER”, eth0,1 “SLAVE” となっていればOK

この時、IPアドレスは bond0 にしかついていないことも確認


bond0  	Link encap:Ethernet HWaddr 00:90:99:32:4F:DC

inet addr:172.16.100.31 Bcast:172.16.255.255 Mask:255.255.0.0

UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1

RX packets:210 errors:0 dropped:0 overruns:0 frame:0

TX packets:42 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:0

RX bytes:19458 (19.0 Kb) TX bytes:3162 (3.0 Kb)



eth0 	Link encap:Ethernet HWaddr 00:90:99:32:4F:DC

UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1

RX packets:104 errors:0 dropped:0 overruns:0 frame:0

TX packets:21 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:100

RX bytes:9669 (9.4 Kb) TX bytes:1698 (1.6 Kb)

Interrupt:15 Base address:0xdf80



eth1 	Link encap:Ethernet HWaddr 00:90:99:32:4F:DC

UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1

RX packets:106 errors:0 dropped:0 overruns:0 frame:0

TX packets:21 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:100

RX bytes:9789 (9.5 Kb) TX bytes:1464 (1.4 Kb)

Interrupt:10 Base address:0x1c00

  • dmesg を実行

タイムスタンプはないが bond0 で eth0, eth1 の active 切り替わりが確認できる

  • tail /var/log/message を実行

タイムスタンプありで bond0 の切り替わりがログに出力される

参考サイト

bonding記述の和訳ドキュメント