Fedora 14 でbonding設定

Fedora14でボンディング設定

bonding(ボンディング)
複数のNICをひとつのNICとして束ねる技術です。
耐障害性や負荷分散をさせることができます。

Linuxでは複数の動作モードが用意されていて、用途にあったものを選択することができます。

bondingの種類については以下を参照のこと。
http://www.jp.redhat.com/magazine/jp/200904/rhel.html

一般的には、
mode=1(Active-Backup:複数のNICの内1つだけが通信をし、そのNICがダウンした時は他のNICに切り替え、通信を続行できるようにする動作モード)
が使われているらしいので、これを例に設定します。

まずはルートに昇格

$ su -
#

初めに、bondingを有効にします。

# nano /etc/modprobe.d/dist.conf

ファイルの末尾に、

alias bond0 bonding
options bond0 mode=1 miimon=100

これでbondingの準備ができました。
miimonはbond0の監視を行う設定です。


次はインターフェース定義ファイルがあるディレクトリに移動。

# cd /etc/sysconfig/network-scripts/

NICの定義ファイルをコピーし、bonding用に設定する。

# cp ifcfg-eth0 ifcfg-bond0
# nano ifcfg-bond0

以下のように書き換えます。

DEVICE=bond0
BOOTPROTO=dhcp
ONBOOT=yes
TYPE=Ethernet

bond0の設定はこれでおkです。

今度はifcfg-eth0、ifcfg-eth1の設定。

# nano ifcfg-eth0
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
TYPE=Ethernet
MASTER=bond0
SLAVE=yes

DEVICE=eth0
NICを指定します。
eth0の設定ならeth0、eth1ならeth1の設定。
ifcfg-***の***と合わせる。じゃないと分かりづらいです。

BOOTPRO=none
起動時にDHCPからIPアドレスを固定もしくは割り当てない時にする設定です。

ONBOOT=yes
Fedora14が起動したときにNICを有効にするかどうかの設定です。
yesなので起動時に有効化します。

MASTER=bond0
ボンディング用の設定です。
束ねられた(ボンディングされた)NICの名前を記述します。

SLAVE=yes
ボンディング用の設定です。
束ねられたNICのグループに入るかどうかの設定です。
yesはボンディングに参加します。


ifcfg-eth1も同様の設定で。


ここで一度再起動。

# reboot

諸事情で再起動できない〜と言う場合は、

# rmmod bonding
# modprobe bonding
# /etc/init.d/network restart

で大丈夫らしい。らしい。

※注意
再起動したときに、bond0、eth0にIPアドレスが割り振られている場合(ifconigで確認)、もしくは、
# /etc/init.d/network restart
を実行したときにNICの再起動が失敗する場合(RTNETLINK answers: File exists が出現するなど)、

# service NetworkManager stop

でNetworkManagerを停止させるとうまくいく場合あり。
NetworkManager止めてもネットワーク使えなくなるとかそんなことはなかったぜ!!

恒久的に止める場合

# chkconfig NetworkManager off

確認

# chkconfig NetworkManager --list
NetworkManager 0:off 1:off 2:off 3:off 4:off 5:off 6:off

これで次回以降再起動してもNetworkManagerは起動してきません。

その他、起こった現象としては、

・ルーティングテーブルの異常

# netstat -rn

で、ルーティングテーブルを確認するとデフォルトゲートウェイのifaceがbond0ではなくeth0

・ネットに接続できない
ブラウザなどでwebページを閲覧しようとしても閲覧できない繋がらない。


IPアドレスの確認

# ifconfig
bond0 Link encap:Ethernet HWaddr 08:00:27:14:C7:7A
inet addr:192.168.56.101 Bcast:192.168.56.255 Mask:255.255.255.0
inet6 addr: fe80::a00:27ff:fe14:c77a/64 Scope:Link
UP BROADCAST RUNNING MASTER MULTICAST MTU:1500 Metric:1
RX packets:3474 errors:0 dropped:0 overruns:0 frame:0
TX packets:1464 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:356502 (348.1 KiB) TX bytes:208594 (203.7 KiB)

eth0 Link encap:Ethernet HWaddr 08:00:27:14:C7:7A
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:1436 errors:0 dropped:0 overruns:0 frame:0
TX packets:1187 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:149741 (146.2 KiB) TX bytes:168411 (164.4 KiB)
Interrupt:11 Base address:0xd020

eth1 Link encap:Ethernet HWaddr 08:00:27:14:C7:7A
UP BROADCAST RUNNING SLAVE MULTICAST MTU:1500 Metric:1
RX packets:2064 errors:0 dropped:0 overruns:0 frame:0
TX packets:290 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:1000
RX bytes:208477 (203.5 KiB) TX bytes:42305 (41.3 KiB)
Interrupt:10 Base address:0xd060

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:1341 errors:0 dropped:0 overruns:0 frame:0
TX packets:1341 errors:0 dropped:0 overruns:0 carrier:0
collisions:0 txqueuelen:0
RX bytes:2856114 (2.7 MiB) TX bytes:2856114 (2.7 MiB)

bond0にのみIPアドレスが割り振られていれば設定完了です。

確認作業として、eth0のLANケーブルを抜線します。
通信が正常に続けられれば成功。(何度かtimeoutになってもちょっとしたら復活します。)