やさしいネットワークとセキュリティ

情報処理安全確保支援士、ネットワークスペシャリスト、技術士として、資格取得を目指す方に有益な情報を発信します。

ネットワーク拡張におけるMQTTクライアント接続で考慮すること【ネットワークスペシャリスト試験 平成30年度 秋期 午後2 問1-5】

 情報処理技術者試験の午後問題を通じて、ネットワークの知識を体系的に蓄積していきましょう。

 キーワードに加え、設計や障害対応能力をシミュレーションできる良い学びの場ですので、試験合格はもちろん、ネットワークスペシャリストとなった後も能力向上のために学習できるいい機会です。

 今回は、「ネットワーク拡張におけるMQTTクライアント接続で考慮すること」を取り上げた「ネットワークスペシャリスト試験 平成30年度 秋期 午後2 問1-5」です。

 問題文中、設問に該当する部分ですぐに解答を説明しています。

 ストーリーとして何度も読みこなすと、自然に記憶に定着してくると思います。

ネットワークスペシャリスト試験 平成30年度 秋期 午後2 問1-5

問1 ネットワークシステムの設計に関する次の記述を読んで、設問1~4に答えよ。

(略)

f:id:aolaniengineer:20200729043020p:plain 

 図2中の通信シーケンスでは、配信元から複数の配信先へメッセージが配信されている。通信シーケンスの説明を次に示す。

クライアントは、サーバのTCPポート8883番にアクセスし、TCPコネクションを確立する。このTCPコネクションは、メッセージ交換の間は常に維持される。

(略) 

f:id:aolaniengineer:20200729043445p:plain

(略)

【エッジサーバを活用する将来構想】

 図4中のメッセージ交換では、X社内の交換サーバを利用するので、顧客の企業秘密を含むような設定情報及び稼働情報(以下、これらを内部情報という)は、対象外としている。しかし、内部情報についても図4と同様にメッセージ交換を行いたい顧客も多い。X社では、エッジサーバを活用して、内部情報もXシステムに取り込む将来構想をもっている。

 顧客サーバが一つの場合について、将来構想で追加されるXシステムのメッセージ交換例を図7に、Wさんが考えた将来構想におけるネットワーク構成案を図8に、それぞれ示す。

f:id:aolaniengineer:20200801052233p:plain

f:id:aolaniengineer:20200801052256p:plain

 

 図8に示すように、Wさんは、NATルータを使って、顧客ネットワークとXシステムを接続する案を考えた。NATルータは、1:1静的双方向NATとして動作させ、図8中のNATルータ-PとNATルータ-P’を利用して、宛先IPアドレスと送信元IPアドレスの両方を変換させる。

図8中のNATルータについて、顧客ネットワークからXシステムの方向の通信におけるアドレス変換の内容を、60字以内で具体的に述べよ。:送信元IPアドレスをNATルータ-Pに、宛先IPアドレスをエッジサーバ-Pに、それぞれ変換する。

 NATルータについて、「NATルータは、1:1静的双方向NATとして動作させ、図8中のNATルータ-PとNATルータ-P’を利用して、宛先IPアドレスと送信元IPアドレスの両方を変換させる」とあります。

 本問では、アドレス変換の内容を具体的に問われているため、対象となる機器を特定します。

 「顧客ネットワークからXシステムの方向の通信」とは、図7のメッセージ交換例から、具体的には「顧客サーバ」から「エッジサーバ」への通信であることが分かります。

 顧客サーバが通信の宛先IPアドレスに指定するのは同じネットワーク内の「NATルータ-P'」、送信元IPアドレスに指定するのは自分自身の「顧客サーバ-P'」です。

 データを受信したNATルータは、宛先IPアドレスを「エッジサーバ-P」、送信元IPアドレスを「「NATルータ-P」に変換することで、相互のプライベートIPアドレス間で通信を可能とします。

図8中の顧客FWについて、Xシステムとの接続のために、新たに許可が必要になる通信を40字以内で答えよ。:顧客サーバ-P'からNATルータ-P'のポート8883番への通信

 顧客FWを通過する通信で追加されるのは、NATルータ経由での顧客ネットワークとXシステム間の通信です。

 具体的には、この後の図9にも示されていますが、「顧客サーバのMQTTクライアント機能とエッジサーバのMQTTサーバ機能間の通信」になります。

 FWへの通信の許可・拒否の設定には、IPアドレスとポート番号を使用します。

 IPアドレスについては、クライアントは顧客サーバ-P'、サーバはエッジサーバの顧客ネットワーク側のアドレスであるNATルータ-P'となります。

 ポート番号については、MQTTにおける通信の内容として本文に「クライアントは、サーバのTCPポート8883番にアクセスし、TCPコネクションを確立する」とあります。

 Wさんが考えた将来構想におけるメッセージの流れを図9に示す。

f:id:aolaniengineer:20200801052459p:plain

 

 図9の説明を次に示す。

・顧客サーバにMQTTクライアント機能を、エッジサーバにMQTTサーバ機能をそれぞれ実装し、顧客サーバとエッジサーバ間でメッセージ交換を行う。

エッジサーバのMQTTサーバ機能は、通常のMQTTサーバ機能に加えて、メッセージをほかのMQTTサーバと送受信する機能(以下、MQTTブリッジという)をもつ。Xシステムのデバイスは複数の機器とTCPコネクションを確立できないので、このMQTTブリッジを利用する。

⑥MQTTブリッジには、トピック名をあらかじめ定義しておき、そのトピック名のメッセージを交換サーバと送受信させる

⑥について、定義するトピック名を全て答えよ。:config/Di、status/Di

 MQTTブリッジは、「エッジサーバのMQTTサーバ機能は、通常のMQTTサーバ機能に加えて、メッセージをほかのMQTTサーバと送受信する機能(以下、MQTTブリッジという)をもつ。Xシステムのデバイスは複数の機器とTCPコネクションを確立できないので、このMQTTブリッジを利用する。」と説明されています。

 ここで出てくるほかのMQTTサーバとはどの機器でしょうか。

 現状では図4にあるように、デバイス(MQTTクライアント)は交換サーバをMQTTサーバとしてやり取りしています。

 将来構想では図7のとおり、更にエッジサーバがMQTTサーバになり、デバイスは交換サーバとエッジサーバの両方とMQTTのメッセージ交換を行う必要があります。

 しかし、上記の説明のようにデバイスは複数の機器とTCPコネクションを確立できません。

 ここでMQTTブリッジを利用します。

 エッジサーバにMQTTブリッジを稼働させ、デバイスと交換サーバのメッセージ交換を転送します。

 これによりデバイスはエッジサーバとのみTCPコネクションを確立した状態で、エッジサーバと交換サーバの両方とメッセージ交換を行うことができます。

 問われているのは、デバイスが交換サーバとメッセージ交換するトピック名です。

 これは図4に示されているように「config/Di」と「status/Di」になります。

図7~9中の顧客サーバを1台追加する場合、Xシステム側で必要となる対応を二つ挙げ、それぞれ30字以内で述べよ。:1:1静的双方向NATの設定をNATルータに追加する。/通信を許可するルールを通信装置内のFWに追加する。

 追加した顧客サーバでは、既設の顧客サーバと同様にXシステムのエッジサーバとの通信を行います。

 その通信経路上にある機器としては、「顧客FW」「NATルータ」「FW」があります。

 設問ではXシステム側で必要となる対応とあるので、「NATルータ」と「FW」に絞って考えます。

 「NATルータ」は1:1静的双方向NATとして動作しているので、追加した顧客サーバのIPアドレスを設定する必要があります。

 「FW」も同様に、追加した顧客サーバに該当するIPアドレス(NAT変換した後のXシステム側で見えるIPアドレス)に関するルールを設定する必要があります。

 Wさんは、図7~9を使って、ネットワークの動作について検討し、将来構想への対応が可能であると判断した。

 

 Wさんは、以上の検討結果を上司に報告した。X社の情報システム部は、Xシステム構想を実現するためのプロジェクトを発足させた。

【出典:ネットワークスペシャリスト試験 平成30年度 秋期 午後2 問1(一部、加工あり)】

https://www.jitec.ipa.go.jp/1_04hanni_sukiru/mondai_kaitou_2018h30_2/2018h30a_nw_pm2_qs.pdf