メイン

サーバ構築 アーカイブ

2005年11月21日

自宅サーバ環境

正確には、自宅サーバではなく、実家サーバ(^^;なのですが、要は狭い我が家ではなく、実家に設置して、親のやっている事業のホームページもホスティング(?)することで利害関係の一致が図れました。(ほんとか?)

しかも、実家はBフレッツ環境なので、回線が我が家より断然高速!
とにかく「一切お金をかけずにサーバを立てる」というのを目標に多少勉強なりしてみました。始めはサーバ立てるなんてあまりにもハードル高すぎ!!と思って手が出しづらかったのですが、PC買い替え時に余ったノートPCを売り払おうと思っていて、「ん?待てよ。使えるかも?試すだけ試してみるか。。」と適当にLINUXをインストールしたのが始まりでした。そして実家はなぜそんなことになってるのかは分かりませんが、ルータが二重構造で表にはGATELOCKというセキュリティが非常に強固なものを使っていたので、これも活用させて頂きました。(とはいえ、始めはルータが二重構造とは知らず、ポートを開けても全然外部からつながらなくて非常に苦労しました。。)ちなみにダイナミックDNS(hn.org)利用して運営しています。 (今は固定IP+独自ドメインとなっている

独自ドメインはValueDomainで取得。安くて管理しやすいので非常にお勧めです。

サーバ用マシン

 ・場所:実家
 ・PC:余っていた古いノートPC(Mebius PC-GP1-C7H
 ・CPU:モバイルAMD Athlon XP プロセッサ1400+(1.4GHz相当)
 ・メモリ:512MB(256MBから増設)
 ・HDD:40GB
 ・OS:Linux(FedoraCore3)

インターネット接続環境

 ・Bフレッツ
 ・非固定グローバルIPアドレス(DDNS利用)
 ・固定IPアドレス(独自ドメイン使用→ValueDomain
 ・ルーターはIPマスカレード機能を利用して
  ①HTTP
  ②FTP
  ③SSH
  ④SMTP
  ⑤POP3
  ⑥IMAP
  などのポートを外部に対して開放
network.gif

主なサーバアプリケーション

 ・Apache(WEBサーバ)
  →mod_perlを利用するため、Apache1.3xとApache2.x系の合わせワザを使ってます
   逆プロキシというのをやってます(この辺もまたおいおい・・・)
 ・VSFTP(FTPサーバ)
 ・Postfix(メールサーバ)
 ・Xoops(サイト構築ツール)
 ・MovableType(ブログ構築ツール)
 などなど

このへんのサーバ構築方法などは、いずれアップしていきたいと思います。

ちなみにクライアント側(自宅側)は・・・
■マシン
 場所:自宅
 PC:DELL DIMENSION8400
 CPU:Pentium4(3.2GHz)
 メモリ:1GB
 HDD:160GB+40GB(外付け)
 OS:WindowsXP

■インターネット接続環境
 ・ADSL(12MB/s)←実質7MB/sくらい
 ・Bフレッツ ←実質70MB/sくらい

■主なアプリケーション
 ・TeraTermPro (SSH接続)
 ・NextFTP(FTP接続)
 ・MIFES (エディタ)
 ・PhotoshopElements 3.0 (画像編集)
 ・PremierElements1.0 (動画編集)

といったような環境です。


2006年2月 2日

自宅サーバの場合1ヶ月の電気代


自宅サーバ(うちの場合実家サーバ)って基本的に24時間電源入れっぱなしですから、1ヶ月でどんくらいの電気代になっているかとかちょっと気になりますよねー。(本当は実家だから別にどうでもいいっちゃーどうでもいいけど)

で、調べてみると、こんなページを発見しました。
日経パソコン:「パソコンを起動したままで1カ月の電気代は? 」


メールがTimeoutでサーバに届かない(Postfix)

うちの実家サーバ(LINUX:FedoraCore3)の場合、親がメールを独自ドメインで使いたい!と言い出したため、Postfixをインストールして、メールサーバを立てているのですが、実はKazuはメールサーバなんて当然今まで立てたこともなく、知識もほとんどなかったので、いろいろ問題が出たりしています。

今までに起こった問題と解決手段

1.添付ファイル(というより、メール1通の全体)が10MB以上あると送れない
 →/etc/postfix/main.cf内のmessage_size_limitを102400000(100MB)に増やした(増やしすぎ!?)
2.AOLドメイン宛てのメールが送れない
 →ダイナミックDNSを使ってサーバを立てていたので、例えばAOLは固定IPからの接続以外を拒否するらしく、こればっかりは固定IPにしないと無理?ということで先日固定IPを導入した
3.特定の相手からメールが届かない
 →送ったはずだ、いや、届いていない、というのがあったようで、これは原因がなかなかつかめなくて苦労した(以下に詳細をメモ)

特定の相手からメールが届かない

3に関してはサーバのログを調べてみると、
postfix/smtpd[XXXX]: timeout after DATA from XXX.XX.XX[XXX.XXX.X.XX]
postfix/smtpd[XXXX]: disconnect from XXX.XX.XX[XXX.XXX.X.XX]
のようなものが大量に出ていた。 何?これ。とググってみると、Postfixのメーリングリストで同じ症状に見舞われている方を見つけた。その方の場合はMTUを変えることで解決した、と書かれてあった。

で、MTUってなーに?(笑 ・・・こんなやつがサーバ立ててていいんだろうか。。))

ちょっとだけお勉強タイム。
まずは、IT用語辞典 e-wordsより

MTUとは

通信ネットワークにおいて、1回の転送で送信できるデータの最大値を示す値。送信する側が接続ごとに値を設定できる。送信側ホストが受信側ホストより大きいMTUを持っていた場合は、送信側が受信側のMTUに従ってデータを再分割して送信する。エラーデータの再送信はMTUに指定されたサイズを単位として行われるため、劣悪な通信環境ではMTUを小さい値に設定した方が転送速度が速くなり、逆に安定した通信環境では制御信号が少なくなる分MTUの大きい方が転送速度が速くなる。MTUの単位はバイトで、Ethernetでは1500程度、電話回線によるダイヤルアップ接続では576程度が最適とされる。

それと、メールとどう関係あんの?

もう一つサイトを見つけた。@ITの記事

ネットワークで通信を行う場合、(通常は)一度に送信可能なデータ(パケット)のサイズには上限がある。例えば、TCP/IPプロトコルで利用されているIPプロトコルでは、1つのIPパケットでは最大64Kbytesまでしか送信できない(IPv4の場合)。しかし、このような大きなサイズのIPデータを1つのパケットで送信することのできる物理ネットワーク媒体はない。例えばイーサネット(および相互互換性を持つ無線LANなど)では、1パケット(1フレーム)のサイズは最大1500bytesだし、FDDI(光ファイバ)では4352bytesというのが普通である。このように、一度に送信することができるデータのサイズを「MTU(Maximum Transmission Unit)」といい、ネットワークのプロトコルや媒体ごとに固有の値がある。

そして、その許容可能なパケットサイズを超えたデータが来ると、「フラグメンテーション(パケットの断片化)が発生してパケットを組み立てなおす必要が出てきて、その分時間がかかってログにあったような「timeout after DATA from XXX.XX.XX[XXX.XXX.X.XX]」というのが発生する、ってことらしい。

なるほど。うちの実家サーバの場合、光回線でPPPoEなのでこれを試してみる価値はあるかも?と考え、一応MTUを最適化させるために以下を試してみた。

まず、サーバ側の設定は?

ifconfigコマンドでeth0のネットワークインタフェースを調べられる
[root@linux ~]# ifconfig
eth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx
inet addr:192.168.253.103 Bcast:192.168.253.255 Mask:255.255.255.0
UP BROADCAST RUNNING MULTICAST MTU:1500 Metric:1
(省略)

1500がデフォルト値のようだ。

PingでMTUをサイズを調査する

MTUサイズは、ICMPヘッダ(8バイト)とIPヘッダ(20バイト)を含めた値なので、1500からこれらヘッダのサイズ28バイトを引くと、1472バイト。これを使って外部ネットワークから試してみる。

C:\Documents and Settings\user>ping -f -l 1472 kazuizm.com



Pinging kazuizm.com [202.171.147.53] with 1472 bytes of data:



Reply from 192.168.1.2: Packet needs to be fragmented but DF set. ・・・エラー応答

Packet needs to be fragmented but DF set.

Packet needs to be fragmented but DF set.

Packet needs to be fragmented but DF set.

Ping statistics for 202.171.147.53:

Packets: Sent = 4, Received = 1, Lost = 3 (75% loss),

Approximate round trip times in milli-seconds:

Minimum = 0ms, Maximum = 0ms, Average = 0ms

やっぱダメじゃん!断片化してますよ!って。

パケットのサイズを小さくしながら試していくと・・・

C:\Documents and Settings\user>ping -f -l 1424 kazuizm.com

Pinging kazuizm.com [202.171.147.53] with 1424 bytes of data:

Reply from 202.171.147.53: Destination protocol unreachable.
  ↑応答あり(ICMPパケットはルータではじいているのでこれでOK
Reply from 202.171.147.53: Destination protocol unreachable.
Reply from 202.171.147.53: Destination protocol unreachable.
Reply from 202.171.147.53: Destination protocol unreachable.

Ping statistics for 202.171.147.53:
Packets: Sent = 4, Received = 4, Lost = 0 (0% loss),
Approximate round trip times in milli-seconds:
Minimum = 0ms, Maximum = 0ms, Average = 0ms
1424バイトまではpingが通ることからMTUサイズは1424+28(ICMPヘッダ+IPヘッダ)で1452バイトとなる。 どうやら、PPPoE(xDSLや光ファイバ・インターネット回線などで使われているプロトコル)などが使われていると、それらのプロトコルの分だけ、MTUサイズが制限されることになる、ということらしい。

この1424バイトというのをMTUの値としてLinuxのサーバ側に設定する

LINUXサーバ側でMTU値を設定

MTU値の設定はifconfigコマンドでできる。

[root@linux ~]# ifconfig eth0 mtu 1452

[root@linux ~]# ifconfig

eth0 Link encap:Ethernet HWaddr xx:xx:xx:xx:xx:xx

inet addr:192.168.253.103 Bcast:192.168.253.255 Mask:255.255.255.0

UP BROADCAST RUNNING MULTICAST MTU:1452 Metric:1
(省略)

メールが届くか確認

早速/var/log/maillogを見てみると、今までtimeout after DATA from~となっていた接続元ドメインからのメールが無事届いた!

めでたしめでたし


2006年2月 4日

HAMMERNODE(ダイナミックDNS)の閉鎖

何度か書いていたとおり、このサイトは自宅(実家)のサーバで、IPアドレスが固定じゃなかったので無料のダイナミックDNSサービスを利用して運用していました。(固定IPにしてからももちろんURLは変えたくないので継続して使ってます。

で、そのDDNS(ダイナミックDNS)サービスはHAMMERNODE(HN.ORG)を使っていたのですが、ここがなんと2006年2月15日で閉鎖されるんだとさ!

ということは、当然このブログのURLも継続できなくなるということだ。えらいこっちゃ!どくろ
なんでえらいこっちゃかっていうと、このブログのURLを見て分かるとおり、「http://kazulog.hn.org/」というのはこのHN.ORGからサブドメインをもらって作ってるからです。
2006/2/18追記:2006/2/17で打ち切られ、Hammernodeは完全閉鎖となりました。当サイトは独自ドメインでの運営を開始しました。)

URLが変わると、何が大変かって:
①通常のサイト移転と違って、URL転送ができないので、マジで2/15をもってつながらなくなる
②Googleやその他検索エンジンに登録したのが意味なくなる(どっちみちなぜかGoogleからは消されているようだが。。)
③これまでトラックバックや、リンクを張っていただいた方々のページからはリンク切れになってしまう
どくろ

これってマジでまずくないですか?どうすりゃいいの!?ヽ(`△´)/


2006年4月 4日

CentOS4.2でLAN内(社内)用サーバ構築の手順

自分とこのサーバ(実家サーバ)はFedoraCore3で構築しているが、仕事でCentOSを使ってLAN用サーバ(メールサーバFTPサーバWWWサーバ内向けDNSサーバファイルサーバ)を構築する機会に恵まれたのでせっかくなので手順をメモっておいた。

基本的にはFedoraCoreシリーズと設定ファイル等ほとんど同じなので、構築自体はたった数時間で終了。
以下、メモ。


2006年6月12日

dovecotでIMAPの日本語検索に対応させる

うちのサーバは現在メールサーバはFedoraCore3で、送信用にPostfix、受信用はdovecotを使用してpop3でもimapでも対応できるようにしているが、どうやらdovecotの場合imapで日本語検索が行えないらしい。
自分自身はimapを使用していなくてpop3なので、しかも日本語で本文検索とかあまりしないほうだったので気付かなかった。

自分で試してみたところ、以下のような問題があり。


2006年7月 5日

FC3でPHP4をPHP5にアップデート

FedoraCore3はデフォルトではPHP4です。FC4からはPHP5なのだけど、今まではPHP4でいいや、と思って使ってました。
けど、最近「オブジェクト指向」というものを避けて通れなくなってきていて、PHP4でもオブジェクト指向は取り入れられているが、PHP5ではよりオブジェクト指向らしくなっていて、書店で本を買ってもほとんどPHP5が前提になってきている。
というわけでPHP5にアップデートをしようと思い始めた。

でも気になる点としては、やはりどこでも言われているように、「既存のPHPアプリケーションが動作しなくなる場合がある」というあたりに関してかなりためらいがあった。けど、調べてみた限りでは、PHP5になっても既存のPHPアプリケーションでClassの定義など使ってなければ多分問題ないはず!という結論に達して、イチカバチカのアップデートに踏み切った。

ソースから入れるのはなんとなく嫌だったので、yumでインストールできないか調べたら、ありました。


2006年8月23日

新サーバー投入計画

最近UPS(無停電電源装置)のおかげでだいぶ実家に置いてあるサーバがいきなり落ちるってことはなくなってるんだけど、たまーに静かに死んでるときがある(苦笑)。
実家のサーバの設置状況はこちら

親は完全にこのサーバに依存した生活になっている(メールと多分あまり気付いていないところではDNS)けど、Kazuの場合はブログを更新する時くらいしかサーバの生存状況をあんまし気にしていなかったりする。

だので、たまに親から仕事中でも「メールがつながんないんだけど!」とかってクレームの電話がかかってきたりする(‥;)

一応原因を切り分けてサーバがただ単に「静かに死んでいる」状態なら、「あー、電源入れ直しておいてー」と言う感じで終わるんだけど、よくよく考えたら、サーバが死んでるときにGoogleのボットなんかが来たら、もうないサイトだって判断されてへたしたらインデックスから消されかねない(まあそこまですぐには消されないと思うけど)。

で、サーバが落ちたときのログを見てみると、、バリバリ検索エンジンのロボットがことごとく巡回しにきている真っ最中で落ちていたことが判明。。

そもそも結構このサーバはスペックが低いし、HDDの容量もあまりなくなってきてるのに親はガンガン何十MBもあるメールを数百通溜め込んでたりするし、、

というわけでそろそろサーバ更改しようかとたくらみ中。

まずは安いPCを探すかぁ。でもこれ、実際に新サーバに切り替えるまで結構な作業と労力が必要。だって実家は遠いし、車は手放したし!
自分ところで設定して、実家に宅急便でサーバ送るか?
んで、あとは電話で指示!

もう少し考えよう・・・


2006年9月 9日

FedoraCore5のインストールとパーティション分割

次期新サーバ候補のPowerEdge SC430にはFedoraCore5(x86_64版)を入れてみてますが、もうかれこれ5回くらいインストールし直してます( ̄Д ̄;;

※FC5のインストール自体はあちこちにスクリーンショット付きで出ているので
手順とかは割愛!
ダウンロード元は:ftp://ftp.riken.go.jp/Linux/fedora/core/5/x86_64/iso/
Bフレッツさまさまで、合計3GB以上あるのにあっさり終了。
CD-Rに焼くのはフリーソフトの「CD Manipulator」を使うと簡単・高速にISOイメージが焼ける。
その他では同じフリーの「DeepBurner Free」も確実だし、楽なのでお勧め。

こんな画面で始まります。
05.gif


2006年9月10日

FC5のx86_64版のbindインストール

FedoraCore5のx86_64でひたすらサーバ構築を頑張ってますが、DNSサーバの構築ですこーし躓いたので、メモ。 bindのバージョン自体は同じでもx86_64版では「caching-nameserver」を入れようとすると「Conflict」エラーが出る。
Transaction Check Error: file /etc/named.conf from install of caching-nameserver-7.3-5.FC5 conflicts with file from package bind-9.3.2-20.FC5

もともとの手順はお馴染みのFedoraで自宅サーバ構築外部/内部向けDNSサーバー構築(BIND)です。

調べてみるとcaching-nameserverはx86_64では「bind-config」というパッケージに変わったらしい。
yum install caching-nameserver でエラー

ということで、一旦named関連を再度全部消してから、再びbind→bind-config→bind-chrootの順に入れ直した。


 1  |  2  | All pages

RSS

Add to goo
Add to google

はてなRSS
feedpath
Subscribe in Bloglines
Subscribe with livedoor Reader




Tag cloud

お勧め!