Linuxはデュアルネットワークカードボンドとドライバーインターフェースを使用する

Linuxはデュアルネットワークカードボンドとドライバーインターフェースを使用する

債券とは何か

NIC ボンドは、実稼働シナリオでよく使用されるテクノロジーです。複数の NIC を 1 つの論理 NIC に結合して、ローカル NIC の冗長性、帯域幅の拡張、負荷分散を実現します。

適用可能なシナリオ

サーバーの 2 つのネットワーク カードを結合する必要があり、結合後、異なるトラフィックを伝送するために、ネットワーク カードを異なるネットワーク セグメントのアドレスで構成する必要があります。このとき、サブインターフェイス方式を使用できます。

実験シナリオ

装置

  • サーバー: Server_A
  • コアスイッチ: Switch_A、Switch_B

スイッチ接続モード: スタッキング

サーバーネットワークカード: enp176s0f0、enp176s0f1 (ボンドとして)

IPセグメンテーション

  • 事業セグメント
    VLAN 201: 10.10.51.0/24
  • パブリックネットワーク
    VLAN 401: 111.20.200.88/27

必要とする

サーバー Server_A に接続された 2 つのコア スイッチ Switch_A と Switch_B はスタックされています。Server_A の enp176s0f0 および enp176s0f1 光ポートは、それぞれ Switch_A および Switch_B と相互接続されています。enp176s0f0 と enp176s0f1 を結合し、アドレス 10.10.51.16 でビジネス トラフィックを伝送し、アドレス 111.20.200.90 でパブリック ネットワーク トラフィックを伝送し、スイッチ ポートを eth-trunk としてバインドして VLAN201 および VLAN401 を透過的に伝送する必要があります。

ネットワークカード構成スクリプト

# NetworkManager サービスを停止します systemctl stop NetworkManager.service 
systemctl は NetworkManager.service を無効にします。

# バックアップ cp /etc/sysconfig/network-scripts/ifcfg-enp176s0f0{,.bak}
cp /etc/sysconfig/network-scripts/ifcfg-enp176s0f1{,.bak}

# ネットワーク カードのプロトコルを none に変更し、電源を入れずにデバイスを自動的に起動し、デュアル ネットワーク カードを構成する sed -i 's/BOOTPROTO=dhcp/BOOTPROTO=none/' /etc/sysconfig/network-scripts/ifcfg-enp176s0f0
sed -i 's/ONBOOT=no/ONBOOT=yes/' /etc/sysconfig/network-scripts/ifcfg-enp176s0f0
echo "MASTER=bond0" >>/etc/sysconfig/network-scripts/ifcfg-enp176s0f0
echo "SLAVE=yes" >>/etc/sysconfig/network-scripts/ifcfg-enp176s0f0

sed -i 's/BOOTPROTO=dhcp/BOOTPROTO=none/' /etc/sysconfig/network-scripts/ifcfg-enp176s0f1
sed -i 's/ONBOOT=no/ONBOOT=yes/' /etc/sysconfig/network-scripts/ifcfg-enp176s0f1
echo "MASTER=bond0" >>/etc/sysconfig/network-scripts/ifcfg-enp176s0f1
echo "SLAVE=yes" >>/etc/sysconfig/network-scripts/ifcfg-enp176s0f1

# ネットワークカード bond0 を構成する
エコー "DEVICE=bond0
タイプ=イーサネット
ONBOOT=はい
BOOTPROTO=static" >/etc/sysconfig/network-scripts/ifcfg-bond0

# モジュールファイルを書き込みます。結合モードはモード 0 です。
echo "alias bond0 結合
オプション bond0 miimon=100 mode=0" >/etc/modprobe.d/bond.conf
# モジュール modprobe ボンディングをロードする

# ドライバーインターフェース bond0.201
エコー "DEVICE=bond0.201
タイプ=Vlan
PHYSDEV=ボンド0
ONBOOT=はい
BOOTPROTO=静的
REORDER_HDR=はい
IPアドレス=10.10.51.16
ゲートウェイ=10.10.51.1
ネットマスク=255.255.255.0
DNS1=114.114.114.114
DNS2=8.8.8.8
VLAN=はい
VLAN_ID=201" >/etc/sysconfig/network-scripts/ifcfg-bond0.201

# ドライバーインターフェース bond0.401
エコー "DEVICE=bond0.401
タイプ=Vlan
PHYSDEV=ボンド0
ONBOOT=はい
BOOTPROTO=静的
REORDER_HDR=はい
IPアドレス=111.20.200.90
ゲートウェイ=111.20.200.89
ネットマスク=255.255.255.0
DNS1=114.114.114.114
DNS2=8.8.8.8
VLAN=はい
VLAN_ID=401" >/etc/sysconfig/network-scripts/ifcfg-bond0.401

# モジュールをロードし、ホストを再起動します modprobe 8021q
リブート

要点

スイッチ側がeth-trunkで始まる場合、サーバー側はサブインターフェースで始まる必要があります。

スイッチ側とサーバー側の両方で LACP ネゴシエーションを有効にするか無効にするかのどちらかにする必要があります。そうでない場合、ポートは異なります。

スイッチの eth-trunk ポートの設定例

[HH2B108-H01-2-HW9006X-SW001-Eth-Trunk12]これを表示する 
#
インターフェース Eth-Trunk12
ポートリンクタイプトランク
ポート トランク 許可パス VLAN 201 401
#
戻る

サーバー側はボンドモード4を使用してLACPプロトコルを開始します。例は次のとおりです。

 # /etc/modprobe.d/bond.conf の詳細
 エイリアス bond0 結合
 オプション bond0 miimon=100 mode=4 lacp_rate=1

サブインターフェース設定ファイルの「DEVICE=bond0.401」の VLAN 番号は、透過的に送信される必要がある VLAN 番号と一致している必要があります。

サブインターフェースを設定したら、設定を有効にするためにサーバーを再起動する必要があります。 ! !

要約:

上記はこの記事の全内容です。この記事の内容が皆さんの勉強や仕事に一定の参考学習価値を持つことを願っています。ご質問があれば、メッセージを残してコミュニケーションしてください。123WORDPRESS.COM を応援していただきありがとうございます。

以下もご興味があるかもしれません:
  • Linux システムのデュアル ネットワーク カード バインディング構成の実装
  • Linux デュアル ネットワーク カード バインディング スクリプト メソッドの例
  • Linux でのデュアル ネットワーク カードの Firewalld の設定プロセス (推奨)
  • 負荷分散を実現するための Linux デュアル ネットワーク カード バインディングの詳細な説明
  • Linux でデュアル ネットワーク カードを設定する方法
  • Linux システムでのデュアル ネットワーク カード構成の実践の概要
  • Linuxは、単一のIPをバインドするためにデュアルネットワークカードを実装するためにボンドを使用します。サンプルコード

<<:  MySQLデータベースの一般的な最適化操作のまとめ(経験共有)

>>:  Ajax jQueryはページ上のdivの更新効果を実現します

推薦する

jsでユーザー登録機能を実装する

この記事の例では、ユーザー登録機能を実装するためのjsの具体的なコードを参考までに共有しています。具...

Linuxプロセス監視と自動再起動の簡単な実装方法

目的: Linux では、さまざまな理由でサーバー プログラムがダンプされ、ユーザーの使用に影響する...

Nginx ロードバランシングとは何か、そしてそれをどのように設定するか

負荷分散とは負荷分散は主に、専用のハードウェア デバイスまたはソフトウェア アルゴリズムによって実現...

Vue の el-table は自動天井効果を実現します (固定をサポート)

目次序文実装のアイデア効果:使用:メインソースコード:序文多くのケースを見た結果、単純な観点からは、...

html リンク タグ タイトル属性 改行 マウス ホバー プロンプト コンテンツ 改行効果

オブジェクト上にマウスを移動したときにコンテンツ(タイトル属性の内容)を折り返す方法、HTML タイ...

MySQL の詳細な単一テーブルの追加、削除、変更、クエリの CRUD ステートメント

MySQL の追加、削除、変更、クエリステートメント1. 練習シートを作成するここでの練習表は3つの...

Vue3 テーブルコンポーネントの使用

目次1. Antデザインビュー1. 公式ウェブサイトアドレス2. 使い方3.電子書籍テーブルを表示す...

nginx と Tencent Cloud の無料証明書を使用して https を作成する方法

httpsを取得する方法を勉強しています。最近、Tencent Cloud が提供する無料の SSL...

MySQL パーティションテーブルの制限と制約の詳細な説明

ビルドを無効にするパーティション式では、次の構成はサポートされません。ストアドプロシージャ、ストアド...

mysql8.0.14.zip のインストール中にデータ フォルダを自動的に作成できませんでした。サービスを開始できません。

今日システムを再インストールした後、コンピューターに mysql を再インストールし、ZIP ファイ...

CSS の優先順位に関する詳細な紹介

CSS の優先順位について話す前に、CSS とは何か、CSS が何に使用されるのかを理解する必要があ...

JSはプログレスバーをドラッグして要素の透明度を変更することを実装しています

今日ご紹介したいのは、ネイティブ JS を使用してプログレス バーをドラッグし、要素の透明度を変更す...

Centos7でファイルをバックアップするときは、バックアップファイルにバックアップの日付を追加します

Linux は、システム内のデバイス、インターフェース、ファイル、スタートアップ、アプリケーション ...

Faint: 「Web2.0 を使用して標準に準拠したページを作成する」

今日、ある人がウェブサイト開発プロジェクトについて話をしてくれました。具体的な要件について話すと、「...