bonding インターフェースで設定した項目は、各インターフェースにも同様に反映されるか?

こんにちは。サイオステクノロジーの貝野です。

ボンディングインターフェースを使用したネットワーク構成において、ボンディングインターフェースとそれに紐づく各インターフェースに同じ項目が設定されている場合、どちらの値が採用されるのでしょうか。

例えば、ONBOOT=yes をボンディング側に設定していれば、各インターフェース側で ONBOOT=no と設定していても一緒に起動します。反対に、ONBOOT=no をボンディング側に設定している場合は、各インターフェース側で ONBOOT=yes を設定していても、起動しません。
この場合、各インターフェース側の設定内容に関わらず、ボンディング側の設定が各インターフェース側に反映されると言えます。

そこで、その他いくつかの項目について、ボンディング側と各インターフェース側に同じ項目が設定されている際の動作について確認してみました。

構成

CentOS7 で、以下のようなネットワーク構成で環境を作成しました。
※今回は、IPv4 による一般的なボンディング構成により動作確認しました。一意の値が入る項目や、その他の関連しない項目は予め削除しています。

/etc/sysconfig/network-script/ifcfg-ens192

/etc/sysconfig/network-script/ifcfg-ens224

/etc/sysconfig/network-script/ifcfg-bond0

項目名 説明
DEVICE 物理デバイス名
TYPE インターフェースのプロトコル
BOOTPROTO IP アドレスの指定に使用するプロトコル (IP アドレスの指定方法)
ONBOOT システムの起動時 (ネットワークの再起動時も含む) にインターフェースを起動するか
USERCTL 一般ユーザによるインターフェースの操作や設定変更を許可するか
NM_CONTROLLED nmcli による管理を許可するか
MASTER リンクされたボンディングインターフェースの名前
SLAVE ボンディングインターフェースによって制御されるか
BONDING_MASTER デバイスがボンディングのマスターデバイスであるか
BONDING_OPTS ボンディングのオプション

確認

上記の設定内容のうち、ONBOOTUSERCTLNM_CONTROLLEDについて、各インターフェースで設定を変更した際の動作を確認しました。

■ ONBOOT

冒頭で「ONBOOT はボンディング側の設定が各インターフェース側に反映される」旨の説明をしましたが、実際にどのような結果になるのか、ifconfig コマンドにて各インターフェースの起動状況を確認しました。

  • 【ケース1】ens192、ens224 で ONBOOT=yes、bond0 で ONBOOT=no に設定した場合

ifconfig の結果は以下の通りになります。

上記の設定から、ens192 または ens224 のいずれかを ONBOOT=no に設定した場合も、結果は同じでした。

  • 【ケース2】bond0 で ONBOOT=yes、ens192、ens224 で ONBOOT=no に設定した場合

ifconfig の結果は以下の通りになります。

上記の設定から、ens192 または ens224 のいずれかを ONBOOT=yes に設定した場合も、結果は同じでした。

■ USERCTL

USERCTL は一般ユーザによるインターフェースの操作を制御します。USERCTL の設定後、ifdown コマンドにて一般ユーザが各インターフェースを停止しようとした際、どのような結果になるのか確認しました。

  • 【ケース1】ens192、ens224 で USERCTL=yes、bond0 で USERCTL=no に設定した場合

ifconfig の結果は以下の通りになります。

上記の設定から、ens192 または ens224 のいずれかを USERCTL=no に設定した場合、当該インターフェースのみ ifdown 実行時に「ユーザーはこのデバイスを制御できません」と表示されました。

  • 【ケース2】bond0 で USERCTL=yes、ens192、ens224 で USERCTL=no に設定した場合

【ケース1】と同様に、USERCTL=no を設定したインターフェースのみ ifdown 実行時に「ユーザーはこのデバイスを制御できません」と表示されました。
また、上記の設定から、ens192 または ens224 のいずれかを USERCTL=yes に設定した場合、当該インターフェースのみ ifdown が実行できました。

■ NM_CONTROLLED

NM_CONTROLLED を設定すると、NetworkManager (nmcli コマンド) による操作が可能になります。NM_CONTROLLED の設定後、各インターフェースが nmcli コマンドによって管理できる状態であるか確認しました。

  • 【ケース1】ens192、ens224 で NM_CONTROLLED=yes、bond0 で NM_CONTROLLED=no に設定した場合

nmcli コマンドによる管理が有効になっている ens192、ens224 は、現在のステータス (上記の例では切断済み) が表示されます。nmcli コマンドによる管理が無効である bond0 は、「管理無し」と表示されます。

また、上記の設定から、ens192 または ens224 のいずれかを NM_CONTROLLED=no に設定した場合、当該インターフェースのステータスは「管理無し」となります。

  • 【ケース2】bond0 で NM_CONTROLLED=yes、ens192、ens224 で NM_CONTROLLED=no に設定した場合

【ケース1】と同様に、NM_CONTROLLED=no を設定したインターフェースのみステータスは「管理無し」となります。
また、上記の設定から、ens192 または ens224 のいずれかを NM_CONTROLLED=yes に設定した場合、当該インターフェースのみ現在のステータス (接続済み、切断済みなど) が表示されます。

最後に

ボンディング構成において、各インターフェースに設定した項目がどのように動作に影響するかを確認しました。
今回は 3項目のみの解説でしたが、動作への影響は項目によってそれぞれ違います。
ボンディング構成で各インターフェースに同じ項目を設定する際は、事前に十分検証をしてから運用しましょう。

参考情報

>> 雑誌等の執筆依頼を受付しております。
   ご希望の方はお気軽にお問い合わせください!

ご覧いただきありがとうございます! この投稿はお役に立ちましたか?

役に立った 役に立たなかった

0人がこの投稿は役に立ったと言っています。

コメント投稿

メールアドレスは表示されません。


*