2014年05月15日

CentOS6でNICの冗長化(bonding設定)

前にIPエイリアスで1つのNICに複数IPを設定したが、その逆パターン。
http://m97087yh.seesaa.net/article/169472227.html

情報も多くあり、そんなに難しくなかった。いつも先人の方達に感謝!

1.bondingモジュールの設定ファイルを作成

# vi /etc/modprobe.d/bonding.conf

alias bond0 bonding

2.NICの設定

# vi ifcfg-eth0

DEVICE=eth0
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
NAME="System eth0"
HWADDR=50:46:5D:DB:B8:64

# vi ifcfg-eth1

DEVICE=eth1
TYPE=Ethernet
ONBOOT=yes
NM_CONTROLLED=no
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
NAME="System eth1"
HWADDR=50:46:5D:DB:B8:65

# vi ifcfg-bond0

DEVICE=bond0
BOOTPROT=none
ONBOOT=yes
IPADDR=192.168.1.102
BROADCAST=192.168.1.255
NETWORK=192.168.1.0
NETMASK=255.255.255.0
GATEWAY=192.168.1.1
BONDING_OPTS='mode=0 miimon=500'

modeは以下7種類。デフォルトは0。

mode説明
0全てのスレーブデバイス(NIC)を順番(ラウンドロビン)に使いパケットを送信。送信のみ負荷分散。
11つのスレーブのみを active interfaceとしパケットを送信。active interfaceに障害が発生した場合、他の backup slave を active interfaceに切り替え、冗長性を確保。
2送信元/先 MACアドレスを元に送信スレーブを決定しパケットを送信。送信のみ負荷分散。
3全スレーブに同一パケットを送信。このモードは通常の用途で使用されないので無視。
4IEEE 802.3ad(LACP)に準拠したリンクアグリゲーション。
5スレーブの負荷に応じて送信スレーブを決定しパケットを送信。送信のみ負荷分散。
6balance-tlbの機能に加え、受信も負荷分散。


miimon= − MIIリンク監視の実行頻度を指定します。(ミリ秒単位) NICがアクティブかを確認するのにMIIを利用。

MIIでの監視が使えるかは以下のコマンドで確認。

# mii-tool eth0

eth0: negotiated 100baseTx-FD, link ok

link ok とあるのでNICは対応している。

MIIが使えない場合はARPパケットで監視を行うらしい。

その際のオプションは以下の感じ。

options bonding mode=1 arp_interval=100 arp_ip_target=192.168.100.1

3.ネットワーク再起動

# service network restart

4.テスト

# cat /proc/net/bonding/bond0

Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)

Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 50:46:5d:db:b8:64
Slave queue ID: 0

Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 50:46:5d:db:b8:65
Slave queue ID: 0

2つのNICがUPしてる。

# ifdown eth0

通信ができることを確認。さっきのコマンドで確認。

Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)

Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 50:46:5d:db:b8:65
Slave queue ID: 0

eth1で通信頑張ってる。
eth0を再起動。

# ifup eth0

さっきのコマンドで確認。

Ethernet Channel Bonding Driver: v3.6.0 (September 26, 2009)

Bonding Mode: load balancing (round-robin)
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 50:46:5d:db:b8:65
Slave queue ID: 0

Slave Interface: eth0
MII Status: down
Speed: Unknown
Duplex: Unknown
Link Failure Count: 0
Permanent HW addr: 50:46:5d:db:b8:64
Slave queue ID: 0

eth0が復活!

逆も試してみる。

以上
posted by hana at 18:29| Comment(0) | TrackBack(0) | Linux関連 | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前:

メールアドレス:

ホームページアドレス:

コメント:

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。
※ブログオーナーが承認したコメントのみ表示されます。

この記事へのトラックバック