マシン準備 |
上にも書いたが、今回使用したマシンは、NECのExpressである。公式にはRedHat9は公式には動作保証
OSとして書かれてはいないはずである。
このマシンの詳細をかくと以下のとおり。ただし、構成は標準構成ではない(中古のため)。
それ以外の構成は、基本的にそのまま特に変更しないこととした。本当はファンノイズなど、弄りたい ところだが、今回は設置場所を変更することで、音については触れないことにした。 |
OS準備 |
OSは、RedHat9。RPMというものは、個人的には好きではないのだが、ここんところRedHatばかり 触って居たので、いきなり違うのにすると、慣れるまで時間がかかるので(システム的な問題で)、 今回もRedHatにした。カーネル等は、いずれにしてもあとでバージョンアップすることとする。 |
OSインストール |
OSのインストールは、カスタム設定で、インストールする。特に気にすることはないとおもうが
Apacheなども取り敢えずインストールしてしまう。Apacheあたりは、あとで一度新しいものを
入れ直す羽目になるが、ひとまずここでは気にしないことにする。 パーティションの設定はそれぞれ想うところがあるだろうが、私は個人的な趣味で、 以下のような構成にした。/homeについては、LinuxのソフトウェアRaid0を利用した。
ここでの数字は、現在のdfを参考にした数値であり、fdiskで設定する数字とは 若干のズレがある。また、/dev/md0は、/dev/hda2と/dev/hdv1から構成されるRAID0デバイス。 ここでの数値等については、使用する環境に応じてさまざまだろうし、それぞれの思いも あるだろう。私は、古き0.xx時代のLinuxの記憶が根強くあるためこんな感じになっている。 (まだFDインストールだった(笑)) ・/は、/varが入るので、少々大きめにした(/varにはメールスプールがはいる) ・/homeは、アカウントユーザ領域であり、ファイルストレージ的な使い方を今回はするので、少々多めの領域を確保している ・/usrは、システムプログラム領域 ・/usr/local/workは、ローカルのワーク領域。今回はバックアップ処理等で使用する予定 ・/optは、option領域。DBまわりはココにいれる(今回は予定がないが一応) ・swapは、言わずとしれたスワップ領域でメインメモリが640MBなので適当に1GB程度 その他、Boot Loaderは、今回はGRUBを使用した。 |
カーネルコンパイル |
RedHat9をインストールした状態でのKernelは、2.4.20-8である。このままではいろいろと不都合もあるし、
なにより、ルータ機として使用するために、カーネルモードPPPoEを実装させなければならない。ということで
http://www.kernel.org/から新しいカーネルをダウンロードしてくる。
今回使用したカーネルは、設定時点最新の2.4.23(2.4.22には致命的なバグがあった)。 ファイルをダウンロードしたら、/usr/src/ 配下に展開する。既に、/usr/src/linux-2.4というシンボリックリンクが ある場合は削除しておく。
続いて、PPPoEであるということを明示するために、Makefileに一行追加する。
4行めのEXTRAVERSION=を、EXTRAVERSION=-kpppoeに修正する。 さらに、その他の設定を行うため。
を実行する。今回設定した項目は以下のとおり。
RAIDの設定は、md0のソフトウェアRAIDのため。カーネルモードPPPoEを使用するための設定は Network device supportに記述してある。また、今回使用したサーバがExpress5800/Rc-1のため、 ATA/IDE/MFM/RLLの設定でVIA82Cxxxをサポートするように設定している。これをやらないと、 ディスクアクセスのパフォーマンスが極端に劣化する。 設定が完了したら、保存をして、以下のコマンドでコンパイル、及びインストールを実行する。
これで基本的にはOKのはず・・・なのだが、なぜか今回の設定ではboot時に停止してしまった。 これを回避するために、GRUBの設定を修正する。/boot/grub/grub.confを開き、
へ修正する(/dev/hda1はboot partition)。これで一度再起動を実行してみる。起動時の GRUBのセレクト画面では、古いカーネルが選択されているはずなので、新しくコンパイルした カーネルを選択して無事起動するか確認をしてみる。 インストールした環境によっては、起動時にいくつかNGになるかもしれない。 |
カーネルモードPPPoEの設定 |
カーネルはPPPoEに対応できた状態になったが、このままではまだPPPoEが使えないので
PPPoEが使えるように追加で設定を行う。まず、OSインストール時に一緒にインストールされた
rp-pppoe関係のファイルを全て削除する。 まず、rp-pppoeの削除。
古いpppdを削除してしまったので、新しいカーネルモードPPPoEが使えるpppdを ftp://ftp.samba.org/pub/ppp/からダウンロードする。 今回使用したものは、ftp://ftp.samba.org/pub/ppp/ppp-2.4.2b3.tar.gz である。ダウンロードしたら、/usr/local/src 配下に展開したのちコンパイルする。
つぎに、rp-pppoeも新しいものをインストールする。 今回使用したものはhttp://www.roaringpenguin.com/products/rp-pppoe/rp-pppoe-3.5.tar.gz である。ダウンロードしたら、/usr/local/src 配下に展開した後、コンパイルする。
ここで作られた、rp-pppoe.soモジュールを使用可能にするためにコピーする。
|
ネットワークの設定 |
今回使用したハードウェアには、もともとeth0とeth1がある。このうち、eth0をLAN側、
eth1をWAN側として利用することにする。また、PPPを使用するためのppp0デバイスも
用意する。まず、eth0の設定を行うため、/etc/sysconfig/network-scripts/ifcfg-eth0を
以下のように修正する。
なんで、192.168.0.125なんだ、という声が聞こえてきそうだが、今回の私の環境下では、 192.168.0.254には旧サーバが接続されており、使用不可ということと、 ちょっと思うところが あってこのようなアドレスになっている。使用環境に応じて、適宜読み替えて頂きたい。 /etc/sysconfig/network-scripts/ifcfg-eth1はWAN側なので以下のように設定する。
PPP接続を行うため、ppp0の設定も必要となる。 /etc/sysconfig/network-scripts/ifcfg-ppp0を修正、または無ければ新規に 作成する。このファイルはプロバイダ等の接続情報も若干含まれるため、 *****の 部分はそれぞれ読み替えて頂きたい。 /etc/sysconfig/network-scripts/ifcfg-ppp0はWAN側なので以下のように設定する。
|
moduleの設定 |
モジュールを使用するために、/etc/modules.confに、以下の行を追加する。
|
プロバイダ接続情報の設定 |
ここまでで、PPPoEを使うための基本的に設定は完了した。プロバイダへの接続情報は
/etc/ppp/pap-secretsと、/etc/ppp/chap-secrets に記述する。
このファイルには、接続に使用するパスワードがかかれるため、取り扱いには注意を
要する。 /etc/ppp/pap-secretsと、/etc/ppp/chap-secretsには同じ内容を追加する。
前の部分がフレッツ網に接続するためのユーザ名、3項目めがパスワードである。 ファイルのモードは、必ず600にしておくこと。 ここまでで、
を実行して、Connected!! と表示されれば、無事接続が完了している。 |
ルータとしての設定 |
以上の設定で、単体のマシンとして、ネットワークに接続することは可能になって居るので
あとはルータとしての設定を追加する。 また、デフォルトのルートをppp0にするようにも設定する必要がある。 適当に一つシェルスクリプトを作成し、先ほどのifup を含めて纏めて実行するものを 作成しておく ここでは、ifup.sh としておく。
事細かに詳細は記述しないが、tablesの1行め、IPマスカレードを実現するために必要な設定。 5行めを記述しないと、Blackholeのために接続できないサイトがでてくるだろう。 resolv.confへ出力している記述があるが、サーバ内でnamedの動作をさせないのであれば 不要である(本来はppp0の設定で書くべきだが....) 以上でルータとしての設定はほぼ完了である。起動後作成したifup.shを実行すれば、 ルータとして動作を開始し、LAN側のデフォルトルートをこのマシンにすれば、ルータとして 使用することが可能になって居るはずだ。 続いて、apache等の設定を行う(つづくー)。 |