【ネットワークスペシャリスト試験 令和5年度 春期 午後2 問2 No.5】
ネットワークスペシャリスト試験 令和5年度 春期 午後2 問2
【出典:ネットワークスペシャリスト試験 令和5年度 春期 午後2 問2(一部、加工あり)】
[LBの制御方式の検討]
X主任は、導入予定のLBがもつ負荷分散機能、セッション維持機能、ヘルスチェック機能の三つについて調査し、次の方式を利用することにした。
- 負荷分散機能
アクセス元であるクライアントからのリクエストを、負荷分散対象のサーバに振り分ける機能である。Y社のECサーバは、リクエストの内容によってサーバに掛かる負荷が大きく異なるので、ECサーバにエージェントを導入し、エージェントが取得した情報を基に、ECサーバに掛かる負荷の偏りを小さくすることが可能な動的振分け方式を利用する。 - セッション維持機能
同一のアクセス元からのリクエストを、同一セッションの間は同じサーバに転送する機能である。アクセス元の識別は、IPアドレス、IPアドレスとポート番号との組合せ、及びCookieに記録された情報によって行う、三つの方式がある。IPアドレスでアクセス元を識別する場合、インターネットアクセス時に送信元IPアドレスが同じアドレスになる会員企業では、複数の購買担当者がアクセスするECサーバが同一になってしまう問題が発生する。⑧IPアドレスとポート番号との組合せでアクセス元を識別する場合は、TCPコネクションが切断されると再接続時にセッション維持ができなくなる問題が発生する。そこで、⑨Cookie中のセッションIDと振分け先のサーバから構成されるセッション管理テーブルをLBが作成し、このテーブルを使用してセッションを維持する方式を利用する。 - ヘルスチェック機能
振分け先のサーバの稼働状態を定期的に監視し、障害が発生したサーバを負荷分散の対象から外す機能である。⑩ヘルスチェックは、レイヤー3、4及び7の各レイヤーで稼働状態を監視する方式があり、ここではレイヤー7方式を利用する。
X主任が、LBの制御方式の検討結果をW課長に説明した後、W課長から新たな検討事項の指示を受けた。そのときの、2人の会話を次に示す。
W課長:運用チームから、ECサイトのアカウント情報の管理負荷が大きくなってきたので、管理負荷の軽減策の検討要望が挙がっています。会員企業からは、自社で管理しているアカウント情報を使ってECサーバにログインできるようにして欲しいとの要望があります。これらの要望に応えるために、ECサーバのSAML2.0(Security Assertion Markup Language 2.0)への対応について検討してください。
X主任:分かりました。検討してみます。
下線⑧について、セッション維持ができなくなる理由を、50字以内で答えよ。:TCPコネクションが再設定されるたびに、ポート番号が変わる可能性があるから
「⑧IPアドレスとポート番号との組合せでアクセス元を識別する場合は、TCPコネクションが切断されると再接続時にセッション維持ができなくなる問題が発生する。」
IPアドレスとポート番号の組合せでアクセス元を識別するとは、具体的には送信元IPアドレスと送信元ポート番号で識別するということですが、送信元IPアドレスは同じアクセス元であれば同一なので、実質はポート番号で識別するということです。
アクセス元とサーバ間で一度貼られたTCPコネクション内では送信元ポート番号は同じなので、この動作が有効です。
ただし、TCPコネクションが切断され再接続する際は、新たに送信元ポート番号が変わることになり、同じアクセス元として識別することができません。
下線⑨について、LBがセッション管理テーブルに新たなレコードを登録するのは、どのような場合か。60字以内で答えよ。:サーバからの応答に含まれるCookie中のセッションIDが、セッション管理テーブルに存在しない場合
「そこで、⑨Cookie中のセッションIDと振分け先のサーバから構成されるセッション管理テーブルをLBが作成し、このテーブルを使用してセッションを維持する方式を利用する。」
LBが作成するセッション管理テーブルで新たなレコードが登録されるのは、当然、新しいセッションが生成される時ですが、具体的にLBが新しいセッションであることを検知する仕組みを考えます。
セッション管理テーブルのレコードはCookie中のセッションIDと振分け先のサーバで構成されますが、このうちCookie中のセッションIDはクライアントとサーバ間でやり取りさせるパケットに含まれているものです。
具体的には、HTTPリクエストを受信したサーバがHTTPレスポンスのSet-CookieヘッダにセッションIDをセットして返信し、クライアントが以降のパケットを送信する際にHTTPリクエストのCookieヘッダに同じセッションIDをセットして送信します。
LBでは、HTTPリクエストに含まれるセッションIDをチェックしますが、新規の通信でセッションIDがない場合は、サーバに振り分けた後、サーバからの応答パケットに含まれるセッションIDを確認しセッション管理テーブルに存在しない場合に新たなレコードとして登録します。
下線⑩について、レイヤー3及びレイヤー4方式では適切な監視が行われない。その理由を25字以内で答えよ。:サービスが稼働しているかどうか検査しないから
「⑩ヘルスチェックは、レイヤー3、4及び7の各レイヤーで稼働状態を監視する方式があり、ここではレイヤー7方式を利用する。」
サーバの監視方式で、各レイヤーによる違いは以下の通りです。
- レイヤー3:pingなどICMPプロトコルによる応答を確認するもので、ハードウェア、OSの稼働状態が分かります。
- レイヤー4:TCPのスリーウェイハンドシェイクによる応答を確認するもので、サービスが待ち受け状態にあることが分かります。
- レイヤー7:HTTPパケットの応答を確認するもので、サービスが正常に動作していることが分かります。
サーバの稼働状態を確認するにはサービスが正常に稼働しているかを確認する必要があるため、レイヤー7方式が適切となります。