特定のアプリケーションでボンディングインターフェイスを使用する方法
Issue
- はじめに
- ボンディングインターフェイスで VLAN デバイスを設定する
- ボンディングインターフェイスで IPv6 を無効にする
- ボンディングインターフェイスにアクティブインターフェイスの MAC アドレスを割り当てる
- Xen ブリッジされたネットワークにボンディングインターフェイスを使用する
- Red Hat Cluster Suite におけるボンディングインターフェイスを使用する
はじめに
ここでは、VLAN、IPv6、フェイルオーバー MAC などの特定の条件でボンディングインターフェイスを使用する方法について説明します。また、Red Hat Enterprise Linux Virtualization や、Red Hat Cluster Suite などの特定のアプリケーションでボンディングインターフェイスを使用する方法についても説明します。
ボンディングインターフェイスで VLAN デバイスを設定する
8021q ドライバーを使用して、ボンディングインターフェイスで VLAN デバイスを設定するには、以下の手順に従ってください。
- 8021q モジュールがロードされていない場合は、次のコマンドを使用してロードします。
# modprobe 8021q
- How do I configure the bonding device on Red Hat Enterprise Linux? に従ってボンディングインターフェイスを設定してください。ここでは、ボンディングインターフェイスを bond0 としています。
- /etc/sysconfig/network-scripts ディレクトリで設定ファイルを作成し、VLAN インターフェイスを設定します。設定ファイルの名前はボンディングインターフェイスおよび VLAN ID をピリオドでつなげたものになります。たとえば、VLAN ID が 2 でボンディングインターフェイスが bond0 とすると、設定ファイルの名前は ifcfg-bond0.2 になります。ファイルの設定は以下のようになります。
DEVICE=bond0.2 BOOTPROTO=static ONBOOT=yes IPADDR=192.168.1.1 NETMASK=255.255.255.0 NETWORK=192.168.10.0 USERCTL=no VLAN=yes
- ネットワークを再起動します。
# service network restart
ボンディングインターフェイスで IPv6 を無効にする
Red Hat Enterprise Linux 5.4 のボンディングモジュールへのアップデートには、IPv6 モジュールがロードされている必要があります。ただし、ボンディングインターフェイスの IPv6 を何らかの理由で無効としたい場合は、/etc/modprobe.conf の次のエントリーを変更します。
alias ipv6 off
以下のように変更してください。
alias ipv6 "disable=1"
これにより IPv6 モジュールがロードされ、lsmod の実行時に表示されますが、IPv6 実行コードパスが無効になります。
詳細については、How do I disable the IPv6 protocol in Red Hat Enterprise Linux? を参照してください。
ボンディングインターフェイスにアクティブインターフェイスの MAC アドレスを割り当てる
ボンディングのパラメータ fail_over_mac は、active-backup モードがすべてのスレーブを同じ MAC アドレスに設定する (従来の動作) かどうかを指定したり、アクティブなインターフェイスを変更する (つまり MAC アドレスそのものをフェイルオーバーする) 際にボンドの MAC アドレスを変更するために使用できます。
# cat /etc/sysconfig/network-scripts/ifcfg-bond0
DEVICE=bond0
IPADDR=192.168.50.111
NETMASK=255.255.255.0
USERCTL=no
BOOTPROTO=none
ONBOOT=yes
BONDING_OPTS="mode=0 miimon=100 fail_over_mac=1"
MAC のフェイルオーバーは、MAC アドレスを変更できないデバイスや、デバイス自身の MAC アドレスによるブロードキャスト(ARP 監視に抵触します)を拒否するデバイスにとって有用です。
MAC のフェイルオーバーの短所は、従来の方法であるスイッチまたは一連のスイッチをアップデートする代わりに、ネットワーク上のすべてのデバイスを gratuitous ARP を経由してアップデートする必要があることです。スイッチは、入力トラフィックをスヌープしてテーブルをアップデートする場合に、ARP トラフィック以外のトラフィックを頻繁に発生させます。gratuitous ARP がなくなると、通信が中断される可能性があります。
実際に送信および受信できるようになる前に link-up が検出されたデバイスは、 MAC のフェイルオーバーを MII モニターとともに使用する際に、特に gratuitous ARP がロストした場合に影響を受けやすいため、適切な delay 設定が必要になる場合があります。値が 0 の場合は、 MAC のフェイルオーバーは無効です。これがデフォルトになります。値が 1 の場合は、 MAC のフェイルオーバーは有効となります。最初に追加されたスレーブがその MAC アドレスを変更できない場合、このオプションは自動的に有効になります。スレーブがボンド上に表示されている場合は、sysfs を経由して修正することができません。
フェイルオーバー MAC は、ボンディング 3.2.0 で追加されました。
ボンディングのカーネルの詳細については、/usr/share/doc/kernel-doc-$(uname -r)/Documentation/networking/bonding.txt を参照してください。
Xen ブリッジされたネットワークにボンディングインターフェイスを使用する
環境 : Red Hat Enterprise Linux 5.3 以降
この章では、ボンディングインターフェイスが存在することを前提としています。Red Hat Enterprise Linux 上でボンディングネットワークを設定してデプロイするには、How do I configure the bonding device on Red Hat Enterprise Linux? または /usr/share/doc/kernel-$(uname -r)/Documentation/networking/bonding.txt を参照してください。
仮想化環境でサポートされているボンディングモード
Red Hat Enterprise Linux 5 は 7 つのボンディングモード (モード 0~6) をサポートします。ただし、Red Hat Enterprise Virtualization Hypervisor (RHEV-H) を含む Xen、KVM などの仮想化ハイパーバイザでは、すべてのモードが十分にサポートされているわけではありません。
Red Hat Enterprise Linux
-
仮想ゲストは、ブリッジされたネットワークを使用する仮想化環境で balance-rr (モード 0) を使用することはできません。
-
Xen 仮想化で balance-tlb (モード 5) および balance-alb (モード 6) を使用することはできません。
balance-rr (モード 0) モード問題の詳細については、Round-robin bonding (mode 0) with virtualization breaks networking for guests.Why?How can I work around it? を参照してください。
Red Hat Enterprise Virtualization (RHEV)
- IEEE 802.3ad リンクアグリゲーション (モード 4) だけがボンディングモードを正式にサポートしています。
- RHEV-M インターフェイスのボンディングオプションフィールドは空白にする必要があります。
- フィールドを空白にすると、デフォルトオプションが使用されます。"mode=4 miimon=150"
- RHEV-H 5.4-2.x で balance-rr (モード 0) を使用することはできません。
- RHEV-H 5.4-2.x で balance-alb (モード 6) を使用することはできません。
- Cisco スイッチは、次のオプションを使用して構成される必要があります。
channel-protocol lacp
channel-group 1 mode active
Xen ブリッジにボンディングインターフェイスをマッピングする
ボンディングインターフェイスは、次の手順を使用して Xen ブリッジにマッピングすることができます。
- /etc/xen/xend-config.sxp ファイルを変更し、"network-script" パラメータを以下のように変更します。
# cat /etc/xen/xend-config.sxp | grep network-script (network-script network-bridge)
以下のように変更してください。
# vi /etc/xen/xend-config.sxp (network-script network-bridge-bonding netdev=bond0)
- システムをリブートして新しい設定を有効にします。システムをリブートして、ifconfig コマンドを実行すると、新しいネットワークインターフェイス "pbondX" が検出されます。
- ボンディングインターフェイス (pbond0) が Xen ブリッジ (xenbr0) に適切にマッピングされているかどうか確認します。
# brctl show bridge name bridge id STP enabled interfaces virbr0 8000.000000000000 yes xenbr0 8000.001a6421f8b8 no pbond0 vif1.0
- virt-manager を経由して新しい仮想マシンを作成する際、ネットワーク設定手順の "Share physical device" ドロップダウンコンボボックスのボンディングインターフェイスは、 "pbond0(bond0)" となります。
Xen ブリッジに複数のボンディングインターフェイスをマッピングする
Red Hat Enterprise Linux は、Xen ブリッジに複数のボンディングインターフェイスをマッピングするネットワークスクリプトを提供していません。そのため、スクリプトを使用する場合は、新規に作成する必要があります。このセクションでは、スクリプトの名前は network-xen-multi-bonding です。
- /etc/xen/xend-config.sxp ファイルを変更し、"network-script" パラメータを以下のように変更します。
# vi /etc/xen/xend-config.sxp (network-script network-bridge-multi-bonding)
- /etc/xen/scripts ディレクトリに新しいスクリプトを作成します。次の例では、 Xen Host(Dom0) にはボンディングデバイスが 3 つあります。
#!/bin/sh # Exit if anything goes wrong. set -e # First arg is the operation. OP=$1 shift script=/etc/xen/scripts/network-bridge-bonding case ${OP} in start) $script start netdev=bond2 $script start netdev=bond1 $script start netdev=bond0 ;; stop) $script stop netdev=bond2 $script stop netdev=bond1 $script stop netdev=bond0 ;; status) $script status netdev=bond2 $script status netdev=bond1 $script status netdev=bond0 ;; *) echo 'Unknown command:' ${OP} echo 'Valid commands are: start, stop, status' exit 1 esac
- 次のコマンドを発行して、root が新しいスクリプトを実行できることを確認します。
# chmod 775 /etc/xen/scripts/network-bridge-multi-bonding
- Dom0 システムをリブートし、新しい設定を有効にします。
VLAN があるボンディングインターフェイスを Xen ブリッジにマッピングする
注意: これは、VLAN インターフェイスがボンディングインターフェイスに存在することを前提としています。
VLAN があるボンディングインターフェイスを Xen ブリッジにマッピングすることは、通常のボンディングインターフェイスへのマッピングと似ています。
-
bond0.2 という名の VLAN ボンディングインターフェイスが存在する場合は、'netdev' パラメータを追加します。パラメータが設定されている場合は値を変更します。
# cat /etc/xen/xend-config.sxp | grep network-script (network-script network-bridge-bonding)
以下のように変更してください。
# vi /etc/xen/xend-config.sxp (network-script network-bridge-bonding netdev=bond0.2)
-
次に、マシンをリブートしてシステムを有効にし、VLAN インターフェイスが Xen ブリッジ (xenbr0) にマッピングされているかどうかを確認します。
# brctl show bridge name bridge id STP enabled interfaces virbr0 8000.000000000000 yes xenbr0 8000.001a6421f8b8 no bond0.2 vif0.0
注意: Red Hat Enterprise Linux 5.4 以前のバージョンでは、network-bridge-bonding スクリプトは 802.1q を完全にはサポートしていません。この問題を解決するには、xen パッケージを 3.0.3-94.el5 以降のバージョンに更新します。http://rhn.redhat.com/errata/RHBA-2009-1328.html を参照してください。
Red Hat Cluster Suite におけるボンディングインターフェイスを使用する
システムを中断せずに、クラスタサービスのボンディングインターフェイスにネットワークインターフェイスを移行する
環境 : Red Hat Cluster Suite 4、5
たとえば、eth0 インターフェイスを経由してクラスターサービスを提供する 2 つのノードで構成するクラスタシステムがあります。eth0 インターフェイスを bond0 という名前のボンディングインターフェイスに移行するには、 以下の手順に従ってください。
- プライマリマシンで実行しているサービスを、セカンダリマシンに移転します。
- クラスタシステムからプライマリマシンを削除します。
- プライマリマシンにボンディングインターフェイスを設定します。
- クラスタシステムにプライマリマシンを追加します。
- セカンダリマシンで、上の手順の 1 から 4 を実行します。
monitor_link パラメータを使用したボンディングインターフェイスを使用する
環境: Red Hat Cluster Suite 4、5
クラスタサービスの実行時に (Ethernet レベルの) リンクがダウンすると、リンクのチェックが失敗し、クラスタはサービスを移転しようとします。これは、/usr/share/cluster/ip.sh スクリプトによって行われます。このリンクの監視は、cluster.conf ファイルの IP アドレスの 'monitor_link' パラメータでオンまたはオフにできます。
Red Hat Cluster Suite は、クラスタサービスのボンディングインターフェイスでも monitor_link パラメータを使用できるように設計されました。
# cat /etc/cluster/cluster.conf
...snip...
<resources>
<ip address="192.168.1.123" monitor_link="1"/>
<fs device="/dev/sdd1" force_fsck="1" force_unmount="1" fsid="17551" fstype="ext3" mountpoint="/var/ftp/pub" name="fs1" options="" self_fence="1"/>
...snip
Subscriber exclusive content
A Red Hat subscription provides unlimited access to our knowledgebase, tools, and much more.