Last Updated on 2013年7月30日 by かんりにん
[pukiwiki]
#topicpath
#contents
*bonding(結合インターフェース)
結合インターフェースbondingの設定方法。
**参考URL
お世話になっております。
http://www.linux.or.jp/JF/JFdocs/kernel-docs-2.4/networking/bonding.txt.html
*設定
環境としては以下のような感じを想定して話を進めます。
-ネットワーク 192.168.0.0/24
-ゲートウェイ 192.168.0.1
-ホスト
:モジュール1 bond0|
IPアドレス 192.168.0.2
スレーブIF slave1 eth0
slave2 eth1
:モジュール2 bond1|
IPアドレス 192.168.0.3
スレーブIF slave1 eth2
slave2 eth3
**1.bondingモジュールのロード設定
通常のbonding設定の例。
デフォルトでは存在しないファイルもあるので、都度touchする。
-/etc/modules.conf
# cd /etc/
# vi modulues.conf
追記箇所
bondingモジュールのエイリアスを追加する。
alias bond0 bonding
options mode=1 miimon=100 primary=eth0
上記で指定されているパラメータについては以下のとおり。
:mode|bondingのモード指定。1の場合はアクティブ/スタンバイ方式。
ほかにもラウンドロビンなども指定可能。
:miimon|リンク監視パラメータ。スレーブIFの疎通を監視する。
0で監視無効(デフォルトは0)。
単位はミリ秒で、推奨は100ms(miimon=100)。
:primary|スレーブIFが両方アップしている場合にプライマリとするIFの指定。
未指定OKだが、片方が障害となりスタンバイへのフェイルオーバーが発生した際、
障害発生IFが復旧した後もスタンバイから切り替わらないので、
どちらがアクティブになっているかは注意が必要(下記”ステータスを確認”を参照)。
:【注意点】モジュールパラメータ|
スレーブとなるIFのリンク監視のパラメータの指定。
”miimon”パラメータか、または”arp_interval/arp_ip_target”パラメータのどちらかを
かならず指定すること。
デフォルト設定では0となっているが、0のままだとリンク監視が行われず
bondingが有効にならない。
指定可能なオプションパラメータはこのほかにも多数ある。modeもいろいろ選択できるので
上記URLを参照のこと。
**2.各IFのコンフィグ
/etc/sysconfig/network-scripts/以下の各ファイルを編集。
:ifcfg-bond0|
本来ifcfg-eth0などのファイルに設定されるパラメータを
こちらに設定する。
# touch ifcfg-bond0
# vi ifcfg-bond0
編集内容
DEVICE=bond1
BOOTPROTO=none
BROADCAST=192.168.0.255
IPADDR=192.168.0.2
NETMASK=255.255.255.0
NETWORK=192.168.0.0
GATEWAY=192.168.0.1
ONBOOT=yes
:ifcfg-eth0|
編集内容
DEVICE=eth0
ONBOOT=yes
MASTER=bond1
SLAVE=yes
BOOTPROTO=none
:ifcfg-eth1|
編集内容
DEVICE=eth1
ONBOOT=yes
MASTER=bond1
SLAVE=yes
BOOTPROTO=none
**3.設定の適用
bondingの設定を変更した場合、モジュールをロードした後に有効になるため
新規追加・設定変更を行った場合は/etc/init.d/networkのrestartではダメ。
デーモンを停止してbondingモジュールを一旦アンロードする必要がある。
-例:モジュールbonding0の設定を適用する場合
# /etc/init.d/network stop
# rmmod bonding0 ←ここでbondingモジュールをアンロード
# /etc/init.d/network start
**4.動作テスト
***ログで確認。
※/var/log/messagesからログ抜粋
以下の手順でLANケーブルの抜き差しを行い、ping疎通とアクティブの状態を確認。
スレーブがeth0、eth1ともにアップしている場合、アクティブは常時eth0になる。
+eth0のLANケーブル引抜き
eth1がアクティブになる
+eth0のLANケーブル差込み
アクティブがeth1からeth0に戻る
+eth1のLANケーブル引抜き
アクティブeth0のまま
+eth1のLANケーブル差込み
アクティブeth0のまま
—-
+eth0リンクダウン→eth1アクティブ
Mar 8 18:16:40 testhosts kernel: e1000: eth0: e1000_watchdog: NIC Link is Down
Mar 8 18:16:40 testhosts kernel: bonding: bond0 link status definitely down for interface eth0, disab ling it
Mar 8 18:16:40 testhosts kernel: bonding: bond0: making interface eth1 the new active one.
+eth0リンクアップ→アクティブIF切り替え(アクティブがeth1からeth0へ戻る)
Mar 8 18:16:47 testhosts kernel: e1000: eth0: e1000_watchdog: NIC Link is Up 1000 Mbps Full Duplex
Mar 8 18:16:47 testhosts kernel: bonding: bond0: link status definitely up for interface eth0.
Mar 8 18:16:47 testhosts kernel: bonding: bond0: making interface eth0 the new active one.
+eth1リンクダウン(アクティブはeth0のまま)
Mar 8 18:17:22 testhosts kernel: e100: eth1: e100_watchdog: link down
Mar 8 18:17:22 testhosts kernel: bonding: bond0: link status definitely down for interface eth1,
disabling it
+eth1リンクアップ(アクティブはeth0のまま)
Mar 8 18:17:32 testhosts kernel: e100: eth1: e100_watchdog: link up, 100Mbps, full-duplex
Mar 8 18:17:32 testhosts kernel: bonding: bond0: link status definitely up for interface eth1.
***ステータスを確認
/proc/net/bonding/bond*でステータスを確認できる。
# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v*.* (honyarara, 2004)
Bonding Mode: fault-tolerance (active-backup)
Primary Slave: eth0 ←設定上のアクティブスレーブ
Currently Active Slave: eth0 ←現在のアクティブスレーブ
MII Status: up ←MIIのステータス
MII Polling Interval (ms): 100 ←MIIの監視間隔
Up Delay (ms): 0 ←リンク復旧を検知後、IFを有効にするまでの遅延時間(ここでは未設定)
Down Delay (ms): 0 ←リンク失敗を検知後、IFを無効にするまでの遅延時間(ここでは未設定)
Slave Interface: eth0
MII Status: up
Link Failure Count: 2 ←リンクダウンが発生した回数(累積)
Permanent HW addr: 00:**:**:**:**:**
Slave Interface: eth2
MII Status: up
Link Failure Count: 1 ←リンクダウンが発生した回数
Permanent HW addr: 00:**:**:**:**:**
各ステータスはnetworkデーモンを再起動するとリセットされる。
**Tip
***参考1:bondingに対するルーティング
RHEL3.0の場合(というかRHL8以降)、/etc/sysconfig/network-scripts/に
route-
通常のIFの場合はroute-eth0などだが、bondingの場合は
route-bond0などになる。
route-
touchして作成し、適宜編集。
-書式例
192.168.0.0/24のNWから192.168.10.0/24へのルーティング(gwは192.168.0.1)
route-bond0
192.168.10.0/24 via 192.168.0.1
設定したら/etc/init.d/networkをrestart。
[注意]
bondingに対するルーティングを指定した場合、
スレーブに指定されている各IFへの個別のルーティング設定は無効になる。
***参考2:複数のbondingの設定方法
複数のbondingインターフェースを設定する場合のコンフィグ
設定方法は2通り。ともに/etc/modules.confで追加指定する。
+max_bondsパラメータ
パラメータで指定した数の分のインターフェースを作成可能。
但し全てのインターフェースで共通のオプションとなる。
[書式例]
optionsでまとめて指定
–arp_intervalの場合
alias bond0 bonding
alias bond1 bonding
options bonding max_bonds=3 mode=1 arp_interval=100
–miimonの場合
alias bond0 bonding
alias bond1 bonding
options bonding max_bonds=3 mode=1 miimon=100
+オプションに直接記述
それぞれのbondigインターフェースごとにオプションを変更したい場合は
optionsでbondingを指定して、それぞれオプションを設定する。
-o bonding*(モジュールの指定)
[書式例]
bond0、bond1でそれぞれオプションを指定
alias bond0 bonding
alias bond1 bonding
options bond0 -o bonding0 mode=1 miimon=100 primary=eth0
options bond1 -o bonding1 mode=1 miimon=100 primary=eth2
-記事引用
複数の結合インターフェース(bondingインターフェース)の設定
http://www.linux.or.jp/JF/JFdocs/kernel-docs-2.4/networking/bonding.txt.html
================================
いくつかの結合インターフェースが必要な場合、max_bonds パラメータ (上記で説明)
を指定するか、デバイスドライバを複数回ロードして下さい。max_bonds パラメータ
を使用する事により、若干複雑ではなくなりますが、用意された全ての結合インター
フェースが同じオプションを持つという制限があります。ドライバの複数回ロードは、
ドライバの各インスタンスに別のオプションを設定できます。
例えば、2つの結合インターフェースを設定する際、片方は MII リンク監視を 100
ミリ秒単位で実行して、もう片方は ARP リンク監視を 200ミリ秒単位で実行する場
合、/etc/modules.conf は下記のような形になります。
alias bond0 bonding
alias bond1 bonding
options bond0 miimon=100
options bond1 -o bonding1 arp_interval=200 arp_ip_target=10.0.0.1
[/pukiwiki]