Red Hat Training

A Red Hat training course is available for Red Hat Enterprise Linux

7.4. コマンドラインインターフェイス (CLI) の使用

ボンドは、ボンディングカーネルモジュールと、チャンネルボンディング インターフェイス と呼ばれる特別なネットワークインターフェイスを使用して作成されます。

7.4.1. ボンディングカーネルモジュールがインストールされているかの確認

Red Hat Enterprise Linux 7 では、ボンディングモジュールはデフォルトでは読み込まれません。root で以下のコマンドを実行して、モジュールを読み込むことができます。
~]# modprobe --first-time bonding
このアクティベーションは、システム再起動後は維持されません。永続的なモジュールの読み込みに関する詳細は、Red Hat Enterprise Linux カーネル管理ガイドを参照してください。BONDING_OPTS ディレクティブを使用した正しい設定ファイルを指定すると、ボンディングモジュールは必要に応じて読み込まれるため、別個に読み込む必要はありません。
モジュールについての情報を表示するには、以下のコマンドを実行します。
~]$ modinfo bonding
コマンドオプションについては、modprobe (8) の man ページを参照してください。

7.4.2. チャンネルボンディングインターフェイスの作成

チャンネルボンディングインターフェイスを作成するには、/etc/sysconfig/network-scripts/ ディレクトリーに ifcfg-bondN という名前のファイルを作成し、N をそのインターフェイスの番号(例: 0 )に置き換えます。
ファイルのコンテンツは、イーサネットインターフェイスなどボンディングされるインターフェイスのものであればどの設定ファイルでもそれをベースとすることができます。DEVICE ディレクティブは ボンディングNで、N はインターフェイスの番号に置き換え、TYPE=Bond があることです。さらに、BONDING_MASTER=yes を設定します。

例7.1 ifcfg-bond0 インターフェイス設定ファイルの例

チャンネルボンディングインターフェイスの例は以下のようになります。
DEVICE=bond0
NAME=bond0
TYPE=Bond
BONDING_MASTER=yes
IPADDR=192.168.1.1
PREFIX=24
ONBOOT=yes
BOOTPROTO=none
BONDING_OPTS="bonding parameters separated by spaces"
NM_CONTROLLED="no"
NAME ディレクティブは、NetworkManager で接続プロファイルに名前を付けるのに役立ちます。ONBOOT は、起動時 (一般的にはデバイスの自動接続時) にプロファイルを起動するかどうかを示しています。
重要
ボンディングカーネルモジュールのパラメーターは、ifcfg-bondN インターフェイスファイルの BONDING_OPTS="bonding parameters" ディレクティブにスペース区切りリストとして指定する必要があります。ボンディングデバイスのオプションは、/etc/modprobe.d/bonding.conf または非推奨の /etc/modprobe.conf ファイルで指定し ない でください。
max_bonds パラメーターはインターフェイス固有ではないため、BONDING_OPTS ディレクティブで ifcfg-bondN ファイルを使用する場合は設定しないでください。このディレクティブにより、ネットワークスクリプトが必要に応じてボンドインターフェイスを作成するためです。
ボンディングモジュールの設定に関する指示およびアドバイスとボンディングパラメーターのリストについては、「チャンネルボンディングの使用」を参照してください。
NM_CONTROLLED="no" 設定が存在しない場合は、NetworkManager がこの設定ファイルの設定を上書きする可能性があることに注意してください。

7.4.3. ポートインターフェイスの作成

チャンネルボンディングインターフェイスはコントローラー( マスターとも呼ばれます)で、ボンディングされるインターフェイスはポート(スレーブ)と呼ばれます。チャネルボンディングインターフェイスを作成した後に、ボンディングされるネットワークインターフェイスを設定するには、そのポートの設定ファイルに MASTER および SLAVE ディレクティブを追加します。各ポートインターフェイスの設定ファイルは、ほぼ同一となる可能性があります。

例7.2 ポートインターフェイス設定ファイルの例

たとえば、2 つのイーサネットインターフェイス enp1s0enp2s0 がチャンネルボンディングされている場合、両方のインターフェイスの例を以下に示します。
DEVICE=device_name
NAME=bond0-slave
TYPE=Ethernet
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
NM_CONTROLLED="no"
この例では、device_name をインターフェイス名で置換します。インターフェイスが ONBOOT=yes となっているプロファイルまたは設定ファイルが複数ある場合は、それらが相互に競合し、ボンドポートの代わりに単純な TYPE=Ethernet プロファイルがアクティブ化される可能性があることに注意してください。
注記
NM_CONTROLLED="no" 設定が存在しない場合は、NetworkManager がこの設定ファイルの設定を上書きする可能性があることに注意してください。

7.4.4. チャンネルボンディングのアクティブ化

ボンドをアクティブにするには、すべてのポートを有効にします。root で以下のコマンドを実行します。
~]# ifup ifcfg-enp1s0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/7)
~]# ifup ifcfg-enp2s0
Connection successfully activated (D-Bus active path: /org/freedesktop/NetworkManager/ActiveConnection/8)
すでに up となっているインターフェイスのインターフェイスファイルを編集する場合は、以下のようにまず最初にそれらを down にします。
ifdown device_name
これが完了した後、すべてのポートを有効にすることで、ボンドが有効になります (down に設定されていないことが前提)。
NetworkManager が変更を認識させるには、root で変更したすべてのインターフェイスに対して コマンドを実行します。
~]# nmcli con load /etc/sysconfig/network-scripts/ifcfg-device
または、すべてのインターフェイスをリロードします。
~]# nmcli con reload
デフォルトの動作では、NetworkManager は変更を認識せず、古い設定データを引き続き使用します。これは、NetworkManager.conf ファイルの monitor-connection-files オプションで設定されます。詳細は、NetworkManager.conf (5) man ページを参照してください。
ボンドインターフェイスのステータスを表示するには、以下のコマンドを実行します。
~]# ip link show
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT
    link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: enp1s0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP mode DEFAULT qlen 1000
    link/ether 52:54:00:e9:ce:d2 brd ff:ff:ff:ff:ff:ff
3: enp2s0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP mode DEFAULT qlen 1000
    link/ether 52:54:00:38:a6:4c brd ff:ff:ff:ff:ff:ff
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT
    link/ether 52:54:00:38:a6:4c brd ff:ff:ff:ff:ff:ff

7.4.5. 複数のボンド作成

Red Hat Enterprise Linux では、各ボンドに BONDING_OPTS ディレクティブを含むチャンネルボンディングインターフェイスが作成されます。この設定方法を使うと、複数のボンディングデバイスに異なる設定をすることが可能になります。複数のチャンネルボンディングインターフェイスを作成するには、以下の手順に従います。
  • BONDING_OPTS ディレクティブで複数の ifcfg-bondN ファイルを作成します。このディレクティブにより、ネットワークスクリプトが必要に応じてボンドインターフェイスを作成します。
  • ボンディングされるインターフェイス設定ファイルを作成するか、または既存のインターフェイス設定ファイルを編集し、SLAVE ディレクティブを追加します。
  • ボンディングされるポートインターフェイスであるインターフェイスを MASTER ディレクティブでチャネルボンディングインターフェイスに割り当てます。

例7.3 複数の ifcfg-bondN インターフェイス設定ファイルの例

以下は、チャンネルボンディングインターフェイス設定ファイルの例です。
DEVICE=bondN
NAME=bondN
TYPE=Bond
BONDING_MASTER=yes
IPADDR=192.168.1.1
PREFIX=24
ONBOOT=yes
BOOTPROTO=none
BONDING_OPTS="bonding parameters separated by spaces"
この例では、N をインターフェイスの番号に置き換えます。たとえば、2 つのボンディングを作成するには、ifcfg-bond0ifcfg-bond1 の設定ファイルを適切な IP アドレスで作成します。
例7.2「ポートインターフェイス設定ファイルの例」 に従ってボンディングされるインターフェイスを作成し、MASTER=bondN ディレクティブを使って必要に応じてボンドインターフェイスに割り当てます。たとえば、上記の例から、ボンドごとに 2 つのインターフェイスが必要な場合は、2 つのボンドで 4 つのインターフェイス設定ファイルを作成し、最初の 2 つを MASTER=bond0 を使用して割り当て、次の 2 つは MASTER=bond1 を使用して割り当てます。