平成30年秋期試験午後問題 問5

問5 ネットワーク

⇱問題PDF⇱解答用紙PDF
Webシステムの負荷分散と不具合対応に関する次の記述を読んで,設問1~3に答えよ。

 D社は,小売業を営む社員数約300名の中堅企業であり,取り扱う商品の販売数が順調に増加している。D社では,共通基盤となるWeb業務システム上で販売管理や在庫管理,財務会計などの複数の業務機能がそれぞれ稼働している。
 Web業務システムは,Webサーバ機能とアプリケーションサーバ機能の両方を兼ね備えたサーバ(以下,Webサーバという)3台と負荷分散装置(以下,LBという)1台,データベースサーバ(以下,DBサーバという)1台で構成される。
 D社では総務部がWeb業務システムとネットワークの運用管理を所管しており,情報システム課のEさんが運用管理を担当している。Web業務システムを含むD社のネットワーク構成を図1に示す。
pm05_1.gif
 各部署のPCは起動時に,DHCPサーバから割リ当てられたIPアドレスなどでネットワーク設定が行われる。PCから販売管理機能を利用する場合,販売管理機能を提供するプログラムに割り当てられたURLを指定し,Webブラウザでアクセスする。

〔LBによるWebサーバの負荷分散の動作〕
 LBは,各部署のPCからWebサーバに対するアクセスをラウンドロビン方式でWebサーバ1~3に分散して接続する。LBを利用することによって,Webサーバ1台で運用した場合と比較して,応答性能と可用性の向上を実現している。
 WebブラウザでWeb業務システムのURLを指定してアクセスすると,LBは,Webサーバを一つ選択して,当該サーバ宛てにパケットを送出する。例えば,Webサーバ2が選択された場合,LBはパケットの送信元のIPアドレスをa,送信先のIPアドレスをbに置き換えてパケットを送出する。
 またLBは,pingコマンドを用いたヘルスチェック機能を有しており,pingコマンドに対して応答しなかったWebサーバへのアクセスを停止する。

〔不具合事象の発生〕
 ある日,Web業務システムの定期保守作業において,販売管理機能のプログラムをバージョンアップしたところ,応答時間が急に遅くなり,Webブラウザにエラーが表示される,という報告が営業部から情報システム課に多く寄せられた。

〔不具合事象の切分け〕
 営業部の多くのPCで同様な事象が発生していたので,EさんはPCが原因ではないと考え,PCとWebサーバ間の通信に不具合が発生したと考えた。
 Eさんは,営業部のPCを利用して,原因の切分けを行った。確認項目と確認結果を表1に示す。
pm05_2.gif
 Eさんはここまでの調査結果を整理して,今回の不具合の原因として想定される被疑箇所について次のような仮説を立てた。
 項番1と2の結果から,PCとWebサーバ1~3の間のIP層のネットワーク通信には問題がない。また,項番3の結果から,Web業務システムのURLに対する名前解決にも問題はない。項番4と6の結果から,①特定のWeb画面を表示するときだけ,WebブラウザでHTTP通信がタイムアウトとなり,タイムアウトエラーを表示していると考えた。

 Eさんは,ネットワーク通信の不具合についての仮説に対する確認テストを行うために,Web業務システムを開発したF社のテスト環境を利用して不具合を再現させ,ネットワークモニタとシステムリソースモニタを利用して状況を詳細に調べたところ,Webサーバ1~3で利用可能なTCPポートが一時的に枯渇する事象が発生していることが分かった。
 F社から,Webサーバ1~3での利用可能なTCPポート数の増加,②Webサーバ1~3でのTCPコネクションが閉じるまでの猶予状態である TIME_WAIT 状態のタイムアウト値の短縮,及び販売管理機能のプログラムの実行環境においてWebサーバからDBサーバへの通信時のTCPポート再利用について,Eさんは改善項目の回答をもらった。

〔改善すべき問題点〕
 Eさんは,不具合の修正が終わった後に,不具合の切分け作業の問題点を考えた。③Webサーバ1~3やL3SW,LBのそれぞれに記録されたログメッセージの対応関係の特定を推測に頼らざるを得ず難しかった。また,Webサーバで通信ログを調べる際に④送信元のPCがすぐに特定できなかった
 Eさんは,ネットワーク運用の観点から改善策の検討を進めた。

設問1

本文中のabに入れる適切なIPアドレスを答えよ。

解答例・解答の要点

a:172.16.10.5
b:172.16.10.12

解説

LB(ロードバランサ)を使用したシステム構成の場合、クライアント(各部署のPC)はWebサーバのIPアドレスではなく、LBのIPアドレス宛にパケットを送付します。その後LBは、どのWebサーバにパケットを振り分けるかを決定して、サーバにパケットを送付します。
Webサーバは、LBから送付されたパケットを処理して応答結果をLBに送付します。その後、LBからクライアントに応答結果が送付されるという流れになります。

本問では、振分け方式としてラウンドロビン方式が使用されているため、各Webサーバ(Webサーバ1、Webサーバ2、Webサーバ3)に順繰りに送付されることになります。※初回のみ、2回目以降のHTTP通信については初回と同じWebサーバに振り分けます。

abについて〕
問題文に「Webサーバ2が選択された場合」と記載されています。そのため、LBからWebサーバ2にパケットを送付する必要があります。また、Webサーバ2からの応答はLBを経由させる必要があります。よって、[a]にはWebサーバ2のLBのIPアドレスである「172.16.10.5」が、[b]にはWebサーバ2のIPアドレスである「172.16.10.12」が入ります。
pm05_3.gif
a=172.16.10.5
 b=172.16.10.12

※LBの負荷分散方式としては、ラウンドロビン方式の他にリーストコネクション方式(コネクション数が最少のサーバに振り分ける)があります。

設問2

〔不具合事象の切分け〕について,(1)~(3)に答えよ。
  • 表1中のcに入れる適切な字句を答えよ。
  • 本文中の下線①について,具体的にどのような不具合が生じていると考えたかを30字以内で述べよ。
  • 本文中の下線②によって得られる改善の効果を35字以内で述べよ。

解答例・解答の要点

  • c:nslookup 又は dig
  • WebサーバからDBサーバへのアクセスがエラーとなった (27文字)
  • Webサーバ1~3で再利用できるTCPポート数を増やせること (30文字)

解説

  • DNSサーバの名前解決テストに使用されるコマンドは「nslookup」コマンドと「dig」コマンドです。どちらもホスト名を引数で与えることで、名前解決を手動で実行でき、ホスト名のIPアドレスの確認やDNSが正しく動作しているかどうかを調べることができます。
    2つのコマンドの違いは、nslookupがDNSサーバからの応答を見やすい形にして表示するのに対し、digは応答をほぼそのままの形で表示する点です。

    例えば、digコマンドでホスト名 www.ap-siken.com のIPアドレスを調べると以下のようになります。IPアドレスが 219.94.200.28 であることがわかります。
    pm05_4.gif
    c=nslookup 又は dig

  • 不具合の直前に販売管理機能のプログラムをバージョンアップしているので、Webサーバ上で動作するプログラム上の問題であることが想定できます。

    表1の記載内容を見ると、pingでの疎通確認、名前解決が正常である一方、項番4には「エラーが表示されたときのWebサーバとPC間におけるHTTP通信メッセージそのものが存在しなかった」とあり、Webサーバが要求を受信してから応答を送信するまでの間にエラーが発生している確率が高いと考えられます。HTTP応答が返ってこない場合、Webブラウザではタイムアウトエラーを表示します。
    さらに、項番6に「WebサーバからDBサーバへのアクセスエラーメッセージがあった」と記載されていることから、WebサーバからDBサーバへのアクセス時にエラーの原因となる不具合が生じていると判断するのが妥当です。

    ∴WebサーバからDBサーバへのアクセスがエラーとなった

  • 表1の項番6では「TCPポートが確保できない」エラーが記録されており、DBサーバのTCPポートが枯渇してしまっていることがアクセスできない原因であることがわかります。

    TIME_WAIT状態とは、TCP通信のシーケンスにおける遷移状態の1つで、本文中に「TCPコネクションが閉じるまでの猶予状態である」と説明されているように接続終了待ちの状態を示します。TIME_WAIT状態のタイムアウト値を短縮することで、使用済みのTCPポートを以前より早く解放するようになります。TCPポートが解放されるまでの時間が短くなれば、他の通信がそのポートを再利用することが可能となります。これにより、Webサーバ1~3で再利用できるTCPポート数が増える改善効果を望めます。

    ∴Webサーバ1~3で再利用できるTCPポート数を増やせること

設問3

〔改善すべき問題点〕について,(1),(2)に答えよ。
  • 本文中の下線③について,適切な解決方法を解答群の中から選び,記号で答えよ。
  • 本文中の下線④について,送信元のPCをすぐに特定できない理由を25字以内で述べよ。
解答群
  • NTPによる時刻同期機能を導入する。
  • ウイルス対策ソフトを導入する。
  • 各機器で取得したログファイルを個々に確認する。
  • 各機器のデバッグログも表示されるようにする。

解答例・解答の要点


  • 送信元のIPアドレスはLBのものになるから (21文字)

解説

  • 本システムでは、システムログファイルがL2SW、L3SW、LB、各Webサーバ、DBサーバごとに記録されています。個々のサーバに記録されているログ単体では前後関係の問題は生じませんが、2種類以上のログを併合する場合には前後関係の問題が生じる可能性があります。この原因となるのがログの出力日時として使われる各機器の内部時計の時刻差です。通信は非常に短い時間で各機器に到達するため、たとえ時刻の差が数秒程度でも前後関係が逆転してしまう可能性があります。この状態では、ログメッセージの対応関係を特定するのに余分な時間が掛かってしまいます。

    例えば、私と友人が以下のような日記をつけたとします。
    pm05_5.gif
    どちらも時刻を記載してありますが、同じ時計を見ていない場合、友人が12時に昼食を食べたときに、私が何をしていたのか正確に把握することができません。しかし、同じ時計を見て記録を付けていれば、私と友人は同じ時間に昼食を食べていたことが明らかです。

    この問題を解消するにはNTP(Network Time Protocol)を用いて、各機器の内部時計の時刻を同期させておく必要があります。

    ∴ア:NTPによる時刻同期機能を導入する

  • 設問1の解説で説明したように、PCはLBを介してWebサーバにアクセスし、LBは受信したパケットの送信元IPアドレスを書き換えます。Webサーバ上の通信ログに残された送信元IPアドレスは全てLBの「172.16.10.5」になっているため、Webサーバの通信ログを見ただけでは送信元PCの特定ができません。この場合、LBの通信ログと照合して送信元PCを特定することになります。

    ∴送信元のIPアドレスはLBのものになるから

Pagetop