さて、これで「家庭内乱ごっこ」くらいはできるようになりました。しかし、これまでの説明ではインターネットへの接続口についてはまったく触れていません。つまり、このLANは外へ行けないのです(本当にローカル)。それではせっかくのLANもおいしさ半減なので、お外へ遊びに行く方法を考えてみましょう。
お外へ行くには? | (02 Jun 2003) | ||
PC-Unix | (02 Jun 2003) | ||
PC-Unixの種類 | (29 Jun 2001) | ||
ハードウェアの選定 | (02 Jun 2003) | ||
ソフトウェアの選定 | (29 Jun 2001) | ||
システム構築の手順 | (29 Jun 2001) | ||
OSのインストール | (29 Jun 2001) | ||
インストールしたら・・・ | (29 Jun 2001) | ||
PPxP | (29 Jun 2001) |
お外へ行くには? | |||
直感的に考えると、個々のPCで今まで通りダイヤルアップ接続の設定を行えばお外へ行けそうな気がします。これは半分は当たっていますが、半分は外れています。この方法だとダイヤルアップ接続を設定したマシンしかお外へ遊びに行けません。設定していないマシンはお外へ遊びに行けませんし、たとえ全部のマシンを設定したとしても、アナログ回線なら一度に1台までしか、INSネット64ならば一度に2台までしかお外へ遊びに行けません。また、INSネット64で一度に2台遊びに行ってしまうと、通信費も倍になってしまい、面白くありません。何より面倒です。
ちょっと考えると、LAN内の1台のPCをダイヤルアップ接続設定すれば、そのPCを通してLAN内のホスト全員が遊びに行けるような気がしますが、実際にはWindows 95などには他人の会話を外へ流す機能が標準では存在しないため、うまくいきません。さあ、どうしましょうか。「・・・標準ではって?」 を、するどい。というより、白々しくないか? > ぢぶん そう、機能が存在しないならば付け加えるなり、そういう機能を持った機器を導入するなりすればよいのです。
もし、これからISDNを導入しようとしているのならば、ISDNルーターを買うのが一番簡単な選択肢でしょう。ISDNルーターには標準で他人の会話を外へ流す機能が付いていますから、説明書通りに設定すればおしまいです。ISDNを導入してしまっていても、今のDSUやTAは予備として使うなり、アナログポートの増設に使うなりして、新しくISDNルーターを導入してもよいでしょう。何せ簡単ですし、落雷などでDSUやTAが故障した時、電話が使えないというのが非常に痛いですから、予備を持っているというのは心強いものです。
蛇足ながらADSLの場合は「ADSLルーター」とか「ブロードバンドルーター」とかいう商品になります。面倒なのでISDNルーターからここまで全部ひっくるめて単に「ルーター」とか言ったりします。本来の意味の「ルーター」はもっと意味が狭いのですが。最近ではLAN側が無線になっているものも数多く出回っています。
どーしてもISDNルーターを買いたくないというひねくれ者の人 σ(^-^;
は、Windowsに他人の会話を外へ伝える機能を持ったソフトをインストールするという方法があります。WinGateやBlack Jumbo Dog(旧名 WinProxy・・・ここでも登録商標がらみか)というソフトがこれに該当します。他にもあるかもしれません。Windowsにインストールするわけですから、お外へ行く場合、このソフトをインストールしたマシンは電源を入れておかなければなりません。
そしてもう一つ。他人の会話を外へ伝える機能を標準で持ったOSを導入するという方法もあります。Unixと言われているOSには標準でこの機能が付いていることが多く、その中でもPC-Unixと言われているものはPC(AT・DOS/V互換機やNEC PC-9800シリーズ)にインストールすることができます。MacにインストールできるUnix(クローンなOS)もあります。X68000やTownsなどにもありますが、これらの機種ではLANカードを新たに調達することが難しいため、LANカードを既に持っていることが条件となるでしょう。WindowsもWin98SEには多少制限はありますがこの機能があります(Win98元祖とか、Win2K・WinMEとかは持ってないので分からないです。ついでに、使ったことがないので、試したい人は自由研究ということで)。
Unix(とそのクローンたち・・・面倒くさいから以下PC-Unix)に伝達役をさせる場合、お外へ行くにはPC-Unixをインストールしたマシンを通らないといけませんから、お外に行く時にはこのマシンの電源を入れておかなければなりません。また、新しくOSをインストールするという事は、Windowsは消してしまう(消さない方法もあるが、どのみち同時には立ち上がらないので同じようなもの(エミュレーションという手もあるけど))ので、余計なマシンが一台必要になります。新規に買うならISDNルーター買った方がよっぽど安くて楽ですので、よく考えましょう。:-)
で、ここでは「何で?」というか「やっぱり・・・」というか、とりあえず最後の方法について説明します(ぉぃ)。
PC-Unix | |||
PC-Unixを導入する場合の利点というのは、PCが余っていれば追加投資が安くて済む点と、Unix系OSの持っている各種機能や柔軟性を活かせる、という点でしょうか。追加投資に関しては、FreeBSD・NetBSD・OpenBSDといったBSD系のフリーのPC-Unixや飛ぶ鳥を落とす勢いのLinuxを使えば数千円で済みます。パッケージになって売っているのを買ってもよいですし、付録をアテにして雑誌を買うのもよいでしょう。ネットワークからダウンロードするという手もありますが、安くて速い回線を持っていない限り実用的ではありません。逆に言うと、安くて早い回線を既に持っていれば、追加投資ほぼゼロで手に入ります。最近ではコレが実用的な速度で動いてしまいます(実際、FreeBSD 4.7とかをフレッツADSLモアでネットワークから直にインストールしてます)。恐ろしい世の中になったもんだ。
各種機能に関しては、FTPサーバー・HTTPサーバー・プロキシ・DHCPサーバーといった機能が標準で付いていたり、またはあとから追加インストールできたり、あるいはネットワークから取って来てインストールできたりします。FTPサーバーは異機種間でのファイル転送に、HTTPサーバーは家庭内での情報共有やCGIのテストに使えます。プロキシは通信費節約に役立ちますし、DHCPサーバーはちょっと説明しましたが、他のクライアントの設定をおきらくにするのに使えます。あと、基本的にCコンパイラが標準で付いてくるので、Cの勉強をしたい人はこれを使わない手はありません。
柔軟性に関しては、例えば「昼間と深夜で接続先を変えたい」とか、「メールの時だけ接続先を変えたい」とか、「妻が接続する時はこっちのプロバイダを使いたい」とか、「このホストは見ちゃだめ〜」とか、「早朝に集中的に自動巡回させたい」とか、考え次第でなんでもできます。追加ツールやシェルスクリプト、Cプログラムを使えば、物理的に不可能なもの以外は基本的に実現できると思っていいでしょう。ただ、逆に言うと実現するためにはこれらの知識が必要になってしまうという事ですが・・・。
さて、欠点。精神的には「面倒くさい」、金銭的には「PCが一台余計にいる」というのが一番大きな欠点でしょう(笑)。あと、曲がりなりにもUnixですから、設定に気を使っておかないとシステムの侵入を許してしまい、システムクラッシュや他ホストのクラッキングの踏み台にされたりしますので、注意しましょう。
PC-Unixの種類 | |||
PC-Unixと呼ばれるものは大きく二つに分かれます。一つはBSD系。もう一つはLinux系。歴史的に古いのはBSD系ですが、今騒がれているのはLinux系の方ですね。BSD系にはFreeBSD・NetBSD・OpenBSDなどがあり、Linux系はさらにSlackware系、Red Hat系、Debian系に分かれます。どれも雑誌の付録などによく付いてきますので、日頃からよくチェックしておきましょう。パッケージ販売されているものもあります。
BSD系はFreeBSDしか使い込んでないのであまり大きな事を言えたクチではないのですが、BSD系は安定性では定評があります。また、FreeBSDなどはFreeBSD.orgなどにハンドブックがまとめられており、初期の情報収集は比較的楽です。欠点はカーネルの設定がLinuxに比べて面倒で、特に非標準のPCカードは初心者が設定するのはちょっとつらいかもしれません。初めてPC-Unixに触れる人で、ノートPCを使おうと思っている人は避けた方が無難です。
インストーラーは比較的よくできているので、標準的なデスクトップPCならば特に大きな問題は起きないでしょう。既存ソフトウェアはportsとpackages(これが膨大)に分かれていて、メニュー形式で選択・インストールできます。とにかく何か困ったら/stand/sysinstallを実行するとたいてい解決するというのが助かります(笑)。
で、Linux系。大雑把に言うと、Linuxは多くの人が作った資産を持ち寄って成り立っているという感が強く、情報も粒がそろっていなくて分散している傾向にあります。カーネルの設定はメニュー形式で行うことができるためFreeBSDよりも簡単で、PCカードに関してはpcmcia-csというカーネルとは別のモジュールで管理していて、比較的扱いやすくなっています。
Linux自体はカーネルでしかなく、これだけでは実際には意味のある動きはできませんから、通常はFSFのGNUプロダクト群などもまとめてパッケージにされて提供されます。このパッケージの事を「ディストリビューション」と呼び、大きくSlackware系・RedHat系・Debian系に分かれます。
Slackware系は初期によく使われたディストリビューションで、一番単純です。インストーラーもまあまあ使いやすくできています。構成が単純なため、システム構成が分かっている場合、設定のカスタマイズが容易にできるという特徴があります。既存のソフトウェアはtar.gzあるいはtgzという形で提供されることが多く、ソフトウェア間の依存関係解決があまり強くないのが欠点です。どちらかというとソースからコンパイルする方が似合っているディストリビューションです。Plamo Linuxはこの系統に入ります。
Red Hat系は今一番使われている系統でしょう。TurboLinuxやLaser5 Linux、Vine Linuxなど、多くの商用・非商用ディストリビューションがひしめいています。インストーラーも使いやすく、各種設定も専用のツールで行えます。X Window Systemが入っていれば、GUIによる設定も可能です。逆に、ツールが意図しない設定をしようとするとちょっと面倒な事になりそう。既存ソフトウェアはRPMという形で提供され、ソフトウェア間の依存関係管理もなされています。
Debian系はUnix周辺ツールを数多く手がけているFSFが総元締めとなっているディストリビューションで、Corel Linux、Storm Linuxなどがこの系統に入ります。インストーラーが高機能な分、初心者にはとっつきにくい感がありますが、Corel Linuxでは改善されているようです。既存ソフトウェアはDEBという形で提供され、ソフトウェア間の依存関係管理は最強と言われています。
ハードウェアの選定 | |||
一般的なPC/AT互換機(DOS/V互換機)ならば普通は問題ありません。既存のマシンを使おうと思っている人は、とりあえず突っ込んでみる、というのが動くかどうか調べる一番の近道だったりします。新規にマシンを買おうと思っている人(はいないと思うが)は、一応各デバイスについてLinuxで使用可能かどうか調べておくとよいでしょう。まあ、X Window Systemもサウンドも使う気がなければ、注意するのはモデムとLANくらいだと思います。モデムはDSPへファームウェアをダウンロードして使う、いわゆる「WinMODEM」だとお手上げですので注意しましょう。もっとも、普通のDSU内蔵TAを用いてISDNで使う予定ならば、COMポートさえ動けばいいのであまり問題にはならないはずです。USB接続のものは注意した方がよいかもしれません。ADSLではLANさえ動けばCOMポートも不要です。
LANが内蔵ではないマシンの場合、LANカードが必要になります。あまりマイナーなものを選んでしまうと、動作させるまでに苦労することになるので、ほどほどにメジャーなものを選びましょう。信頼性を買うなら3Comでしょうけど、MELCOのLPC-2Tなどでもちゃんと動いてます。NE2000互換と呼ばれるものはたいてい平気。
インストールメディアはCD-ROMで供給される事が多く、最近ではCD-ROMからブートしてインストーラーを立ち上げられることがほとんどです。CD-ROMからブートできないマシンの場合は、ブート用のフロッピーディスクを作成して立ち上げます。従って、少なくとも最初の一台は内蔵CD-ROMドライブは必須だと思った方がいいです。CD-ROMからブートできない場合はFDドライブも必要になるでしょう。最近のPCはまずクリアしていると思いますが、古いPCを流用しようと思っている場合には注意しましょう。また、ノートPCの場合、CD-ROMドライブがPCカードでしか付かなかったりするととても面倒な事になります。
スペック的にはPentium 100MHz程度もあれば充分です。他にサーバーとして使うつもりがなければ、メモリも32MB程度で、HDDも1GBあれば充分。バックアップ用やファイル共有用のサーバーにしようと思っている人や、超強力なHTTPプロキシにしようと思っている人はHDDが多い方がいいのは言うまでもありません。
ノートPCの場合、CD-ROMドライブが内蔵されている、いわゆるオールインワンタイプのものの方が問題が少ないです。最近の薄型ノートPCのようにCD-ROMドライブがPCカード接続だと、インストールに支障を来たすことがよくあります。ちょっと古めの、現役を引退したようなPCの方が向いています。
ただ、他に母艦を持っていれば母艦でインストールするとか、ディストリビューションによってはLANやパラレルケーブル経由でインストールするという手もありますので、いろいろと研究してみるといいでしょう。LAN経由でインストールする場合は、インストール時に使うLANデバイスがインストーラーでサポートされていなければなりません。インストーラーはフロッピーディスク1枚か2枚で立ち上げるという制約があるため、組み込まれているドライバが標準カーネルより少なく、インストールに限ってLANデバイスが制限されている場合があります。
ソフトウェアの選定 | |||
まずOSを選ばなければなりません。PC-Unixの場合、雑誌の付録などいろいろなメディアで手に入りますから、片っ端からインストールして気に入ったものを選ぶのがよいと思います。
OSが決まったら、ダイヤルアップPPP接続するためのソフトウェア・IPマスカレード(NAT/NAPT)するためのソフトウェアが少なくとも必要です。両方ともOS同梱というか標準添付になっていることが多いのですが、特にPPP接続に関しては理解しがたいというか使いにくい場合もあるので、他を探してみる手もあります。ここではPPxPというオンデマンドダイヤルアップPPP接続ソフトウェアを使います。
他にDHCPサーバーやsambaといったソフトウェアもあると便利です。DHCPは先ほど説明した、クライアントPCのIPアドレスやネームサーバーといった設定を自動で行えるようにするために必要なもの、sambaはWindowsマシンとファイルやプリンタを共有するためのものです。DHCPサーバーはInternet Software Consortiumのものを使うことにします。sambaは日本sambaユーザ会あたりから持ってくるといいでしょう。あるいは、どちらもメジャーなソフトですので、ディストリビューションに既に含まれているかもしれません。
システム構築の手順 | |||
材料が揃ったところで、一般的な手順を示しておきます。どのディストリビューションでもだいたい同じです。
OSのインストール
↓
ネットワーク(LAN/Ethernet)の設定
↓
カーネルの再構築
↓
PPP(ダイヤルアップ接続)の設定
↓
ルーティング/NAT/ファイアウォールの設定
↓
付加的なソフトウェア(DHCP/samba)の設定
OSのインストール | |||
システムによって異なりますので、各システムの添付文書やCD-ROM内のテキストなどを参照して下さい。多くはCD-ROMからブートするか、ブートできない場合はCD-ROMに収録されているツールでフロッピーディスクを作成し、それを使ってブートしてインストーラーを立ち上げます。あとはインストーラーの指示に従えばOKなはず。システムによってはいろいろ選択肢があると思いますが、「カーネルソース付きの開発環境」を選んでおくのがよいでしょう。Xは空き容量やお好みに合わせてどうぞ。
ここではちょっと変な例ということで、「Librettoにインストールする場合」を採り上げます(ぉぃぉぃ)。Librettoの場合、FDもPCカード接続ということを考えておかなければなりません。FDが複数に分かれている場合、カーネルがPCカードI/Fの設定を変えてしまうと、二枚目のFDが読めないことがあります。ちなみに、FreeBSD 3.2は平気でした。TurboLinuxはだめだった覚えがあります。
もう一つ、SS以前のLibrettoはHDD上に通常の領域とは別にハイバネーション領域をとるため、この分を残して領域確保しないとサスペンドした時にHDDの内容が壊れます。通常の運用でハイバネーションすることはあまりないと思いますが、電源が落ちて強制ハイバネーションが起きると悲劇が待っています。Libretto上でDOSでFDISKすれば普通は問題ないはずです。
この方法はHDDを入れ替えますので、Librettoの保証が切れることになるということを念頭に入れておいて下さい。利点はFDDが要らないことでしょうか。まず、適当な親機を用意します。親機はデスクトップでもノートでも構いませんが、FDDとCD-ROMドライブが付いていて、HDDの入れ替えが容易なものに限ります。デスクトップの場合、普通は3.5インチHDDのはずですので、2.5-3.5インチのHDD変換アダプタを使います。ノートPCの場合、Librettoと同じ厚さのHDDを使っているものならば問題ないでしょう。それより厚いHDDを使っているものでも、HDDの固定の仕方によっては使用できる場合もあります。ここでは、HDD固定金具を入れ替えたSatellite Pro 420CDTを親機として使います。
インストールしようと思っているHDDがLibrettoのものではなかった場合、まず、ハイバネーション領域を調べなければなりません。親機のプライマリのマスターにLibrettoのHDDを入れ、まず、最小限のシステムをHDDへ転送します。Windows 95などの起動ディスクで親機を立ち上げ、小さな領域を確保して、そこへsysコマンドでシステムを転送し、command.com・fdisk.exeをコピーしておきます。
親機上でリブートしてfdiskが立ち上がることを確認したら、一度HDDをLibrettoに入れます。ここでfdiskを立ち上げ、最大限領域を確保して下さい。そうしたらもう一度親機にHDDを戻し、今度はインストールするシステムの説明に従ってインストーラーを立ち上げて下さい。通常どこかでパーティション設定をするはずですので、パーティションを設定する前に最終シリンダをメモしておき、このシリンダ以降は空けておけばハイバネーションしても平気になります。
あとは普通にインストールを続けて下さい。終わったらLibrettoにHDDを戻し、ユーザーの設定が終わったら、ネットワークの設定をやってしまいます。IPアドレス・ネットマスクの他に、FTPの許可、場合によってはinetdの設定、tcpdの設定を行う必要があります。こうすることで、後から必要なファイルが出てきた場合は、他のクライアントマシン(Windowsマシンでも可)からFTPで押し込むことができます。
うちではもっとひどいことに液晶が割れたLibrettoを使っているため、DOSのfdiskをLibretto上でできません。仕方がないので、親機上で必要最小限のLinuxシステムを入れ、ネットワークとtelnetだけ設定してからLibrettoに戻し、親機からtelnetで(Linuxの)fdiskを行った後、親機に戻して今度は本番用システムをインストールしました。インストールが終わったら、とりあえずネットワークとtelnetの設定だけ済ませてLibrettoに戻します。
こうすることで、残りの操作はすべてtelnetでできるようになります。ちなみに最初にインストールした最低限の領域も残してあって、緊急用のブート領域として使えます(スワップは共用する)。液晶が割れてしまって、でも捨てるに捨てられず押し入れに眠っているノートPCがある人はそれを活かすチャンスです。チャレンジしてみましょう。
この方法はHDDは入れ替えずに済むので保証は切れませんが、インストーラーを立ち上げるためにFDDが必要になります。この方法も親機が一台必要で、できれば親機にもFreeBSDをインストールしておいた方が話が楽になります。あと、親機とLibrettoを接続するために、ケーブル接続で説明したパラレルクロスケーブルが必要になります。親機にFreeBSDをインストールしたら、PLIPと呼ばれるインターフェースを設定します。また、FTPを許可して、CD-ROMをマウントしておきます。詳しくはFreeBSD.orgのハンドブックに書いてあります。
親機の設定が終わったら、パラレルクロスケーブルで親機とLibrettoを接続し、親機でブートフロッピー二枚を作成して、Librettoでインストーラーを立ち上げてください。そうしたら、インストールメディアの設定でPLIP経由のインストールを選択し、あとは指示に従ってインストールします。
Linuxはディストリビューションによっては、FTP経由でインストールできる場合があります。ただし、ブートフロッピーが一枚になっているか、LOADLIN用のイメージが提供されているか、どちらかの条件を満たしていなければなりません。また、インストーラーがサポートしているPCネットワークカードを用意しなければなりません。
この方法も当然、FTPサーバーとなる親機が必要になります。FTPの親機には一応なんでも使えますが、8.3文字を超えるファイルがあったり、ファイル名の大文字・小文字の区別で問題が起きたりすることが多いので、できればUnix系のマシンを親機にする方が話が楽になります。親機はCD-ROMをマウントし、FTPの設定を済ませておきます。
指示通りにブートフロッピーを作ってブートするか、小さなDOSパーティションを作ってそこに必要なイメージをコピーし、LOADLINでインストーラーを立ち上げます。フロッピーから立ち上げた場合は、適当なタイミングでPCカードをネットワークカードに差し替えます。あとはインストール元にFTPを指定し、ホスト・ユーザー名・パスワードを指定してインストールを進めればOKです。
たいていの場合、インストールの最後の方でネットワークの設定についてたずねられます。ホスト名・IPアドレス・DNS・ゲートウェイなどをたずねられることになります。NICが正常に動いてそうだったら、ここで設定してしまいましょう。
この時にIPアドレスを設定する事になりますが、このマシンはLAN内とお外とのパイプ役となるホストとなり、「ゲートウェイ」と呼ばれる事になります。慣例的にゲートウェイのIPアドレスの下の方は1にしておく事が多いので、192.168.1.1あたりを付けておきます。他のホストに192.168.1.1を付けちゃった人は、IPアドレスは重複できませんから、変更しておく必要があります。
DNSとゲートウェイについても尋ねられると思いますが、DNSはプロバイダのDNSを設定しておきます。ゲートウェイは設定しなくて構いません。あとでどちらも何とかなるといえば何とかなります。
インストールしたら・・・ | |||
これでスタンドアロンのシステムとしては動き出しましたが、ネットワークサーバーとして快適に動かすためには、もうちょっと設定を続けなければなりません。
インストールしたらとりあえず「カーネルの再構築」を行います。「カーネル」というのはOS本体の事だと思っておけばよいでしょう。再構築は実際には不要なこともありますが、お手持ちのデバイスが標準カーネルでサポートされていなければこの作業は必須です。また、PPP接続・NAT(NAPT/IPマスカレード)・DHCPを利用するために、カーネルの設定を変更しなければならないこともあります。
カーネルの再構築とは、「カーネルのソースコードをコンパイルしてカーネルを作り直す」作業です。従って、インストール時にカーネルのソースコードと開発システム(コンパイラ)をインストールしておかないと再構築はできません。もし入っていない場合はパッケージからインストールしてください。
カーネルの再構築はマシンのパワーにもよりますが、比較的面倒で時間のかかる作業です。Pentium 200MHzを越えていれば数分で終わるはずですが、Pentium 100MHz程度だと10分以上かかる作業です。あらかじめ何が必要か、情報をよく集めて、何度も再構築を行わなくて済むようにしましょう。
Linuxの場合、カーネルは結構頻繁にバージョンアップしますから、雑誌やネットワークを探して、同じ系列の最新のカーネルソースを取ってきておくとよいでしょう。また、カーネルの再構築の後にカーネルモジュールの再構築、そしてノートPCの場合はその後にpcmcia-csの再構築が待っています。特に、pcmcia-csのソースが入っていることを確認せずにカーネルを再構築してしまうと、pcmcia-csのソースを持ってくることができなくなって、インストール最初からやりなおし〜、という場合があるので注意しましょう(ネットワーク経由でインストールした人は特に注意!)。
カーネルの再構築が済んだら、とりあえずネットワークがちゃんと動いているかを確認し、動いているようであればいよいよダイヤルアップの接続をおこないます。たいていの場合、標準でPPP接続を行うパッケージが付いてきますので、説明を読んで分かる人はそれを使うのもよいでしょう。
私はLinuxもFreeBSDも、さっぱり分からなかったので素直にPPxPを入れてしまいました。PPxPは日本ではメジャーなPPP接続ソフトですので、日本語版のディストリビューションの場合、OSに同梱されている場合もあります。ない場合はPPxP Home Pageあたりから取ってくるとよいでしょう。
PPxPの他にいくつか必要なソフトウェアが存在しますが、それらはたいていOSに同梱されていますし、標準的にインストールされることが多いものです。PPxPをインストールしてみて動かなかったら調べてみる、というノリでいいと思います。ただし、Linuxの場合はuserlinkドライバだけは入れなければならないことが多いので、上記のページからソースを取ってきておくとよいでしょう。
PPxPをきちんと設定すれば、PPxPをインストールしたマシンからは外へ遊びに行けるようになります(当たり前だけど)。PPxPについてはPC-Unixによらず設定はほぼ同じなので、このページの後の方で簡単に説明しておきます。
ここが一番概念的に難しい部分になるでしょう。まずはルーティングの説明から。ルーティングとは、「このデータはどこへ出力するのか?」という設定のことです。今まで意識したことはなかったと思いますが、それも当然で、クライアントマシンにはネットワークインターフェースが一つしかありませんから、自分宛て以外のデータは全部そのネットワークインターフェースに流すだけだったわけです。
ところが、今度のマシンは、LAN側のインターフェースと、もう一つ、PPPによるインターフェースがあります。従って、行き先によって出力するインターフェースを変えなければなりません。今、LAN内のIPアドレスは「192.168.1.ほげ」と決めましたから、このアドレスだったらLAN側に、それ以外はPPP側に、それぞれ振り分けなければなりません。これがルーティングの設定になります。
ま、実際にはPPxPを使うぶんにはPPxPが自動的にやってくれますから、あまり気にすることはなかったりします。が、お外と通信できないときにルーティングテーブル(経路表)を見ることができるとトラブルが簡単に解決することもあるので、覚えておいて損はないです。
次。NATとはNetwork Address Traslationの略です。プロバイダにPPP接続している場合、IPアドレスは一つしかもらえません。LAN内には複数のPCがあり、複数のIPアドレスが割り当ててありますが、これらのIPアドレスはローカルなIPアドレスですから、お外へ流してはいけません。これではLAN内のホストはまったくお外へ行けないことになってしまいますね。
そこで登場するのがNATです。LAN内ホストのIPアドレスを、PPP接続しているマシン上でプロバイダからもらったIPアドレスに変換して出力し、外から戻ってきたデータをLAN内ホストのアドレスに変換してLANへ流す、という仕掛けです。実際にはもうちょっと複雑な事をしていて、NAPTとかIPマスカレードとか呼ばれますが、まあ、この程度の概念を覚えておけばとりあえず充分かな。
最後。ファイアウォールの設定。ファイアウォールとは「防火壁」の事で、外からの攻撃を防ぐためのネットワーク的な「壁」の事です。ホストやサービス(ポート)をいろいろと指定して、接続を許可したり、拒否したりすることができます。
本質的には必ずしも必要な設定ではないのですが、たいていNATといっしょに実装されているため、NATを設定するにはファイアウォールを組み込まなければならなくて、ファイアウォールを組み込むとデフォルトで全接続が「拒否」になっていて、結局ファイアウォールの設定をしないと外へ行けない、という事が結構あります。
また、LAN内の他のホストからのデータを外へ転送するために、言い換えるとゲートウェイとして振る舞わなければならないために、実はパケットフォワーディング(あるインターフェースから他のインターフェースへのデータの中継)機能がファイアウォールに組み込まれていて、やっぱりファイアウォールを使わないと他のホストが外へ行けない、ということもあります。Linuxの場合、カーネルにパケット転送機能を組み込んでおき(普通のディストリビューションでは大丈夫のはずですが)、さらに最近のカーネルでは利用可能にするためにおまじないが必要ですのでご注意を。
以上、駆け足で説明してきましたが、インターネット上によいドキュメントがいろいろありますので、それらを参照して設定してみて下さい。
これでPC-Unixを用いたダイヤルアップルーター(笑)は完成ですが、せっかくPC-Unixなんですから、もうちょっといろんなものを入れてみましょう。ノートPCを持っている人の場合、まず入れておいて損がないのはDHCPでしょう。会社LANでDHCPが運用されている場合、おうちLANにもDHCPを入れておけば、クライアントの設定はほとんど変更なしで会社とおうちを行ったり来たりできます。
ただし、WebなどのProxyには注意
PC-Unixのハードディスクがひじょ〜に大きい人や、プリンタを持っているという人は、sambaを入れておくと便利です。sambaを入れるとUnixマシンでMicrosoftネットワーク共有サービスを実現でき、WindowsマシンからUnixマシンのディスク領域を使えたり、プリンタを共有できたりします。ディスク領域の共有はバックアップにも便利だったりします。
Macを持っている人はnetatalkというパッケージがありますが、現在うちの環境にはMacはないので、自由研究ということでお願いします。さらに先に進むと、BIND(DNS)やsendmailを運用するようになります。それなりにメリットがあるのでこれも研究してみるとよいでしょう。
PPxP | |||
さて、お約束したPPxPの説明です。LinuxにもFreeBSDにも標準でダイヤルアップ接続を行うツールは付いてきますが、ここではPPxPというツールを使う事にします。PPxPはLinux系でもBSD系でも使えます。もし、パッケージが提供されているようならばそれをインストールするのが近道でしょう。そうでない場合はファイルを取って来てインストールする事になります。とりあえずppxp-ほげ.tar.gzというファイルを取って来て(まだ外へは行けませんから、Windowsマシンなどで取って来て、FTPで押し込みます)、
tar xfvz ppxp-ほげ.tar.gz
とやります。ppxpというディレクトリができていると思いますので、まずドキュメントを読みましょう。ppxp/doc/ja_JP にINSTALL.txtというのがありますので、とりあえずこれを読みます。PC-Unixで読む場合には less で読めますが、日本語EUCコードで書いてあるので、kon を実行して日本語が表示できるようにしておかなければなりません。FTPで引っ張って来てWindowsマシンで読む場合、秀丸のようなEUCが読めるエディタで読むか、Netscape NavigatorやMS Internet Explorerのようなブラウザで読んで下さい。
読んでみると、ppxp-ほげ.tar.gzの他にも必要なものがありそうですね。GNU readline・ncursesはパッケージを探せばあるでしょう。BSD系の場合にはGNU makeと呼ばれるツールが必要です。BSD系では、普通 gmake というコマンドになっているはずなので、gmakeと打って「command not found」となるようならば、パッケージを探すか、GNUのページへ行くかしてインストールしなければなりません。
次にQuickStart.txtを読んでみましょう。ここを読むと、Linux系ではuserlinkドライバなるものが必要である事が分かります。これもPPxPのページから取ってこれますので、取って来て tar xfvz で展開しておきましょう。
必要なものが揃ったらインストールです。Unix系の場合、基本的にソースからコンパイルする事になります。普通は以下のようにします。
./configure
make
su
make install
makeするとエラーが出ることがありますが、FAQとなっているようですので、ドキュメントやPPxPのページを調べてみて下さい。su というのは、「スーパーユーザーになる」コマンドで、パスワードを聞かれますので、rootのパスワードを打ち込んで下さい。userlinkでは userlink-ほげ ディレクトリの下で、PPxPでは ppxp ディレクトリの下でこれらのコマンドを実行します。インストールが終わったら exit で一般ユーザーに戻っておくのを忘れずに。
インストールが無事終わったら、QuickStart.txtの手順に従って試しにダイヤルアップ接続してみて下さい(ヒント: qdialスクリプトを利用します)。ダイヤルアップが成功したら、bye コマンドで ppxp を終わってどこか適当なホストに ping を打って下さい。どうです? ちゃんと打てました? ちゃんと動いていることを確認したら、qdialスクリプトへ戻って、設定を保存しておきましょう。
これで一応お外へ遊びに行けるようになりましたが、接続開始と終了はまだ自動になっていません。いちいちppxpコマンドを使ってでつないでダイヤルアップしてもいいのですが、やはり面倒なので自動でやれるようにしましょう(オンデマンドダイヤルアップと言います)。
オンデマンドダイヤルアップはPPxPで行うことができます。やり方は簡単。もう一度ppxpへ入り、ppxpのプロンプトから、
ppxp> set idle.init 90
ppxp> auto on
ppxP> bye
とするだけです。「set idle.init」はこれだけ通信がないと切断する、という意味です。単位は秒です。次の「auto on」は通信があったら接続しに行く、という意味です。このコマンドを打ち込むと、PPxPのプロンプトの最後の「p」が大文字の「P」に変わります。この状態で適当なホストへpingを打ってみましょう。勝手にダイヤルを始めるはずです。この時点ではpingはちゃんと通らないはずですが、あまり気にしないで次に行きましょう(接続が切れる前にもう一度打てば通るはず)。pingを止めるとidle.initで設定した秒数だけ経ってから自動的に接続が切れるはずです。
クライアントから通信する場合は、先ほど説明したルーティングとNATの設定が必要になります。通常、このあたりは非常に面倒な知識と設定方法を要求されるのですが、PPxPだと比較的簡単に行えます。まず、ルーティングの方はPPxPのスクリプトが標準で設定してくれますから、特に面倒を見る必要はありません。
NATの方はqdialスクリプトから設定できます。qdialスクリプトの<More...>の中にIP Masqueradeというのがあります。ここにLAN内のローカルアドレスとネットワーク部のビット数をスラッシュで区切って書いておけば、勝手にNAT(IPマスカレード)が実行されます。もし、LAN内のローカルアドレスが「192.168.1.ほげ」ならば、「192.168.1.0/24」と書いておけばOKです。設定が終わったら忘れずにセーブしておきましょう。
ここまで来たら、LAN内のクライアントのゲートウェイの設定を行えば、めでたくクライアントマシンからも外へ行けるようになるはずです。他のクライアントで設定すべき項目はTCP/IPのゲートウェイです。Windowsマシンで言うと、ネットワークの設定 - TCP/IPのプロパティ - ゲートウェイ です。ここにPC-UnixホストのIPアドレスを入れて[追加]を押しておいて下さい(多分リブートを要求されますのでリブートします)。
設定が終わったら、実際にLAN内のクライアントから適当な外部のホストにpingを打ってみましょう。PPxPが勝手にダイヤルを始め、接続が完了するとpingが通るようになるはずです。
これで一応PPxPの設定は終わったわけですが、PC-UnixマシンをシャットダウンするとPPxPも終了してしまいます。起動時にいちいちPPxPを手動で立ち上げるのは面倒ですので、自動で立ち上がるようにしましょう。
起動時に自動的に立ち上がるようにするには起動スクリプトにppxpコマンドを書いておけばよいのですが、この「起動スクリプト」がどこにあるのか探すのが一苦労だったりします。だいたい /etc ディレクトリの下のどこかにあるはずですが、OSやディストリビューションによって違うので、各自でディストリビューションのマニュアルを確認して下さい。最悪、/etc/initab を自分で解析して、スクリプトを追いかけるという手もあります。ちなみに私の環境だと /etc/rc.d/rc.local あたりになっています。
起動スクリプトを見つけたら、最後にこうやって書いておきましょう。
/usr/local/bin/ppxp 設定の名前
ppxpのパスはパッケージやインストールの仕方によって異なりますので適当に書き換えて下さい。私の場合はソースからインストールしたのでこういうパスになっています。「設定の名前」というのはqdialスクリプトで設定をセーブしたときのファイル名です。
これで起動時に自動的にppxpが実行されるようになりますが、これだけだとppxpが立ち上がったまんまになります。qdialスクリプトのセーブ結果にはauto onも入っていませんので、これも付け加えておきましょう。そのためには、まず、設定ファイルがどこにあるのかを調べなければなりません。これもパッケージによって異なるので各自で探して下さい。ソースからインストールすると /usr/local/etc/ppxp/conf あたりになります。
見つけたら、適当なエディタで、一番最後に「auto on」と「bye」の二行を書き加えてセーブして下さい。これで設定は終了です。リブートしてちゃんと動くかどうかを確認しておきましょう。
Copyright (C) 1997-2007 You SUZUKI
$Id: goingout.htm,v 1.5 2008/06/09 12:13:10 you Exp $