2つNICがある場合のbonding設定

Linux

社内ローカル用のファイルサーバとして、DELLのサーバを中古で購入してもらいました。
2世代くらい前のサーバですが、電源をONにした際のFAN音がサーバ機を感じさせます。

 

インストールなどは、機会があれば記事にしていきますので今回は飛ばします。

 

インストール時は2つNICがあっても有効になっているのは、1つかと思われます。
まずは、有効になっていないNICを動作するようにしていきます。

 

下記のコマンドを実行し「/etc/sysconfig/network-scripts」へ移動します。
[shell]
cd /etc/sysconfig/network-scripts
[/shell]

 

次に、下記のコマンドでファイルの存在を確認します。
[shell]
ls -la ifcfg-eth*
[/shell]

 

実行した結果、下記のように2つのファイルが出力されると思います。
[shell]
-rw-r–r– 1 root root 206 Jan 19 2013 ifcfg-eth0
-rw-r–r– 1 root root 204 Jan 19 2013 ifcfg-eth1
[/shell]

 

では、bondingの設定をしていきます。

 

何をやるにしても、動かなくなった時のためにバックアップを取っておきます。
[shell]
# ファイルコピー
cp ifcfg-eth0 ifcfg-eth0.bk
# コピー確認
ls -la ifcfg-eth0.bk

# ファイルコピー
cp ifcfg-eth1 ifcfg-eth1.bk
# コピー確認
ls -la ifcfg-eth1.bk
[/shell]

 

バックアップが取れていることを確認した上で、それぞれのファイルを編集します。
[shell]
vi /etc/sysconfig/network-scripts/ifcfg-eth0
[/shell]

 

ファイルを開いたら、下記の内容に変更します。
※HWADDRは、そのままですので注意してください!
[shell]
DEVICE=”eth0″
NM_CONTROLLED=”no”
ONBOOT=yes
HWADDR=**:**:**:**:**:**
TYPE=Ethernet
BOOTPROTO=none
IPV6INIT=no
MASTER=bond0
SLAVE=yes
[/shell]

 

同じように、もう1つのファイルも編集していきます。
[shell]
vi /etc/sysconfig/network-scripts/ifcfg-eth1
[/shell]

 

こちらもファイルが開けたら、下記の内容に変更します。
※HWADDRは、そのままですので注意してください!
[shell]
DEVICE=”eth1″
NM_CONTROLLED=”no”
ONBOOT=yes
HWADDR=**:**:**:**:**:**
TYPE=Ethernet
BOOTPROTO=none
IPV6INIT=no
MASTER=bond0
SLAVE=yes
[/shell]

 

ここまで完了したら、あと一息です。
次のファイルを作成します。
[shell]
vi /etc/sysconfig/network-scripts/ifcfg-bond0
[/shell]

 

設定は下記のように行っていきます。
※IPADDR、GATEWAY、DNS1、DOMAINなどは環境に合わせて設定してください。
[shell]
DEVICE=”bond0″
NM_CONTROLLED=”no”
ONBOOT=yes
TYPE=Ethernet
BOOTPROTO=none
IPADDR=192.168.0.100
PREFIX=24
GATEWAY=192.168.0.1
DNS1=192.168.0.1
DOMAIN=localhost
DEFROUTE=yes
IPV4_FAILURE_FATAL=yes
IPV6INIT=no
BONDING_OPTS=”mode=1 primary=eth0 miimon=500 updelay=1000″
[/shell]

 

ここまで設定が完了したら、ネットワークの再起動を行います。
[shell]
/etc/init.d/network restart
[/shell]

 

再起動が完了したら、LANケーブルをもう片方のNICへ差し込みます。
上記の設定状態ですと、冗長化となっていますので片方のNICが利用不可能な状態となっても接続が可能となります。

 

BONDING_OPTSのmodeについては、下記を参考にして環境に合わせて利用してください。

mode0: balance-rr(Round Robin)
負荷分散と冗長化に対応。
負荷分散方式はラウンドロビンで使用可能なスレーブデバイスから順番にデータの送受信を行う。
trunkに対応したネットワークスイッチが必要。
モードを指定しなかった場合にはこのモードが利用される。

mode1: active-backup
冗長化のみに対応。
1つのスレーブデバイスのみが通信を行い、障害が発生した場合は他のNICに切り替わる。
特別なネットワーク機器は必要ない。
非常に良く利用されるモード。

mode2: balance-xor (exclusive-or)
負荷分散と冗長化に対応。
送信先と送信元のMACアドレスのxorを利用。
(送信先のMACアドレスが同じであれば、送信元スレーブデバイスも常に同じNICを使用する)
オプションでMACアドレスをキーとしたハッシュを利用することも可能。
trunkに対応したネットワークスイッチが必要。

mode3: broadcast
全てのスレーブデバイスからパケットを送信。
特殊な環境を除いてほとんど利用されることはない。

mode4: 802.3ad
IEEE 802.3ad Dynamic link aggregation規格で接続。
リンク速度(100Mbps/1Gbps等)とDuplex(全二重/半二重)によりグループを作って全てのスレーブデバイスでデータの送受信をする。
IEEE 802.3adに対応したネットワークスイッチが必要。

mode5: balance-tlb(transmit load balancing)
負荷分散と冗長化に対応。
送信時のみ NIC の速度及び負荷に応じて負荷分散を行い受信時は冗長化を行う。
(スレーブデバイス障害時は MAC アドレスを別のデバイスに引き継ぐ)
特別なネットワーク機器は特に必要ない。

mode6: balance-alb(active load balancing)
負荷分散と冗長化に対応。
送受信共にNICの速度及び負荷に応じて負荷分散を行う。
(受信のロードバランシングはARPネゴシエーションを利用)
特別なネットワーク機器は特に必要ない。

 

こう言う設定は、なかなかやることがないのでメモしておかないとすぐに忘れてしまいそうです。
最近のPC(マザーボード)では、NICが2つ搭載されている物が多いので、bondingを設定し有効活用するのもいいかもしれません。

コメント

タイトルとURLをコピーしました