Warning message

This translation is outdated. For the most up-to-date information, please refer to the English version.

特定のアプリケーションでボンディングインターフェイスを使用する方法

Solution In Progress - Updated -

Issue

はじめに

ここでは、VLAN、IPv6、フェイルオーバー MAC などの特定の条件でボンディングインターフェイスを使用する方法について説明します。また、Red Hat Enterprise Linux Virtualization や、Red Hat Cluster Suite などの特定のアプリケーションでボンディングインターフェイスを使用する方法についても説明します。

ボンディングインターフェイスで VLAN デバイスを設定する

8021q ドライバーを使用して、ボンディングインターフェイスで VLAN デバイスを設定するには、以下の手順に従ってください。

  1. 8021q モジュールがロードされていない場合は、次のコマンドを使用してロードします。
    # modprobe 8021q
    
  2. How do I configure the bonding device on Red Hat Enterprise Linux? に従ってボンディングインターフェイスを設定してください。ここでは、ボンディングインターフェイスを bond0 としています。
  3. /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
    
  4. ネットワークを再起動します。
    # 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 ブリッジにマッピングすることができます。

  1. /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)
    
  2. システムをリブートして新しい設定を有効にします。システムをリブートして、ifconfig コマンドを実行すると、新しいネットワークインターフェイス "pbondX" が検出されます。
  3. ボンディングインターフェイス (pbond0) が Xen ブリッジ (xenbr0) に適切にマッピングされているかどうか確認します。
    # brctl show
    bridge name     bridge id               STP enabled     interfaces
    virbr0          8000.000000000000       yes
    xenbr0          8000.001a6421f8b8       no              pbond0
                                                            vif1.0
    
  4. virt-manager を経由して新しい仮想マシンを作成する際、ネットワーク設定手順の "Share physical device" ドロップダウンコンボボックスのボンディングインターフェイスは、 "pbond0(bond0)" となります。

Xen ブリッジに複数のボンディングインターフェイスをマッピングする

Red Hat Enterprise Linux は、Xen ブリッジに複数のボンディングインターフェイスをマッピングするネットワークスクリプトを提供していません。そのため、スクリプトを使用する場合は、新規に作成する必要があります。このセクションでは、スクリプトの名前は network-xen-multi-bonding です。

  1. /etc/xen/xend-config.sxp ファイルを変更し、"network-script" パラメータを以下のように変更します。
    # vi /etc/xen/xend-config.sxp
    (network-script network-bridge-multi-bonding)
    
  2. /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 
    
  3. 次のコマンドを発行して、root が新しいスクリプトを実行できることを確認します。
    # chmod 775 /etc/xen/scripts/network-bridge-multi-bonding 
    
  4. Dom0 システムをリブートし、新しい設定を有効にします。

VLAN があるボンディングインターフェイスを Xen ブリッジにマッピングする

注意: これは、VLAN インターフェイスがボンディングインターフェイスに存在することを前提としています。

VLAN があるボンディングインターフェイスを Xen ブリッジにマッピングすることは、通常のボンディングインターフェイスへのマッピングと似ています。

  1. 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)
    
  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. プライマリマシンで実行しているサービスを、セカンダリマシンに移転します。
  2. クラスタシステムからプライマリマシンを削除します。
  3. プライマリマシンにボンディングインターフェイスを設定します。
  4. クラスタシステムにプライマリマシンを追加します。
  5. セカンダリマシンで、上の手順の 1 から 4 を実行します。

環境: 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 of over 48,000 articles and solutions.

Current Customers and Partners

Log in for full access

Log In