新人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.
関連記事
新着ホワイトペーパー PR
-
製品資料
“攻撃者優位”なサイバーセキュリティ、全ての「穴」をふさぐ方法とは? -
製品資料
実際に悪用される脆弱性は4%前後 優先的に対処すべき脆弱性を把握するには? -
製品資料
HubSpotの機能を拡張する法人データ活用法 -
製品資料
面倒で非生産的な「名寄せ」作業 高精度&高効率に実施するには? -
製品資料
名刺管理には「その先」がある 成果のでない営業活動から脱却する秘訣
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
Netflixのバックエンドは「ほぼJava」 3000超のアプリを支える開発基盤の裏側
-
2
ISMSの“コンサル丸投げ”が招く数千万円の無駄 NTTドコモビジネスの脱出劇
-
3
「Microsoft 365」が乗っ取られる 跡形もなくMFAを破る手口
-
4
「WSUS」終了の時限爆弾 “本命”移行先ツールとMicrosoft提唱の新管理手法
-
5
100億円の「Linux更新」を回避 みずほ銀行が選んだ“おきて破り”のRHEL延命策
-
6
「結局使わなくなる」Microsoft 365 Copilotを半年で定着 キリンの3施策
-
7
アラート47%削減 オープンハウスが捨てた「全部メール通知」の監視体制
-
8
IT製品の導入に関するアンケート「サーバ&ストレージ」編
-
9
Microsoft公式の実務試験が「ずっと無料」? 部下のスキルを0円で証明する方法
-
10
ベッドでの使用が「PC騒音」を悪化させる? Dellが推奨する冷却ファンの鎮め方
ホワイトペーパーランキング PR
-
1
AIエージェントで多様な日常業務を効率化するための入門ガイド
-
2
財務・会計はAI活用でどう変わる? 調査で見えた変革の道筋
-
3
AIが「わざわざ使うツール」になっていない? 業務で自然に使う導線にする秘訣
-
4
JR西日本ITソリューションズが「監視業務の属人化」を解消した方法とは?
-
5
「脱Excel」か「Excel快適化」か? 現場にやさしい業務改善の進め方
-
6
「結局、一部の人しか使わない」 AI活用が業務に定着しない根本的な理由
-
7
コスト分析で見る「デバイス復旧」の代償 損失額から導きだされた投資戦略とは
-
8
Macの安全神話は崩壊? 最新の脅威動向から見えた攻撃のトレンドと有効な対策
-
9
ゼロトラストにおける「IDaaSの課題」と補完すべき重要機能とは?
-
10
「NAS」「SAN」「DAS」は何が違う? いまさら聞けないストレージの基礎
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー