実験用のサーバでLVS+DSRを試す。

今回使ったのは、
HW:Thinkpad T23 3台
OS:Fedora Core 5


各サーバのIPアドレス
lvs
IP:192.168.0.40
仮想IP:192.168.0.41


app00
IP:192.168.0.50
ループバックIP:192.168.0.41


app01
IP:192.168.0.51
ループバックIP:192.168.0.41


lvsの設定
#yum install ipvsadm
#ifconfig eth0:0 192.168.0.41 netmask 255.255.255.0
#echo "1" >/proc/sys/net/ipv4/ip_forward
/etc/sysctl.confの以下の行を設定

net.ipv4.ip_forward = 1

#ipvsadm -A -t 192.168.0.41 -s rr(ひとまずラウンドロビン
#ipvsadm -a -t 192.168.0.41 -r 192.168.0.50 -g
#ipvsadm -a -t 192.168.0.41 -r 192.168.0.51 -g
#/etc/init.d/ipvsadm save
ここで/etc/init.d/ipvsadmの起動順序を変更
/etc/init.d/ipvsadmの5行目

#chkconfig - 08 92

となっているのを

#chkconfig - 11 89

に変更。
#chkconfig --add ipsvadm
#chkconfig ipvsadm on


app00の設定
#yum install arptables_jf
#arptables -A IN -j DROP -d 192.168.0.41
#arptables -A OUT -j mangle -o eth0 -s 192.168.0.41 --mangle-ip-s 192.168.0.50
#/etc/init.d/arptables_jf save
#chkconfig --add arptables_jf
#chkconfig --arptables_jf on
#ifconfig lo:0 192.168.0.41 netmask 255.255.255.255


app01の設定
もapp00と同様に設定
#arptables -A OUT -j mangle -o eth0 -s 192.168.0.41 --mangle-ip-s 192.168.0.50
の行だけ
#arptables -A OUT -j mangle -o eth0 -s 192.168.0.41 --mangle-ip-s 192.168.0.51に変更


たぶんこんな感じだったと思う。


以下、IEからアクセスしたときのヘッダ(1回目)
送信側

GET / HTTP/1.1
Accept: */*
Accept-Language: ja
Accept-Encoding: gzip, deflate
If-Modified-Since: Sun, 04 Mar 2007 02:18:23 GMT
If-None-Match: "397689-6a-7480b9c0"
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Host: 192.168.0.41
Connection: Keep-Alive

受信側

HTTP/1.1 200 OK
Date: Sun, 04 Mar 2007 06:24:24 GMT
Server: Apache/2.2.2 (Fedora)
Last-Modified: Sun, 04 Mar 2007 02:17:28 GMT
ETag: "327825-6a-71397e00"
Accept-Ranges: bytes
Content-Length: 106
Connection: close
Content-Type: text/html; charset=UTF-8

IEからアクセスしたときのヘッダ(2回目)
送信側

GET / HTTP/1.1
Accept: */*
Accept-Language: ja
Accept-Encoding: gzip, deflate
If-Modified-Since: Sun, 04 Mar 2007 02:17:28 GMT
If-None-Match: "327825-6a-71397e00"
User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322)
Host: 192.168.0.41
Connection: Keep-Alive

受信側

HTTP/1.1 200 OK
Date: Sun, 04 Mar 2007 06:24:50 GMT
Server: Apache/2.2.0 (Fedora)
Last-Modified: Sun, 04 Mar 2007 02:18:23 GMT
ETag: "397689-6a-7480b9c0"
Accept-Ranges: bytes
Content-Length: 106
Connection: close
Content-Type: text/html; charset=UTF-8

Server: Apache/2.2.2 (Fedora)とServer: Apache/2.2.0 (Fedora)とあるので、分散されてるのが分かります。


今後いろいろおもちゃ作って遊ぶためにも下回りを多少勉強したいと思いたったので年末あたりに実験用のThinkpadを6台買った。なので結構いろんな遊びが出来るようになった。VMWareとか使って遊ぶのもいいけど、人間1度に覚えられることには限りがあるので、トラブルは出来る限り減らしたほうが勉強できます。(私のような素人には)
ちなみに購入したThinkpadはRefreshed PCのT23。今なら結構モノも良くて1台3万弱で手に入ります。それを6台買って一部メモリ追加しても20万弱でした。趣味の環境としては贅沢かもしれないけど、下手な教材とかセミナー受けるよりはいい買い物と信じている。
自分用のメモを残しておきます。
負荷分散とか自分でやるのは絶対無理とか思ってたけど、これぐらいで出来るなら何とかなりそう。