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

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

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

【エッジサーバを活用する将来構想】
 図4中のメッセージ交換では、X社内の交換サーバを利用するので、顧客の企業秘密を含むような設定情報及び稼働情報(以下、これらを内部情報という)は、対象外としている。しかし、内部情報についても図4と同様にメッセージ交換を行いたい顧客も多い。X社では、エッジサーバを活用して、内部情報もXシステムに取り込む将来構想をもっている。
 顧客サーバが一つの場合について、将来構想で追加されるXシステムのメッセージ交換例を図7に、Wさんが考えた将来構想におけるネットワーク構成案を図8に、それぞれ示す。


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


 図9の説明を次に示す。

  • 顧客サーバにMQTTクライアント機能を、エッジサーバにMQTTサーバ機能をそれぞれ実装し、顧客サーバとエッジサーバ間でメッセージ交換を行う。
  • エッジサーバのMQTTサーバ機能は、通常のMQTTサーバ機能に加えて、メッセージをほかのMQTTサーバと送受信する機能(以下、MQTTブリッジという)をもつ。Xシステムのデバイスは複数の機器とTCPコネクションを確立できないので、このMQTTブリッジを利用する。
  • ⑥MQTTブリッジには、トピック名をあらかじめ定義しておき、そのトピック名のメッセージを交換サーバと送受信させる

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

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

図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コネクションを確立する」とあります。

⑥について、定義するトピック名を全て答えよ。: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アドレス)に関するルールを設定する必要があります。