ロードバランサー

アプライアンス ロードバランサー について説明します。

重要

「アプライアンス ロードバランサー 」は、 オプション「専用グローバルネットワーク」ご利用のお客様を対象とした追加サービス です。

操作マニュアル

設定変更の際の注意事項

出荷時には、ユーザーの環境に依存する内容以外は、基本的に適切な状態でお渡ししています。
以下の2つの設定は 絶対に変更しないでください。 接続できなくなったり、ロードバランサーがうまく機能しなくなってしまう恐れがあります。
  • デフォルトルートの設定

  • ロードバランサー管理IPアドレスの設定

また、以下の設定については、管理上の都合によりロードバランサーへのSNMPアクセスを遮断しています。

  • SNMPの設定

提供仕様上、ご利用いただけない設定となりますのでご理解ください。

機能を理解しないまま設定することもできるだけ避けるようにしましょう。
わからない点はベンダーが提供しているコンフィグレーションマニュアルを確認してください。

管理ツールについて

管理ツールは「コマンドラインインターフェース(CLI)」と「グラフィカルインターフェース(GUI)」があります。

--

管理ツール(GUI)

管理ツール(CLI)

出荷時の状態

接続制限あり

接続制限あり

ログイン方法

ブラウザー *1

SSH接続 *1

*1 利用開始前に コントロールパネルから 管理ツールのパスワードを発行 を行ってください。

管理ツール(GUI)

ロードバランサーではコマンドラインインターフェース(CLI)だけでなく、グラフィカルな画面(GUI)をつかって直感的な操作を行うことができるようになっています。

この項目では、GUIでよく行われる操作についてご紹介します。GUI画面の基本的な機能についてはベンダーのサイトをご覧ください。

管理ツール(GUI)を開く

管理ツール(GUI)を開きます。

マニュアル>アプライアンス>ロードバランサーの管理ツールを開く を参考に、事前準備と画面を開く操作を行ってください。

画面説明

../../_images/lb_adc_configure_01.png

画面サンプル

1

Dashboard

システムの統計情報を確認できます。

2

Configuration

ロードバランサーの設定(コンフィグ)を変更するときに使用します。
ログや現在の設定状態を確認することができます。

3

Reporting

各種レポートを確認できます。

4

Documentation

各種マニュアルのライブラリです。

5

Downloads

各種SNMPのMIBファイルやNITRO APIなどをダウンロードできます。

6

画面更新

Configuration項目で画面更新をおこないます。

7

設定保存

Configuration項目で行った設定の保存を行います。
自動では設定は保存されませんので、設定変更時には必ずこちらから設定の保存を行ってください。

管理ユーザーパスワードの変更

管理ツール(GUI)上から管理ユーザーのパスワードを変更する場合は以下の手順で行います。

1. [Configuration] - [System] - [User Administration] - [Users] を選択します。
2. 管理ユーザーにチェックをして [Change Password] を選択します。
../../_images/lb_adc_configure_users_password_01.png

画面サンプル: パスワードの変更(1)


3. 変更したいパスワードを [Password] [Confirm Password] の項目に入力して、[OK] を選択します。
../../_images/lb_adc_configure_users_password_02.png

画面サンプル: パスワードの変更(2)


4. 変更後、[設定保存] アイコンを選択して設定を保存します。

管理ツールへのアクセス制限の変更

管理ツール(GUI)上から管理ツールへのアクセス制限を変更する場合は以下の手順で行います。 例示では192.0.2.129-192.0.2.134の範囲を接続元とする管理ツールへのアクセス許可を追加しています。


1. [Configuration] - [System] - [Network] - [ACLs] - [Extended ACLs] を選択します。
../../_images/lb_adc_configure_network_acls_01.png

画面サンプル: アクセス制限の変更(1)


2. [Add] を選択して作成画面に入り、[Extended ACL] に以下の必須項目を入力し、[Create] を選択します。
../../_images/lb_adc_configure_network_acls_02a.png

画面サンプル: アクセス制限の変更(2)

Name

任意の名称を入力します

Action

Allow を選択します

Priority

初期提供時に設定されたIN_MGMT_DENY_SEGMENTの100を下回る値を入力します

Source IP Low

アクセスを許可する接続元IPアドレスの始点となるアドレスを入力します

Source IP High

アクセスを許可する接続元IPアドレスの終点となるアドレスを入力します


3. [Select Action] - [Apply] と選択して設定を反映させます。
../../_images/lb_adc_configure_network_acls_03.png

画面サンプル: アクセス制限の変更(3)


4. 反映後、[設定保存] アイコンを選択して設定を保存します。

いろいろな設定例

バランシング設定

ロードバランサーを使った、代表的な2つのバランシング設定の例をご紹介します。

  • DSR(Direct Server Return)構成

  • ソースNAT構成

DSR構成

「DSR構成」では、図のようにサーバーからのレスポンスがロードバランサーを経由しないため、リクエスト量に対してロードバランサーのキャパシティが増えるというメリットがあります。
そのため、コンテンツ・ストリーミング配信などのシステムに適しています。
L4でのバランシングのみ利用可能で、サーバーのループバックインターフェースやダミーインターフェースの設定などが必要となります。

<DSR構成でのパケットフロー>
  1. クライアントからのリクエストをロードバランサーが受信

  2. ロードバランサーはバランシングを行い、サーバーにリクエストを転送する

  3. サーバーはダイレクトにレスポンスをクライアントに返す

../../_images/lb_adc_dsr.png

DSR構成

ソースNAT構成

「ソースNAT構成」では、L4/L7でのバランシングともに利用可能で、サーバーに特別な設定を行う必要がないというメリットがあります。
サーバーからのレスポンスもロードバランサーを経由するため、SSLオフロードを有効にしてロードバランサーがSSL通信を終端することができます。
半面、ロードバランサー自体がボトルネックとなることがあります。

<ソースNAT構成でのパケットフロー>
  1. クライアントからのリクエストをロードバランサーが受信

  2. ロードバランサーはバランシングをおこない、サーバーにリクエストを転送する

  3. サーバーはレスポンスをロードバランサーに返す

  4. ロードバランサーは返ってきたレスポンスをクライアントに返す

../../_images/lb_adc_snat.png

ソースNAT構成

DSR構成によるHTTPSバランシング設定

DSR構成によるHTTPSバランシング設定に必要な設定について説明していきます。

重要

  • 事前にウェブサーバーの構築とウェブサーバーへのSSL証明書のインストールをおこなってください。

  • この手順では、以下の環境を想定しています。

    • サーバーのグローバル側インターフェースがボンディング構成であること

    • サーバーとロードバランサー間の通信がアクセス制限などで妨げられないこと

MBF(MAC base forwarding)の有効化

DSRを構成するときは「MBF(MAC base forwarding)」を有効にします。

  1. [Configuration] - [System] - [Settings] - [Configure Modes] を選択します。

  2. [MAC based forwarding] をチェックし、[OK] を選択します。

../../_images/lb_adc_system_configure_dsr_mbf_01.png

画面サンプル: MBF(MAC base forwarding)の有効化

サーバーの作成

負荷分散の対象となるサーバーを作成します。


1. [Configuration] - [Traffic Management] - [Load Balancing] - [Servers] を選択します。
2. [Add] を選択して作成画面に入り、[Create Server] に以下の必須項目を入力し、[Create] を選択します。
../../_images/lb_adc_traffic_server_01.png

画面サンプル: サーバーの作成

Name

任意の名称を入力します

IP Address / Domain Name

IP Address を選択します

IPAddress

物理サーバーのIPアドレスを入力します


3. これを必要なサーバー分繰り返します。

サービスの作成

負荷分散の対象となるサーバーごとにサービスを作成します。


1. [Configuration] - [Traffic Management] - [Load Balancing] - [Services] を選択します。
2. [Add] を選択して作成画面に入り、[Basic Settings] に以下の必須項目を入力し、[OK] を選択します。
../../_images/lb_adc_traffic_service_dsr_01a.png

画面サンプル: サービスの作成(1)

Service Name

任意の名称を入力します

New Server / Existing Server

「Existing Server」を選択します

Server

作成済みのサーバーを選択します

Protocol

「ANY」を選択します
(DSR構成の場合、プロトコルに関わらずANYを選択します)

Port

「443」を入力します


3. 画面の遷移後、[Service Settings] の項目右の編集ボタンをクリックします。
../../_images/lb_adc_traffic_service_dsr_02.png

画面サンプル: サービスの作成(2)


4. 編集画面となるので、[Use Source IP Address] をチェックし、[OK] を選択します。
../../_images/lb_adc_traffic_service_dsr_03.png

画面サンプル: サービスの作成(3)


5. Use Source IP Address YES となったことを確認して、[Done] を選択して作成を完了します。
../../_images/lb_adc_traffic_service_dsr_04.png

画面サンプル: サービスの作成(4)


6. これを必要なサービスの数だけ繰り返します。

バーチャルサーバーの作成

クライアントにサービスを提供するためのバーチャルサーバーを作成します。


1. [Configuration] - [Traffic Management] - [Load Balancing] - [Virtual Servers] を選択します。
2. [Add] を選択して作成画面に入り、[Basic Settings] に以下の必須項目を入力し、[OK] を選択します。
../../_images/lb_adc_traffic_vserver_dsr_01.png

画面サンプル: バーチャルサーバーの作成(1)

Name

任意の名称を入力します

Protocol

「ANY」を選択します
(DSR構成の場合、プロトコルに関わらずANYを選択します)

IP Address Type

「IP Address」 を選択します

IP Addres

任意のIPアドレスを入力します

Port

「443」を入力します

Redirection Mode

「MAC Based」を選択します


3.つぎに、[Service and Service Group」項目の [No Load Balancing Virtual Server Binding]を選択します。
../../_images/lb_adc_traffic_vserver_dsr_02.png

画面サンプル: バーチャルサーバーの作成(2)


4. [Select Service] で [Click to select] を選択、[Service] の画面となるので、必要なサービスをチェックして [Select] を選択、[Bind] を選択して紐づけます。
../../_images/lb_adc_traffic_vserver_dsr_03.png

画面サンプル: バーチャルサーバーの作成(3)


5. [* Load Balancing Virtual Server ServiceGroup Binding] となったことを確認して、[Continue] を選択します。
../../_images/lb_adc_traffic_vserver_dsr_04.png

画面サンプル: バーチャルサーバーの作成(4)


6. [Method] の項目右の編集ボタンをクリックします。
../../_images/lb_adc_traffic_vserver_dsr_05.png

画面サンプル: バーチャルサーバーの作成(5)


7. [Load Balancing Method] のプルダウンメニューから [SOURCEIPHASH] を選択し、[OK] を選択します。
../../_images/lb_adc_traffic_vserver_dsr_06.png

画面サンプル: バーチャルサーバーの作成(6)


8. 「Load Balancing Method SOURCEIPHASH」となったことを確認し、に [Persistence] の項目右の編集ボタンをクリックします。
../../_images/lb_adc_traffic_vserver_dsr_07.png

画面サンプル: バーチャルサーバーの作成(7)


9. つぎに、以下の項目を入力し、[OK] を選択します。
../../_images/lb_adc_traffic_vserver_dsr_08.png

画面サンプル: バーチャルサーバーの作成(8)

SOURCEIP / OTHERS

「SOURCEIP」を選択します

Time-out (mins)

任意のタイムアウト時間を入力します(初期値は2分です)


10. 「Persistence SOURCEIP」となったことを確認し、次に [Traffic Settings] の項目右の編集ボタンをクリックします。
../../_images/lb_adc_traffic_vserver_dsr_09.png

画面サンプル: バーチャルサーバーの作成(9)


11. 編集画面で、[Sessionless load balancing] をチェックし、[OK] を選択します。
../../_images/lb_adc_traffic_vserver_dsr_10.png

画面サンプル: バーチャルサーバーの作成(10)


12. 「Sessionless load balancing ENABLE」となったことを確認して、[Done] を選択して作成を完了します。
../../_images/lb_adc_traffic_vserver_dsr_11.png

画面サンプル: バーチャルサーバーの作成(11)

Note

「Sessionless load balancing」ではロードバランサーの負荷の原因となるロードバランサー上でのクライアント・サーバー間のセッションの保持をおこなわないので、大量のトラフィック処理を必要とする用途に適しています。
その反面、サービスグループをサポートしていないことや、セッションの保持を前提としたLeast Connectionなどの負荷分散メソッドが使用できないなどのいくつかの制限があります。
制限の内容は、以下のベンダーマニュアルを確認してください。

Note

ロードバランサーには同一のクライアントからのリクエストを同一のサーバーへと振り分ける「Persistence」と呼ばれるセッション維持機能があり、例示ではソースIPアドレスを元にセッション維持を行う設定とをおこなっています。
Persistenceの機能については ベンダーマニュアルを確認してください。

OSの設定

「DSR構成」では、バランシングの対象となる物理サーバーに以下の設定を行う必要があります。

  • ループバックインターフェース、あるいはダミーインターフェースにバーチャルサーバーのIPアドレスを設定

  • arpアナウンスの設定

CentOS 7

ループバックインターフェースにバーチャルサーバーのIPアドレスを設定します。


1. ループバックインターフェースの設定を行います。
/etc/sysconfig/network-scripts/ifcfg-lo:0
 DEVICE=lo:0
 IPADDR=[バーチャルサーバーIPアドレス(IPv4)]
 NETMASK=255.255.255.255
 ONBOOT=yes
 NM_CONTROLLED="no"

2.物理サーバーがバーチャルサーバー宛のARPに応答しないようにするために、Non-ARPingの設定を行います。
sysctl.confファイル設定を記述します。
/etc/sysctl.conf
 net.ipv4.conf.bond0.arp_ignore = 1
 net.ipv4.conf.bond0.arp_announce = 2
 net.ipv4.conf.all.arp_ignore = 1
 net.ipv4.conf.all.arp_announce = 2

3. sysctl.confの設定を反映させます。
# sudo sysctl -p

4. ネットワークを再起動します。
# systemctl restart network

5. ネットワークが起動し、設定が反映されていることを確認します。
# ip addr show
CentOS 8

ダミーインターフェースにバーチャルサーバーIPアドレスを設定します。


1. ダミーインターフェースの設定を行います。
# nmcli connection add type dummy ifname [ダミーインターフェース名] ipv4.method manual ipv4.addresses [バーチャルサーバーIPアドレス(IPv4)]/32 ipv6.method ignore

2. 物理サーバーがバーチャルサーバー宛のARPに応答しないようにするために、Non-ARPingの設定を行います。
sysctl.confファイル設定を記述します。
/etc/sysctl.conf
 net.ipv4.conf.bond0.arp_ignore = 1
 net.ipv4.conf.bond0.arp_announce = 2
 net.ipv4.conf.all.arp_ignore = 1
 net.ipv4.conf.all.arp_announce = 2

3. sysctl.confの設定を反映させます。
# sudo sysctl -p

4. ネットワークを再起動します。
# systemctl restart network

5. ネットワークが起動し、設定が反映されていることを確認します。
# ip addr show
Ubuntu 18.04

ループバックインターフェースにバーチャルサーバーIPアドレスを設定します。


1. netplanの設定ファイル中のethernets項目にループバックインターフェースの設定を追加します。
/etc/netplan/01-netcfg.yaml
 ethernets:
     lo:
         addresses:
         - [バーチャルサーバーIPアドレス(IPv4)]/32
     eth0:
         dhcp4: no
     eth1:
         dhcp4: no

2. 物理サーバーがバーチャルサーバー宛のARPに応答しないようにするために、Non-ARPingの設定を行います。
sysctl.confファイル設定を記述します。
/etc/sysctl.conf
 net.ipv4.conf.bond0.arp_ignore = 1
 net.ipv4.conf.bond0.arp_announce = 2
 net.ipv4.conf.all.arp_ignore = 1
 net.ipv4.conf.all.arp_announce = 2

3. sysctl.confの設定を反映させます。
# sudo sysctl -p

4. ネットワークを再起動します。
# systemctl restart network

5. ネットワークが起動し、設定が反映されていることを確認します。
# ip addr show

ソースNAT構成でのHTTPSバランシング設定例

ソースNAT構成によるHTTPSバランシング設定に必要な設定について説明していきます。

重要

  • 事前にウェブサーバーの構築とWebサーバーへのSSL証明書のインストールをおこなってください。

  • この手順では、以下の環境を想定しています。

    • サーバーのグローバル側インターフェースがボンディング構成であること

    • サーバーとロードバランサー間の通信がアクセス制限などで妨げられないこと

SSLオフロードの有効化

ロードバランサーでSSL通信を終端するため、SSLオフロードの有効化が必要となります。


1. [Configuration] - [System] - [Settings] - [Configure Basic Features] を選択します。
2. [SSL Offloading] をチェックし、[OK] を選択します。
../../_images/lb_adc_system_configure_ssl_offload_01.png

画面サンプル: SSLオフロードの有効化

SSL証明書の登録

SSLオフロードを行うためには、ロードバランサー上でのSSL証明書の登録が必要となります。
作業手順は以下のベンダーマニュアルをご確認ください。

サーバーの作成

負荷分散の対象となるサーバーを作成します。


1. [Configuration] - [Traffic Management] - [Load Balancing] - [Servers] を選択します。
2. [Add] を選択して作成画面に入り、[Create Server] に以下の必須項目を入力し、[Create] を選択します。
../../_images/lb_adc_traffic_server_01.png

画面サンプル: サーバーの作成

Name

任意の名称を入力します

IP Address / Domain Name

「IP Address」を選択します

IPAddress

物理サーバーのIPアドレスを入力します


3. これを必要なサーバーの数だけ繰り返します。

サービスの作成

負荷分散の対象となるサーバーごとにサービスを作成します。


1. [Configuration] - [Traffic Management] - [Load Balancing] - [Services] を選択します。
2. [Add] を選択して作成画面に入り、[Basic Settings] に以下の必須項目を入力し、[OK] を選択します。
../../_images/lb_adc_traffic_service_snat_01.png

画面サンプル: サービスの作成(1)

Service Name

任意の名称を入力します

New Server / Existing Server

「Existing Server」を選択します

Server

作成済みのサーバーを選択します

Protocol

「HTTP」を選択します

Port

「80」を入力します


3. 画面の遷移後、Use Proxy Port YES となっていることを確認して、[Done] を選択して作成を完了します。
../../_images/lb_adc_traffic_service_snat_02.png

画面サンプル: サービスの作成(2)


4. これを必要なサービスの数だけ繰り返します。

サービスグループの作成

作成したサービスをサービスグループとしてグループ化します。


1. [Configuration] - [Traffic Management] - [Load Balancing] - [Service Groups] を選択します。
2. [Add] を選択して作成画面に入り、[Basic Settings] に以下の必須項目を入力し、[OK] を選択します。
../../_images/lb_adc_traffic_service_groups_snat_01.png

画面サンプル: サービスグループの作成(1)

Name

任意の名称を入力します

Protocol

HTTP を選択します


3. 画面の遷移後、[OK] を選択して、一旦作成を完了させます。
4. 続いて、作成したサービスグループを選択します。
../../_images/lb_adc_traffic_service_groups_snat_02.png

画面サンプル: サービスグループの作成(2)


5. 画面の遷移後、[Settings] の項目右の編集ボタンをクリックします。
../../_images/lb_adc_traffic_service_groups_snat_03.png

画面サンプル: サービスグループの作成(3)


6. 編集画面となるので、[Insert Client IP Address] をチェックし、Header 項目に [X-Forwarded-For] を入力して [OK] を選択します。
../../_images/lb_adc_traffic_service_groups_snat_04.png

画面サンプル: サービスグループの作成(1)


7. 次にサービスをサービスグループに紐づけます。[Service Group Members] の [No Service Group Member] を選択します。
../../_images/lb_adc_traffic_service_groups_snat_05.png

画面サンプル: サービスグループの作成(5)


8. [Create Service Group Member] に以下の必須項目を入力し、[Create] を選択します。
../../_images/lb_adc_traffic_service_groups_snat_06.png

画面サンプル: サービスグループの作成(6)

IP Based / Server Based

Server Based を選択します

Select Server

[Click to select] を選択、[Servers] の画面となるので、必要なサーバー全てをチェックして [Select] を選択

Port

「80」を入力


9. Service Group Members が紐づけられたことと、Insert Client IP Address Enable、Header X-Forwarded-For となったことを確認して、[Done] を選択して設定を終えます。

Note

ソースNAT構成では、ロードバランサーで送信元IPアドレスの変換が行われるため、実際のクライアントIPアドレスをサーバー側で知ることができないという問題があります。
ウェブサーバーについては、X-Forwarded-For機能を使用することで、HTTPヘッダの中のフィールドに変換前のクライアントIPアドレスを挿入することができるようになり、ウェブサーバー側のロギング設定を挿入したヘッダを解釈できるように変更することで変換前のクライアントIPアドレスでのロギングが可能となります。

バーチャルサーバーの作成

クライアントにサービスを提供するためのバーチャルサーバーを作成します。


1. [Configuration] - [Traffic Management] - [Load Balancing] - [Virtual Servers] を選択します。
2. [Add] を選択して作成画面に入り、[Basic Settings] に以下の必須項目を入力し、[OK] を選択します。
../../_images/lb_adc_traffic_vserver_snat_01.png

画面サンプル: バーチャルサーバーの作成(1)

Name

任意の名称を入力します

Protocol

「SSL」を選択します

IP Address Type

「IP Address」 を選択します

IP Addres

任意のIPアドレスを入力します

Port

「443」を入力します

Redirection Mode

「IP Based」を選択します


3. 画面の遷移後、[Service and Service Group] 項目の[No Load Balancing Virtual Server ServiceGroup Binding] を選択します。
../../_images/lb_adc_traffic_vserver_snat_02.png

画面サンプル: バーチャルサーバーの作成(2)


4. [Select Service Group Name] で [Click to elect] を選択、[Service Groups] の画面となるので、必要なサービスグループをチェックして [Select] を選択、[Bind] を選択して紐づけます
../../_images/lb_adc_traffic_vserver_snat_03.png

画面サンプル: バーチャルサーバーの作成(3)


5. [1 Load Balancing Virtual Server ServiceGroup Binding] となったことを確認して、[Continue] を選択します。
../../_images/lb_adc_traffic_vserver_snat_04.png

画面サンプル: バーチャルサーバーの作成(4)


6. 画面の遷移後、[Certificate] 項目の [No Server Certificate] を選択します。
../../_images/lb_adc_traffic_vserver_snat_05.png

画面サンプル: バーチャルサーバーの作成(5)


7. [Select Server Certificate] で [Click to select] を選択、[Server Certificates] の画面となるので、登録したSSL証明書をチェックして [Select] を選択、[Bind] を選択して紐づけます。
../../_images/lb_adc_traffic_vserver_snat_06.png

画面サンプル: バーチャルサーバーの作成(6)


8. [1 Server Certificate] となったことを確認して、[Continue] を選択します。
../../_images/lb_adc_traffic_vserver_snat_07.png

画面サンプル: バーチャルサーバーの作成(7)


9. 画面の遷移後、画面右の [Advanced Settings] から [Persistence] を選択します。
../../_images/lb_adc_traffic_vserver_snat_08.png

画面サンプル: バーチャルサーバーの作成(8)


10. 編集画面となるので、以下の項目を入力し、[OK] を選択します。
../../_images/lb_adc_traffic_vserver_snat_09.png

画面サンプル: バーチャルサーバーの作成(9)

SOURCEIP / COOKIEINSERT / OTHERS

「COOKIEINSERT」を選択します

Time-out (mins)

任意のタイムアウト時間を入力します(初期値は2分です)

Cookie Name

任意の名称を入力します


11. Persistence COOKIEINSERT となったことを確認し、次に [SSL Parameters] を選択します。
../../_images/lb_adc_traffic_vserver_snat_10.png

画面サンプル: バーチャルサーバーの作成(10)


12. 編集画面となるので、[Protocol] 項目で [TLSv1] [TLSv11] のチェックを外し、[OK] を選択します。
../../_images/lb_adc_traffic_vserver_snat_11.png

画面サンプル: バーチャルサーバーの作成(11)


13. TLSv1 DISABLED、 TLSv11 DISABLED となったことを確認して、[Done] を選択して作成を完了します。
../../_images/lb_adc_traffic_vserver_snat_12.png

画面サンプル: バーチャルサーバーの作成(12)

Note

ロードバランサーには同一のクライアントからのリクエストを同一のサーバーへと振り分けるPersistenceと呼ばれるセッション維持機能があり、例示ではCookieを元にセッション維持を行う設定としております。
Persistenceの詳細につきましては、以下のベンダーマニュアルをご参照ください。