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の更新効果を実現します

推薦する

アニメーションの再生と一時停止を制御するための CSS のヒント (非常に実用的)

今日は、CSS を使用してアニメーションの再生と一時停止を制御する非常に簡単なトリックを紹介します。...

パーソナライズされた検索エンジンを使用して、必要なパーソナライズされた情報を検索します

現在、多くの人がインターネット上で生活しており、インターネットで情報を検索することは日常的な作業とな...

WeChat 8.0の爆発的な特殊効果を実現するために300行以上のCSSコードが必要

WeChat 8.0 アップデートの主な特徴は、アニメーション絵文字のサポートです。送信するメッセー...

JavaScriptはPromiseを使用して複数の繰り返しリクエストを処理します

1. なぜこの記事を書くのですか?重複リクエストの処理に関する記事をたくさん読んだことがあるでしょう...

IE のテキストモード! DOCTYPE の役割の紹介

前の記事で説明したフォームの自動入力の問題を解決した後、新しい問題が発生しました。ページの一部のスタ...

vue3 学習ノートにおける axios の使用の変更の概要

目次1. axioの基本的な使い方2. クロスドメインの問題を解決するには? 3. パッケージ4. ...

Alibaba Cloud Server Tomcatにアクセスできません

目次1. はじめに2. 解決策2.1 ファイアウォールを設定してポートを開く2.3 ポートを確認し、...

MySQLシリーズのMariaDBサーバーのインストール

目次チュートリアルシリーズ1. yumパッケージマネージャーを使用してMariaDBサーバーをインス...

MySQLのインデックスシステムがB+ツリーを使用する理由の分析

目次1. インデックスとは何ですか? 2. インデックスはなぜ必要なのでしょうか? 3. インデック...

Linux に JDK1.8 をインストールするための詳細なチュートリアル

1. 設置前の清掃 rpm -qa | grep jdk rpm -qa | grep gcj yu...

Nginx/Httpd リバース プロキシ Tomcat 設定チュートリアル

以前のブログでは、Tomcatのサーバーの各コンポーネントの使用について学びました。 Tomcatは...

dockerでsshd操作を有効にする

まず、docker に openssh-server をインストールします。インストールが完了したら...

大きな太陽の天気アイコンを純粋な CSS で記述する方法の例

効果効果図は以下のとおりです実装のアイデアDivは太陽の長方形の光と影を実現します前の疑似要素は、既...

MySQL のグループ分けの例

mysql のような php switch case ステートメント。 xxフィールドを選択、ケース...

Git サーバーを使用してデバッグ ブランチを表示し、修正する方法を 1 日 1 分で学習します。

デバッグブランチプロジェクトの通常の開発中に、以前にリリースされたバージョンにバグがある場合がありま...