Home カウンタ

Tips&Hints

INDEX

ネットワークの設計

我が家のネットワーク構成

以下の図が我が家のネットワーク構成です。クラスCでネットマスク255.255.255.128を使用しています。192.168.1.2-16をDHCP用に割り当て、192.168.1.30以降を固定IPに割り当てています。前のLinuxマシーンが192.168.1.30でした。(現在休憩中)
インターネットに対してはルータ(NTT-MEのBA800Pro)を通して繋がっています。NTT西日本Bフレッツ ファミリー100でASAHI-NETをプロバイダとして使用しています。回線スピード(下り 20-30Mbps、上り 10-15Mbps程度です)

IPアドレスの割り振り(IPv4)

IPアドレスの選び方ですが、通常ルータかサーバでインターネットとイントラネットを分離しているはずですのでプライベートアドレスを使用するのが普通です。プライベートアドレスとは、直接インターネットに繋がっていない環境(私有地の敷地内のようなものです)で自由に使えるアドレスです。プライベートアドレスはクラスA、B、Cとありますが、せいぜい数台しかネットワークにつながないのであればクラスCで問題ありません。(クラスCは通常254台まで接続できます。)
クラスCのアドレスの場合192.168.X.YのXを自由に決められますが、0と255は使用できないので私の場合は192.168.1.Yとして使用しています。(ルータなどの初期値も192.168.1.1が多いのでこの値が便利です。)
次にネットマスクを決めます。クラスCの場合最低24ビットでこの場合、最大254台接続できます。しかしそんなに必要ないので私の場合はネットマスクを25ビットとしています。(結果として接続台数は126台に制限されます。可能なら126台つないでみたい。でもそんなに買えないぞ) 最終的に我が家のIP addressは192.168.1.0/255.255.255.128となります。(別の表記では192.168.1.0/25とも記述されます。)使用できるのは192.168.1.0と129.168.1.127を除いて192.168.1.1から192.168.1.126までの126個分です。
ネットマスク25ビットとは255.255.255.128のをバイナリ(1と0)で表記して全ての1の数を数えたものです。IPv4は全部で32ビットですので(8ビットごとに区切られている)、8x3+1=25となります。

126個の内、192.168.1.1をルータに割り振り、192.168.1.2から192.168.1.16までをルータが管理するDHCPに割り振りました。固定用として192.168.1.30以降を使用するようにしています。

Top

インターネットからアクセスのチェック

最終的にインターネットから実際、ホームページが見えるのか・メールが届くかどうか心配な場合があります。自宅(ルータ内のイントラネット)からはアクセスできるのだけど。という場合、修正するたびに何らかの方法でインターネットに入りテストするのは大変ですね。私の場合以下の方法で簡単な試験をします。勿論これだけでは完璧ではありませんが、いくつかの問題は解決できます。

ポートが開放できアクセスできるのか

これにはルータの設定やApache/FTP/sendmail等のサーバがすべて正しく動いていないといけません。例えばWebの場合はポート:80が開放されてアクセスでき、しかもそれに対してレスポンスが必要です。便利なツールはddo.jpというダイナミックDNSをサポートするプロバイダにあります。私はホームサーバを立ち上げるためにいくつかダイナミックDNSサーバのサイトを使っています。ddo.jpもその一つです。その他に(英語ですが)No-IPも使っています。日本語のサポートが良い方はddo.jpをお勧めします。

《サーバプロファイル》という機能を使うとインターネットからのアクセスをチェックします。以下に示すように(詳細を見る場合は画像をクリックしてください)、いくつかのポートをスキャンしてくれます。私の場合はWeb(80)とメール(25)を空けているように以下のようになりました。(個人的な情報は消してあります。)

Top

ファイルのコピー

知っておくと便利なのものとして、ファイル(複数のファイル・ディレクトリを含む)をある場所から別の場所へコピーする方法です。単純にコピーすると日付やオーナ・グループ、ファイルの属性(wrx)が変わってしまいます。今回旧マシーンから新マシーンへのデータのコピーなどに使いました。

Tips#1

古いマシーンのコピーが必要なディレクトリーをNFSでexportします。これを新しいマシーンでNFS mountすると新しいマシーン内で両方のファイル・ディレクトリーが見えます。また、rootで作業していてもマウントされたディレクトリーや読み出し専用にすることができ、間違って消してしまう心配もありません。

Tips#2

tarコマンドを上手に使うと一行でコピーがすんでしまいます。コピーしたいディレクトリーへ行き、次のように打ち込みます。それ完了です。(通常ユーザでの実行も可能ですが、自分がアクセスできないファイルが含まれる場合はroot権限で実行した方が良い場合もあります。)

# tar cvf - <copy元> | (cd <コピー先のdirectory>; tar xvf -)
<例>
# cd /old/home/
# tar cvf - * | (cd /home/myname/backup/ ; tar xvf -)

最初のtar cvfのパラメータを説明します。 cはcreateの意味でarchive fileを作成します。すなわちコピーしたいファイル群をまとめる作業をします。vはverboseのことでコピーしているファイル名をstderrに表示します。fはarchiveファイルの指定ですが、"-"を指定していますのでstdout、すなわちこの場合は"|"(パイプ)に出力するということです。これがUNIXの便利なところです。次のパラメータ"*"はそのディレクトリーにあるファイル全部ということです。

"|"(パイプ)は最初のに作られたarchive file情報をファイルを実際作らずに、次のコマンドに渡す役割をします。次のコマンドは"cd"と"tar"2つを実行するので( )で括られています。

最初のcdでコピー先へ移動します。移動先のdirectoryを指定します。

最後のtar xvfのパラメータの説明をします。xはextractの意味でarchive fileから個々のfile/directoryを取り出す作業をします。vはverboseで、コピーされたファイル名をstderrに表示します。fはどのarchive fileを使うかを指定するのですが、"-"を指定しているのでstdin、すなわち"|"から受け取るということを示します。通常パラメータxvfやcvfは-を最初に付けるのですが、tarというコマンドはそういうルールの出来上がる前のコマンドなので、そのような形式も許しています。

コピーが始まるとはじめのtarがコピーしているfile/direcory名を表示し、その後2つ目のtarがコピーされたfile/directory名を表示しますので、同じ名前が2つずつ表示され行きます。

stdin/stdout/stderrや"|"(pipe)とは何ぞい?と思われる方はUNIXの書物を参考にしてみてください。この例は一行で書きましたが、実際には3つのコマンドから成り立っています。以下のように行っても同じことができます。

# cd /old/home/
# tar cvf /tmp/archive1 *
# cd /home/myname/backup/
# tar xvf /tmp/archive1
# rm /tmp/archive1

archive1のような暫定的なarchive fileを作らずに行う方法が上記の方法です。確かに複雑なようですが、一度覚えてしまうと結構便利な使い方です。

Top

NFSを利用したファイル・ディレクトリの共有

NFSを使うとLinux(UNIXマシーン間でのファイルの共有を簡単に行えます。先ず共有させるマシーン側で次の作業を行います。

ファイルを共有させる側のPCでの作業

先ず共有させるマシーン側で次の作業を行います。


Webminの「起動およびシャットダウン」の表示

nfsを選択したところ

Webminを使い、「起動およびシャットダウン」から《nfs》のサービスを選択する。それを開始する。起動時にいつも開始する場合はそれも選ぶ。

次に何を共有させるか設定します。「NFSエクスポート」へ行きます。そこで「新規エクスポート」の追加を選択します。以下の例は/homeを192.168.1.Xの中で(実際には192.168.1.0から127まで)開放する指定です。マシーンのhost名を直接指定することも可能です。セキュリティへの配慮(どの範囲まで開放するのか、書き込みは許すのか等)は忘れないように。

参照するPC側での作業

あらかじめmountすべきdirectoryを作成します。例えば/another-homeというものを作成します。ここへ共有が許された別マシーンの/homeをmountすることになります。


nfsを選択し「マウントを追加」のボタンを押す

マウント・ディレクトリ、NFSホスト名、NFSディレクトリを指定する

マウント・ディレクトリ(例 /another-home)、NFSホスト名(<hostname>のところに正しいhostnameを入れる)、NFSディレクトリ(例 /home)を指定する。こちら側でも読み取り専用でマウントすることもできる。「今すぐマウントする」を選択するとエラーがなければマウントが実行される。cd /another-homeを実行してファイル群が見えればマウントされていることになる。

Top Home