harumaki.net

インフラ屋の覚書や、ラーメン食べある記とか。

CentOS GNU/Linux network

RedHatEnterprise3.0​/bonding(結合インターフェース)

投稿日:2006年3月9日

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]

-CentOS, GNU/Linux, network
-,

執筆者:


comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA


関連記事

no image

[メモ]Juniper SSG ScreenOS ファームウェアのアップデート

SSGシリーズ(SSG-5-SH-EXT)のファームウェアを最新版にアップデートしたので、そのメモをまとめときました。作業はTFTPベースでささっと実施。 更新前後のバージョンは以下の通りです。 更新 …

[AWS] EC2 HVMタイプを使う時のファイルシステム周りの作業2(swap追加)

  さしあたりAWSだから、t2インスタンスだから、というわけでは全くないけどメモ。 t2インスタンスは、もともとスワップ領域がないインスタンスタイプのため、スワップが必要な場合は、EBSを追加してm …

no image

phpmyfaq​のインストール

[pukiwiki] *phpmyfaqインストール [#q624bdca] 社内イントラ用にテストとして導入したFAQシステム”phpmyfaq”のインストール。 ごく簡単だ …

no image

[メモ]DNS SPFレコードタイプトTXTレコードタイプについて(RFC7208)

  Route53で新サービス用のドメインのDNS環境整備ため、SPFレコードを登録しようとしたところ、レコードタイプに”SPF”なるタイプがあった! 自分は今までずっとTXT …

no image

phpmyadminのインストール(rpm版)

[pukiwiki] ごく簡単だけど、備忘録として。 # yum install phpmyadmin RPMでインストールした場合、phpmyadminのコンテキストパス(?)は/usr/share …