ネットワークスペシャリスト 2023年 午後1 問01
Webシステムの更改に関する次の記述を読んで、設問に答えよ。
G社は、一般消費者向けに商品を取り扱う流通業者である。インターネットを介して消費者へ商品を販売するECサイトを運営している。G社のECサイトは、G社データセンターにWebシステムとして構築されているが、システム利用者の増加に伴って負荷が高くなってきていることや、機器の老朽化などによって、Webシステムの更改をすることになった。
〔現行のシステム構成〕
G社のシステム構成を図1に示す。

・WebシステムはDMZに置かれたWebサーバ、DNSサーバ及びサーバセグメントに置かれたAPサーバから構成される。
・ECサイトのコンテンツは、あらかじめ用意された静的コンテンツと、利用者からの要求を受けてアプリケーションプログラムで生成する動的コンテンツがある。
・WebサーバではHTTPサーバが稼働しており、静的コンテンツはWebサーバから直接配信される。一方、APサーバの動的コンテンツは、Webサーバで中継して配信される。この中継処理の仕組みを a プロキシと呼ぶ。
・DMZのDNSサーバは、G社のサービス公開用ドメインに対する b DNSサーバであると同時に、サーバセグメントのサーバがインターネットにアクセスするときの名前解決要求に応答するcDNSサーバである。
〔G社Webシステム構成見直しの方針と実施内容〕
G社は、Webシステムの更改に伴うシステム構成の変更について次の方針を立て、担当者として情報システム部のHさんを任命した。
・Webシステムの一部のサーバをJ社が提供するクラウドサービスに移行する。
・通信の効率化のため、一部にHTTP/2プロトコルを導入する。
Hさんは、システム構成変更の内容を次のように考えた。
・DMZのWebサーバで行っていた処理をJ社クラウドサービス上の仮想サーバで行うよう構成を変更する。また、この仮想サーバは複数台で負荷分散構成にする。
・重要なデータが格納されているAPサーバは、現構成のままG社データセンターに残す。
・J社の負荷分散サービス(以下、仮想LBという)を導入する。仮想LBは、HTTPリクエストに対する負荷分散機能をもち、HTTP/1.1プロトコルとHTTP/2プロトコルに対応している。
・Webブラウザからのリクエストを受信した仮想LBは、リクエストのURLに応じてAPサーバ又はWebサーバに振り分ける。
・Webブラウザと仮想LBとの間の通信をHTTP/2とし、仮想LBとAPサーバ及びWebサーバとの間の通信をHTTP/1.1とする。
Hさんが考えたWebブラウザからサーバへのリクエストを図2に示す。

Hさんは、次にHTTP/2プロトコルについて調査を行った。
〔HTTP/2の概要と特徴〕
HTTP/2は、HTTP/1.1との互換性を保ちながら主に通信の効率化を目的とした拡張が行われている。Hさんが注目したHTTP/2の主な特徴を次に示す。
・通信の多重化:HTTP/1.1には、同一のTCPコネクション内で通信を多重化する方式としてHTTPパイプラインがあるが、HTTP/2では、TCPコネクション内で複数のリクエストとレスポンスのやり取りを d と呼ばれる仮想的な通信路で多重化している。① HTTPパイプラインは、複数のリクエストが送られた場合にサーバが返すべきレスポンスの順序に制約があるが、HTTP/2ではその制約がない。
・ヘッダー圧縮:HPACKと呼ばれるアルゴリズムによって、HTTPヘッダー情報がバイナリフォーマットに圧縮されている。ヘッダーフィールドには、e 、:scheme, :pathといった必須フィールドがある。
・フロー制御: d ごとのフロー制御によって、一つの d がリソースを占有してしまうことを防止する。
・互換性:HTTP/2は、HTTP/1.1と互換性が保たれるように設計されている。一般的にHTTP/2は、HTTP/1.1と同じく “https://”の URIスキームが用いられる。そのため、通信開始処理において f プロトコルの拡張の一つである②ALPN (Application-Layer Protocol Negotiation) を利用する。
〔HTTP/2における通信開始処理〕
HTTP/2では、通信方法として、h2という識別子で示される方式が定義されている。その方式の特徴を次に示す。
・TLSを用いた暗号化コネクション上でHTTP/2通信を行う方式である。
・TLSのバージョンとして1.2以上が必要である。
・HTTP/2の通信を開始するときに、ALPNを用いて③クライアントとサーバとの間でネゴシエーションを行う。
Hさんが理解したh2の通信シーケンスを図3に示す。
このシーケンスにおいて、上位プロトコルがHTTP/2であることが決定される。
〔新Webシステム構成〕
Hさんは新たなWebシステムの構成を考えた。Hさんが考えた新Webシステム構成を図4に示す。

図4の新Webシステム構成に関するHさんの考えを次に示す。
・J社クラウドのVPCサービスを用いて、G社用VPCを確保する。G社用VPCセグメントではIPアドレスとして、172.21.10.0/24を用いる。
・G社用VPCセグメントの仮想ルータとG社データセンターのL3SWとの間を、J社が提供する専用線接続サービスを利用して接続する。専用線接続のIPアドレスとして、172.21.11.0/24を用い、L3SWのIPアドレスを172.21.11.1とし、仮想ルータのIPアドレスを172.21.11.2とする。
・G社データセンターとJ社クラウドとの間で通信できるように、L3SW及び仮想ルータに表1の静的経路を設定する。
・G社用VPCセグメント中に、仮想サーバを複数起動し、Webサーバとする。
・G社用VPCセグメントのWebサーバは静的コンテンツを配信する。
・G社データセンターのサーバセグメントのAPサーバは動的コンテンツを配信する。
・Webサーバ及びAPサーバは、これまでと同様にG社データセンターのDMZのDNSサーバを利用して名前解決を行う。
Hさんは、J社クラウドの仮想LBの仕様について調べたところ、表2に示す動作モードがあることが分かった。

④ Hさんは、今回のシステム構成の変更内容を考慮して仮想LBで設定すべき動作モードを決めた。
Hさんは、ここまでの検討内容を情報システム部長へ報告し、承認を得た。
設問1:
問題文を見る模範解答
a:リバース
b:権威
c:キャッシュ
d:ストリーム
e::method
f:TLS
解説
解答の論理構成
- 【問題文】では「Webサーバ…この中継処理の仕組みを a プロキシと呼ぶ」と記載されています。
フロントのWebサーバがクライアントの代わりにバックエンドのAPサーバへ要求を転送する形態は “逆向き” のプロキシであるため、a=「リバース」と判断できます。 - DMZのDNSサーバについて【問題文】は「G社のサービス公開用ドメインに対する b DNSサーバ」と述べています。公開ドメインを正式に回答するDNSは「権威DNSサーバ」であるため、b=「権威」となります。
- 同じDNSサーバが「サーバセグメントのサーバがインターネットにアクセスするときの名前解決要求に応答するcDNSサーバ」とも明示されています。内部からの問い合わせ結果を保存して再利用する役割は「キャッシュDNSサーバ」であり、c=「キャッシュ」です。
- HTTP/2の多重化について【問題文】は「…複数のリクエストとレスポンスのやり取りを d と呼ばれる仮想的な通信路で多重化している」と説明しています。HTTP/2仕様(RFC 9113)でこの仮想通信路は「ストリーム」と定義されているので、d=「ストリーム」です。
- ヘッダーフィールド名の例として【問題文】に「e 、:scheme, :pathといった必須フィールド」とあり、HTTP/2の擬似ヘッダーで :schemeや :pathと同列の必須項目は「:method」です。従って e=「:method」となります。
- 最後に「通信開始処理において f プロトコルの拡張の一つである…ALPN」とあり、ALPNはTLS拡張の一種であることがIETF RFC 7301に示されています。よって f=「TLS」です。
以上より模範解答は
a:「リバース」
b:「権威」
c:「キャッシュ」
d:「ストリーム」
e:「:method」
f:「TLS」 となります。
a:「リバース」
b:「権威」
c:「キャッシュ」
d:「ストリーム」
e:「:method」
f:「TLS」 となります。
誤りやすいポイント
- aを「フォワード」と誤記する例が頻発しますが、フォワードプロキシはクライアント側ネットワークに設置される点が異なります。
- bを「公開」DNSと表現すると減点対象です。DNSの正式な役割名を求めているため「権威」が必要です。
- cを「フルサービス」DNSと答えるケースがありますが、問題文はキャッシュ機能に触れているので適切ではありません。
- dを「セッション」や「チャンネル」と混同しやすいですが、HTTP/2用語での公式名称は「ストリーム」です。
- eを単に「method」や「GET」と誤答しやすいですが、コロン付きの擬似ヘッダー「:method」が必須です。
- fを「SSL」とするとTLS1.2以上という条件と矛盾します。
FAQ
Q: HTTP/2のストリームはTCPのポートやコネクションと同じ概念ですか?
A: いいえ。ストリームは単一のTCPコネクション内で識別子(ID)を用いて論理的に独立したやり取りを行うHTTP/2独自の仮想チャネルです。
A: いいえ。ストリームは単一のTCPコネクション内で識別子(ID)を用いて論理的に独立したやり取りを行うHTTP/2独自の仮想チャネルです。
Q: 権威DNSサーバでもキャッシュは動作しないのですか?
A: 権威サーバは通常キャッシュしません。今回のように1台で「権威」と「キャッシュ」の両役割を兼務する構成では、機能を論理的に分けて提供します。
A: 権威サーバは通常キャッシュしません。今回のように1台で「権威」と「キャッシュ」の両役割を兼務する構成では、機能を論理的に分けて提供します。
Q: ALPNとNPNの違いは何でしょうか?
A: ALPNがIETF勧告として標準化されたプロトコル選択手法であるのに対し、NPNはGoogleが提案した先行仕様で現在は非推奨です。
A: ALPNがIETF勧告として標準化されたプロトコル選択手法であるのに対し、NPNはGoogleが提案した先行仕様で現在は非推奨です。
関連キーワード: リバースプロキシ, 権威DNS, HTTP/2, ストリーム多重化, ヘッダー圧縮
設問2:〔HTTP/2の概要と特徴〕について答えよ。
問題文を見る(1)本文中の下線①について、複数のリクエストを受けたサーバは、それぞれのリクエストに対するレスポンスをどのような順序で返さなければならないか。35字以内で答えよ。
模範解答
リクエストを受けたのと同じ順序でレスポンスを返す必要がある。
解説
解答の論理構成
- 【問題文】には「① HTTPパイプラインは、複数のリクエストが送られた場合にサーバが返すべきレスポンスの順序に制約がある」とあります。
- ここでいう“制約”とは、HTTP/1.1のパイプライン機能において パケットが到着した順番どおりにレスポンスを返す 必要があるという仕様を指します。
- したがって、サーバは「リクエストを受信した順序」と「レスポンスを送信する順序」を一致させねばならず、この一点を端的に述べれば模範解答となります。
誤りやすいポイント
- 「先に処理が終わったものから返してよい」と誤解し、HTTP/2の特性と混同してしまう。
- “順序”ではなく“同時”や“まとめて”など、粒度の異なる表現を書いてしまう。
- パイプライン制約を TCPの並び順保証と混同し、レイヤをまたいだ説明にしてしまう。
FAQ
Q: HTTP/1.1パイプラインでは並列処理できないのですか?
A: リクエスト自体は続けて送れますが、サーバは順序どおりのレスポンス送信が必須なので体感的な並列性は得にくいです。
A: リクエスト自体は続けて送れますが、サーバは順序どおりのレスポンス送信が必須なので体感的な並列性は得にくいです。
Q: HTTP/2ではこの順序制約はどうなるのですか?
A: 【問題文】が示すとおりHTTP/2では「その制約がない」ため、ストリームIDごとに独立したレスポンスを順不同で返せます。
A: 【問題文】が示すとおりHTTP/2では「その制約がない」ため、ストリームIDごとに独立したレスポンスを順不同で返せます。
Q: クライアント側の実装で順序を変えても良いのですか?
A: HTTP/1.1パイプライン下ではクライアントも受信順序が固定と想定しているため、勝手に入れ替えることはできません。
A: HTTP/1.1パイプライン下ではクライアントも受信順序が固定と想定しているため、勝手に入れ替えることはできません。
関連キーワード: HTTPパイプライン, リクエスト順序, レスポンス順序, ストリーム
設問2:〔HTTP/2の概要と特徴〕について答えよ。
問題文を見る(2)本文中の下線②について、ALPNを必要とする目的は何か。30字以内で答えよ。
模範解答
通信開始時にTCPの上位のプロトコルを決定するため
解説
解答の論理構成
- 問題文は、HTTP/2通信開始時に「②ALPN (Application-Layer Protocol Negotiation) を利用」と明記しています。
- さらに、「③クライアントとサーバとの間でネゴシエーションを行う」とあるため、ALPNの役割は“ネゴシエーション”であることが分かります。
- 何をネゴシエートするかについては、HTTP/2の特徴として「HTTP/1.1との互換性」を挙げ、「一般的にHTTP/2は、HTTP/1.1と同じく “https://”の URIスキームが用いられる」と説明しています。つまりTLSハンドシェイク時点では上位アプリケーションプロトコルが確定していません。
- そこでALPNを使い、クライアントとサーバがTCPコネクション確立後、TLSハンドシェイク中に“HTTP/2(h2)なのか、HTTP/1.1なのか”を合意し、以後の通信を適切なプロトコルで行います。
- 以上から、ALPNを必要とする目的は「通信開始時にTCPの上位のプロトコルを決定するため」となります。
誤りやすいポイント
- ALPNを“暗号方式”や“TLSのバージョン判定”と誤解する。ALPNはあくまでアプリケーション層プロトコルの選択に用いる拡張です。
- HTTP/2導入=必ずALPNと短絡し、h2c(平文HTTP/2)などALPNを用いないパターンを忘れる。
- HTTP/1.1とHTTP/2の切替を「ポート番号」で行うと誤認する。実際にはどちらも443で、TLS拡張により区別します。
FAQ
Q: ALPNはTLS 1.2以外でも使えますか?
A: はい。TLS 1.3でも利用できます。HTTP/2の要件として「TLSのバージョンとして1.2以上が必要」とあるため、1.2以上なら問題ありません。
A: はい。TLS 1.3でも利用できます。HTTP/2の要件として「TLSのバージョンとして1.2以上が必要」とあるため、1.2以上なら問題ありません。
Q: ALPNで合意できなかった場合はどうなりますか?
A: サーバが対応していない場合、クライアントはフォールバック動作としてHTTP/1.1など別のプロトコルで通信を継続することが一般的です。
A: サーバが対応していない場合、クライアントはフォールバック動作としてHTTP/1.1など別のプロトコルで通信を継続することが一般的です。
Q: ALPNとNPNの違いは何ですか?
A: NPNはGoogleが提案した先行仕様で、サーバ優先選択でした。ALPNはIETF標準化された後継で、クライアントが提案しサーバが確定する方式です。
A: NPNはGoogleが提案した先行仕様で、サーバ優先選択でした。ALPNはIETF標準化された後継で、クライアントが提案しサーバが確定する方式です。
関連キーワード: ALPN, HTTP/2, TLS, プロトコルネゴシエーション
設問3:〔HTTP/2における通信開始処理〕について答えよ。
問題文を見る模範解答
(d)、(e)
解説
解答の論理構成
-
問題文は、HTTP/2の開始時に「ALPN (Application-Layer Protocol Negotiation) を利用して、③クライアントとサーバとの間でネゴシエーションを行う」と述べています。この “ネゴシエーション” の対象は上位プロトコル(今回ならh2)を決定する処理です。
引用:「HTTP/2の通信を開始するときに、ALPNを用いて③クライアントとサーバとの間でネゴシエーションを行う。」 -
ALPNはTLSハンドシェイクの一部として動作する仕様です。したがって、ネゴシエーションが含まれるシーケンスはTLSハンドシェイク区間であり、TCP 3ウェイハンドシェイクや実データ(HTTP/2フレーム)の区間には含まれません。
-
図3中でTLSハンドシェイクに対応する記号は (d) と (e) です。
・(d) は ClientHello:クライアントが “h2” などのALPN候補を提示するタイミング
・(e) は ServerHello:サーバが “h2” を選択して応答するタイミング
これら2つのメッセージにALPN情報が格納されるため、ネゴシエーションはこの区間で完結します。 -
以上から、h2のネゴシエーションが含まれるシーケンス部分は (d)、(e) の2箇所が該当し、模範解答「(d)、(e)」が成立します。
誤りやすいポイント
- ALPNが TLSハンドシェイク内の拡張 であることを忘れ、HTTP/2の実データ転送区間 (f)〜(i) を選んでしまう。
- 「TCP3ウェイハンドシェイクでも何か交渉しているはず」と誤認し、(a)〜(c) を含めてしまう。
- 「ClientHelloだけで十分」と早合点して (d) しか答えず、(e) を落としてしまう。
- HTTP/2の「通信の多重化」をd(ストリーム)で覚えている流れで、ストリーム生成区間と勘違いする。
FAQ
Q: ALPNはTLS1.3だけの機能ですか?
A: いいえ。問題文も示すとおり「TLSを用いた暗号化コネクション上でHTTP/2通信を行う方式」で「TLSのバージョンとして1.2以上が必要」とあり、TLS1.2でもALPNは利用できます。
A: いいえ。問題文も示すとおり「TLSを用いた暗号化コネクション上でHTTP/2通信を行う方式」で「TLSのバージョンとして1.2以上が必要」とあり、TLS1.2でもALPNは利用できます。
Q: なぜ (f) 以降ではネゴシエーションが起こらないのですか?
A: ALPNによる上位プロトコル決定はTLSハンドシェイク内で終了します。ハンドシェイク完了後は「確定したプロトコル」に従ってデータ(HTTP/2フレーム)が流れるだけなので、追加の選択処理はありません。
A: ALPNによる上位プロトコル決定はTLSハンドシェイク内で終了します。ハンドシェイク完了後は「確定したプロトコル」に従ってデータ(HTTP/2フレーム)が流れるだけなので、追加の選択処理はありません。
Q: TCP Fast Openのような拡張を使うと (a)〜(c) が省略される場合、解答は変わりますか?
A: いいえ。ALPNはTLSハンドシェイクの拡張であり続けるため、ClientHello/ServerHelloに相当するフェーズが存在する限り (d) と (e) に相当する区間でネゴシエーションが行われます。
A: いいえ。ALPNはTLSハンドシェイクの拡張であり続けるため、ClientHello/ServerHelloに相当するフェーズが存在する限り (d) と (e) に相当する区間でネゴシエーションが行われます。
関連キーワード: HTTP/2, ALPN, TLS, ネゴシエーション, TCPハンドシェイク
設問3:〔HTTP/2における通信開始処理〕について答えよ。
問題文を見る(2)本文中の下線③について、ネゴシエーションでクライアントから送られる情報は何か。35字以内で答えよ。
模範解答
クライアントが利用可能なアプリケーション層のプロトコル
解説
解答の導き方
問題文には「HTTP/2の通信を開始するときに、ALPNを用いてクライアントとサーバとの間でネゴシエーションを行う」とあり、ALPN(Application-Layer Protocol Negotiation)が通信開始時の「ネゴシエーション手段」であることが示されています。ALPNの名前自体が「アプリケーション層のプロトコルをネゴシエートする」ことを意味するため、ネゴシエーションで交換される情報はアプリケーション層で使うプロトコルに関する情報であると分かります。
具体的な流れは次の通りです。
- ネゴシエーションの目的は「どのアプリケーション層プロトコルを使うかを決めること」です。したがってクライアントは候補を提示する必要があります。
- 実装上はTLSのClientHelloのALPN拡張に、クライアントがサポートするアプリケーション層プロトコルの一覧を入れて送信し、サーバがその中から一つを選びます。
- 以上より、ネゴシエーションでクライアントから送られる情報は「クライアントが利用可能なアプリケーション層のプロトコル」です。
誤りやすいポイント
- ALPNはTLSの暗号方式や証明書情報を交渉する拡張だと誤解する。暗号スイートは別のTLSフィールドで交渉され、ALPNはアプリケーション層プロトコルの選択に使われます。
- SNI(Server Name Indication)と混同して「サーバ名」を送ると答える。SNIは別のTLS拡張であり、用途が異なります。
- 「プロトコル」とだけ書いて曖昧にする。設問の趣旨はアプリケーション層のプロトコルである点を明示する必要があります。
- ALPNでサーバが必ずHTTP/2を選ぶ・ALPN不一致でTLSが必ず失敗すると考える。サーバの実装によってはフォールバックしたり接続を切断したりします(ただしこれは設問の直接解答ではありません)。
FAQ
Q: ALPNで送る候補はどこに書かれますか?
A: TLSのClientHello内のALPN拡張に、クライアントがサポートするアプリケーション層プロトコル一覧が記載されて送信されます。
A: TLSのClientHello内のALPN拡張に、クライアントがサポートするアプリケーション層プロトコル一覧が記載されて送信されます。
Q: ALPNで共通のプロトコルがなければTLSハンドシェイクは必ず失敗しますか?
A: いいえ。ALPN不一致だけでTLSハンドシェイクが必ず失敗するわけではありません。多くの実装では別のプロトコルへフォールバックするか、実装ポリシーに応じて接続を切断する場合があります。
A: いいえ。ALPN不一致だけでTLSハンドシェイクが必ず失敗するわけではありません。多くの実装では別のプロトコルへフォールバックするか、実装ポリシーに応じて接続を切断する場合があります。
Q: 実際に送られる識別子の例は何ですか?
A: h2やhttp/1.1のような短いアプリケーションプロトコル識別子が候補として送られます。
A: h2やhttp/1.1のような短いアプリケーションプロトコル識別子が候補として送られます。
関連キーワード: ALPN、TLS、ClientHello、HTTP/2、アプリケーション層プロトコル
設問4:〔新Webシステム構成〕について答えよ。
問題文を見る模範解答
ア:172.21.10.0/24
イ:172.21.11.2
ウ:172.21.11.1
解説
解答の論理構成
- 宛先ネットワークの把握
問題文には「G社用VPCセグメントではIPアドレスとして、172.21.10.0/24を用いる。」と記載されています。したがって、L3SWから見てクラウド側(VPC)へ通信する場合の宛先ネットワークは172.21.10.0/24です。 - ネクストホップの決定
同じく「専用線接続のIPアドレスとして、172.21.11.0/24を用い、L3SWのIPアドレスを172.21.11.1とし、仮想ルータのIPアドレスを172.21.11.2とする。」とあります。
• L3SWからVPCへは専用線の対向である仮想ルータ(172.21.11.2)がネクストホップになります。
• 仮想ルータから社内向けおよびインターネット向けのデフォルトゲートウェイはL3SW(172.21.11.1)です。 - 表1の方向性
表1では、
・L3SWの静的経路は「宛先ネットワーク → VPC、ネクストホップ → 仮想ルータ」
・仮想ルータの静的経路は「宛先ネットワーク → 0.0.0.0/0、ネクストホップ → L3SW」
という役割分担が求められています。 - 以上より表1の空欄に入る値
ア:172.21.10.0/24
イ:172.21.11.2
ウ:172.21.11.1
誤りやすいポイント
- 専用線側ネットワーク(172.21.11.0/24)とVPC側ネットワーク(172.21.10.0/24)を取り違える。
- 「ネクストホップ=相手機器のIP」という原則を忘れ、自分自身のIPを設定してしまう。
- 仮想ルータのデフォルトルートをクラウド側インターネットゲートウェイへ向けると想定し、172.21.11.1を誤って除外する。
FAQ
Q: L3SWから見た宛先ネットワークはサーバセグメントも含める必要がありますか?
A: サーバセグメントはL3SW直下にあるため既に直結扱いです。静的経路が必要なのはクラウド側VPCのみです。
A: サーバセグメントはL3SW直下にあるため既に直結扱いです。静的経路が必要なのはクラウド側VPCのみです。
Q: 仮想ルータのデフォルトルートが0.0.0.0/0になっている理由は?
A: クラウド内のWebサーバがG社データセンターや外部インターネットへ出る際、最終的にL3SWがルーティングを集約する設計だからです。
A: クラウド内のWebサーバがG社データセンターや外部インターネットへ出る際、最終的にL3SWがルーティングを集約する設計だからです。
Q: 仮想ルータ側にVPCネットワークへの個別ルートは要りませんか?
A: VPCネットワーク (172.21.10.0/24) は仮想ルータ直結なのでスタティックルート設定は不要です。
A: VPCネットワーク (172.21.10.0/24) は仮想ルータ直結なのでスタティックルート設定は不要です。
関連キーワード: static routing, next hop, IPアドレス設計, VPC, 専用線
設問4:〔新Webシステム構成〕について答えよ。
問題文を見る(2)本文中の下線④について、Hさんが決めた動作モードを答えよ。また、その理由を“HTTP/2”という字句を用いて35字以内で答えよ。
模範解答
動作モード:アプリケーションモード
理由:HTTP/2リクエストをHTTP/1.1に変換して負荷分散するから
解説
解答の論理構成
- 仮想LBが担う通信内容
【問題文】では
「Webブラウザと仮想LBとの間の通信をHTTP/2とし、仮想LBとAPサーバ及びWebサーバとの間の通信をHTTP/1.1とする。」
と明記されています。仮想LBは異なるバージョンのHTTPを“理解して変換”しつつ振り分ける必要があります。 - どの階層で処理すれば変換できるか
表2で示された動作モードのうち、
「アプリケーションモード:レイヤー7で動作して負荷分散処理を行う。」
「ネットワークモード:レイヤー4で動作して負荷分散処理を行う。」
とあります。HTTP/2とHTTP/1.1はいずれもアプリケーション層のプロトコルなので、バージョン変換にはレイヤー7処理が必須です。 - 結論
以上より、Hさんが選ぶべきは「アプリケーションモード」であり、理由は「HTTP/2 → HTTP/1.1の変換を伴う負荷分散」を実現できるからです。
誤りやすいポイント
- 高速化目的で「ネットワークモード」を選択してしまう
レイヤー4処理ではパケット転送は高速ですが、HTTPバージョンを解釈できないため変換不可です。 - 「HTTP/2は下位互換性があるから変換不要」と誤認する
バージョンネゴシエーションは端点間でのみ成立します。サーバ側がHTTP/1.1の場合、LBで変換しなければ通信できません。 - 「HTTP/2を通すだけならL4で十分」と考える
本設問は“HTTP/2リクエストをHTTP/1.1に変換”という処理を明示している点が要注意です。
FAQ
Q: なぜ仮想LBでHTTP/2を終端するのですか?
A: 「HTTP/2リクエストをHTTP/1.1に変換して負荷分散」するためです。LBで終端しないと下流サーバがHTTP/2を理解できません。
A: 「HTTP/2リクエストをHTTP/1.1に変換して負荷分散」するためです。LBで終端しないと下流サーバがHTTP/2を理解できません。
Q: アプリケーションモードを選ぶとオーバーヘッドが増えませんか?
A: 多少の処理負荷は発生しますが、ヘッダー圧縮や多重化などHTTP/2の利点をクライアント側で維持しつつ、既存サーバを改修せずに利用できるメリットが勝ります。
A: 多少の処理負荷は発生しますが、ヘッダー圧縮や多重化などHTTP/2の利点をクライアント側で維持しつつ、既存サーバを改修せずに利用できるメリットが勝ります。
Q: 今後APサーバもHTTP/2対応にした場合、モードは変更が必要ですか?
A: その場合でもURL‐ベースの振り分けが残る限り、レイヤー7処理が適切です。LBを透過プロキシとして使うならネットワークモードへの変更も検討できます。
A: その場合でもURL‐ベースの振り分けが残る限り、レイヤー7処理が適切です。LBを透過プロキシとして使うならネットワークモードへの変更も検討できます。
関連キーワード: HTTP/2, 負荷分散, レイヤー7, プロキシ, ALPN





