Linux Hints & Tipsだワン!
ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法ネットワークを冗長化する方法

44.ネットワークを冗長化する方法

 Linuxカーネル2.4.18以降のカーネルを使っていればネットワークの可用性を高めることができる。
これはLinuxカーネルの機能であるbond(統合)機能によって実現可能です。個人使用では必要性は低いですが可用性以外にも複数のネットワーク・インターフェースを束ねて転送速度を上げることも可能なので、知っておくと便利でしょう。

 1.Bondingドライバーの定義方法

/etc/modules.confまたは/etc/modprobe.confに次のように記述します。
alias bond0 bonding
options bond0 miimon=100 mode=1 primary=eth0
もし、複数のbondingを定義する場合はalias bond1とすればよい場合と次のように定義しないといけない場合があります。
install bond1 /sbin/modprobe bonding -o bond1 miimon=200

 2.optionsに指定できるオプション

オプション名 説明
arp_interval ARPモニタリング頻度をミリ秒単位で指定します
ARPモニタリングはmiimonと同時に使用できない
デフォルト値 0
arp_ip_target arp_interval がセットされたとき IP アドレスを指定する
ddd.ddd.ddd.ddd 形式で値を指定。複数のIPアドレスをセットする場合はコンマで区切り設定する
指定可能なターゲット数の最大値 16
downdelay リンク失敗が検知されてからリンクを無効にするまでの遅延時間をミリ秒で指定する
miimon値の倍数で設定する必要がある
デフォルト値 0
lacp_rate 802.3adモードでのLACPDUパケットを転送する為のリンクパートナーを問い合わせる際のレートを指定するオプション
0 / slow LACPDUを送るパートナーを 30秒単位で要求する(デフォルト)
1 / fast LACPDU を送るパートナーを 1秒単位で要求する
max_bonds ボンディング・ドライバの1実体用に作成するボンディング・インターフェースの数を指定する
デフォルト値 1
miimon MII リンク監視を行う頻度をミリ秒単位で指定する
「0」はMIIリンク監視を無効にする。始めにセットする値は100あたりがよい
デフォルト値は 0
mode ボンディング・ポリシーを指定する。デフォルトはラウンドロビン
0 / balance-rr ラウンドロビンポリシー
利用可能なスレーブを最初から最後まで順番に使用して送信する
このモードは負荷分散と対障害性を提供する
1 / active-backup アクティブバックアップポリシー
ボンディング・インターフェース中の1スレーブのみアクティブ。そのアクティブスレーブが失敗した時に限り、他のスレーブがアクティブになる。スイッチの混乱を避けるため、その結合インターフェースの MAX アドレスは外部からは1ポート (1ネットワークアダプタ) のみ見える
このモードは対障害性を提供する
2 / balance-xor XOR ポリシー
「(宛先 MAC アドレスで XOR された元 MAC アドレス) モジューラスレーブカウント」を基にして送信される。この選択は同じ宛先 MAX アドレスに対して同じスレーブを使う
このモードは負荷分散と対障害性を提供する
3 / broadcast ブロードキャストポリシー
全スレーブインターフェースで全てのパケットを送信する
このモードは対障害性を提供する
4 / 802.3ad IEEE 802.3ad 動的リンク集合
スピードと全/半二重設定が同じ集合グループを作成する
アクティブ集合では全てのスレーブで送受信する
5 / balance-tlb 適応送信負荷分散
特別なスイッチサポートを必要としないチャネル結合。外向き通信は現在の負荷に従って各スレーブに分配される。内向き通信は現在のスレーブで受信される。受信スレーブが失敗した場合、別のスレーブが失敗した受信用スレーブのMACアドレスを引き継ぐ
6 / balance-alb 適応負荷分散
IPV4通信用にbalance-tlbと受信負荷分散(rlb)を含み、特別なスイッチサポートを必要としない。受信負荷分散はARP交渉によって実現される。結合ドライバはサーバに対して送られたARP返信を途中で横取りし、サーバへの通信で個々のクライアントが個別のハードウェアアドレスを使用するように、ソースハードウェアアドレスを結合インターフェース中の単一のハードウェアアドレスで上書きする
multicast マルチキャストサポートの為の操作モードを指定するオプション
0 / disabled 無効(マルチキャストサポートなし)
1 / active アクティブバックアップモードに便利な、アクティブなスレーブのみ有効
2 / all 全てのスレーブを有効(デフォルト)
primary 1番目のデバイスとして扱う文字列 (eth0, eth2、など)
もしこの値が入力され、デバイスがオンラインであれば、そのデバイスは出力メディアとして最初に使用されるようになる
このデバイスがオフラインの場合のみ、別のデバイスが使用される
primaryの指定はactive-backupモードの場合のみ有効です
updelay リンクアップ状態を検知した後にリンクが有効になるまでの遅延時間をミリ秒で指定する
これはmiimon値の倍数である必要がある
デフォルト値は 0
use_carrier リンク状態を検知するのに miimon が MII あるいは ETHTOOL ioctl/netif_carrier_ok() を使うか使わないかを指定する
「1」はnetif_carrier_ok()の使用を有効にし「0」はあまり望ましくないMII/ETHTOOL ioctlを使用する
デフォルト値は 1

 3.Bonding基本設定

 ここではeth0とeth1を使ってbondingの設定例を紹介します。

 eth0の設定例 (/etc/sysconfig/network-scripts/ifcfg-eth0)

DEVICE=eth0
MASTER=bond0
SLAVE=yes
BOOTPROTO=none

 eth1の設定例 (/etc/sysconfig/network-scripts/ifcfg-eth1)

DEVICE=eth1
MASTER=bond0
SLAVE=yes
BOOTPROTO=none
ネットワークを冗長化する方法ONBOOTオプションについては他のサイトなどでyesを設定する内容のものがありますが、ONBOOTオプションは設定しても、しなくても問題なさそうだワン!

 bond0の設定例 (/etc/sysconfig/network-scripts/ifcfg-bond0)

DEVICE=bond0
ONBOOT=yes
IPADDR=192.168.1.1
NETMASK=255.255.255.0
NETWORK=192.168.1.0
BROADCAST=192.168.1.255
BOOTPROTO=none

設定後はネットワークサービスを再起動することで設定が反映されます。



戻る
直線上に配置