あなたの天然記念物
ホーム更新雑談Perl鉄ゲタランドナーコースガイド自転車Linuxリンク経歴連絡先
アナログ回線用ダイヤルアップルータ (2001.07.06)



          警告

下記は、セキュリティ上、無防備です。
実施する場合は各自の責任で、行なってください。

「玄関の戸を全開にして、一日中、外に出掛けました。」
と書いてある程度にお考えください。そのくらい無防備です。


          感謝

Pauline Middlekinkさん(IP Masquerade)
Michael Callahanさん、Al Longyearさん、Paul Mackerrasさん (PPP for Linux)
chatをパブリックドメインに入れた方
Ambrose Auさん、DavidRanchさん(Linux IP Masquerade mini HOWTO)
水原 文さん(和訳版)
そして、それらを利用されている方々に感謝を込めて。


          まえおき

Linuxユーザの世界をよく知らないので、こういうページを作ってよいのか
だれに聞けばよいのかも、わかりません。
「私はこうやってLinuxを活用できた」という紹介のつもりで作りました。
これは、Linuxや関連ソフト、文書を作ってくれたお礼として、
程良いものではないかと考えたからです。他意はありません。
もし、都合の悪いことがあれば、エンリョなく連絡ください。
なお、一部の表現がAmigaに偏っているのは、私の趣味です。


つい2日前まで、下記のように接続してホームページを見ていました。

プロバイダ→アナログ回線→モデム→シリアルドライバ→
→PPP(*1)→AmiTCP/IP(*2)→AWebII(*3)→olfa

この接続方法では
シリアルドライバの通信処理とAWebIIの表示処理が忙しくて、どちらも遅くなります。
Amigaのシリアルドライバが一所懸命(*4)カスタムチップからデータを読取っています。
表示するデータ量が多ければ多いほど、シリアルドライバが処理する量も増えるので、
輪をかけて表示が遅くなってしまいます。

Amigaが健気にがんばっているのにもかかわらず、
隣のLinuxは、あくびしながらRC5(*5)なんぞチマチマやっております。
そこで思いつきました。

          シリアル通信をLinuxに押しつけよう。

とりあえずお店に行って、似たようなことをする製品がないか見てみたところ
ダイヤルアップルータのマスカレードIPなるものが、それっぽいです。
製品の代わりにLinuxがダイヤルアップとマスカレードIPをすれば良いと安易に考えました。
パソコンでできることをわざわざ製品にはしないだろうから、
見方を変えると、こいつ(の機能)はパソコンでは無理なのかという不安もありました。

とある掲示板で、正しくはIPマスカレード(IP-Masquerade)と正しいつづりを教えてもらい、
mini HOWTO文書を捜して、挑戦してみました。
動作可能なクライアントOSにAmiga(AmiTCP/IP)も出ていて、ほっとしました。
mini HOWTO文書は、本当に便利ですね。(本当ですってば。)

さて、mini HOWTO文書に従ってコトを進めるのですが、RedHat6.1Jの場合、
  1. カーネル2.2.xのほう
  2. ローダブルカーネルモジュールのほう
  3. ICMPのパッチ済み(*7)
  4. 必要なコンパイル済み
  5. ip_masq_ftpをロードすりゃ、ftpもOKよ
  6. ipchains(*8)ないから、自分でインストール
という選択枝で進み、グットエンディング。
こういった文書もきっと"How to use mini HOWTO"とか言って、既にあるんだろうなぁ。

もう一つダイヤルアップも準備しました。が、うまくいきません。
モデムのランプが「よっしゃぁ接続OK」と言ってるそばから、
なんでか、ぷちんと切れてしまいます。
LinuxConfのpppの設定では、「アイドル(通信なし)5秒で回線切断」が
デフォルトになっていました。それとも寝ボケて自分で入れたか。
それと、ダイヤルアップ中止もうまくいかないので、あきらめました。

代わりにヘルプのpppdを見て、できてしまいました。
最初にEXAMPLESの章を読んでおくと、頭を抱えずにに済むことでしょう。
でもって、使い方はこんな感じです。
  1. はじめにLinuxで、ユーザのアカウントで普通にログイン
  2. ktermを開く
  3. 「su --login」を投入
  4. 管理者のパスワードを投入
  5. 「pppd call isp」を投入
  6. 接続中は、プロンプトが出ません
  7. 次にAmigaでAmiTCP/IPを起動、PLIPでLinuxと接続
  8. これで、AmigaからインターネットがOK
  9. 終了はktermに「ctrl + c」で切断プロンプトが表示

効果が体感できるほどはっきりわかります。
ISDNに換えるよりも、効果的ですね。なにせAmigaだから。
今のところ、
  1. ブラウザでホームページを見る
  2. メールを送信/受信する
  3. ブラウザでファイルをダウンロード(ftp)
といった事ができます。
現在は下記のような構成になっています。
上から、配線、Linux、Amigaの順です。

プロバイダ→アナログ回線→モデム→
→/dev/modem→ppp→IP-Masquerade→PLIP→
→PLIP→AmiTCP/IP→AWebII→olfa

当初の目的通り、シリアル通信はLinuxが行ない、
Amigaはパラレルポートから入力します。
ファイル転送で実測するとAmiga〜Linux間は220kbps程度で
モデムの56kbpsの約4倍となり、性能が落ちる心配もありません。

Amiga用の10BASE-Tボードが届いたら、ハブ経由で接続するつもりです。
そうなると、Linuxがアナログ回線用ダイヤルアップルータにそっくりだなぁ。
お店で販売されているダイヤルアップルータは何に使うのだろう。
あ、Windows用か。(笑)


*1:ダイヤルアップのソフト
*2:ネットワークのソフト
*3:ブラウザのソフト
*4:一生懸命は誤字
*5:RSA社64Bit暗号解読コンテスト、に参加している団体(distributed.net)のソフト
*6:SLIPのパラレルポート版、のAmiga版magPLIP、を自分で改造したソフト
*7:Pingで使うプロトコルなので、Pingでチェックする人は必須
*8:CD-ROMなくして、なぜかRedHatからダウンロードできず、ipchains-1.3.8-1.i386.rpmから
  後日、CD-ROMのipchains-1.3.9-3.i386.rpmを入れました。

参考ファイル
ブラウザによっては、文字化けしているかも知れません。
AWebII 3.3(Amiga)では問題ないようです。
「??????????」にそれらしい文字を入れてください。


/etc/rc.d/init.d/masq
plipのファイルをコピーして中身を書換えました。
上記masqに/etc/rc5.d/S98masqからリンクを張ってあります。

#!/bin/sh

##############################
# file /etc/rc.d/init.d/masq #
##############################

# See how we ware called.
case "$1" in
  start)
         # Start daemons.
         /bin/echo "Starting masq."
         ipchains -P forward DENY
         ipchains -A forward -s 192.168.1.3/32 -j MASQ
         ipchains -L
         insmod ip_masq_ftp
         /bin/echo "Starting masq done."
         ;;
  stop)
         # Stop daemons.
         /bin/echo "masq shutting down (do nothing)."
         ;;
  *)
         echo "Usage: $0 {start|stop}"
         exit 1
esac

exit 0


/etc/ppp/options

lock
logfile /etc/ppp/dialup.log
name ??????????
netmask 255.255.255.0
lcp-echo-failure 0
lcp-echo-interval 0
lcp-max-configure 99999
defaultroute
domain ???????????
noaccomp
nobsdcomp
noipdefault
crtscts

/etc/ppp/peer/isp

noipdefault
nodetach
debug
/dev/modem
115200
crtscts
connect 'chat -v -f/etc/ppp/chat-isp'
noauth
nopcomp
novj
novjccomp
refuse-chap
refuse-pap

/etc/ppp/chat-isp

"" "at"
OK "ATZ"
OK "ATM0"
OK "ATDP??????????"
"gin:" "??????????"
"word:" "??????????"