問題
図4について、isInNet(ip, "172.16.0.0", "255.240.0.0") のアドレス空間は、どこからどこまでか。最初のIPアドレスと最後のIPアドレスを答えよ。
A社は、従業員300人の建築デザイン会社である。東京本社のほか、大阪、名古屋、仙台、福岡の4か所の支社を構えている。本社には100名、各支社には50名の従業員が勤務している。
A社は、インターネット上のC社のSaaS(以下、C社SaaSという)を積極的に利用する方針にしている。A社情報システム部ネットワーク担当のBさんは、C社SaaS宛ての通信がHTTPSであることから、ネットワークの負荷軽減を目的に、各支社のPCからC社SaaS宛ての通信を、本社のプロキシサーバを利用せず直接インターネット経由で接続して利用できるようにする、ローカルブレイクアウトについて検討することにした。
〔プロキシサーバを利用した制御〕
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ファイルを作成した。
2024年度(令和6年度)春期 ネットワークスペシャリスト試験 午後Ⅰより引用・改変
・
・
・
・
・
・
答え
最初 172.16.0.0
最後 172.31.255.255
・出題のポイント
isInNet(ip, "172.16.0.0", "255.240.0.0") のアドレス空間は、どこからどこまでか。を回答すればよい問題です。
・PACファイルとは
PAC(Proxy Auto-Config)ファイルとは、Webブラウザなどのクライアントが、Webサイトにアクセスする際に、どのプロキシサーバを経由すべきかを自動的に決定するための設定ファイルです。JavaScriptで記述されており、アクセス先のURLなどの情報に基づいて、プロキシサーバを使用するかどうか、使用する場合はどのプロキシサーバを使用するかを指示します。
PACファイルはWebサーバー等に設置しておき、WebブラウザやOSなどのクライアントアプリケーションに、PACファイルのURLを設定します。クライアントアプリケーションがPACファイル(実態はjavascriptのプログラム)を実行することによって、アクセス先のURLによって、使用するプロキシサーバを変更するよう制御することができます。
・isInNet関数とは
PACファイルで利用される、isInNet関数は、
isInNet(ip, network, mask)
で定義され、指定されたIPアドレス (ip) が、指定されたネットワークアドレス (network) とサブネットマスク (mask) で定義されるネットワークに属するかどうかを判定します。
・解の導出
isInNet関数の定義を知らなくても、ネットワークアドレスが "172.16.0.0"、サブネットマスクが "255.240.0.0"のアドレス空間の最初のアドレスと最後のアドレスが何かを答えればよいことは推測できるかと思います。
サブネットマスクは、IPアドレスと共に用いられる32ビットの数値で、IPアドレスのどの部分がネットワークアドレスを表し、どの部分がホストアドレスを表すのかを識別するために使われます。
ネットワークアドレス「172.16.0.0」を始点として、サブネットマスク「255.240.0.0」である場合にどこが終点となるかを求めます。
実際にビット列に直して考えるのが直感的にわかりやすいです。
ネットワークアドレス(172.16.0.0)
10101100.00010000.00000000.00000000
サブネットマスク(255.240.0.0)
11111111.11110000.00000000.00000000
となっています。サブネットマスクが12桁目まで1が連なっていますので、上12桁がネットワークアドレスで、残りの下20桁がホストアドレスで使用できるアドレス空間であることがわかります。
ホストアドレスとして使用できるアドレスは、下20桁をすべて1にしたアドレスになりますので、
最後のホストアドレス(172.31.255.255)
10101100.00011111.11111111.11111111
となります。
よって解答は、「最初:172.16.0.0、最後:172.31.255.255」となります。
