HOME»応用情報技術者試験掲示板»平成24年秋期午後問5 レイヤ4とLBSについて
投稿する

平成24年秋期午後問5 レイヤ4とLBSについて [3793]

 佐々木さん(No.1) 
https://www.ap-siken.com/kakomon/24_aki/pm05.html

質問1.

設問4について  まぁそうだろうなと考え正解する事はできましたがよくよく考えるとポート番号を使って識別出来るのでは?と言う発想になってます。

クライアントA,B,C,D…N  →  プロキシ  →  ロードバランサ(レイヤ4)  →  サーバA or サーバB
レイヤー4でロードバランサを使った場合トランスポート層なので
グローバルIPA-ポートAはサーバAへ
グローバルIPA-ポートBはサーバBへ
グローバルIPA-ポートCはサーバAへ
のような感じで  どうしてそれができないのか教えてほしいです。問題文に隠れているパターンでしょうか?それとも通常であれば出来るのでしょうか?

質問2.

会員企業にはプロキシサーバーしかないのですが、このプロキシサーバーにルーター等の機能がついているということでしょうか?

質問3.問題文の
>>送信されてきたIPパケット内の送信元IPアドレスとポート番号を使って,振分け先のWebサーバを決定する。振分け先の決まったIPパケットは,NAPTによるIPアドレス変換が行われ,対象のWebサーバに転送される。

の意味がよくわからないのでご教授いただける方がいましたらお願いします。
ロードバランサは  送信元「プロキシのIP(a.b.c.111)」+「ポート(x)」を
ローカルIPと適当なポート番号にしてサーバAへかBに渡すと言うことでしょうか?

であれば質問1と矛盾が発生してしまいます…


以上3点有識者の方よろしくお願いいたします。
2022.10.05 13:02
jjon-comさん(No.2) 
AP プラチナマイスター
ご質問を読んでみて、質問者の主張は一理あるのでは?と私は思いました。

L2スイッチは、宛先のMACアドレスを判定してフレームを転送、
L3スイッチは、宛先のIPアドレスを判定してパケットを転送、
L4スイッチは、宛先のTCP/UDPポートを判定してセグメントを転送。

と、私はそういう基本理解でいました。この前提知識が脳裏にあったので、

> L4スイッチとして動作するロードバランサは,
> 送信されてきたIPパケット内の送信元IPアドレスと
> ポート番号を使って,振分け先のWebサーバを決定する。

という問題文を

・送信元IPアドレスと【宛先】ポート番号を使って

と気にせずに解釈していたのですけれど、
改めて読み直してみて、文章の係り受けとしては、

・送信元IPアドレスと【送信元】ポート番号を使って

と解釈するのが自然な日本語だと思いました。

L4スイッチとして動作するロードバランサが送信元ポート番号を判定材料にできるのなら、
ロードバランサに到着する通信データの送信元ポート番号が 0~65535 の範囲中からランダム性を持って分布していると想定すると、
統計的には送信元ポート番号の偶数・奇数はほぼ半々になるはずなので、
送信元ポート番号をNで割った余りでN台のWebサーバに振り分けるという、
質問者が「質問1」で例示したものが実現できそうな気がします。

--------
そもそもL4スイッチって、送信元ポート番号を振り分けの判定材料にするのでしたっけ?
ja.wikipedia「レイヤ4スイッチ」の「分散アルゴリズム」の節には、送信元IPアドレスを判定する例は載っていますが、送信元ポート番号を判定する例は載っていませんでした。
2022.10.05 21:02
犬。さん(No.3) 
こんばんは。

負荷分散方式とセッション維持機能がごっちゃになってしまっている気がします。

L4スイッチと呼ばれるのは、宛先ポート番号を元に負荷分散するからそう呼ばれているはずです。
負荷分散方式には、ラウンドロビンやRatio、リーストコネクションなどがありますよね。

一方で、セッション維持機能として、送信元IPアドレスパーシステンスやCookieパーシステンスがありますが、Cookieパーシステンスを使うにはL4スイッチは使えないというのが本問の趣旨だと思います。

また、送信元ポート番号を元にパーシステンスを行えそうにも思えますが、個人的には理論上難しいと思っています。

例えば、同じブラウザで別タブを開いた場合、その通信のポート番号は変わりますよね?
IPアドレスはその端末からの通信が発生している限りは変化しないと思いますので、送信元IPアドレスを元にパーシステンスが可能です。

一方で、別タブで開いてリクエストを投げたら、別セッションだとされて、別サーバに振り分けられてしまうため、セッション維持することができなくなってしまうと思います。

ただ、質問3の問題文の内容は、いまいち理解ができかねますね…負荷分散装置は触ったことがありますが、NAPTでという表現は聞いたことがありません(汗)
強いて言うと、ワンアーム構成の時に送信元IPアドレスを変換することがありますが、それを指しているとは思えませんね(^_^;)
2022.10.05 22:44
GinSanaさん(No.4) 
AP プラチナマイスター
CatalystのL4のロードバランサでポート番号を使うときは分散アルゴリズムはハッシュですね。
www.cisco.com/c/ja_jp/support/docs/lan-switching/etherchannel/12023-4.html
Catalyst スイッチでの EtherChannel のロード バランシングと冗長性について
2022.10.05 22:46
Howitzerさん(No.5) 
ブラウザの同時接続数って知ってますか?
同じブラウザが複数のポートを使って接続に来ます。
ポートで振り分けると同じブラウザ(同じタブ)から
異なるサーバに接続されてしまうのではないかと....

> Catalyst スイッチでの EtherChannel のロード バランシングと冗長性
リンクアグリゲーションに関する話じゃないですか?
スイッチ間で複数LANケーブルを使うので、どのケーブルを通すかというL2の話。
Etherだし
2022.10.05 23:57
GinSanaさん(No.6) 
AP プラチナマイスター
>リンクアグリゲーションに関する話じゃないですか?
よくよく見たらそうでした。
>ja.wikipedia「レイヤ4スイッチ」の「分散アルゴリズム」の節には、送信元IPアドレスを判定する例は載っていますが、送信元ポート番号を判定する例は載っていませんでした。
の例を探している最中の話でしたが、Catalystでポート番号の負荷分散の例を探すとイーサチャネルくらいしか出てこないですね。分散アルゴリズムはハッシュだとは思いますが
2022.10.06 00:35
 佐々木さん(No.7) 
皆様ありがとうございます。

前提知識が薄いため理解ができないです。ご教授いただける方がいましたらお願いいたいします。

>>負荷分散方式とセッション維持機能がごっちゃになってしまっている気がします。
L4スイッチと呼ばれるのは、宛先ポート番号を元に負荷分散するからそう呼ばれているはずです。

セッション維持に関してはクッキー等で上のレイヤーにしてもらえればいいと思うので、2度目から同じサーバーに振り分けられてれば問題ないとして、なぜ質問1の内容がなぜできないと言う事がまだわからないです…

理解が違っていたらご指摘いただけると幸いです。
2022.10.06 08:53
犬。さん(No.8) 
>佐々木さん
おはようございます。

> セッション維持に関してはクッキー等で上のレイヤーにしてもらえればいいと思うので、
> 2度目から同じサーバーに振り分けられてれば問題ないとして、なぜ質問1の内容が
> なぜできないと言う事がまだわからないです…

L4スイッチを選択している時点で、L7の情報であるCookieは見ることができません。
L4スイッチでセッション維持をするためには、送信元IPアドレスを見てサーバを決定するほかありません。そうなると、プロキシ経由の場合、どのクライアントからアクセスがあっても、同じサーバに振り分けられてしまう…というのが本問の問題ですよね。

> グローバルIPA-ポートAはサーバAへ
> グローバルIPA-ポートBはサーバBへ
> グローバルIPA-ポートCはサーバAへ

これは負荷分散方式のことを指していますか?
負荷分散方式は、上述のとおり、ラウンドロビンやRatio、リーストコネクションと呼ばれる方式があります。通信の偏りを無くすための方式の話ですよね。

仮に、佐々木さんの仰るとおり、送信元ポート番号を基に負荷分散したとして、1番目と2番目のリクエストが同じクライアントからだったら、セッション維持ができないということになります。その点はどう理解されていますか?

負荷分散方式とセッション維持と、整理をされると良い気がします。
2022.10.06 09:30
陽射さん(No.9) 
AP ブロンズマイスター
質問1.

Howitzerさんの解説が全てです。

ブラウザは、通信効率化を図るためマルチコネクションが実装されています。

例えば、WEBページに画像が複数貼り付けられている場合、

画像1は、HTTPリクエストA(送信元ポートA)で表示
画像2は、HTTPリクエストB(送信元ポートB)で表示
画像3は、HTTPリクエストC(送信元ポートC)で表示

※HTMLやフォームもサイズが大きい場合は、分割されます。


といったように、複数のTCPコネクションで1ページを表示します。

プロキシサーバ経由も同様、同一PCでも送信元ポートは区別され、
プロキシサーバの送信元ポートに反映されます。

上述を例にプロキシサーバの送信元ポートで振り分け先を区別すると

PC1(画像1)⇒プロキシサーバ(ポート1)⇒LB⇒Webサーバ1(※)
PC1(画像2)⇒プロキシサーバ(ポート2)⇒LB⇒Webサーバ2(※)
PC1(画像3)⇒プロキシサーバ(ポート3)⇒LB⇒Webサーバ1(※)

※振り分け先は、あくまで一例

となってしまい、L4では、同一PC・同一ページ内でも同一のWebサーバに振り分けられる担保が取れません。



質問2.

ルータやFWなどのゲートウェイ機器が省略されていると思いますが、
UTMなら一体型はありえます。(Fotigate Explicit Proxy機能など)

質問3.

①L4スイッチとして動作するロードバランサは,送信されてきた
  IPパケット内の送信元IPアドレスとポート番号を使って,
  振分け先のWebサーバを決定する。振分け先の決まった
  IPパケットは,NAPTによるIPアドレス変換が行われ,対象のWebサーバに転送される。

②クライアントからプロキシサーバ経由でC社の旅行予約サイトに
  アクセスする場合,ロードバランサは,初回のHTTP通信については
  ラウンドロビンでWebサーバを決定し,2回目以降のHTTP通信については
  初回と同じWebサーバに振り分ける。


なかなか受験者泣かせの問題文だなぁと思いました。
次のように解釈すればいかがでしょうか?

①L4機能の紹介
②①のうち実際に使用する機能の説明
  ⇒送信元IPアドレスで同一サーバ振り分け(送信元ポートは判定除外)+初回のみラウンドロビン

※送信元ポートを判定に入れると、質問1へのレスのような問題が発生します。
2022.10.06 12:29
 佐々木さん(No.10) 
レス8、レス9  の方ありがとうございます。

お二人の文章を読んでもイメージが未だについていないのですが、1回のやり取り、例えば私がアマゾンのページを開いて購入するまでの間。等においてもたくさんのコネクションが必要になるという事でしょうか?そのイメージが難しいです…  他のネットワークの問題の
https://www.ap-siken.com/kakomon/01_aki/pm05.html
設問1の  同時に複数のTCPコネクションを確立する手法 (22文字)  の事と同じと言うことでしょうか?

認識としては

> AAさんのPC:グローバルIPAポートA  ↔(LBS)  サーバA:ポートx  とやり取りをはじめた(L7の中にクッキー情報をいれておく)
> BBさんのPC:グローバルIPAポートB  ↔(LBS)  サーバB:ポートx  とやり取りをはじめた(L7の中にクッキー情報をいれておく)
> CCさんのPC:グローバルIPAポートC  ↔(LBS)  サーバA:ポートy  とやり取りをはじめた(L7の中にクッキー情報をいれておく)
> DDさんのPC:グローバルIPAポートD  ↔(LBS)  サーバB:ポートy  とやり取りをはじめた(L7の中にクッキー情報をいれておく)

①AAさんがページの更新(要望)(クッキー情報(前回のやり取りのセーブデータ)も一緒に要望と渡す)
②LBSがグローバルIPとポート  から  前回のやり取りを元(LBSが記憶)に  サーバAに渡す
③サーバAはクッキー情報から「あぁさっきやり取りした人ね」と追加のページを渡す。

みたいな感じをイメージしています。

どこの認識が違うでしょうか…

よろしくお願いいたします
2022.10.06 14:43
 佐々木さん(No.11) 
>>負荷分散方式とセッション維持と、整理をされると良い気がします。

負荷分散:
LBSが、クライアントとサーバ  の  IPとポートで行う

セッションの維持:
各サーバーが行う。

という認識を持っています…
2022.10.06 14:46
犬。さん(No.12) 
>佐々木さん
こんにちは!

> 他のネットワークの問題の
https://www.ap-siken.com/kakomon/01_aki/pm05.html
> 設問1の  同時に複数のTCPコネクションを確立する手法 (22文字)  の事と同じと言う
> ことでしょうか?

Howitzerさんや陽射さんが仰っていた内容かと思います。

ネットワークはイメージも大切だと思いますが、正しい理解も必要だと思います。
以下のサイトは分かりやすく記載してくださっていると思いますので、参考にどうぞ。

■ロードバランサをはじめから
www.infraexpert.com/study/study24.html
2022.10.06 16:50
陽射さん(No.13) 
AP ブロンズマイスター
>1回のやり取り、例えば私がアマゾンのページを開いて購入するまでの間。等においてもたくさんのコネクションが必要になるという事でしょうか?そのイメージが難しいです…

ブラウザには1ドメインあたりの最大コネクション数が決まっております。
Microsoft Edgeで6です。
ページ内のリクエスト数が多くなる場合は、リクエストが完了したコネクションから再利用されます。

ちなみにamazonは、HTTP/2に対応しているため、複数コネクションにはなりません。
2022.10.06 17:40
陽射さん(No.14) 
AP ブロンズマイスター
補足します。
複数コネクションを要求するのは、WEBページを読み込む際、リクエストが複数発生する場合です。
具体的にはFavicon、画像の読み込み、スタイルシートファイルの読み込みなど、複数のダウンロードが伴う場合です。

>※HTMLやフォームもサイズが大きい場合は、分割されます。

申し訳ございません。これは誤りです。
2022.10.06 20:00
 佐々木さん(No.15) 
レスしていただいた方。

貴重な時間ありがとうございます。

まだ少し疑問が残りますが、貼っていただいたサイトで体系的に学んでいきたいと思います。

ありがとうございました。
2022.10.07 08:27

返信投稿用フォーム

スパム防止のためにスレッド作成日から30日経過したスレッドへの書込みはできません。
© 2010-2024 応用情報技術者試験ドットコム All Rights Reserved.

Pagetop