令和5年度 春期 ネットワークスペシャリスト試験 午後Ⅰ 問題 問1 HTTP/2とALPNを伴うWebシステムのクラウド移行

テクノロジネットワーククラウド・仮想化

この問題は2023(R5)春 ネットワークスペシャリスト 午後Iに出題されたものです。出題時点の法令・制度に基づく内容のため、現行の内容と一致しない場合があります。

本ページの問題文・選択肢は、原本の体裁を Web 表示用に正規化しています(改行・記号・数式・図表参照の調整)。設問の趣旨および正解に影響する変更は加えていません。

学習ガイド

ECサイトの静的コンテンツ配信をクラウドへ移し、HTTP/2を導入する更改事例です。HTTPパイプラインとストリーム多重化をレスポンス順序の違いから比較し、ALPNによる上位プロトコルの選択、静的経路、仮想LBの動作を構成図に沿って整理します。本文・表・図の根拠を行き来し、用語だけを暗記するのではなく、短い記述にも判断の理由を残して解答する手順を示します。

この記事で押さえる論点

  • リバースプロキシと権威・キャッシュDNSの役割をG社の構成図の中で説明できる
  • HTTP/2のストリーム多重化とHTTPパイプラインの順序制約の違いを整理する
  • ALPNがTLSハンドシェイクのどこで何を交換するかをh2のシーケンスで追跡する
  • 専用線接続の静的経路と仮想LBの動作モードを構成変更の帰結として判断する

問題本文

問1 Webシステムの更改に関する次の記述を読んで,設問に答えよ。

G社は,一般消費者向け商品を取り扱う流通業者である。インターネットを介して消費者へ商品を販売するECサイトを運営している。G社のECサイトは,G社データセンターにWebシステムとして構築されているが,システム利用者の増加に伴って負荷が高くなってきていることや,機器の老朽化などによって,Webシステムの更改をすることになった。

〔現行のシステム構成〕

G社のシステム構成を図1に示す。

図1 G社のシステム構成(抜粋)
図の説明テキスト

図1 G社のシステム構成(抜粋)
インターネットからG社データセンターへ接続されている。データセンター内にはルータがあり、その下にFW、L3SWが直列に接続されている。L3SWからは「DMZ」と「サーバセグメント」へ分岐している。DMZ内にはL2SWがあり、そこにWebサーバとDNSサーバが接続されている。サーバセグメント内には別のL2SWがあり、2台のAPサーバが接続されている。図の下部には略語の説明(FW: ファイアウォール、L2SW: レイヤ2スイッチ、L3SW: レイヤ3スイッチ、APサーバ: アプリケーションサーバ)がある。

  • WebシステムはDMZに置かれたWebサーバ,DNSサーバ及びサーバセグメントに置かれたAPサーバから構成される。
  • ECサイトのコンテンツは,あらかじめ用意された静的コンテンツと,利用者からの要求を受けてアプリケーションプログラムで生成する動的コンテンツがある。
  • WebサーバではHTTPサーバが稼働しており,静的コンテンツはWebサーバから直接配信される。一方,APサーバの動的コンテンツは,Webサーバで中継して配信される。この中継処理の仕組みを a プロキシと呼ぶ。
  • DMZのDNSサーバは,G社のサービス公開用ドメインに対する b DNSサーバであると同時に,サーバセグメントのサーバがインターネットにアクセスするときの名前解決要求に応答する c DNSサーバである。

〔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に示す。

図2 Web ブラウザからサーバへのリクエスト
図の説明テキスト

図2 Web ブラウザからサーバへのリクエスト
変更前と変更後のシステム構成を比較するブロック図。

【変更前】
・「Web ブラウザ」から「Web サーバ (静的コンテンツ)」へ下向きの矢印(HTTP/1.1)。
・「Web サーバ (静的コンテンツ)」から「AP サーバ (動的コンテンツ)」へ下向きの矢印(HTTP/1.1)。

【変更後】
・「Web ブラウザ」から「仮想 LB」へ下向きの矢印(HTTP/2)。
・「仮想 LB」から分岐し、左下の「Web サーバ (静的コンテンツ)」へ矢印(HTTP/1.1)、右下の「AP サーバ (動的コンテンツ)」へ矢印(HTTP/1.1)。

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に示す。

図3 h2の通信シーケンス(抜粋)
図の説明テキスト

図3 h2の通信シーケンス(抜粋)
クライアントとサーバ間の通信シーケンス図。
・TCP3ウェイハンドシェイク
クライアント → サーバ: (a)Syn
サーバ → クライアント: (b)Syn/Ack
クライアント → サーバ: (c)Ack
・TLSセッション開始
クライアント → サーバ: (d)ClientHello
サーバ → クライアント: (e)ServerHello
・HTTP/2 通信
d ID : 1
クライアント → サーバ: (f)HTTPリクエスト
サーバ → クライアント: (g)HTTPレスポンス
d ID : 3
クライアント → サーバ: (h)HTTPリクエスト
サーバ → クライアント: (i)HTTPレスポンス

このシーケンスによって,上位プロトコルがHTTP/2であることが決定される。

〔新Webシステム構成〕

Hさんは新たなWebシステムの構成を考えた。Hさんが考えた新Webシステム構成を図4に示す。

図4 新 Web システム構成(抜粋)
図の説明テキスト

図4 新 Web システム構成(抜粋)
ネットワーク構成図。上部の「インターネット」から「J社クラウド」と「G社データセンター」へ接続されている。
・J社クラウド(G社用 VPC セグメント):

  • インターネットからの通信は仮想LBで受け、複数のWebサーバに接続される。
  • Webサーバは仮想ルータに接続され、仮想ルータから「専用線」を介してG社データセンターに接続される。
    ・G社データセンター:
  • インターネットからの通信はルータを経由しFWに接続される。
  • FWはL3SWと、DMZのL2SWに接続される。
  • DMZのL2SWにはDNSサーバが接続されている。
  • L3SWは、サーバセグメントのL2SWに接続され、そこから複数のAPサーバに接続される。
  • 専用線はL3SWに接続されている。
    図の左下には「VPC:仮想プライベートクラウド」という注記がある。

図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の静的経路を設定する。
表1 静的経路設定
図の説明テキスト

表1 静的経路設定

機器 宛先ネットワーク ネクストホップ
L3SW
仮想ルータ 0.0.0.0/0
  • G社用VPCセグメント中に,仮想サーバを複数起動し,Webサーバとする。
  • G社用VPCセグメントのWebサーバは静的コンテンツを配信する。
  • G社データセンターのサーバセグメントのAPサーバは動的コンテンツを配信する。
  • Webサーバ及びAPサーバは,これまでと同様にG社データセンターのDMZのDNSサーバを利用して名前解決を行う。

Hさんは,J社クラウドの仮想LBの仕様について調べたところ,表2に示す動作モードがあることが分かった。

表2 仮想LBの動作モード
図の説明テキスト

表2 仮想LBの動作モード

動作モード 説明
アプリケーションモード レイヤー7で動作して負荷分散処理を行う。
ネットワークモード レイヤー4で動作して負荷分散処理を行う。

Hさんは,今回のシステム構成の変更内容を考慮して仮想LBで設定すべき動作モードを決めた。

Hさんは,ここまでの検討内容を情報システム部長へ報告し,承認を得た。

設問と解答・解説

設問1

本文中及び図3中の空欄に入れる適切な字句を答えよ。

(1)

本文中の a に入れる適切な字句を答えよ。

模範解答

リバース

採点基準(配点 3点)

正確性(内容)(3点)

  • 3: 「リバース」と正確に解答している。
  • 1: 解答に部分的な誤りや表記揺れがあるが、意味は通じる。
  • 0: 無回答、または全く異なる解答。

解説

空欄aに関する設問です。

クライアントとサーバの間に入り、サーバの代理としてリクエストを受け付けるものを リバースプロキシ と呼びます。

高得点のポイント

  • 正確性: プロキシの種類として「リバース」を正しく導き出せるか。

(2)

本文中の b に入れる適切な字句を答えよ。

模範解答

権威

採点基準(配点 3点)

正確性(内容)(3点)

  • 3: 「権威」と正確に解答している。
  • 1: 解答に部分的な誤りや表記揺れがあるが、意味は通じる。
  • 0: 無回答、または全く異なる解答。

解説

空欄bに関する設問です。

DNSサーバには、名前解決を要求するキャッシュDNSサーバと、自身の管理するドメイン情報を応答する 権威DNSサーバ があります。

高得点のポイント

  • 正確性: DNSサーバの役割分類から「権威」という用語を正確に導き出せるか。

(3)

本文中の c に入れる適切な字句を答えよ。

模範解答

キャッシュ

採点基準(配点 3点)

正確性(内容)(3点)

  • 3: 「キャッシュ」と正確に解答している。
  • 1: 解答に部分的な誤りや表記揺れがあるが、意味は通じる。
  • 0: 無回答、または全く異なる解答。

解説

空欄cに関する設問です。

外部の権威DNSサーバから得た応答結果を一時的に保持する機能を キャッシュ と呼びます。

高得点のポイント

  • 正確性: DNS名前解決を効率化するための仕組みとして「キャッシュ」を正確に導き出せるか。

(4)

本文中及び図3中の d に入れる適切な字句を答えよ。

模範解答

ストリーム

採点基準(配点 3点)

正確性(内容)(3点)

  • 3: 「ストリーム」と正確に解答している。
  • 1: 解答に部分的な誤りや表記揺れがあるが、意味は通じる。
  • 0: 無回答、または全く異なる解答。

解説

空欄dに関する設問です。

HTTP/2において、一つのTCPコネクション上で複数のリクエスト・レスポンスをやり取りするための仮想的な通信路を ストリーム と呼びます。

高得点のポイント

  • 正確性: HTTP/2の多重化を実現する基本的な概念である「ストリーム」を正確に解答できているか。

(5)

本文中の e に入れる適切な字句を答えよ。

模範解答

:method

採点基準(配点 3点)

正確性(内容)(3点)

  • 3: 「:method」と正確に解答している。
  • 1: 「method」など、コロンが抜けているが概ね意味を捉えている。
  • 0: 無回答、または全く異なる解答。

解説

空欄eに関する設問です。

HTTP/2のヘッダフィールドにおいて、HTTPメソッド(GETなど)は :method 疑似ヘッダフィールドで指定されます。

高得点のポイント

  • 正確性: HTTP/2における疑似ヘッダの記法(コロンから始まる点を含む)を正確に理解しているか。

(6)

本文中の f に入れる適切な字句を答えよ。

模範解答

TLS

採点基準(配点 3点)

正確性(内容)(3点)

  • 3: 「TLS」と正確に解答している。
  • 1: 「SSL」など、旧称を用いて解答している。
  • 0: 無回答、または全く異なる解答。

解説

空欄fに関する設問です。

HTTP/2(h2)は通常、暗号化プロトコルである TLS(Transport Layer Security)上で動作します。

高得点のポイント

  • 正確性: HTTP/2の下位で動作する暗号化プロトコルとして「TLS」を正確に特定できているか。

設問1では,d,e,fの正答率が低かった。HTTP/2プロトコルは広く普及してきており,これからも多く使われる重要なプロトコルである。その基本については正しく理解してほしい。

設問2

〔HTTP/2の概要と特徴〕について答えよ。

(1)

本文中の下線①について,複数のリクエストを受けたサーバは,それぞれのリクエストに対するレスポンスをどのような順序で返さなければならないか。35字以内で答えよ。

模範解答

リクエストを受けたのと同じ順序でレスポンスを返す必要がある。

採点基準(配点 3点)

知識・理解度(内容)(2点)

  • 2: リクエストを受けた順序と同じ順序でレスポンスを返す必要があることを明確に示している。
  • 1: 順序に関する言及はあるが、リクエストとの対応関係がやや不明確。
  • 0: 無回答、または無関係な内容。

論理性(構造)(1点)

  • 1: 文脈が自然で、指定文字数内に要点が整理されている。
  • 0: 論理構造が破綻している、または意味が通らない。

解説

HTTP/1.1のパイプライン化における制約に関する設問です。

HTTP/1.1では、複数のリクエストを連続して送信できますが、レスポンスはリクエストと同じ順序で返す必要があります。

この制約により、先行する処理が遅れると後続のレスポンスも遅延する Head-of-Line Blocking の問題が生じます。

高得点のポイント

  • 知識・理解度(内容): リクエストを受けた順序とレスポンスを返す順序の同期が必要であることを明記しているか。

  • 論理性(構造): 順序についての制約を、指定文字数内でわかりやすく記述できているか。

(2)

本文中の下線②について,ALPNを必要とする目的は何か。30字以内で答えよ。

模範解答

通信開始時にTCPの上位のプロトコルを決定するため

採点基準(配点 3点)

知識・理解度(内容)(2点)

  • 2: 通信開始時にTCPの上位プロトコルを決定するという目的を正確に示している。
  • 1: プロトコルの決定には言及しているが、通信開始時や上位プロトコルという要素が不足している。
  • 0: 無回答、またはALPNを暗号化処理と誤解しているような解答。

論理性(構造)(1点)

  • 1: 文脈が自然で、要点が整理されている。
  • 0: 論理構造が破綻している、または意味が通らない。

解説

ALPN(Application-Layer Protocol Negotiation)の目的に関する設問です。

HTTPS通信において、TCP/443ポートで HTTP/1.1 と HTTP/2 のどちらを使用するかは、TLSハンドシェイク時にネゴシエーションされます。

このとき、上位プロトコルを効率的に決定するために ALPN 拡張が用いられます。

高得点のポイント

  • 知識・理解度(内容): 通信開始時(TLSハンドシェイク時)にTCPの上位プロトコルを決定するという目的を理解しているか。

  • 論理性(構造): ALPNの役割を簡潔かつ論理的に説明できているか。

設問2では,(2)の正答率が低く,ALPNを暗号化処理プロトコルと誤った解釈をしているような誤答が目立った。ALPNはHTTP/2プロトコルでは必須の技術であり,HTTP/2に限らず,TCP/443番ポートを複数のサービスで共用する場合によく使われる技術なので理解を深めてほしい。

設問3

〔HTTP/2における通信開始処理〕について答えよ。

(1)

本文中の下線③について,h2のネゴシエーションが含まれるシーケンス部分を,図3中の(a)〜(i)の記号で全て答えよ。

模範解答

(d),(e)

採点基準(配点 3点)

正確性(内容)(3点)

  • 3: 「(d),(e)」と正確に解答している。
  • 1: 片方の記号のみ解答しているなど、部分的に正しい。
  • 0: 無回答、または全く異なる記号。

解説

HTTP/2のネゴシエーションが含まれる通信シーケンスを答える設問です。

h2のネゴシエーションはTLSのハンドシェイク中にALPN拡張を用いて行われます。

したがって、クライアントからの Client Hello (d) と、サーバからの Server Hello (e) が該当します。

高得点のポイント

  • 正確性: TLSハンドシェイクのシーケンスとALPNの動作タイミングを正確に紐づけられているか。

(2)

本文中の下線③について,ネゴシエーションでクライアントから送られる情報は何か。35字以内で答えよ。

模範解答

クライアントが利用可能なアプリケーション層のプロトコル

採点基準(配点 3点)

知識・理解度(内容)(2点)

  • 2: クライアントが利用可能なアプリケーション層プロトコルであることを明確に示している。
  • 1: プロトコルの情報であることは示しているが、アプリケーション層であることなどの具体性が不足している。
  • 0: 無回答、または暗号アルゴリズムの交換など誤った解釈をしている。

論理性(構造)(1点)

  • 1: 文脈が自然で、要点が整理されている。
  • 0: 論理構造が破綻している、または意味が通らない。

解説

ALPN拡張を用いたネゴシエーションにおいて、クライアントが送信する情報に関する設問です。

Client Helloメッセージの中で、クライアント自身がサポートし、利用可能な アプリケーション層のプロトコル (h2やhttp/1.1など)の一覧をサーバに提示します。

高得点のポイント

  • 知識・理解度(内容): クライアントが利用可能なアプリケーション層プロトコルを送信することを理解しているか。

  • 論理性(構造): ネゴシエーションの仕組みを簡潔に表現できているか。

設問3では,(1),(2)の正答率が低く,暗号アルゴリズムの交換といった誤答が散見された。HTTP/2プロトコルの通信開始シーケンスについても,その意味や内容について十分に理解しておいてほしい。

設問4

〔新Webシステム構成〕について答えよ。

(1)

表1中の に入れる適切なIPアドレスを答えよ。

模範解答

172.21.10.0/24

採点基準(配点 4点)

正確性(内容)(4点)

  • 4: 「172.21.10.0/24」と正確に解答している。
  • 2: IPアドレスまたはサブネットマスク長のいずれかに誤りがあるが、構成は概ね理解できている。
  • 0: 無回答、または全く異なる解答。

解説

新Webシステムのネットワーク構成におけるIPアドレスを導出する設問です。

オンプレミス側のL2SW-Aに接続されるネットワークのネットワークアドレスを正確に特定する必要があります。

高得点のポイント

  • 正確性: 提供されたネットワーク図やルーティング情報から正しいIPアドレス(サブネットマスク長を含む)を導き出せるか。

(2)

表1中の に入れる適切なIPアドレスを答えよ。

模範解答

172.21.11.2

採点基準(配点 4点)

正確性(内容)(4点)

  • 4: 「172.21.11.2」と正確に解答している。
  • 2: IPアドレスの末尾などに軽微な誤りがあるが、ネットワーク構成は概ね把握できている。
  • 0: 無回答、または全く異なる解答。

解説

FW等の経路設定において、ネクストホップとなるIPアドレスを求める設問です。

対象セグメントへパケットを転送するための正しい隣接ルータやL3SWのIPアドレスを特定します。

高得点のポイント

  • 正確性: ルーティングテーブルにおけるネクストホップの概念を理解し、正しいIPを導き出せるか。

(3)

表1中の に入れる適切なIPアドレスを答えよ。

模範解答

172.21.11.1

採点基準(配点 4点)

正確性(内容)(4点)

  • 4: 「172.21.11.1」と正確に解答している。
  • 2: IPアドレスの末尾などに軽微な誤りがあるが、ネクストホップの方向性は合っている。
  • 0: 無回答、または全く異なる解答。

解説

デフォルトルートなどのネクストホップに該当するIPアドレスを導出する設問です。

ネットワークトポロジと各機器のインターフェースに割り当てられたIPアドレスの関係を正確に読み解く必要があります。

高得点のポイント

  • 正確性: 上位層や外部ネットワークへ向かうための適切なネクストホップIPを特定できるか。

(4)

本文中の下線④について,Hさんが決めた動作モードを答えよ。

模範解答

アプリケーションモード

採点基準(配点 4点)

知識・理解度(内容)(2点)

  • 2: 「アプリケーションモード」と正確な用語を解答している。
  • 1: L7モードなど、意味合いは正しいが指定された用語と異なる。
  • 0: 無回答、または全く異なる解答。

論理性(構造)(2点)

  • 2: 動作モードとして適切な表現となっている。
  • 1: 不完全な表現であるが、意図は汲み取れる。
  • 0: 論理的に意味をなさない記述。

解説

仮想負荷分散装置におけるHTTPリクエストの処理モードに関する設問です。

HTTP/2からHTTP/1.1への変換を行うためには、L7(アプリケーション層)でリクエストの内容を解釈し、適切に再構成して転送する必要があります。

このような処理を行う動作モードは アプリケーションモード (またはL7モード)と呼ばれます。

高得点のポイント

  • 知識・理解度(内容): プロトコル変換に伴う負荷分散装置の動作モードを正確に理解しているか。

  • 論理性(構造): 動作モードとしてふさわしい用語を選択・記述できているか。

(5)

本文中の下線④について,その理由を“HTTP/2”という字句を用いて35字以内で答えよ。

模範解答

HTTP/2リクエストをHTTP/1.1に変換して負荷分散するから

採点基準(配点 4点)

知識・理解度(内容)(2点)

  • 2: HTTP/2をHTTP/1.1に変換すること、および負荷分散の目的を正確に示している。
  • 1: プロトコル変換か負荷分散のどちらか一方のみに言及している。
  • 0: 無回答、または誤った理解。

論理性(構造)(2点)

  • 2: 変換して負荷分散するという因果関係が簡潔かつ論理的に説明されている。
  • 1: 要素は含まれているが、文章の繋がりがやや不自然。
  • 0: 論理的な記述になっていない。

解説

アプリケーションモードを選択した理由についての設問です。

クライアントからの通信はHTTP/2で行われますが、バックエンドのWebサーバへはHTTP/1.1に変換してリクエストを転送・負荷分散する必要があります。

単なるパケットの転送(トランスポートモード)ではプロトコル変換ができないため、アプリケーションモードが必須となります。

高得点のポイント

  • 知識・理解度(内容): HTTP/2からHTTP/1.1へのプロトコル変換と負荷分散の必要性を理解しているか。

  • 論理性(構造): 変換と負荷分散の関係を因果関係として明確に説明できているか。