ネットワークスペシャリスト試験 令和6年度 春期 午後1 問3
【出典:ネットワークスペシャリスト試験 令和6年度 春期 午後1 問3(一部、加工あり)】
[プロキシサーバを利用した制御]
BさんがUTMについて調べたところ、追加ライセンスを購入することでプロキシサーバ(以下、UTMプロキシサーバという)として利用できることが分かった。
Bさんは、ネットワークの負荷軽減のために、各支社のPCからC社SaaS宛ての通信は、各支社のUTMプロキシサーバをプロキシサーバとして指定することで直接インターネットに向けることを考えた。また、各支社のPCからその他インターネット宛ての通信は、通信相手を特定できないことから、各種ログを取得するために、これまでどおり本社のプロキシサーバをプロキシサーバとして指定することを考えた。各社のPCから、C社SaaS宛てとその他インターネット宛ての通信の流れを図3に示す。
Bさんは、各支社のPCが利用するプロキシサーバを制御するためにプロキシ自動設定(以下、PACという)ファイルとWebプロキシ自動検出(以下、WPADという)の導入を検討することにした。
[PACファイル導入検討]
BさんはPACファイルの作成方法について調査した。PACファイルはJavaScriptで記述する。PACファイルに記述するFindProxyForURL関数の第1引数であるurlにはアクセス先のURLが、第2引数であるhostにはアクセス先のURLから取得したホスト名が渡される。これらの引数に渡された値を様々な関数を用いて条件分けし、利用するプロキシサーバを決定する。FindProxyForURL関数の戻り値が”DIRECT”ならば、プロキシサーバを利用せず直接通信を行う。戻り値が”PROXY host:port”ならば、指定されたプロキシサーバ(host)のポート番号(port)を利用する。
テスト用に大阪支社のUTMを想定したPACファイルを作成した。Bさんが作成した大阪支社のUTMのPACファイルを図4に示す。
Bさんは、テスト用のPCとテスト用のUTMプロキシサーバを用意し、作成したPACファイルを利用することで、テスト用のPCからC社SaaS宛ての通信が、期待どおりに本社のプロキシサーバを利用せずに、テスト用のUTMプロキシサーバを利用することを確認した。⑥Bさんは各支社のPACファイルを作成した。
図4について、DMZにあるWebサーバにアクセスする際、プロキシサーバを利用する場合はプロキシサーバ名を答えよ。プロキシサーバを利用しない場合は”利用しない”と答えよ。:利用しない
利用するプロキシサーバの制御について、PACファイルを使用した場合の問題です。
PAC(Proxy Auto Configuration)はプロキシサーバの自動設定機能のことで、利用するプロキシサーバの選択方法を記述したものがPACファイルであり、ブラウザの設定画面でPACファイルの配置先を指定します。
プロキシサーバの利用については、問題文から以下の内容となっています。
- 各支社のPCからC社SaaS宛ての通信:各支社のUTMプロキシサーバを使用(ローカルブレイクアウト)
- 各支社のPCからその他インターネット宛ての通信:本社のプロキシサーバを使用
問題文の「PACファイルに記述するFindProxyForURL関数の第1引数であるurlにはアクセス先のURLが、第2引数であるhostにはアクセス先のURLから取得したホスト名が渡される。これらの引数に渡された値を様々な関数を用いて条件分けし、利用するプロキシサーバを決定する。」とあるように、URLとホスト名をPACファイルに渡して、プロキシサーバが決定されます。
また、「FindProxyForURL関数の戻り値が”DIRECT”ならば、プロキシサーバを利用せず直接通信を行う。戻り値が”PROXY host:port”ならば、指定されたプロキシサーバ(host)のポート番号(port)を利用する。」とあり、プロキシサーバを利用しない直接通信もあるとのことです。
図4では、処理の説明文をじっくり読むと分かりやすくなっていて、以下の(a)〜(d)の処理であることが分かります。
- (a):host(←FQDN)からIPアドレスを取得する
- (b):hostがlocalhostやA社の社内利用ドメインに属する、またはIPアドレスがプライベートIPアドレスやループバックアドレスの場合→戻り値が”DIRECT”、つまり直接通信
- (c):hostがC社SaaSに関連する場合→戻り値が”PROXY proxy.osaka.a-sha.jp:8080”、つまり大阪支社のUTMプロキシサーバ
- (d):(b)(c)以外→戻り値が”PROXY proxy.a-sha.jp:8080”、つまり本社のUTMプロキシサーバ
設問のDMZにあるWebサーバの場合についてですが、問題文前半に「DMZや内部ネットワークではプライベートIPアドレスを利用している。」とありました。
プライベートIPアドレスの場合は、処理(b)の直接通信となり、プロキシサーバは利用しません。
図4について、インターネット上にあるhttps://www.example.com/foo/index.htmlにアクセスする際、プロキシサーバを利用する場合はプロキシサーバ名を答えよ。プロキシサーバを利用しない場合は”利用しない”と答えよ。:proxy.a-sha.jp
前の設問と同様に、図4の処理を順に見ていきます。
まず、(a)で、「www.example.com」のIPアドレスを取得しますが、これはインターネット上にあることからグローバルIPアドレスになり、(b)には当てはまりません。
(c)では、C社SaaSのhostとして「image.cdn.example」「c-saas.example」とあり、「www.example.com」は当てはまりません。
したがって、(d)の処理での「proxy.a-sha.jp」を利用することになります。
図4について、isInNet(ip, “172.16.0.0” , “255.240.0.0”)のアドレス空間は、どこからどこまでか。最初のIPアドレスと最後のIPアドレスを答えよ。:172.16.0.0/172.31.255.255
サブネットマスクの「255.240.0.0」は第2オクテットが「11110000」であり、ホスト部分は5ビット目以降がすべて1となります。
IPアドレスの16である「00010000」の5ビット目以降を1にした「00011111」、つまり「31」が第2オクテット部分です。
アドレス空間が問われているので「172.16.0.0〜172.31.255.255」になります。
なお、IPAの採点講評では、「正答率が低かった。172.16.0.0や172.31.255.255はIPアドレスとして利用可能であるが、これらを含めない誤った解答が散見された。IPアドレスのアドレス空間を正しく理解することは、ネットワーク技術者として重要である。」とありました。
図4について、変数ipがプライベートIPアドレスの場合、戻り値を”DIRECT”にすることで得られる効果を、”負荷軽減”の字句を用いて20字以内で答えよ。:本社のプロキシサーバの負荷軽減
これは、前の設問で説明した「(b):hostがlocalhostやA社の社内利用ドメインに属する、またはIPアドレスがプライベートIPアドレスやループバックアドレスの場合→戻り値が”DIRECT”、つまり直接通信」に該当し、「FindProxyForURL関数の戻り値が”DIRECT”ならば、プロキシサーバを利用せず直接通信を行う。」とあるように、プロキシサーバを利用しないことによる効果を解答します。
負荷軽減の観点でいうと、素直に考えてプロキシサーバの負荷軽減が効果になるといえるでしょう。
プロキシサーバには本社のプロキシサーバと支社のUTMプロキシサーバがありますが、支社のUTMプロキシサーバはC社SaaS宛ての通信のみ扱うため、本社のプロキシサーバの負荷軽減となりそうです。
下線⑥について、PACファイルは支社ごとに用意する必要がある理由を25字以内で答えよ。:UTMプロキシサーバのFQDNが異なるから
「⑥Bさんは各支社のPACファイルを作成した。」
PACファイルについては、「テスト用に大阪支社のUTMを想定したPACファイルを作成した。」として図4の大阪支社用のPACファイルが示されています。
図4には、大阪支社に関する内容として「(c):hostがC社SaaSに関連する場合→戻り値が”PROXY proxy.osaka.a-sha.jp:8080”、つまり大阪支社のUTMプロキシサーバ」が該当します。
UTMプロキシサーバは支社ごとにあるため、各支社のFQDNを指定する必要があります。