皆さんが、興味をしてしてくださって光栄です(笑)

とにかく資料が無いので、闇雲に考えておりますが、まず、段
階をおって攻めるべきなのかと思い始めています。

少なくとも(笑)、Web サーバは FreeBSD でゆきたいと思って
おりますので、負荷分散は ubuntu でも使って、LVS にて行い
たいと考えました。
# 便宜上、以下、NAT もマスカレードも NAT で統一します。

ステップ1:
FreeBSD で普通に複数サーバを立て、LVS にて負荷分散。
構成は LVS に NAT させて、普通に構成。

The Internet
     |
   Router -- (GIP)ubuntu(NAT LVS)(PIP) -+- (PIP)FreeBSD(Web Serv)
                                        +- (PIP)FreeBSD(Web Serv)
                                        +- (PIP)FreeBSD(Web Serv)
                                                        :

これについては、なんの問題もなさそう。
ここで気になるのはアクセス数が増えた時の LVS の負荷。
特に NAT テーブルが溢れそうで気になります。
あと、速度。
今、目標にしているのは10万PV/1分の能力が出せるサーバ群
の作成です(笑)
1秒間に 2kPV なので、サーバとしてはそんなにしんどくない
かと思っていますが、ボトルネックは回線とルータと、LVS。
少なくとも LVS にはそれくらい処理して欲しい。
なので、少しでも LVS の負荷を下げるために NAT を使わない
DSR に目をつけました。
もしかして、心配するほどの負荷ではないんですかね?
経験者おられませんか?もし、大した負荷じゃないなら、ここ
で手を打ちます(^^;

ステップ2:
構成は変えずに、PIP を GIP にして DSR を行う。
この場合、Web Server の数に制限が出来てしまいます。
それと、LVS は NAT の必要がなくなりますので、ルータとし
ての機能のみとなり、かなり軽くなるのでは、と考えます。

ステップ3:
ステップ2の GIP を PIP にする。これが、問題の所。
Linux では iptables という機能で、IP address が目的の物
では無くてもパケットを受けることが出来るようです。
これは、FreeBSD でも工夫すれば出来るのかな、とは思ってい
ます。

例えば lo0 に外部からアクセスされる Web 仮想 IP を alias
して、lo0 を内側と見立てて NAT します。これで、パケット
は届くのでは無いかと。
ただ、問題は、出てゆく時。同じように変換かかると、Web
server の外向きの PIP が From になっちゃいますよね。これ
ではダメです。
なんとか、IP の置き換えはせず、MAC アドレスだけの変更で
対処できる方法があれば・・・・
ただ、これでも LVS を通過するので、負荷がかかっています。

ステップ4:
構成上 LVS を同一セグメントに置いて、Web Server は router
しか通らない形にする。
The Internet
     |
   Router -+- (PIP)FreeBSD(Web Serv)
           +- (GIP)ubuntu(NAT LVS)(PIP) 
           +- (PIP)FreeBSD(Web Serv)
           +- (PIP)FreeBSD(Web Serv)
                        :

ここで問題になるのは、ルータと各サーバの間にいるスイッチ
です。
現在 L3 スイッチを使っているのですが、見かけ上同じ IP か
らデータが返ってくることになるので、おかしくならないかと(^^;
L2 なら問題無いのかな?
まぁ、ここは L3 次第なんですが。extreme って紫のやつ使っ
てます。

色んな問題を含んでいますが、なんとか実現できないかと。

実現できないと、Web Server が Linux+tux って事になってし
まうのかなぁ。。。。と。。。。
それはなんとしてでも避けたい(笑)

ステップ5:
負荷分散も FreeBSD でやってしまいたい。
ソリューションを何にするのかが問題ですね(^^;

以上、どなたか的確なアドバイスを・・・何卒よろしくお願い
致します。

Tue, 24 Jan 2012 12:33:32 +0900 に、
TAKANO Yuji (たかのゆ〜じ) <takac...@running-dog.net> さんは書きました:

> たかのです。こんにちは。
> 
>   FreeBSD で DRS って面白そうですねぇ。
> 
>   動作したら ML なりウェブでその顛末を書いてくださると嬉しいです。
> 
> From: Shigeki Mimura <shig...@mimura.bz>さん
> > > 現在負荷分散の方法として、DSR(Direct Server Return)を実
> > > 現しようと考えておりますが、どうにもこうにも資料が見つか
> > > ら無くて実現方法がわかりません。
> > 
> > IPVSを使おうとすると、potrsのipvs自体が古くてインストールできないですね。
> > まずここでつまずきそうです。
> > ソースいじくるのもありだとは思うのですが、net/relaydを使ってな
> > んとかできないでしょうかね。
> 
>   僕もチロッと探してみたのですが FreeBSD のネタは見つかりません
> でしたが OpenBSD では動作するようですね。
> 
> http://www.undeadly.org/cgi?action=article&sid=20080617010016
> 
>   pf と relayd で動作するのかなぁ?
> 
>   relayd は ports の net/relayd でしょうかねぇ?
> 
> #ポインタのみで申し訳ありません・・。
> 
> たかの
> ---
> Contact to me.
> takachan[at]running-dog.net     http://www.running-dog.net/
> takachan[at]icmpv6.org          http://icmpv6.org/

-- 
もじもじ <mojimoji...@yahoo.co.jp>

メールによる返信