新人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
-
製品資料
[株式会社うるる] 「入札市場」攻略ガイド:効率的に落札するためのポイントを徹底解説 -
製品資料
[株式会社うるる] 入札情報に特化した「販路拡大」「効率化」のためのサポートツールとは? -
市場調査・トレンド
[株式会社うるる] 公共入札に成功する企業と失敗する企業の「5つの違い」 -
製品資料
[日本ビジネスシステムズ株式会社] 専門家が教える、Microsoft 365の「テナント統合/分離」を成功に導く秘訣 -
製品資料
[rakumo株式会社] Microsoft 365での情報埋没を防ぐ、社内ナレッジを資産化する情報ポータル活用
こんなメディアも見られています
TechTargetジャパンに関連する情報をお探しであれば、こちらのメディアもお役に立てるかもしれません。
ベンダーコンテンツ PR
From Informa TechTarget
SpecialPR
アクセスランキング
-
1
PHP脆弱性「PHP2Shell」で2260万件に影響 情シスの緊急チェックリスト
-
2
「Microsoft 365」が乗っ取られる MFAを破る“本物の画面”の恐怖
-
3
なぜ「Gemini 4 Argon」は出遅れたのか? Googleが狙う“逆転のシナリオ”
-
4
「Windows」の不要なファイルを安全に消して容量を空ける方法
-
5
半数がブルーカラー転向を視野に? ベテランエンジニアを追い込む“54歳の壁”
-
6
ChatGPTは“検索しまくり”でGeminiは“淡泊”? データが明かすAIの裏側
-
7
「有線LAN環境」に関するアンケート
-
8
テレワークやBYODでリスクが拡大、デバイスの多様化を弱点としない管理方法とは
-
9
データセンター事業者が「脱VMware」をした“例のライセンス問題”じゃない理由
-
10
「業務改善とツール活用」に関するアンケート
ホワイトペーパーランキング PR
-
1
AI駆動攻撃にどう対抗する? 超速の攻撃からエンドポイントを保護する方法
-
2
最速72分でデータが流出? 最新の脅威トレンドや侵入手法から分かった防衛策
-
3
2026年のサイバーセキュリティには何が必要か? 最新データに学ぶ傾向と対策
-
4
経験豊富な即戦力人材に直接アプローチできる、「攻めの採用」への転換術
-
5
「IT史に名を残すシステム障害」8選
-
6
SASE選定は「見極め力」で大きな差――本当に必要な製品を選ぶための6つの視点
-
7
不審メールの経路や見せ方に変化? 2026年夏の3事例から見えた動向と対処方法
-
8
Microsoft 365のメールセキュリティ、3つの“死角”と追加で検討すべき対策とは
-
9
AI駆動開発のスピードと安全性を両立 「品質・セキュリティ管理」の実践ガイド
-
10
「標的型攻撃メール」事例・サンプル集
TechTargetジャパン SNS
インフォメーション
注目情報をチェック
TechTargetジャパンをフォロー