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, tools, and much more.

Current Customers and Partners

Log in for full access

Log In

New to Red Hat?

Learn more about Red Hat subscriptions

Using a Red Hat product through a public cloud?

How to access this content