基本的なシステム構成

負荷分散装置でサーバの負荷分散を行うためには、次の機器が必要です。

  • 負荷分散装置
  • 負荷分散するサーバ群
  • DNSサーバ

負荷分散装置でサーバの負荷分散を行うときの基本的なシステム構成は次の図
のようになります。

slb01.png
図 負荷分散装置のシステム構成

サーバ1、サーバ2、サーバ3の3台のWebサーバでwww.example.comへのWebアクセスを負荷分散するものとします。負荷分散装置は、スイッチのように複数のイーサネットポートを持ち、負荷分散するサーバ群を集約して接続します。負荷分散装置には、www.example.comの仮想IPアドレスを設定します。
そして、DNSサーバにはwww.example.comのAレコードとして負荷分散装置の仮想IPアドレスを登録しておきます。

※負荷分散装置は、「アプリケーションスイッチ」、「L4/L7スイッチ」などとも呼びます。

負荷分散装置の通信フロー

負荷分散装置で、PC1とPC2の複数のクライアントPCからwww.example.comへのWebアクセスを負荷分散する際の通信フローを考えます。

  1. PC1がDNSサーバに対してwww.example.comのDNSリクエストを送信する
  2. DNSサーバは、DNSリプライとしてwww.example.comのIPアドレス192.168.1.100を返答する
  3. PC1はサーバ1(192.168.1.100)へWebアクセスを行う
  4. SLBが192.168.1.100へのWebアクセスを負荷分散アルゴリズムによって実サーバであるサーバ1を選択。
  5. SLBはサーバ1へWebアクセスを転送する
  6. PC2がDNSサーバに対してwww.example.comのDNSリクエストを送信する
  7. DNSサーバは、DNSリプライとしてwww.example.comのIPアドレス192.168.1.100を返答する
  8. PC2はサーバ1(192.168.1.100)へWebアクセスを行う
  9. SLBが192.168.1.100へのWebアクセスを負荷分散アルゴリズムによって実サーバであるサーバ2を選択。
  10. SLBはサーバ2へWebアクセスを転送する

slb02.png
図 PC1からのWebアクセス

slb03.png
図 PC2からのWebアクセス

このような通信フローをもう少し詳細に考えます。負荷分散装置はクライアントPCからのWebアクセスを実サーバへ転送します。このような動作はIPアドレスの変換によって実現します。

slb04.png
図 負荷分散装置でのIPアドレス変換

クライアントPCからwww.example.comへのWebアクセスのパケット1のアドレス情報は次の通りです。

  • 送信先IP:192.168.1.100(負荷分散装置の仮想IPアドレス)
  • 送信元IP:10.1.1.1
  • 送信先ポート番号:80
  • 送信元ポート番号:50000(ランダムポート)

これが負荷分散装置に届き、負荷分散装置でサーバ1を選択すると、パケット2としてサーバ1へ転送します。そのときのアドレス情報は次の通りです。

  • 送信先IP:192.168.1.1 (サーバ1のIPアドレス)
  • 送信元IP:10.1.1.1
  • 送信先ポート番号:80
  • 送信元ポート番号:50000(ランダムポート)

負荷分散装置で送信先IPアドレスを仮想IPアドレスからサーバ1の実IPアドレスへ変換します。

そして、サーバ1は返事としてパケット3.を返します。パケット3.のアドレス情報は次のようになります。

  • 送信先IP:10.1.1.1
  • 送信元IP:192.168.1.1 (サーバ1のIPアドレス)
  • 送信先ポート番号:50000(ランダムポート)
  • 送信元ポート番号:80

パケット3は負荷分散装置を経由します。負荷分散装置はパケット3のIPアドレスを次のように変換してパケット4としてPC1へ転送します。

  • 送信先IP:10.1.1.1
  • 送信元IP:192.168.1.100 (負荷分散装置の仮想IPアドレス)
  • 送信先ポート番号:50000(ランダムポート)
  • 送信元ポート番号:80

このように負荷分散装置では、IPアドレスの変換を行うことでクライアントPCからのWebアクセスを実サーバへ振り分けています。