新人IT担当者のためのネットワーク機器入門【第9回】
「負荷分散装置」はどこでどのようにネットワークの負荷を分散しているのか
ネットワークと関連機器に関する「今更聞けない」基礎知識をこっそりおさらいしようというこの連載。今回はレイヤー4からレイヤー7の機器「負荷分散装置」と「ADC」について解説します。
連載第8回の「Webを支える技術『HTTP』のエッセンス」では、セッション層(レイヤー5)からアプリケーション層(レイヤー7)の代表的な技術である「HTTP」について説明しました。今回は、レイヤー4(トランスポート層)からレイヤー7で動作する代表的な機器である「負荷分散装置」について説明します。
負荷分散装置は、レイヤー3(ネットワーク層)の情報であるIPアドレスやレイヤー4の情報であるポート番号、アプリケーションの情報を利用して、複数のサーバにコネクションを割り振る機器です。負荷分散装置に設定した「仮想サーバ」で受け取ったコネクションを、決められたルールに従って「この通信はサーバ1に、この通信はサーバ2に」という具合に割り振り、処理負荷を複数のサーバに分散します。負荷分散装置は、もともとはコネクションレベル、つまりレイヤー4で動作する機器として「L4スイッチ」とも呼ばれていました。しかし、今やその枠組を飛び越え、アプリケーションレベルでも動作する機器「ADC(Application Delivery Controller)」として、その地位を確立しています。本稿ではまず、負荷分散装置のL4スイッチとしての動きを確認し、その後でADCとしての基本的な機能を説明してきます。
宛先NATで振り分けるサーバを変える
負荷分散装置はどのようにネットワークの負荷を分散しているのでしょうか。その仕組みを語る上で欠かせない技術が「NAT」です。負荷分散装置の動きを説明する前に、NATについて説明しましょう。
NATでIPアドレスを変換
NATは、Network Address Translationの略で、文字通りネットワークにおけるアドレス、つまりIPアドレスを変換するための技術です。NAT自体は負荷分散装置特有の技術というわけではなく、ルータやファイアウォールでも用いられている一般的な技術です。NATは大きく分けて、以下の5種類から構成されています。
- 標準NAT(静的NAT、動的NAT)
- NAPT(IPマスカレード、PAT)
- Twice NAT(二重NAT)
- 双方向NAT(Two-way NAT、Bi-directional NAT)
- マルチホームNAT
この中で、新人IT管理者がまず押さえておく必要があるNATは「静的NAT」「NAPT」の2種類です。NATは、機器を境界として、外部と内部に分割し、それぞれでどのようなIPアドレスになるかを考えると分かりやすくなります。
- 静的NAT(1対1)
静的NATは、内部(LANやWANなどの社内ネットワーク)と外部(インターネットなどの社外ネットワーク)のIPアドレスを1対1にひも付けて変換します。「1対1NAT」とも呼ばれています。内部から外部へアクセスするときには、送信元IPアドレスを変換します(送信元NAT)。逆に外部から内部へアクセスするときには、宛先IPアドレスを変換します(宛先NAT)。「このクライアントはどうしてもこのIPアドレスでインターネットに出したい」「このサーバはこのIPアドレスでインターネットに公開したい」。そんなときは、この静的NATを使用します。
- NAPT(Network Address Port Translation)
NAPTは、内部と外部のIPアドレスをn対1にひも付けて変換します。IPマスカレードやPAT(Port Address Translation)など、いろいろな呼び方がありますが、全て同じです。NAPTは、内部から外部へアクセスするとき、送信元IPアドレスだけではなく、送信元ポート番号まで変換して書き換えます。どのクライアントがどの送信元ポート番号を利用しているかを見てパケットを振り分けるので、n対1で変換できます。
NAPTを使用している機器の中で最たる例が量販店などで販売しているブロードバンドルータでしょう。ブロードバンドルータは、家庭内で使用している複数のプライベートIPアドレスを、インターネットで一意なグローバルIPアドレスに変換することによって、インターネットに対する通信を成立させています。
負荷分散装置におけるNAT
負荷分散装置は上述したNATの中でも、静的NATの「宛先NAT」を応用して使用しています。そして、この宛先NATが負荷分散装置のポイントです。まずは、負荷分散装置がどのように宛先NATの処理をしているか説明しましょう。
宛先NATはコネクション情報を管理しているコネクションテーブルに基づいて処理します。負荷分散装置のコネクションテーブルはファイアウォールで使用するコネクションテーブルを拡張していて、要素(列)が微妙に異なります。負荷分散装置で使用するコネクションテーブルは「送信元IPアドレス:ポート番号」「仮想IPアドレス(変換前IPアドレス):ポート番号」「実IPアドレス(変換後IPアドレス):ポート番号」「プロトコル」などの要素で構成されていて、どんな通信をどのサーバに負荷分散しているかを管理しています。
ここでは図4のような環境で、共にクライアントPCである「A」と「B」が仮想サーバに対してHTTPでアクセスし、3台のWebサーバに負荷分散することを想定して、一般的な負荷分散装置の動きを説明します。
- 1. 負荷分散装置は仮想サーバでクライアントのコネクションを受け取ります。このときの宛先IPアドレスは仮想サーバのIPアドレス(仮想IPアドレス)です。受け取ったコネクションはコネクションテーブルで管理します。
- 2. 負荷分散装置は仮想IPアドレスになっている宛先IPアドレスを、それぞれに関連付いている負荷分散対象サーバのIPアドレスに変換します。変換するIPアドレスをサーバの状態やコネクションの状態など、各種状態によって動的に変えるので、コネクションが分散します。変換したIPアドレスもコネクションテーブルに載せ、管理します。
- 3. 最後に戻りの通信です。パケットを受け取ったサーバは、アプリケーションの処理をした後、デフォルトゲートウェイになっている負荷分散装置に返します。負荷分散装置は、行きと逆の処理、つまりパケットの送信元IPアドレスをNAT処理します。負荷分散装置は行きの通信をコネクションテーブルでしっかり管理していて、その情報を基にクライアントに返します。
どのIPアドレスに変換するか
上記の2のステップにおいて、宛先の仮想IPアドレスをどの実IPアドレスに変換するか。これが負荷分散技術の根本を担っています。負荷分散装置は「ヘルスチェック」と「負荷分散方式」、2つの要素によって変換するIPアドレスを決定しています。それぞれ概要を説明します。
- ヘルスチェック
負荷分散するサーバの状態を監視する機能が「ヘルスチェック」です。負荷分散するサーバにコネクションを割り振ろうとしても、そのサーバに障害が発生していたら、元も子もありません。そこで、負荷分散装置は定期的にパケットを投げて、サーバの状態を「障害」だと判断したときは、そのサーバだけを負荷分散対象から切り離し、コネクションを割り当てないようにします。
ヘルスチェックは「L3チェック」「L4チェック」「L7チェック」の3種類に大別できます。違いはチェックするレイヤーの違いです。大抵の場合、「L3チェック+L4チェック」「L3チェック+L7チェック」のように、レイヤーの異なるチェックを併用し、障害時のトラブルシュートを容易にしています。
- 負荷分散方式
「どの情報を使って、どのサーバに割り振るか」、これが負荷分散方式です。負荷分散方式によって、宛先NATで書き換える宛先IPアドレスが変わります。負荷分散方式は「静的」「動的」の2種類に大別できます。静的な負荷分散方式は、サーバの状況に関係なく、あらかじめ定義された設定に基づいて割り振るサーバを決定する方式です。動的な負荷分散方式は、サーバの状況に応じて割り振るサーバを決定する方式です。ベンダーごとにたくさんの負荷分散方式がありますが、一般的によく使用する負荷分散方式は以下の通りです。
ADCのポイントは「アプリケーションスイッチ」と「オフロード」
さて、負荷分散装置は上述の通り、レイヤー4の枠組みから飛び出し、今やADCとして、アプリケーションレイヤーに活躍の場を広げています。ADCはネットワーク機器というより、むしろプロキシサーバと似たような動きをすることによって、システム全体の処理負荷を分散するような形を採っています。ADCのポイントは、先述した宛先NATに加え「アプリケーションスイッチ」と「オフロード」の2つです。それぞれ説明しましょう。
アプリケーションの情報を基に割り振り
アプリケーションスイッチはアプリケーションレイヤーの情報に基づき、割り振るサーバを決定します。ADCのことを「L7スイッチ」と呼ぶ人もいますが、それはこのようなアプリケーションレベルの動きに由来しています。
同じURLにアクセスしているはずなのに、クライアントPCでアクセスしたときはクライアントPC用のWebサイト、iPhoneでアクセスしたときはiPhone用のWebサイトにアクセスするようなことがありますが、これはADCがHTTPリクエストに含まれるWebブラウザの情報(ユーザーエージェントヘッダ)を見て、クライアントPCの場合はクライアントPC用のサーバ、iPhoneの場合はiPhone用のサーバに割り振るようにしているからです。
サーバの処理を肩代わり
オフロードはサーバで行う処理を肩代わりする機能のことです。機器によっていろいろなオフロード機能がありますが、本連載では中でも代表的な「SSLオフロード」と「TCPオフロード」の2つについて説明します。
- SSLオフロード
SSLは通信データを暗号化するレイヤー4の技術です。ブラウザでURLを入力するとき「https://~」と入力したことがありませんか。最初の「https」はHTTPをSSLで暗号化しているHTTPS(HTTP over SSL)で通信していることを表しています。
SSLオフロードは、これまでサーバで行っていたSSLの処理をADCで肩代わりする機能です。機器によっては「SSLアクセラレーション」と呼ぶこともあります。SSLはデータの暗号化や認証を行うため、通常よりも高い処理負荷が掛かります。この処理をADCで肩代わりします。サーバでSSLの処理をする必要がなくなるので、サーバの処理負荷が軽減します。
- TCPオフロード
TCPオフロードはSSLオフロードと同様、これまでサーバで行っていたTCPの処理をADCで肩代わりする機能です。TCPの処理は、1つひとつの処理負荷は小さいものの、「ちりも積もれば山」になりやすい処理の1つです。最近のアプリケーションは複数のTCPコネクションを使用することが多く、その傾向がより一層顕著になっています。ADCはいったんTCPの処理を受け、それを集約してサーバに渡すことによって、サーバの処理負荷の軽減を図ります。
HTTPを例に取りましょう。第8回の「Webを支える技術『HTTP』のエッセンス」で説明したように、Webブラウザは、1つのHTTPサーバに対して最大6本のTCPコネクションを同時に作ります。ADCは複数のTCPコネクションをいったん受け付け、1本にしてサーバに渡します。単純にTCPの処理が6分の1になるので、サーバの処理負荷が軽減します。
以上、今回は負荷分散装置とその進化形であるADCについて解説しました。このレイヤーでは、まず負荷分散装置としての動き「宛先NAT」をおさえ、その後にADCとしての動き「アプリケーションスイッチ」「オフロード機能」を学習していけばよいでしょう。
執筆者紹介
みやたひろし
大学と大学院で地球環境科学の分野を研究した後、某システムインテグレーターにシステムエンジニアとして入社。その後、ネットワーク機器ベンダーのコンサルタントに転身。設計から構築、検証に至るまで、ネットワークに関連する業務全般を行い、今日もどこかで自己研さんを積んでいる。CCIE(Cisco Certified Internetwork Expert)。F5 Certified Technology Specialists。著書に『インフラ/ネットワークエンジニアのためのネットワーク技術&設計入門』『サーバ負荷分散入門』(いずれもSBクリエイティブ)
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
取手市がVDIと決別した理由 更改費用「4倍超」を約1.7倍に圧縮
-
2
「Excel至上主義」の終わらせ方 丸2日の手作業地獄から情シスと現場を救うには
-
3
「Microsoft 365のセキュリティ運用」に関するアンケート
-
4
急増する「AIはこう言ってる」マン 判断を狂わせる「AI忖度」を防ぐには?
-
5
221人調査で分かった「情シス最大のストレス」は?
-
6
「Salesforceのテスト自動化ツール」に関するアンケート
-
7
IT製品の導入に関するアンケート「サーバ&ストレージ」編
-
8
「データストレージの活用方法」に関するアンケート
-
9
「AI時代の統合基盤・エンタープライズAI管理」に関するアンケート
-
10
自宅のWi-Fiが「遅い」「途切れる」本当の原因は? Dellが推奨する鉄則
ホワイトペーパーランキング PR
-
1
年収2000万「クラウドセキュリティのプロ」になれる資格とは
-
2
セキュリティソフトをすり抜ける標的型攻撃メール、不審メールの見破り方とは?
-
3
Windows Updateの通信集中で回線が逼迫、ネットワーク刷新事例に学ぶ解決策
-
4
財務を戦略的組織へ進化させるAI活用術、4つの主要な障壁と解消方法
-
5
「NAS」「SAN」「DAS」は何が違う? いまさら聞けないストレージの基礎
-
6
“あのファイル転送”で暗躍するノーウェアランサム
-
7
標的型攻撃メールを見破るには? サンプル文面を例に傾向を解説
-
8
商用利用の安全性を確保し大量のコンテンツを高速で生成する、AI活用の秘訣
-
9
マンガで解説、1日で生成AI環境を構築できるワークショップの中身とは?
-
10
Dark AIが台頭する時代の新発想、「より高度なAIで対抗する」具体的方法とは?
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー