ネットワークスペシャリスト試験 令和4年度 春期 午後2 問2
【出典:ネットワークスペシャリスト試験 令和4年度 春期 午後2 問2(一部、加工あり)】
[コンテナ仮想化技術を利用したWebAPの構成]
次に、Rさんはコンテナ仮想化技術の利用を検討した。WebAPと専用APに分け、まずはWebAPについて利用を検討した。コンテナ仮想化技術では、あるOS上で仮想的に分離された複数のアプリケーションプログラム実行環境を用意し、複数のAPを動作させることができる。
Rさんが考えた、コンテナ仮想化技術を利用したWebAP(以下、WebAPコンテナという)の構成を図3に示す。
コンテナサーバでは、コンテナ仮想化技術を実現するためのソフトウェアが動作する。コンテナサーバは仮想ブリッジ、仮想ルータをもち、NICを経由してL2SWと接続する。WebAPコンテナの仮想NICは仮想ブリッジと接続する。
WebAPコンテナは、仮想ルータの上で動作するNAPT機能とTCPやUDPのポートフォワード機能を利用して、PCや共用DBサーバなどといった外部のホストと通信する。コンテナサーバ内の仮想ブリッジセグメントには、新たにIPアドレスを付与する必要があるので、プライベートIPアドレスの未使用空間から割り当てる。また、③複数ある全ての仮想ブリッジセグメントには、同じIPアドレスを割り当てる。
WebAPコンテナには、APごとに一つのFQDNを割り当て、コンテンツDNSサーバに登録する。
WebAPコンテナでは、APの可用性を確保するために、共用リバースプロキシを新たに構築して利用する。共用リバースプロキシは負荷分散機能をもつHTTPリバースプロキシとして動作し、クライアントからのHTTPリクエストを受け、④ヘッダフィールド情報からWebAPを識別し、WebAPが動作するWebAPコンテナへHTTPリクエストを振り分ける。振り分け先であるWebAPコンテナは複数指定することができる。振り分け先を増やすことによって、WebAPの処理能力を向上させることができ、また、個々のWebAPコンテナの処理量を減らして負荷を軽減できる。
共用リバースプロキシ、コンテナサーバには、サーバセグメントの未使用のプライベートIPアドレスを割り当てる。共用リバースプロキシ、コンテナサーバのIPアドレス割当表を表2に、コンテナサーバaで動作する仮想ブリッジセグメントaのIPアドレス割当表を表3に示す。
共用リバースプロキシは、振り分け先であるWebAPコンテナが正常に稼働しているかどうかを確認するためにヘルスチェックを行う。ヘルスチェックの結果、正常なWebAPコンテナは振り分け先として利用され、異常があるかWebAPコンテナは振り分け先から外される。振り分けルールの例を表4に示す。
PCが、表4中のAP0と行う通信の例を次に示す。
- PCのWebブラウザは、http://ap0.u-sha.com/へのアクセスを開始する。
- PCはDNSを参照して、ap0.u-sha.comの接続先IPアドレスとして(オ)を取得する。
- PCは宛先IPアドレスが(オ)、宛先ポート番号が80番宛てへ通信を開始する。
- PCからのリクエストを受けた共用リバースプロキシは振り分けルールに従って振り分け先を決定する。
- 共用リバースプロキシは宛先IPアドレスが192.168.0.112、宛先ポート番号が(カ)番宛てへ通信を開始する。
- 仮想ルータは宛先IPアドレスが192.168.0.112、宛先ポート番号が(カ)番宛てへの通信について、⑤ポートフォワードの処理によって宛先IPアドレスと宛先ポート番号を変換する。
- WebAPコンテナAP0aはコンテンツ要求を受け付け、対応するコンテンツを応答する。
- 共用リバースプロキシはコンテンツ応答を受け、PCに対応するコンテンツを応答する。
- PCはコンテンツ応答を受ける。
WebAPコンテナであるAP0aとAP1aに対するPCからのHTTP接続要求パケットの例を図4に示す。
下線③について、複数ある全ての仮想ブリッジセグメントで同じIPアドレスを利用して問題ない理由を40字以内で述べよ。:外部ではコンテナサーバに付与したIPアドレスが利用されることはないから
「また、③複数ある全ての仮想ブリッジセグメントには、同じIPアドレスを割り当てる。」
図3(WebAPコンテナの構成)を見ながらIPアドレスの割り当てを考えていきます。
WebAPコンテナが仮想NICで仮想ブリッジ経由で仮想ルータに接続されているので、ここまでの範囲が一つのセグメント(仮想ブリッジセグメント)です。
そして仮想ルータがコンテナサーバのNIC経由でL2SWに接続されています。
ここで、問題文に「WebAPコンテナは、仮想ルータの上で動作するNAPT機能とTCPやUDPのポートフォワード機能を利用して、PCや共用DBサーバなどといった外部のホストと通信する。」とあります。
NAPT機能はIPアドレスとポートの変換を行うもので、ポートフォワード機能はポート番号毎に異なるIPアドレスに振り分けるものです。
WebAPコンテナが外部のホストと通信する場合はNAPT機能を使用し、外部からWebAPコンテナへの通信はポートフォワード機能を使用します。
したがって、WebAPコンテナが所属する仮想ブリッジセグメントに付与されるIPアドレスは、外部から直接は利用しないことになります。
回答例では「コンテナサーバ」とありますが、図3にあるようにコンテナサーバの範囲は仮想ルータのNIC側インタフェースも含まれることになり、この部分のIPアドレスは外部から利用されるものとなります。
本来は、「コンテナサーバ」ではなく「仮想ブリッジセグメント」か「WebAPコンテナ」となるべきかと思います。
下線④について、共用リバースプロキシはどのヘッダフィールド情報からWebAPを識別するか。15字以内で答えよ。:ホストヘッダフィールド
「共用リバースプロキシは負荷分散機能をもつHTTPリバースプロキシとして動作し、クライアントからのHTTPリクエストを受け、④ヘッダフィールド情報からWebAPを識別し、WebAPが動作するWebAPコンテナへHTTPリクエストを振り分ける。」
クライアントからのHTTPリクエストでは、ブラウザのURLで利用するAPのFQDNを示します。
表4(振り分けルールの例(抜粋))にあるように、AP0のFQDNは「ap0.u-sha.com」、AP1のFQDNは「ap1.u-sha.com」になります。
そして、このFQDNの情報は、HTTPヘッダのホストヘッダフィールドに埋め込まれます。
オ:192.168.0.98、カ:8000
「PCはDNSを参照して、ap0.u-sha.comの接続先IPアドレスとして(オ)を取得する。」
「PCは宛先IPアドレスが(オ)、宛先ポート番号が80番宛てへ通信を開始する。」
「共用リバースプロキシは宛先IPアドレスが192.168.0.112、宛先ポート番号が(カ)番宛てへ通信を開始する。」
「仮想ルータは宛先IPアドレスが192.168.0.112、宛先ポート番号が(カ)番宛てへの通信について、⑤ポートフォワードの処理によって宛先IPアドレスと宛先ポート番号を変換する。」
前の設問でもあったように、PCのHTTPリクエストは共用リバースプロキシ経由でWebAPが動作するWebAPコンテナへ振り分けられます。
したがって、(オ)は共用リバースプロキシのIPアドレスである「192.168.0.98」となります。
次に、共用リバースプロキシがAP向けに通信しますが、宛先IPアドレス「192.168.0.112」はコンテナサーバaのIPアドレスです。
コンテナサーバaにはAP0とAP1があり、表4(振り分けルールの例(抜粋))の振り分け先にあるようにAP0とAP1ではポート番号が異なります。
今回は、AP0への通信なので宛先ポート番号が「8000」となります。
下線⑤について、変換後の宛先IPアドレスと宛先ポート番号を答えよ。:(宛先IPアドレス):172.16.0.16、(宛先ポート番号)80
「仮想ルータは宛先IPアドレスが192.168.0.112、宛先ポート番号が(カ)番宛てへの通信について、⑤ポートフォワードの処理によって宛先IPアドレスと宛先ポート番号を変換する。」
図4(AP0aとAP1aに対するPCからのHTTP接続要求パケットの例)から、仮想ルータが目的のAPに通信するための宛先IPアドレスと宛先ポート番号の変換を確認します。
宛先IPアドレスが192.168.0.112、宛先ポート番号が8000番宛てへの通信は、それぞれ172.16.0.16と80に変換されることがわかります。