Linuxでのネットワークボンディングは、複数のネットワークインターフェイス(NICS)を単一の論理インターフェイスに組み合わせて、冗長性とパフォーマンスを向上させる手法です。この包括的なガイドでは、Linuxのネットワークボンディング、その利点、さまざまな結合モード、ネットワークボンディング構成の概念を調査します。
目次
NICボンディングまたはチーム化とも呼ばれるネットワークボンディングは、2つ以上のネットワークインターフェイスをボンドと呼ばれる単一の論理インターフェイスに組み合わせる方法です。
Linuxでネットワーク結合を構成することの2つの重要な利点:
Linuxは、特定のユースケースに対処するように設計されたいくつかの結合モードをサポートしています。最も一般的に使用される2つのモードは次のとおりです。
これら2つのモードを簡単に見てみましょう。
このモードでは、パケットは結合されたインターフェイス全体でラウンドロビンの方法で送信されます。基本的な形式の負荷分散を提供しますが、各インターフェイスの実際の負荷またはステータスを考慮していません。
このモードは、インターフェイス全体にトラフィックを均等に配布する場合に役立ちます。
Active-Backupモードは、1つのインターフェイスをアクティブリンクとして指定し、他のインターフェイスはスタンバイモードのままです。アクティブなインターフェイスが失敗した場合、スタンバイインターフェイスの1つが引き継ぎます。
このモードは冗長性に最適であり、1つのNICがダウンしてもネットワークが動作し続けるようにします。
Linuxでのネットワークボンディングの基本的な理解が得られることを願っています。 LinuxでNetPlanとNMCLIコマンドを使用して、ネットワークボンドインターフェイスを作成する方法を見てみましょう。
まず、NetPlanメソッドが表示されます。
LinuxでNetPlanを使用してネットワークボンディングを作成することは、簡単なプロセスです。 NetPlanは、Ubuntuのような最新のLinux分布で使用されるYAMLベースのネットワーク構成ユーティリティです。ネットワークボンディングをセットアップするには、次の手順に従ってください。
1.ネットワークインターフェイス名を確認します
ネットワークボンディング用のNetPlan構成を作成する前に、ボンドするネットワークインターフェイスの名前を識別することが不可欠です。
IP Link Showまたはifconfigコマンドを使用して、使用可能なネットワークインターフェイスをリストできます。通常、これらのインターフェイスには、ENP0SXまたは、ENSXまたはETHXなどの名前があります。
$ IPリンクショー 1:lo:<loopback> mtu 65536 qdisc noqueue状態不明モードデフォルトグループデフォルトqlen 1000 リンク/ループバック00:00:00:00:00:00:00:00:00:00:00 2:<strong><mark> ens18</mark> :<broadcast> mtu 1500 qdisc fq_codel upモードデフォルトグループデフォルトqlen 1000 Link/Ether 6E:26:0B:8E:33:8C BRD FF:FF:FF:FF:FF:FF altname enp0s18 3:<strong><mark> ens19</mark> :<broadcast> mtu 1500 qdisc fq_codel upモードデフォルトグループデフォルトqlen 1000 Link/Ether 96:D2:11:4A:6D:AD BRD FF:FF:FF:FF:FF:FF altname enp0s19 4:<strong><mark> ens20</mark> :<broadcast> mtu 1500 qdisc fq_codel upモードデフォルトグループデフォルトqlen 1000 Link/Ether EA:3a:8b:6c:38:e1 brd ff:ff:ff:ff:ff:ff altname enp0s20</broadcast></strong></broadcast></strong></broadcast></strong></loopback>
ご覧のとおり、私のシステムには、ENS18、ENS19、およびENS20という3つのネットワークインターフェイスがあります。
2。NetPlan構成ファイルを作成します
NetPlan構成ファイルを作成または編集します。 NetPlan構成ファイルは通常、/etc/netplan/ディレクトリに保存され、.yaml拡張機能があります。任意のテキストエディターを使用して、NANOやVIMなどの構成ファイルを作成または編集できます。
たとえば、01-bond.yamlという名前のファイルを作成します。
$ sudo nano/etc/netplan/01bond.yaml
3。結合インターフェイスを構成します
NetPlan構成ファイルで、ボンドインターフェイスとそのパラメーターを定義します。アクティブバックアップモードで3つのインターフェイス(ENS18、ENS19およびENS34)を使用して結合を作成するためのサンプル構成を次に示します。
ネットワーク: バージョン:2 レンダラー:NetworkD イーサネット: ens18: DHCP4:いいえ ens19: DHCP4:いいえ ens20: DHCP4:いいえ 債券: Bond0: インターフェイス:[ens18、ens19、ens20] アドレス:[192.168.1.10/24] ルート: - 宛先:0.0.0.0/0 経由:192.168.1.101 名前サーバー: アドレス:[8.8.8.8、8.8.4.4] パラメーター: モード:Active-Backup プライマリ:ens18
インターフェイス名、IPアドレス、サブネット、ゲートウェイ、およびその他のパラメーターを特定のネットワーク構成に置き換えます。モードパラメーター(ラウンドロビンのバランスRRまたはLACPの802.3ADなど)を変更することにより、異なる結合モードを使用できます。
4.構成を適用します
NetPlan構成ファイルを作成または編集した後、NetPlan Applyコマンドを使用して変更を適用します。
$ sudo netplanが適用されます
5。構成を確認します
IPリンクまたはifconfigコマンドを使用して、接続されたインターフェイスのステータスを確認します。例えば:
$ ip link show bond0
結合インターフェイス(Bond0)とそのステータスが表示されます。
6。ネットワーク接続をテストします
サーバーまたはワークステーションがボンディングされたインターフェイスを介してネットワークにアクセスできることを確認してください。ネットワーク上の他のデバイスをpingして、接続を確認できます。
また、ボンドインターフェイスセクションかどうかをテストするさまざまな方法もあります。 「Linuxネットワークボンドインターフェイスのテスト」セクションに移動し、いずれかの方法のいずれかを使用して、ボンドインターフェイスが期待どおりに機能しているかどうかを確認します。
それでおしまい! NetPlanを使用して、ネットワークボンディング構成を正常に作成しました。ネットワーク環境に合わせて、ボンディングモード、IPアドレス、ゲートウェイ設定などの特定の要件に構成を適合させることを忘れないでください。
LinuxでNMCLIコマンドを使用してネットワークボンディングを作成するには、これらの手順に従うことができます。 NMCLIは、多くのLinux分布で一般的に使用されるネットワーク構成ツールであるNetworkManagerを管理するためのコマンドラインユーティリティです。
1.ネットワークインターフェイス名を確認します
NMCLIを使用して結合インターフェイスを作成する前に、接着するネットワークインターフェイスの名前を識別する必要があります。
IP Link Showまたはifconfigコマンドを使用して、使用可能なネットワークインターフェイスをリストできます。インターフェイスには通常、ENSXやENP0SX、ETHXなどの名前があります。
$ IPリンクショー
サンプル出力:
上記の出力にあるように、3つのネットワークインターフェイス、つまりENS18、ENS19、およびENS20があります。
2。NetworkManagerステータスを確認します
ネットワークマネージャーがインストールされ、システムに実行されていることを確認してください。次のコマンドでそのステータスを確認できます。
$ sudo systemctl status networkmanager
実行されていない場合は、使用を開始できます。
$ sudo systemctlは、ネットワークマネージャーを開始します $ sudo systemctlは、ネットワークマネージャーを有効にします
3.新しい結合接続を作成します
NMCLIコマンドを使用して新しいボンド接続を作成できます。これが基本的な構文です:
$ sudo nmcli接続タイプボンドifname bond0 mode_name
Bond0をボンディングインターフェイスに与えたい名前に置き換え、Active-Backup、Balance-RR、または802.3adなど、使用するボンディングモードにMode_nameを置き換えます。
たとえば、 Active-BackupモードでBond0と呼ばれるボンドを作成するには:
$ sudo nmcli接続タイプボンドifname bond0モードActive-backup
このコマンドは、「Bond-Bond0」という名前の新しいネットワーク接続を作成します。
接続 'bond-bond0'(E68041F8-D836-4B83-A743-1BCADEC9D19E)が正常に追加されました。
4.メンバーインターフェイスを追加します
これで、メンバーインターフェイスとしてボンドに含めるネットワークインターフェイスを追加する必要があります。
たとえば、NMCLIコマンドを使用してBond0インターフェイスのメンバーとしてENS19とENS20を追加します。
ENS19とENS20を実際のネットワークインターフェイスの名前に置き換えます。
$ sudo nmcli接続タイプイーサネットifname ens19マスターボンド0 $ sudo nmcli接続タイプイーサネットifname ens20マスターボンド0
これにより、bond0結合接続にメンバーインターフェイスとしてENS18、ENS19、およびENS20が追加されます。
コマンドを使用して、新しく作成されたネットワーク接続を確認できます。
$ nmcli接続ショー
サンプル出力:
名前UUIDタイプデバイス BOND-BOND0 E68041F8-D836-4B83-A743-1BCADEC9D19E BOND BOND0 有線接続1 60E8EAF3-89F9-3E9F-9919-1944E7ABEE20イーサネットens18 <strong><mark>BOND-SLAVE-ENS19 578BB27F-F3FF-4059-BD94-5291B98CE2FFFEイーサネットens19 BOND-SLAVE-ENS20 E338B080-6DC6-41B2-BB08-53D0470DCCBD ETHENRET ENS20</mark> 有線接続2 5527636C-50A9-35A4-B92B-ADCC4F106CBAイーサネット - 有線接続3 878666660-338B-AADF-E24E9A52509Aイーサネット - </strong>
5。結合オプションを構成します
ボンディングモードとネットワークのセットアップに応じて、追加のオプションを構成する必要がある場合があります。たとえば、Active-Backupモードを使用している場合は、主要なインターフェイスを指定できます。
$ sudo nmcli接続は、bond-bond0プライマリens19を変更します
通常の条件下でネットワークトラフィックを積極的に運ぶ主要なインターフェイスを決定するために、アクティブバックアップなどの一部のボンディングモードでは、プライマリインターフェイスを指定するステップが必要です。
この設定は、ボンディングモードが予想どおりに機能し、ネットワークの障害が発生した場合にトラフィックが適切に分散されるか、失敗することを保証するために重要です。
たとえば、Active-Backupモードでは、プライマリインターフェイスを指定すると、ネットワークトラフィックが主にそのインターフェイスを通過し、利用できなくなった場合、バックアップインターフェイスが引き継がれます。
プライマリインターフェイスを指定せずに、ボンドは、トラフィックを送信および受信するためのデフォルトの選択肢として使用するインターフェイスを知らない場合があります。
6. IPアドレスとDNS設定を構成します
NMCLIコマンドを使用して、Bond0接続のIPアドレス、サブネットマスク、ゲートウェイ、およびDNS設定を設定できます。例えば:
$ sudo nmcli接続bond-bond0 ipv4.methodマニュアルを変更します $ sudo nmcli接続を変更するbond-bond0 ipv4.addresses "192.168.1.10/24" $ sudo nmcli接続を変更するbond-bond0 ipv4.gateway "192.168.1.101" $ sudo nmcli接続は、bond-bond0 ipv4.dns "8.8.8.8、8.8.4.4"を変更します
また、以下のような単一のコマンドですべてのネットワークの詳細についても言及することもできます。
$ sudo nmcli接続Modify bond-bond0 ipv4.method Manual IPv4.Addresses "192.168.1.10/24" IPv4.gateway "192.168.1.101" IPv4.dns "8.8.8.8,8.8.8.4.4.4"
ネットワーク構成に応じて、IPアドレス、サブネットマスク、ゲートウェイ、およびDNSサーバーを調整します。
7。結合接続を有効にします
最後に、NMCLIコマンドを使用して結合接続をアクティブにします。
$ sudo nmcli connection up bond-bond0
これにより、ボンディングされたインターフェイスが表示され、ネットワーク通信が可能になります。
8。構成を確認します
NMCLIコマンドを使用して、結合インターフェイスBond0がアップして実行されていることを確認します。
$ sudo nmcli接続ショー
それでおしまい! NMCLIコマンドを使用して、ネットワークボンディング構成を正常に作成しました。ボンディングインターフェイスは、選択したボンディングモードに応じて、冗長性と負荷分散のために構成されました。
次の方法のいずれかを使用して、ネットワークボンドインターフェイスが機能しているかどうかをテストできます。
結合インターフェイスが正しく機能しているかどうかを確認するには、さまざまなテストとチェックを実行して、予想される冗長性と負荷分散を確実に提供することができます。
Linuxの結合インターフェイスの機能を確認するのに役立ついくつかの手順を以下に示します。
1.債券のステータスを確認します
次のコマンドを使用して、ボンドインターフェイスのステータスを確認します(Bond0をボンドインターフェイスの実際の名前に置き換えます):
$ sudo cat/proc/net/bonding/bond0
このコマンドには、そのモード、スレーブインターフェイスのステータス、エラーまたは障害など、ボンドインターフェイスに関する詳細情報が表示されます。
2。フェイルオーバーをテストします
フェイルオーバーが予想どおりに機能していることを確認するために、奴隷インターフェイスの1つ(たとえば、ネットワークケーブルのプラグを抜く)の1つを物理的に切断し、債券の動作を監視できます。
ボンドは、トラフィックを残りのアクティブスレーブインターフェイスに自動的に切り替える必要があります。これは、ステップ1に記載されているコマンドでボンドのステータスを観察することで確認できます。
3。ロードバランシングをテストします
ボンドがロードバランシング用に構成されている場合(たとえば、「バランスRR」モードを使用する)、IPERFなどのツールを使用してネットワークトラフィックを生成し、結合インターフェイス全体に均等に分布しているかどうかを確認できます。
IPERFがまだインストールされていない場合は、サーバーと他のネットワークデバイス間でテストを実行します。
例:
トラフィックがすべての結合されたインターフェイスを流れていること、そして単一のインターフェイスと比較してスループットが増加していることを確認します。
ネットワークボンドインターフェイスが正しく機能している場合、ボンドインターフェイスを構成したシステムの以下の出力と同様の出力が表示されるはずです。
$ iperf -s ------------------------------------------------------------------------------------------------------------------------------------------- TCPポート5001でリスニングするサーバー TCPウィンドウサイズ:128 kbyte(デフォルト) ------------------------------------------------------------------------------------------------------------------------------------------- [1]ローカル192.168.1.10ポート5001 192.168.1.101ポート39808に接続 [ID]間隔転送帯域幅 [1] 0.0000-10.0011 Sec 38.7 GBYTES 33.3 GBITS/SEC [...]
4.インターフェイスステータスを確認します
IFCONFIG、IP、NMCLIなどの標準的なネットワーク診断ツールを使用して、個々のネットワークインターフェイス(スレーブとボンドの両方)のステータスを確認します。すべてのインターフェイスがアップしていることを確認し、予想されるIPアドレスと構成を確保してください。
例:
$ ip addrショー
5。システムログを確認します
ボンドインターフェイスに関連するエラーメッセージまたは通知について、システムログ(/var/log/syslog、/var/log/メッセージ)を確認します。インターフェイスの障害または問題を示すメッセージを探します。
6.ネットワークトラフィックを監視します
TCPDUMPやWiresharkなどのネットワーク監視ツールを使用して、ボンドインターフェイスのネットワークトラフィックをキャプチャおよび分析できます。これにより、トラフィックがバランスが取れているか、フェールオーバーが予想どおりに機能していることを確認するのに役立ちます。
7。Pingおよびテスト接続
PINGテストを実行し、ボンディングサーバーとネットワーク上の他のデバイス間のネットワーク接続をテストします。さまざまな目的地に到達できることを確認してください。接続性の問題はありません。
8。ロードテスト
IPERFに加えて、NetPerfやTTCPなどのツールを使用して、より包括的な負荷テストを実行して、重いネットワーク負荷でのボンドのパフォーマンスを評価できます。
これらのテストとチェックを実施することにより、ボンドインターフェイスが正しく機能していることを確認し、構成されたとおりに冗長性と負荷分散の両方を提供できます。
この包括的なアプローチは、問題を特定し、ネットワークボンディングセットアップがあなたの期待と要件を満たしていることを確認するのに役立ちます。
LinuxのボンドインターフェイスのIPアドレスを後で変更するには、次の手順に従うことができます。
1。NetPlan構成を編集します(NetPlanを使用したシステム用):
ネットワーク構成にNetPlanを使用している場合(最新のLinux分布で一般)、NetPlan構成ファイルを編集する必要があります。たとえば、ボンドインターフェイスが01-bond.yamlという名前のファイルで構成されている場合、テキストエディターで編集できます。
$ sudo nano/etc/netplan/01bond.yaml
2。IPアドレスを変更します。
NetPlan構成ファイルで、Bond Interface構成の下にあるアドレスセクションを見つけます。それは次のようになります:
アドレス:[192.168.1.10/24]
IPアドレスとサブネットマスクを目的の値に変更します。例えば:
アドレス:[192.168.1.20/24]
3。構成を適用します:
変更を行った後、構成ファイルを保存し、NetPlan Applyコマンドを使用して変更を適用します。
$ sudo netplanが適用されます
これにより、新しいIPアドレスがBondインターフェイスに適用されます。
NetPlanを使用しておらず、代わりにNetworkManagerやIfupDownなどの他のネットワーク構成メソッドを使用している場合、手順はわずかに異なる場合があります。
このような場合、ボンドインターフェイスの構成ファイルを変更し、変更を適用するためにネットワークサービスを再起動またはリロードする必要があります。
たとえば、NMCLIコマンドを使用して結合インターフェイスのIPアドレスを変更するには、以下の手順に従ってください。
1.既存の結合構成を確認します:
変更を加える前に、NMCLIコマンドを使用して、ボンドインターフェイスの既存の構成を確認します。
$ nmcli接続はbond0を表示します
Bond0をボンドインターフェイスの名前に置き換えます。
2。IPアドレスを変更します。
NMCLIコマンドを使用して、ボンドインターフェイスのIPアドレスを変更します。 Bond0をボンドインターフェイス名に置き、new_ip_addressを割り当てたい新しいIPアドレスに置き換えます。
$ sudo nmcli接続modify bond0 ipv4.addresses new_ip_address/24
たとえば、IPアドレスを「192.168.1.20/24」に変更するには:
$ sudo nmcli接続modify bond0 ipv4.addresses 192.168.1.20/24
3。変更を適用します。
IPアドレスを変更した後、次のコマンドを使用してボンドインターフェイスに変更を適用できます。
$ sudo nmcli connection up bond0
このコマンドは、新しいIPアドレスを使用して結合インターフェイスをアクティブにします。
4.変更を確認します。
Bond InterfaceのステータスとIPアドレスをチェックすることにより、変更が有効になっていることを確認します。
$ nmcli接続はbond0を表示します
出力に更新されたIPアドレスが表示されます。
これらの手順に従うことにより、NMCLIを使用してボンドインターフェイスのIPアドレスを正常に変更できます。 bund0とnew_ip_addressを特定のボンドインターフェイス名と割り当てたい目的のIPアドレスに置き換えてください。
特定の構成ファイルとコマンドは、Linuxディストリビューションと使用中のネットワーク管理ツールによって異なる場合があります。
Linuxでのネットワーク結合の一般的なFAQを以下に示します。
Q:Linuxのネットワーク結合とは何ですか?A:NICボンディングまたはチーム化とも呼ばれるネットワークボンディングは、複数のネットワークインターフェイスを単一の論理インターフェイスに組み合わせたLinuxの手法です。サーバーやワークステーションの冗長性とパフォーマンスを向上させます。
Q:なぜネットワークボンディングを使用する必要があるのですか?A:ネットワークボンディングは、フェールオーバー機能を提供することにより、ネットワークの信頼性を向上させます。また、複数のネットワークインターフェイスにわたってロードバランシングを通じてネットワークパフォーマンスを向上させます。
Q:Linuxで利用可能なボンディングモードは何ですか?A:Linuxは、「アクティブバックアップ」(フェイルオーバー)、「バランスRR」(ラウンドロビン)、「802.3AD」(LACP)など、さまざまなボンディングモードをサポートしています。各モードはさまざまな目的に役立ち、特定のネットワーク構成に適しています。
Q:ボンドインターフェイスが正しく機能しているかどうかをテストするにはどうすればよいですか?A:そのステータスを監視し、ネットワーク障害をシミュレートするためのフェイルオーバー動作をチェックすること、およびIPERFなどのツールを使用して負荷分散を確認することにより、ボンドインターフェイスをテストできます。
Q:ボンドインターフェイスのIPアドレスを変更する必要がある場合はどうすればよいですか?A:ボンドインターフェイスのIPアドレスを変更するには、関連する構成ファイル(NetPlan、IfupDown、NetworkManagerなど)を変更し、IPアドレスを更新し、適切なコマンドまたはツール(NetPlan Apply、NMCLI接続アップ)を使用して変更を適用します。
Q:同じシステムで異なる結合モードを混合することは可能ですか?A:はい、同じシステム上に異なる結合モードを持つ複数の結合インターフェイスを持つことができます。各ボンドインターフェイスは独立して動作します。
Q:ネットワーク接続を破壊することなく、ボンドインターフェイスからスレーブインターフェイスを追加または削除できますか?A:はい、ネットワーク接続を破壊することなく、ボンドインターフェイスからスレーブインターフェイスを動的に追加または削除できます。ボンドインターフェイスは、正しく構成されていれば、変更に適応します。
ネットワークボンディングは、Linuxシステムでのネットワークの可用性、冗長性、負荷分散を強化するための貴重な方法です。複数の物理ネットワークインターフェイスを単一の論理インターフェイスに組み合わせることにより、ネットワークボンディングは帯域幅、断層トレランス、トラフィック分布の増加を提供できます。
NetPlanとNMCLIは、Linuxでネットワークボンディングを構成するために使用できる2つの強力なツールです。 NetPlanは、ネットワーク構成を定義するための宣言的なYAMLベースのアプローチを提供し、NMCLIはネットワーク接続を管理するためのコマンドラインインターフェイスを提供します。
NetPlanとNMCLIの組み合わせにより、ネットワークボンディングはLinuxシステムに効果的に実装され、信頼性の高い高性能ネットワーク接続を確保できます。
関連する読み取り:
以上が高可用性のためにLinuxでネットワークボンディングを構成しますの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。