〜インターネットのおしながき〜  ver.1.10 更新日時:2001/04/26

フレッツ・ISDN、ケーブル、xDSL、光ファイバーなどのサービスが一般の人にも格安で提供されるようになってきました。
PCも一家に1台どころか2台、3台持っているのがあたりまえとなってきて、インターネットもごくあたりまえのものとなりました。
しかし、インターネットをしようとするPCがいまだにリビングある家庭が一般的です。
これは、インターネットをするにも、電話回線を使用していることがほとんどなので、電話のモジュラージャックがあるところ
にしかPCを置くことができないからです。
これはあまり便利ではありません。自分の部屋にPCを置いてそこからアクセスしたいものです。
家族がそれぞれPCを部屋に置いて、各自インターネットにアクセスできればいいのではないでしょうか?
そういうことを可能にするのがPCサーバです。(お金に余裕があればルータを買うことでも実現できます)
一台安いPC(3000円くらい)を電話の横に置いておくだけで不特定多数のPCからインターネットにアクセスでき、
家のあらゆるところにPCを置く ことができるようになります。
インターネットをするためにPCを置く場所が限られていたのから開放されます。

----------------------------
目次
@ISDNの接続図
Aケーブルインターネットの接続図
BLinuxでIPマスカレード
CLinuxでPPxPを使う
DLinuxサーバを通してネットゲーム
E増設シリアルカードを使う
FフレッツADSL new !!
----------------------------

@私の家のPCの設置図 (ISDNの場合)

                 ┌-------┐
                  |       |                   ┌--┐   ┌-------┐
                  | LinuxPC |---(シリアルケーブル)-----| TA |-----| 電話回線 |
                  |       |                  └--┘   └-------┘
                 └-------┘
                     |
                     |(ストレートケーブル)
                     |
                 ┌-------┐
                  |  ハブ   | ( 10/100 Base スイッチングハブ )
                 └-------┘
                   |  |  |
             ┌-----┘  |  └------┐(ストレートケーブル)
             |        |        |
         ┌------┐ ┌------┐  ┌------┐
          |      |  |      |   |       |
          | Win 98 |  | Win NT |   | Win 2k   |
          |      |  |      |   |      |
         └------┘ └------┘  └-------┘

A私の家のPCの設置図 (CATVの場合)

                 ┌-------┐
                  |       |                    ┌------------┐
                  | LinuxPC |---(ストレートケーブル)------| ケーブルモデム |
                  |       |                   └------------┘
                 └-------┘
                     |
                     |(ストレートケーブル)
                     |
                 ┌-------┐
                  |  ハブ   | ( 10/100 Base スイッチングハブ )
                 └-------┘
                   |  |  |
             ┌-----┘  |  └------┐(ストレートケーブル)
             |        |        |
         ┌------┐ ┌------┐  ┌------┐
          |      |  |      |   |       |
          | Win 98 |  | Win NT |   | Win 2k   |
          |      |  |      |   |      |
         └------┘ └------┘  └-------┘

以上のような構成でPCを使っています。
LinuxPCによるIPMasqueradeで、すべてのPCからインターネットが出来るようにしています。
サーバとなるLinuxPCのスペックは
IBM PS/V Master 100
CPU: 486DX/4 100MHz
MEM: FP-SIMM 40MB
HDD: 740MB
LAN: 3ComEtherLinkV ISA (10Base-T)
以上のような貧弱なPCで構築していました。しかし、このスペックのPCはあまりにも古すぎて、
シリアルポートの速度が57600bit/sまでしかでなかったのでISDNでつなぐ場合は、Pentium以上の PCをサーバにするのがよいでしょう。
メーカー製のPCの場合は安いシリアルポートを採用している場合が多いので38400bit/sまでしかでない場合が多いです。
私の経験ではIBM製のPCはシリアルポートが最悪でした。といいつつ、IBM製を使っていますが・・・
高速なシリアルポートを増設することもできますが、価格が高い(2000円〜3000円くらい)のであまりお勧めできません。
が、秋葉とかで安く手に入る場合は増設高速シリアルカードを買ってもいいと思います。 私は買いました。その時の設定を下にメモしておきます。
ケーブルの場合はモデムとPCをLANでつなぐのでこのスペックで十分でした。

※これから下の記述はすべて、WinNTまたは、Win98からLinuxへのtelnet(TeraTermなど)で操作しています。
Linuxに直接キーボードをつけてコマンドを打ってもいいのですが、それではどこからでもインターネットできるとは言いがたいですので・・・
赤文字は実際に打つコマンドです。イタリック体は、適切な文字に置き換えてください。

BLinuxでIPマスカレード

Linux(カーネル2.2.x)をインストールして、LANカードの設定もできたとします。(できない人はJFのドキュメントを参考にしましょう。)
rootでログインして、
echo "1" > /proc/sys/net/ipv4/ip_forward
として、フォワーディングを有効にしましょう。
Redhat のユーザは、/etc/sysconfig/network ファイル中の FORWARD_IPV4=false を FORWARD_IPV4=true に書き換えることもできます。
次に、
ipchains -P forward DENY
ipchains -A forward -s 192.168.1.0/24 -j MASQ

としてみましょう。これでマスカレードの設定は完了です。
注意しておくのが、以上の設定はローカルネットワークが192.168.1.1〜192.168.1.254のIPアドレスで
サブネットマスクが、255.255.255.0の場合です。サブネットマスクによっては24の部分を変える必要があります。以下の表を参考にしてください。

   netmask   |  |   Subnet
~~~~~~~~~~~~~~~~~~~|~~~~|~~~~~~~~~~~~~~~~~~
255.0.0.0     | 8 | Class A
255.255.0.0    | 16 | Class B
255.255.255.0  | 24 | Class C
255.255.255.255 | 32 | Point-to-point

Class | プライベートアドレスの範囲
~~~~~~~|~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 A  | 10.0.0.0 〜 10.255.255.255
 B  | 172.16.0.0 〜 172.31.255.255
 C  | 192.168.0.0 〜 192.168.255.255

192.168.1.0 と 192.168.1.255 はネットワークア ドレスとブロードキャストアドレスとして予約されています。
これらのアドレ スをマシンに割り当てることは避けてください。
また、カーネル2.0.x以前のものはipchainsではなくipfwadmを使います。
起動時にマスカレードが自動的に実行されるようにするには、RedHat系Linuxの場合
/etc/rc.d/rc.local
の中に上のコマンドを書き足しておきます。
Slackware系の場合は
/etc/rc.local
です。
あとは、適当なクライアントのTCP/IPの設定でデフォルトのゲートウェイをLinuxサーバのIPアドレスにするだけで、
そのクライアントから インターネットにアクセスできるはずです。

CPPxPを使う
Linuxから電話回線を使ってダイアルアップする場合、PPxPがとても便利だと思います。
まずはrootでログインして、PPxPをroot以外のユーザーでも使えるようにppxpadduserしておきましょう。
ppxpadduser username
で次に さきほどadduserしたユーザでログインして、ppxp とコマンドを打って、qdial してみましょう。
Windowsでいうところのcom1のシリアルポートに接続している場合 /dev/ttyS0 で、com2に接続している場合は /dev/ttyS1 です。
設定をしたら、設定を適当な名前で保存して、おきましょう。
PPxPの設定でIPマスカレードの設定がありますが、PPxPのIPマスカレードはセキュリティ問題があるそうですのでIPマスカレードは
ipchains で行ったほうがよいでしょう。
PPxPは quit で完全に終了させることができます。bye では、PPxPからは抜けますが、バックグラウンドでPPPdが動作します。
回線を切断するときは、PPxPが立ち上がっている状態で、disconnect と打ちます。
そのあと、quit します。
また、 PPxPが立ち上がっている状態で、set と打つと現在のPPxPの設定が見れます。
フレッツ・ISDNなど常時接続の場合、回線が何らかの原因で切れたときに自動的に再度ダイアルアップ してくれると便利です。
PPxPではそれをautoコマンドでします。
PPxPを立ち上げる前に、
ppxp -C source filename
とします。failename はさっき qdial で保存した名前です。
で、ppxp と打ちます。PPxPが立ち上がります。そこで set と打ってみましょう。
現在のPPxPの設定が見れますので、それでよかったら auto と打って自動ダイアルアップにします。
autoと打ったら、connectでつなぎます。
autoモードを終了させたい場合は、auto off と打ちます。
接続時間は show と打つと見れます。

DLinuxサーバを通してネットゲームがしたい

基本的にネットゲームは普通にできるはずです。
しかし、ローカルネットワークの中のPCがネットゲームのホストになるにはLinuxサーバからローカルネットワークへ
フォワードする必要があります。ipmasqadmが簡単だと思うので、
まずは、ipmasqadm(IPマスカレードアディショナルモジュール)をダウンロードして展開しましょう。
2000/09/18現在の最新バージョンは、ipmasqadm-0.4.2-2.i386.rpmです。
適当なディレクトリにコピーして、
rpm -i -v -h ipmasqadm-0.4.2-2.i386.rpm
としてインストールします。
あとは以下のコマンドを実行すればいいだけ。
ipmasqadm autofw -A -r tcp 開始ポート番号 終了ポート番号 -h ネットゲーホストのIPアドレス
例えば、192.168.1.2のIPアドレスを持つPCがポート番号61663を使用するネットゲームのホストをするとします。
ipmasqadm autofw -A -r tcp 61663 61663 -h 192.168.1.2
あとは、ネットゲーをするユーザーにLinuxのIPアドレスを教えてあげればいいだけです。
ここでは一つのポートしかフォワードしてないので開始ポートと終了ポートが同じですが、複数のポートをフォワード
したい場合、例えば2000〜6000をフォワードしたい場合は
ipmasqadm autofw -A -r tcp 2000 6000 -h 192.168.1.2
とします。
ネットゲームが終わったら必ずポートを閉じるようにしましょう。閉じる時は、
ipmasqadm autofw -F
です。閉じないと、セキュリティホールになりますよ。
ところでポート61663を使うネットゲーってなんだかわかりますか?
郵便屋さんのゲームといいますとわかりますか?
最近はまっているDiabloUの場合は、ポート4000を使っていますから
ipmasqadm autofw -A -r tcp 4000 4000 -h 192.168.1.2
となります。 ゲームによって使うポートが違いますからお手持ちのゲームがどこのポートを使っているのか調べるには
まず、そのゲームをローカルネットワーク内のPCで起動します。
次に、そのゲームでHOSTをします。で他のローカルPCでも同じゲームを起動して、このHOSTのIPを指定して入ります。
どちらのPCでもいいですが、ここで ALTキー + TABキーなどでゲームをバックグラウンドで動かします。
DOSプロンプトを起動して、netstatとコマンドを打ちます。
すると開いているポート番号や接続先が出てきます。 このポートをLinuxのIPマスカレードのとこで指定します。
この方法だとPCが最低2台いることになります。そんなにないよ。という人は、面倒ですがまず直接ゲームのHOSTとなるPCを
インターネットにつなぎます。そして普通にゲームのHOSTになって他のゲームユーザーとゲームをします。
そこでALTキー + TABキーなどでゲームをバックグラウンドで動かして、DOSプロンプトからnetstatと打ちます。
で出てきたポートをLinuxのIPマスカレードで指定します。

E増設シリアルカード

ISDNで64Kでつなごうとしたけど内臓のシリアルポートが115200Kbit/sで通信できないという事態が古いPCでは起こります。
そういう場合は増設シリアルカードを使ってシリアルポートをもう1個増やすことで解決できます。
ただISAまたはPCIコネクタに挿すだけで普通に使えればいいのですが、(たいていの場合そのままで使えます)私の場合のように
そのまま挿すだけではうまくいかない場合があります。
まず、増設シリアルカードの説明書を読んでirqのジャンパスイッチをirq5にしたとします。
(irq5は内臓モデムに使われてる場合がありますのでirq7を推奨します)
シリアルポートにはIRQが割り振られています。DOSでいうところのCOM1にIRQ4、COM2にIRQ3がそれぞれ割り振られているのが
普通です。なので増設したシリアルカードは内臓のシリアルカードとirqの衝突が起こらないようにirq5にします。
Linuxでirqのなにが割り振られているかを見るにはdmesgコマンドを使います。dmesgコマンドはルート権限が必要です。
dmesg > test.txt
なんてやるとあとあとviエディタなんかで見やすいです。
vi test.txt
として中を見てみましょう。 まん中くらいに以下のようなメッセージが見えますね。
-------------------------------------------------------------------------------------
・・・・・
Initializing RT netlink socket
Starting kswapd v 1.5
Detected PS/2 Mouse Port.
Serial driver version 4.27 with MANY_PORTS MULTIPORT SHARE_IRQ enabled
ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
ttyS02 at 0x03e8 (irq = 4) is a 8250
ttyS03 at 0x02e8 (irq = 3) is a ST16650V2
pty: 256 Unix98 ptys configured
keyboard: Too many NACKs -- noisy kbd cable?
apm: BIOS not found. Real Time Clock Driver v1.09 RAM disk driver initialized: 16 RAM disks of 4096K size
・・・・・
以下略
-------------------------------------------------------------------------------------

ttyS00 at 0x03f8 (irq = 4) is a 16550A
ttyS01 at 0x02f8 (irq = 3) is a 16550A
ttyS02 at 0x03e8 (irq = 4) is a 8250
ttyS03 at 0x02e8 (irq = 3) is a ST16650V2
ここの4行が重要です。
上二つは内臓のシリアルポートです。3つ目は???謎です。(笑)
4つ目は増設したシリアルカードです。
ここで問題なのが2つ目と4つ目のirqが共有されている点と、4つ目の増設したシリアルカードのチップセットが
ST16650V2という点です。普通内臓されているシリアルカードは16550Aです。
16550Aの DTE速度は115200まで対応しているはずです。(ノイズの問題などで115200出ない場合があります)
ST16650V2は16550Aの4倍の速度の460800まで対応しています。
しかも、さっき増設したシリアルカードをirq5にジャンパスイッチでしたはずなのになぜかirq3と表示されています。
Linuxではかってにirqを割り振ってしまいますのでsetserialコマンドを使って正しいirqを教えてあげる必要があります。
setserial /dev/ttyS3 port 0x02e8 UART ST16650V2 irq 5 Baud_base 460800
とします。これで増設したシリアルカードが使えるようになりました。
増設したシリアルカードの設定を確認するには
setserial /dev/ttyS3 -a
とします。現在の設定が出るはずです。
増設したシリアルカードのチップセットによって上記コマンドを変更してください。例えば、UART が16550Aの場合は
setserial /dev/ttyS3 port 0x02e8 UART 16550A irq 5 Baud_base 115200
とします。

FフレッツADSL

                 ┌-------┐
                  |       |                    ┌----------┐              ┌-------┐
                  | LinuxPC |---(ストレートケーブル)------| ADSLモデム |------(電話線)------| スプリッタ |
                  |       |                   └----------┘    ┌-(電話線)---|       |----(電話回線へ)
                 └-------┘                                 |          └-------┘
                     |                                 ┌---┴--┐
                     |(ストレートケーブル)                     | 電話機 |
                     |                                 └-------┘
                 ┌-------┐
                  |  ハブ   | ( 10/100 Base スイッチングハブ )
                 └-------┘
                   |  |  |
             ┌-----┘  |  └------┐(ストレートケーブル)
             |        |        |
         ┌------┐ ┌------┐  ┌--------┐
          |      |  |      |   |         |
          | Win 98 |  | Win NT |   | Dreamcast |
          |      |  |      |   |       |
         └------┘ └------┘  └--------┘

とうとう我が家もADSLがきました。
これでアナログ、CATV、ISDN、ADSLと4種類の接続を経験できたことになります。次は光ですか 笑)
接続の種類が変わるごとに毎回なにかしら悪戦苦闘しているわけですが(ISDNのときはシリアルカードに悩まされ・・・)
今回のADSLにも悩まされました。ADSLに悩まされたというよりはVineLinux2.1.5に付属のISAPNP(ISAバスでPlug&Play)
に悩まされたといっても過言ではないでしょう。
フレッツADSLで用意するものは、
・ハード
 LANカード2枚挿しのPC/AT互換機 (私の場合は、メルコのPCIと3comのISAのLANカードを使いました)
 
ADSLモデム
 スプリッタ
・ソフト
 Linux (ここではいつもどおりVineLinuxを使用します。バージョンは2.1.5を使いました。)
 PPPoEクライアント (NTTから配布されたCDの中にも入っていますが、私は設定が楽なこちらを使いました)
 PPP2.3.7以降 (RPMファイルはここで検索!!) 私が使ったのはppp-2.3.11-7-i386.rpm

手順
まずはLinuxのインストールをしましょう。このときPCIのLANカードは自動的に認識されましたがISAはやはり
認識されず。まああたりまえですけど・・・
新しいFTPDに少しとまどいながらApacheやFTPDなどの設定完了して2枚挿しのLANカードを認識させようと
したところからはまりました・・・3comの3c509Bが認識されず・・・いろいろネットで調べたところ
PnPを切ればうまくいくらしい。ということで3comのサイトから3c509のドライバーディスクの2をダウンロード
してWindowsで format a: /s としたフロッピーディスクで起動して、このディスク2を使って3c5x9cfg.exeを
実行してPnPの項目をDisableにしました。
これに気がつくのに何時間か消費しましたよ・・・
でLANカードが2枚とも認識されたらもうほとんど終わりです。
linuxconf(linuxconfを使用する前に必ずkonを実行しておきましょう)かなにかで 2枚のカードのIPアドレスを
ローカルIPに設定します。必ず2枚ともローカルIP(192.168.1.*など)にしてください。
で次はRPMのインストールです。
rpm -i -v -h ppp-2.3.11-7-i386.rpm
rpm -i -v -h rp-pppoe-3.0-1.i386.rpm
これでRPMのインストールも終わりです。
ではADSLの設定をしましょう。
adsl-setup
とコマンドを打つと対話的に設定できますのでかなり楽です。
途中でマスカレードにするかどうか聞いてきますので素直に2と打ち込んでマスカレードにしましょう。
ではつないでみましょう。
adsl-start
はいつながった〜。
Linux起動時にすぐつながるように /etc/rc.d/rc.local にadsl-startを追記しておくと便利でしょう。
特に何もしなくてもadsl-setupでマスカレードを選んでおけば他のPCからもつながりますよ。

© TuatMCC