レンタルサーバー
BIG-server.com
簡単・はやい・大容量・どんな目的にもマッチするレンタルサーバー
HOME プライス お見積もり・プラン選択 お申し込み ユーザーサポート お問い合わせ
2010年3月1日の大規模なサーバーテロ攻撃に関するステートメント

■ 【ぷろじぇくと ぞうさん】 〜E-Bananaサーバ 構築日記〜

1日目 2日目 3日目 4日目 5日目 6日目 7日目
8日目 9日目 10日目 11日目 12日目 13日目 14日目
15日目 16日目 17日目 18日目 19日目 20日目 21日目
22日目 23日目 24日目 25日目 26日目 27日目 28日目
29日目 30日目 31日目 32日目 33日目 34日目 35日目
36日目 37日目 38日目 39日目 40日目 41日目 42日目
43日目 44日目 45日目 46日目 47日目 48日目 49日目
50日目 51日目 52日目 53日目 54日目 55日目 56日目
57日目 58日目 59日目 60日目 61日目 62日目 63日目
64日目 65日目 66日目 67日目 68日目 69日目 70日目
71日目 72日目 73日目 74日目 75日目 76日目 77日目
78日目 79日目 80日目 81日目 82日目 83日目 84日目
85日目 86日目 87日目 88日目 89日目 90日目 91日目
92日目 93日目 94日目 95日目 96日目 97日目 98日目
99日目 100日目 101日目 102日目 103日目 104日目 105日目
106日目 107日目 108日目 109日目 110日目 111日目 112日目
113日目 114日目 115日目 116日目 117日目 118日目 119日目
120日目 121日目 122日目 123日目 124日目 125日目 126日目
127日目 128日目 129日目 130日目 131日目 132日目 133日目
134日目 135日目 136日目 137日目 138日目 139日目 140日目
141日目 142日目 143日目 144日目 145日目 146日目 147日目
目次に戻る
第13日目:〜外伝V〜 ロードバランサーを作れ! (その4)〜

どうも、('A`)です。
家でニュースを見ていたら、東京とかで桜が開花したと伝えていました。
もうお花見のシーズンなんだなあ。('A`)の住んでいる札幌では、GW過ぎないと見れないです。
ただ、北海道では短い間ですが梅とか桜とかがほぼ一斉に咲くので、なかなか華やかですよ。

前回(第11日目)matdのインストールでエラー出まくり途方に暮れていましたが、おかげさまで
コンパイル通りました。
いきなりこのページに来た人は状況判らないと思いますので、簡単に説明しますと、、、
 ・matdのソースをココから入手
 ・コンパイル等の処理を実行するMakefileをココから入手
 ・matdで利用しているソフトウェア(libdnet-1.11、libpcap-0.9.5)をpkg_addでインストール
 ・でもmakeしたら、エラーが出まくってmakeがストップ

・・・というのが前回までの状況でした。

# make
cc -O2 -I/usr/local/include -o matd matd.c -pthread -L/usr/local/lib -ldnet
/var/tmp//ccccysVg.o(.text+0x7c7): In function `readconfig':
: undefined reference to `pcap_findalldevs'
/var/tmp//ccccysVg.o(.text+0x99e): In function `readconfig':
: undefined reference to `pcap_freealldevs'
(以下、略)

*** Error code 1

Stop in /home/admin/matd.
#

よくよくエラーを見ると「pcap_なんたら」という関数(?)が定義されていないと言ってるので、
ヘッダファイルが無いのかな、と思い調べてみましたが、存在してました。
うーん。。。

# find /usr -name dnet.h -print
/usr/local/include/dnet.h
# find /usr -name pcap.h -print
/usr/include/pcap.h
/usr/local/include/pcap.h
#

検索エンジンを使って「pcap_findalldevs」で調べてみると、こんなページを見つけました。
http://www.tcpdump.org/lists/workers/2004/01/msg00032.html
(何故かリンク先のサーバがダウンしているみたいなので、繋がらなかったら検索結果の
キャッシュを見る様にして下さい。でもたしかココってtcpdumpの本家サイトだったと
思ったんだが・・・いいのか、ダウンしたまんまで?)

This means that, when you link your program, you need to have the option

-L /usr/local/lib

in the compiler command line *before* the "-lpcap" option.



もしかして・・・-lpcapってのをMakefleの記述に追加すると動くかも。
試しにMakefileの以下の行を修正してみます。
 LIBS = -L/usr/local/lib -ldnet
   ↓
 LIBS = -L/usr/local/lib -ldnet -lpcap

んで、もう一度makeを実行すると・・・成功!
matdの実行形式(モジュール)が生成されました。

# ls -l
total 34
-rw-r--r-- 1 root wheel 602 Mar 21 03:13 Makefile
-rw-r--r-- 1 root wheel 32221 Oct 23 11:30 matd.c
# make
cc -O2 -I/usr/local/include -o matd matd.c -pthread -L/usr/local/lib -ldnet -lpcap
# ls -l
total 186
-rw-r--r-- 1 root wheel 602 Mar 21 03:13 Makefile
-rwxr-xr-x 1 root wheel 154444 Mar 23 22:59 matd
-rw-r--r-- 1 root wheel 32221 Oct 23 11:30 matd.c
#

どうも pcapのヘッダファイル(pcap.h)が /usr/include と /usr/local/include の2か所に
あって、 /usr/local/include の方を使わないといけなかったようです。
(そして -lpcap と指定して 「/usr/local/lib の方を使うよー」と明示してあげないと
取り込んでもらえない。)
しかもそれぞれの include ライブラリにあるヘッダファイルの中身が違っていた。。。

# ls -l /usr/include/pcap.h
-r--r--r-- 1 root wheel 10364 Jan 11 2007 /usr/include/pcap.h
# ls -l /usr/local/include/pcap.h
-r--r--r-- 1 root wheel 10991 Oct 15 2006 /usr/local/include/pcap.h
#

ま、なんとかロードバランサーとして必要な3つのソフトウェア(heartbeat、balance、matd)が
これで全部「インストール」できた。
山登りで例えると4〜5合目まで辿り着いたかなあ、というところです。
ちなみにmatdの使い方とかはSunOSさんのサイトのココに詳しく載っています。
私の方ではworkerとかは使わないので、動かし方は以下の方法となります。
/usr/local/sbin/matd -F -f /usr/local/etc/matd.cf
(パラメータ -F は「フォアグラウンドで実行する」事を、 -f は設定ファイルの場所を指定する
場合に記述します。)

そして /usr/local/etc に設置する設定ファイル(matd.cf)の内容は以下の通りとなります。
(ここではサーバ1: banana260.maido3.com (IP:206.223147.160、206.223.147.161)を例に
記述します。)

[/usr/local/etc/matd.cf]
proto=tcp
listen=206.223.147.161:80
output_if=vr0
targets=[相手先サーバ1のMACアドレス],[相手先サーバ2のMACアドレス]

こう書いているうちに突然気がついた。。。
('A`)「あ、あれっ・・・俺、サーバ何台確保していたんだっけ?
改めて考えると、ロードバランサーを使ったサーバ環境を構築する場合、
  ・バランサーとして動くサーバは最低2台以上
   (メインと交代用の2台が必要)
  ・バランサーから監視やアクセス要求を受けるサーバは最低2台以上
   (振り分け機能の確認という意味では2〜3台は必要)
必要となります。
そして、('A`)の手元にあるサーバは・・・3台!(9日目の日記を参照)
1台足りないよぉぉぉぉぉ。
急いでサーバを追加確保して、FreeBSD 6.2-RELEASEに再インストールです。
(実はまだ確保作業中だったりします(泣 ドジッてすみません。)


こんな時に限って鯖子J( 'ー`)し が、「今日の日記は?」と覗きに来ました。
('A`)の方ではmatdの作業内容と日記の原稿を書くのに集中特化していたのですが、
やがて、、、
J( 'ー`)し:「フォアグラウンドって何?」
('A`):「え、ちょっと今は日記を書いているんだから、後で・・・」
J( 'ー`)し:「だから何?これじゃ日記読んでも判らないわよ!説明しなさい。」
('A`):「うー、あー、、、」

('A`)えーと、先ほどmatdの動かし方のところで「フォアグラウンド」という言葉が
出てきましたが、馴染みが無いかもしれないのでここで説明しますね。
(本当は用語辞典とかの方が詳しいと思うんだけど・・・)


[プロセスとフォア/バックグラウンドについて]
サーバではいろんなソフトウェアやコマンドが動いています。
(例えばqmailとかApacheなどのソフトウェア、あるいはcpコマンドやfindコマンドなど)
この1つ1つの「処理」をプロセスと言います。

プロセスには大きく分けて「フォアグラウンド」と「バックグラウンド」の2つがあります。
('A`)が認識している相違点としては、「フォアグラウンド」とはユーザが操作可能な状態
(例えばSSHの画面から入力が受付できる状態、など)、「バックグラウンド」とはユーザ
操作ができない状態(例えばSSHの画面からそのプロセスに対しての入力とかが一切
できない状態)という事が挙げられます。

プロセスをフォアグラウンド/バックグラウンドのどちらでで動かすかの切り替えは
以下のコマンドで実現できます。
(例)SSHの画面から以下のコマンドを実行する。
  (その時のプロセスIDが777とします。)
   ls -R / > /home/list.txt
これを実行するとコマンドの実行が終了するまでSSHのプロンプトは出ないままの
状態となります。
このプロセスをバックグラウンドに切り替えする場合には、まずctrlキーを
押しながらzキーを2回押します

すると画面上に「Suspended」という表示が出ます。この時該当のプロセスは
中断状態になります。
そこで続けて画面上から bg と入力してEnterキーを押すと該当のプロセスは
バックグラウンドされ実行が再開されます。
(画面上には最後に & の文字がついた形で最初に入力されたコマンドが
表示されます。)
# ls -R / > /home/list.txt
^Z
Suspended
# bg
[1] ls -R / > /home/list.txt &
#
psコマンドでプロセス一覧を見ると、該当のプロセス番号が判ります。
777 ?? Is 0:00.04 ls -R / > /home/list.txt
このプロセスを再びフォアグラウンドに戻す時には
fg 777 (777はプロセス番号)
と入力すると、フォアグラウンドに戻ります。


J( 'ー`)し:「ふーん・・・」
('A`):「どう、判った?」
J( 'ー`)し:「まあ他の人が判るんだったらいいわ。」
('A`):「おいおい、せっかく説明してあげたのに、、、」
J( 'ー`)し:「そうだ、サポートの方にMySQLの質問が多く来ているの。私うまく
      答えられないから、代わりに答えてあげて。」
('A`):「えーーーーー」

自分('A`)のチョンボのせいでサーバ確保とか追加作業が起きている中で、更に
振られるとは・・・
次回はロードバランサーのお話ができる様に努めますが、もしかすると間に合わない
かもしれないので、その時には先ほどリクエストのあったMySQLについてのお話に
なるかも、かも・・・(うわーん!)

それでは、また。

12日目に戻る。   14日目に続く。

1日目 2日目 3日目 4日目 5日目 6日目 7日目
8日目 9日目 10日目 11日目 12日目 13日目 14日目
15日目 16日目 17日目 18日目 19日目 20日目 21日目
22日目 23日目 24日目 25日目 26日目 27日目 28日目
29日目 30日目 31日目 32日目 33日目 34日目 35日目
36日目 37日目 38日目 39日目 40日目 41日目 42日目
43日目 44日目 45日目 46日目 47日目 48日目 49日目
50日目 51日目 52日目 53日目 54日目 55日目 56日目
57日目 58日目 59日目 60日目 61日目 62日目 63日目
64日目 65日目 66日目 67日目 68日目 69日目 70日目
71日目 72日目 73日目 74日目 75日目 76日目 77日目
78日目 79日目 80日目 81日目 82日目 83日目 84日目
85日目 86日目 87日目 88日目 89日目 90日目 91日目
92日目 93日目 94日目 95日目 96日目 97日目 98日目
99日目 100日目 101日目 102日目 103日目 104日目 105日目
106日目 107日目 108日目 109日目 110日目 111日目 112日目
113日目 114日目 115日目 116日目 117日目 118日目 119日目
120日目 121日目 122日目 123日目 124日目 125日目 126日目
127日目 128日目 129日目 130日目 131日目 132日目 133日目
134日目 135日目 136日目 137日目 138日目 139日目 140日目
141日目 142日目 143日目 144日目 145日目 146日目 147日目
目次に戻る

いま一番お得なページ! 解析
Copyright (C) 1997-2010, BIG-server.com. All Rights Reserved. server@maido3.com
レンタルサーバー BIG-server.com
Powered By Maido3.com