あけましておめでとうございます。2025年は当サイトが飛躍を遂げる年になります> Membership

A10 Thunder ロードバランサ基本設定ガイド【初心者向け】

目次

本記事について

本記事では、A10ネットワークス社のロードバランサ製品である Thunder シリーズについて、ロードバランサ機能の基礎知識及び基本設定方法を説明します。

本記事では以下のような内容を含んでいます。

  • ロードバランサ利用時のネットワーク構成パターン
  • ロードバランサと仮想サーバ
  • ロードバランサ機能の設定構造
  • ロードバランサ機能の設定方法
  • ロードバランサ機能の状態確認方法

動作確認環境

本記事は以下の環境にて動作確認した結果に基づいて作成されています。

  • A10 vThunder
    • version 5.2.1-P11

ロードバランサ利用時のネットワーク構成パターン

ロードバランサを利用する場合のネットワーク構成として、以下の2パターンがあります。

  • インライン構成
  • ワンアーム構成

インライン構成

インライン構成とは、以下図のように端末とサーバ間の通信経路上にロードバランサを配置するような構成です。この構成では通信経路が分かりやすいといった点があります。

図:インライン構成

ワンアーム構成

ワンアーム構成とは、以下図のようにロードバランサを端末とサーバ間の通信経路から枝分かれさせるような形でロードバランサを配置する構成です。この構成ではロードバランサが使用するポート数が1つで済むといった点がありますが、通信経路が複雑になるという点もあります。

図:ワンアーム構成

通信経路に関する注意点

ロードバランサを介したサーバへの通信に対するサーバからの戻りの通信は必ずロードバランサを通る経路でなければなりません。サーバから直接接続元に戻り通信があった場合、接続元端末では当該戻り通信についてはアクセス時の宛先アドレスと異なるアドレスからの通信に見えるため、通信エラーとなります。

図:サーバからの戻り通信のあるべき経路

特に、ワンアーム構成の場合はサーバのルーティング設定次第で戻りの通信がロードバランサを通らない場合が発生し得るため、ルーティング設定には注意が必要です。

ロードバランサ機能では仮想サーバを利用する

A10 Thunder でロードバランサ機能を利用する場合、A10 Thunder 上に仮想サーバを構築することになります。仮想サーバはバーチャル IP (VIP) を持ち、ユーザからの通信を受け付けることになります。サーバを利用するユーザには、実際のサーバのアドレスではなく、仮想サーバのアドレスをサーバのアドレスとして案内します。ユーザは案内された仮想サーバのアドレス宛に通信するためロードバランサを介してサーバと通信することになります。

図:ロードバランサの仮想サーバ

ロードバランサ機能の設定構造

ロードバランサ機能の設定は主に以下の3要素から構成されます。

ロードバランサ機能の構成要素
  • リアルサーバ
    • サービスを提供する実際のサーバのアドレスとサービスポートを示す設定です
  • サービスグループ
    • サービスを提供するサーバとサービスポートの組のリストです
    • サーバのプールに該当します
  • 仮想サーバ
    • サービスユーザからのアクセスを受け付けます
    • 仮想サーバにサービスグループを紐づける設定を行います

①②③の各要素に細かいオプション設定がありますが、基本的な設定構造としては「①リアルサーバ」を「②サービスグループ」で参照し、「②サービスグループ」を「③仮想サーバ」で参照する形で設定します。

ロードバランサ機能の設定方法

ここでは各設定要素について、オプション設定は無視して最低限の設定のみを行う場合の設定方法について説明します。

リアルサーバの設定方法

ロードバランサ機能の設定を行うためにはまずリアルサーバの設定を行います。リアルサーバの設定は以下の構文で設定します。

リアルサーバの設定

slb server <サーバ設定名> <サーバのIPアドレス>
port <ポート番号> <プロトコル(tcpまたはudp)>

※port は複数設定可能

例えば IP アドレスが 10.1.1.10、ポートが 53/TCP、53/UDP の2つの場合の設定は以下のようになります。

slb server SampleServer 10.1.1.10
  port 53 tcp
  port 53 udp

サービスグループの設定方法

リアルサーバの設定ができたら次はリアルサーバをまとめたリストであるサービスグループを設定します。

サービスグループの設定

slb service-group <サービスグループ設定名> <プロトコル(tcpまたはudp)>
member <サーバ設定名> <ポート番号>

※port は複数設定可能

例えばポートが 53/UDP のリアルサーバ SampleServer1、SampleServer2 を含むサービスグループの設定は以下のようになります。

slb service-group SampleServiceGroup udp
  member SampleServer1 53
  member SampleServer2 53

仮想サーバの設定方法

サービスグループの設定までできたら最後に仮想サーバを設定します。

仮想サーバの設定

slb virtual-server <仮想サーバ設定名> <仮想 IP アドレス>
port <仮想サーバの受付ポート番号> <プロトコル>
service-group <サービスグループ名>

※port は複数設定可能

例えば仮想 IP アドレスが 192.168.200.100、受付ポート番号が 53/UDP、サービスグループが SampleServiceGroup の仮想サーバの設定は以下のようになります。

slb virtual-server VirtualDNSServer 192.168.200.100
  port 53 udp
    service-group SampleServiceGroup

なお仮想サーバの待ち受けポート番号は、サービスグループに含まれるリアルサーバのポート番号と異なる番号にすることもできます。

また port 設定で指定できるプロトコルについては最もシンプルな L4 レベルでのロードバランスを行う場合は tcp または udp を指定することになります。ここでは詳しく説明しませんが、Web 通信を対象にして HTTP ヘッダ操作をしたい場合は httphttps を、SSL オフロードを行いたい場合は https を設定します。このほかにも様々なプロトコルを設定することが可能です。

ロードバランサ機能の設定例

ここでは以下のネットワーク構成を想定して、2台のHTTPサーバで L4 レベルのロードバランスを行う場合の設定例を示します。

図:想定ネットワーク構成

まずリアルサーバの設定は以下のようになります。

slb server HTTPServer01 10.1.1.10
  port 80 tcp

slb server HTTPServer02 10.1.1.11
  port 80 tcp

次に上のリアルサーバ2台を含むサービスグループの設定を以下のように行います。

slb service-group HTTPServerGroup tcp
  member HTTPServer01 80
  member HTTPServer02 80

最後に上のサービスグループを適用した仮想サーバ設定を以下のように行います。

slb virtual-server HTTPVirtualServer 192.168.200.110
  port 80 tcp
    service-group HTTPServerGroup

以上でロードバランサ機能の基本的な設定は完了です。

ロードバランサ機能の状態確認コマンド

ロードバランサ機能に関しては以下のような状態確認を確認コマンドを使用して行います。

ロードバランサ機能の状態確認
  • リアルサーバの状態確認コマンド
    • show slb server
  • サービスグループの状態確認コマンド
    • show slb service-group
  • 仮想サーバの状態確認コマンド
    • show slb virtual-server
  • ヘルスチェックの状態確認コマンド
    • show health stat

show slb server では各リアルサーバのポート別状態とコネクション数やパケットの統計情報を確認できます。

vThunder#show slb server
Total Number of Servers configured: 2
Total Number of Services configured: 2
                   Current = Current Connections, Total = Total Connections
                   Fwd-pkt = Forward packets, Rev-pkt = Reverse packets
Service                   Current    Total      Fwd-pkt    Rev-pkt    Peak-conn  State
---------------------------------------------------------------------------------------
HTTPServer01:80/tcp       0          1          7          8          0          Up
HTTPServer01: Total       0          1          7          8          0          Up

HTTPServer02:80/tcp       0          1          560        2335       0          Up
HTTPServer02: Total       0          1          560        2335       0          Up

show slb service-group では各サービスグループについて所属するサーバのサービスポートの状態とコネクション数やパケットの統計情報を確認できます。

vThunder#show slb service-group
Total Number of Service Groups configured: 1
                   Current = Current Connections, Total = Total Connections
                   Fwd-p = Forward packets, Rev-p = Reverse packets
                   Peak-c = Peak connections
Service Group Name
Service                         Current    Total      Fwd-p     Rev-p     Peak-c
-----------------------------------------------------------------------------------
*HTTPServerGroup      State: All Up
HTTPServer01:80                 0          1          7         8         0
HTTPServer02:80                 0          1          560       2335      0

show slb virtual-server では各仮想サーバについて状態とサービスポート別にサービスグループのコネクション数やパケットの統計情報を確認できます。

vThunder#show slb virtual-server
Total Number of Virtual Services configured: 1
Virtual Server Name      IP              Current    Total      Request  Response Peak
Service-Group            Service         connection connection packets  packets  connection
----------------------------------------------------------------------------------------
*HTTPVirtualServer 192.168.200.110     All Up

   port 80  tcp                          0          2          567      2343     0
HTTPServerGroup          80/tcp          0          2          567      2343     0
Total received conn attempts on this port: 2

show health stat では、前半でヘルスチェックの統計情報、後半で各リアルサーバの各ポート別のヘルスチェック状態を確認できます。

vThunder#show health stat
Health monitor statistics
Total run time                         : 5 hours 55 minutes 21 seconds
Number of burst                        : 0
max scan jiffie                        : 95
min scan jiffie                        : 1
average scan jiffie                    : 2
Opened socket                          : 280
Open socket failed                     : 0
Close socket                           : 278
Connect failed                         : 0
Send packet                            : 278
Send packet failed                     : 0
Receive packet                         : 278
Receive packet failed                  : 0
Retry times                            : 0
Timeout                                : 0
Unexpected error                       : 0
Conn Immediate Success                 : 0
Socket closed before l7                : 0
Socket closed without fd notify        : 0
SSL Post Handshake Packet              : 0
Timeout with Packets                   : 0
Configured health-check rate(/500ms)   : Auto configured
Current health-check rate(/500ms)      : 1
External health-check max rate(/200ms) : 2
Total number                           : 4
Status UP                              : 4
Status DOWN                            : 0
Status UNKN                            : 0
Status OTHER                           : 0

IP address           Port  Health monitor  Status Cause(Up/Down) Reason(Up/Down)                     Retry PIN
--------------------------------------------------------------------------------------------------------------------------
10.1.1.10                  default         UP     11 /0  @0      ICMP Receive OK                     0     0  /0  0
10.1.1.10            80    default         UP     20 /0  @0      TCP Verify Connection OK            0     0  /0  0
10.1.1.11                  default         UP     11 /0  @0      ICMP Receive OK                     0     0  /0  0
10.1.1.11            80    default         UP     20 /0  @0      TCP Verify Connection OK            0     0  /0  0

ヘルスチェックについて詳しくは以下の記事を参照してください。

あわせて読みたい
A10 Thunder SLB サーバのヘルスチェックについての基礎知識を解説 本記事について 本記事では、A10ネットワークス社のロードバランサ製品である Thunder シリーズについて、SLBサーバのヘルスチェックの基礎知識として以下のような内容...

まとめ

  • ロードバランサ利用時のネットワーク構成にはインライン構成とワンアーム構成の2パターンがある
  • ロードバランサ機能では VIP を持った仮想サーバを構築する
  • ロードバランサ機能の設定には、リアルサーバ、サービスグループ、仮想サーバの3要素がある

A10 Thunder の設計構築に役立つ関連記事一覧

Amazon アフィリエイトリンク

以下は Amazon アフィリエイトリンクです。インフラエンジニアにそこそこおすすめなアイテムです。

note メンバーシップへの参加もお待ちしています!

note(ノート)
陰の構築者たちのメンバーシップ|シェイド@陰の構築者 ネットワーク設計構築をする人に役立つメンバーシップです。 独自ブログ(https://shadowgarden.org/)にてネットワークエンジニア向け情報を発信しており、その活動を応援...

【アフィリエイト】おすすめ WordPress テーマ【SWELL

当サイトでは WordPress テーマとして SWELL を使用しています。以前は無料・高機能テーマとして知られる Cocoon を使用していて Cocoon も使いやすかったのですが、SWELL を使い始めてからは SWELL のほうが圧倒的に使いやすいなと思いました。そして何より読み込み速度が速い。SWELL を使い始めてから、過去の Cocoon のブログを見直したときに「あれ、こんなに表示遅かったっけ?」という感覚になりました。

また SWELL はデフォルトでもオシャレなデザインですが柔軟にカスタマイズすることもでき個性のあるサイトを作成できます。さらにブログパーツや広告タグといった再利用可能なブログの「部品」も作成することができ、ブログ作成効率も高いです。

技術ブログやアフィリエイト等での収益化を見据えたブログの作成に SWELL は最適です。初見では価格が高いなと思うと思いますが、私としては SWELL を採用して良かったしそれ以上の価値があると感じています。
ブログの新設やテーマ変更を考えている人は一度 SWELL を検討してみてください。
以下の画像リンクから詳細な情報を確認できます。

レンタルサーバーを探している人には安定性に定評のあるエックスサーバーをお勧めします。
当サイトもエックスサーバーを使用しています。WordPress のインストールも簡単にできます。

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

コメント

コメントする

目次