ネットワークスペシャリスト - SE娘の剣 -

ネットワークスペシャリストの試験対策サイトです。
ネスペ試験の合格体験談、合格のコツ、過去問解説、基礎知識などの情報を掲載します。

カテゴリ:14.可用性、信頼性 > 14.2 負荷分散装置

・負荷分散装置=ロードバランサと思ってよい。ネットワークスペシャリスト試験ではLBと図に書かれることが多い。
・道路(road)ではなく、負荷(load)をバランス(balace)良く分配する装置(er) 
・過去問にはロードバランサの基本機能の説明として「クライアントからの要求が特定のサーバに集中しないように、複数のサーバに振り分ける。(H20NW午前 問9)」との記載がある。
・SSLによって暗号化されると、Cookieなどのデータの中身を見た負荷分散が行えない。SSLアクセラレータをどこに置くかという問題がSMで出題されていた。(H17年SM午後1 問3 設問2(2))

・HTTPはステートレスな通信である。そこで、HTTPの通信が毎回違うサーバに振り分けられるとやっかい。過去問では、どうやってセッションを保持するかについて問われたと思う。

・L4レベルとL7レベルの負荷分散装置がある。
・L3レベルの負荷分散は、負荷分散装置ではなくVRRPなどのルータの機能で実現することが多い。

・実際の製品としては、BigIPやリンクプルーフなどがあるだろう。また、Microsoft社のNLBの機能も、負荷分散装置ではないが、負荷分散の仕組みである。それ以外にはDNSラウンドロビンによる負荷分散をとる方法もある。

・仕組み
負荷分散装置が実IP以外に仮想IPアドレスを持つ。

               ┃
         ┏━━┻━━┓
         ┃負荷分散  ┃
         ┗━━┳━━┛
   IP 10.1.1.10┃  
               ┃  
   ━━━━━━┻━━━━━
┏━┻┓  ┏━┻┓  ┏━┻┓ 
┃WEB1┃  ┃WEB1┃  ┃WEB1┃ 
┗━┳┛  ┗━┳┛  ┗━┳┛ 
10.1.1.1  10.1.1.2  10.1.1.3

・実際の製品では、負荷分散の機能だけでなく、セキュリティ機能や高速化(SSLの高速化、帯域圧縮)機能なども付加した製品が多く、アプリケーションスイッチと呼ばれることもある。(試験には出ないと思う)

H21年NW午後1問3に負荷分散装置(LB:ロードバランサ)に関する出題がある。これを解説することで、負荷分散装置の理解を深めてほしい。
a

[増強するeシステムの構成]
 eシステムの増強は,情報システム部のP君が担当することになった。P君は,eシステムの利用者数と,ベンダから入手したパフォーマンスに関する仕様を基に,eSVRとLBの機種を選定した。また,コンテンツと管理情報の一元管理のために,ファイルサーバも併せて導入することにした。
選定したLBは,()処理の振分け機能,()[ ア ]維持機能,()ヘルスチェック機能 をもっている。()には,様々な方式がある。システムの応答時間は,eSVRの負荷の増加とともに長くなると考えられたので,応答時間が最短のeSVRに処理を振り分ける方式を採用することにした。()には,リクエスト元のIPアドレスに基づいて行うレイヤ3方式や,Webページにアクセスしたユーザに関する情報を保持する[ イ ]に埋め込まれた,セッションIDに基づいて行うレイヤ7方式などがある。eシステムを利用するPCには, IPアドレスが固定設定されているので,レイヤ3方式を利用することにした。()には,レイヤ3,レイヤ4及びレイヤ7の各レイヤで稼働状況を監視する方式がある。eシステムのサービスポートの稼働状況を監視するために,レイヤ4方式を利用することにした。
 LBの故障時に,ネットワーク構成を変更しなくてもeシステムの運用が継続できるように,LBとeSVRは,図の構成で設置することにした。 PCからのeシステム利用には,社内のPCを三つのブロックに分け,各ブロックのPCごとに,異なったeSVRのホスト名を指定させる。DNSで,三つのホスト名に一つのVIPを対応付けることによって,LB経由でeSVRに接続できる。このように, eSVRのホスト名を使い分けることで,LBの故障時にもDNSの設定変更によって,3台のeSVRに処理を振り分けることができる。選定したLBには, PCからVIPあてに送信されたパケットの,送信元IPアドレスをLBの実アドレスに変換してeSVRに転送する,ソースNAT機能がある。ソースNAT機能を利用すると,既設eSVRのネットワーク情報の設定変更が不要になる。しかし,管理上必要な情報が,eSVRのログから取得できなくなってしまう問題があるので,ソースNAT機能は利用しないことにした。

負荷分散装置の機能には以下がある。 ※問題文を活用して解説します。
(1)処理の振分け機能・・・負荷分散装置の基本機能
 「(i)には様々な方式がある。」と書かれているように、様々な方式があります。例えば、ラウンドロビン方式として順番に振り分ける、接続されているセッション数が少ないサーバに振り分ける、サーバの負荷を判断して振り分ける、などがあります。
 この問題では「応答時間が最短」のサーバに振り分けると述べられています。振分け方式は製品によって異なります。
 また、振り分ける際にL4レベルでの振分けも可能で、ポート番号を見てアプリケーションごとにサーバを振り分けることもできます。

(2)セッション維持機能・・・接続先のサーバが変化しても、利用者のセッションを維持する。
 ユーザが情報を入力したり、その入力情報に基づいた動きをするサーバの場合、LBにて違うサーバに接続させられては困る。

1)L3方式
リクエスト元のIPアドレスに基づいてセッションを維持する。実際には、一定時間が過ぎるとIPアドレス情報と接続サーバとの関係を保持した情報は廃棄されるであろう。

2)L7方式
Cookieに埋め込まれたセッションIDに基づいて行う。または、HTTPのヘッダ内容を見る場合がある。この場合は、TCPのコネクションを確立しないと中身を見ることができないので、LBがサーバの代わりに3Wayハンドシェイクのコネクションを確立する。その後、LBが接続するサーバのみとTCPコネクションを確立することになる。

(3)ヘルスチェック機能・・・サーバの生死を確認する機能
「レイヤ3、レイヤ4及びレイヤ7の各レイヤで稼働状況を監視する方式がある。」と述べられている。

後半に述べられている、LB故障時の仕組みは非常に面白い。
業務で参考にさせてもらうつもりだ。

よくある設計として、LBをインラインに入れる。つまり「PC→LB→サーバ」という一連の流れで接続するのだ。LBはフェールオープン機能が無いものが多いため、LBが故障すると、サーバへの通信ができなくなる。そこで、LBをやむなく(無駄に)二重化することが多い。
 情報処理試験のこの問題文では、LBを1台で運用する方法を書いている。LBをインラインに入れず、DNSの設定変更だけでサーバへアクセスできるようにしているのである。
何を言っているのか分からない人も多いかもしれないが、感動したのは私だけでは無いと思う。

このページのトップヘ