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

推薦する

レスポンシブレイアウトについて知っておくべきこと

1. はじめにレスポンシブ Web デザインにより、Web サイトは複数のデバイスと複数の画面に同時...

CSS 極座標のサンプルコード

序文このプロジェクトには、衛星測位用のグラフィックスを含むチャートの要件があり、北半球または南半球の...

Dockerモードで起動したTomcatのホームページにアクセスすると404エラーが発生する

シナリオ: docker で tomcat を起動すると (Alibaba Cloud からダウンロ...

CSS グリッドレイアウトを使用してレスポンシブな縦棒グラフを作成する方法

私はしばらくの間チャートをいじっていましたが、好奇心から、CSS を使用してチャートを作成するより良...

HTML タグ tbody の使い方と説明

tbody 要素は、thead 要素および tfoot 要素と組み合わせて使用​​する必要があります...

Windows ベースの MySQL 8.0.12 のインストール

このチュートリアルは Windows システムにのみ適用されます。インストールしたがまだインストール...

HTML から PDF への変換事例の概要 (複数の画像を推奨)

仕事の都合上、最近 HTML を PDF に変換する機能について調べることに時間を費やしました。 H...

MySQL インデックスの一般的な問題の概要

Q1: データベースにはどのようなインデックスがありますか?メリットとデメリットは何ですか? 1. ...

Vueはドラッグプログレスバーを実装します

この記事では、ドラッグプログレスバーを実現するためのVueの具体的なコードを例として紹介します。具体...

CSS スティッキー配置位置の詳細な説明: スティッキー問題の落とし穴

前書き: position:sticky は CSS ポジショニングの新しい属性です。相対ポジショニ...

Vue3 setup() の高度な使用例の詳細な説明

目次1. オプションAPIと組み合わせAPIの違い2. セットアップを具体的にどのように使用するので...

MySQL クエリ フィールド タイプが json の場合の 2 つのクエリ メソッド

テーブル構造は次のとおりです。 id varchar(32) 情報JSONデータ: id = 1 i...

既存のMySQLデータベースの文字セットを統一する方法

序文データベースでは、一部のデータ テーブルとデータは latin1 であり、一部のデータ テーブル...

CentOS 7.9 の zabbix5.0.14 のインストールと設定プロセス

目次1. 基本的な環境設定2. データベースをインストールする3. zabbix関連コンポーネントを...

フラッシュコンテンツの表示に使用される OBJECT タグと EMBED タグの違いの紹介

1. はじめに:ウェブページにフラッシュ コンテンツを正常に表示したい場合は、ページ上のフラッシュ ...