ふぁーー。FreeBSD 4.1.1-RELEASE になって ppxp の packages が付く様になりましたな。ふみふみ。と、言う事で、IIJ-PPP では無く ppxp と言う Linux 方面で使われている PPP のソフトを使ってみましょう。
Linux 方面の PPP と、言う事で、知っている人は知っている 真鍋さん が作っておられます。関連するページはこちらです。
FreeBSD には IIJ-PPP を拡張した PPP があるのに、なんでわざわざ PPxP を利用するのか?その辺りを書いてみたいですが、IPv6 してみる?の一番最後の所で書いています。
既存の IIJ-PPP は、なんでもかんでもアドレス変換してしまっているので、ppp.conf で IPv4 の nat enable してしまうと、IPv6 のトンネルをしてくれません。なので、IPv6 のトンネルしつつ、IPv4 の NAT 機能を enable にする事は不可能なのでした。
IIJ-PPP のオプションをいろいろ調べたりしてどうしたら良いか活路をいろいろ見いだしていた所、「どうも IIJ-PPP はなんでもかでもアドレス変換してしまう様だ。他の PPP ソフトを使えばもしかしたらだいじょーぶかもしれん。」と、言う感じで助言をいただいたので早速 PPxP を試してみた。と、言う事です。
ふっふっふっ。人間、なんかにぶつからんと新しい事に足はつっこまんわな;-)。
まずは、ppxp-0.99120923.tgz と言うパッケージを pkg_add します。他に 3,4 個程 packages が必要になりますが併せてインストールしてしまいましょう。インストールが完了した所で、rehash した後、すかざず qdial を起動しましょう。
こんな感じで開かれると思うので、開いている項目に値を入れていけば OK です。以下は私の設定です。参考にしてみてください。
----------------
Dial Type /dev/cuaa1
Phone Number Isdn
Login Name プロバイダの番号
Passwd そのパスワード
Passwd(again) そのパスワードの二回目
--- そして、次の項目 ---
Authentication CHAP/MD5 PAP
PPP Mode active
Modem Type mn128 (MN128 MN128SOHO MN128mini 64k PPP)
Idel Time 0
IP Masquerade 192.168.1.0/24
----------------
と、言った感じでしょうか。Modem Type にちょっと癖が有りそうですが、これは /usr/local/etc/ppxp/modem にいろいろなモデムの設定があるのでそれを参考にして自分に有ったモノを作成するのも手かと思います。ちなみに私は、デェフォルトの mo128 を変更しました。私は、ISDN で PPP しよう。で書いている通り MN128-mini を持っています。これに合わせて設定ファイルを作成しました。こんな感じです。
--- mn128-mini-64 ---
# PPxP mi file for MN128/MN128SOHO by Tomonori Honda
# MN128mini by Hase Hidemi
include standard
Name "MN128-mini 64k PPP"
Initialize "AT&F&Q5$S12"
MaxDTESpeed 115200
--- mn128-mini-128 ---
# PPxP mi file for MN128/MN128SOHO by Tomonori Honda
# MN128mini by Hase Hidemi
include standard
Name "MN128-mini 128k PPP"
Initialize "AT&F&Q5$S14!H1"
MaxDTESpeed 115200
----------------
これを Modem Type に指定してあげて、とりあえずは save します。save したモノは、/usr/local/etc/ppxp/conf に格納されます。後は、直接そのファイルをエデダで編集してもぐーー。って感じでしょうか。;-)。
では、connect してみましょう。無事に電話を掛けにいきましたか?うまくいけば、すごいっ!! ラクチン。行かない場合は、設定をもう一度見直してみましょう。後、log は /var/log/ppxp に格納されます。それもチェックしてみましょう。
後は、% tkppxp conffile などとすると、
GUI でコントロールできます。すげーーーっ!!と、言う事で後はドキメントを読むなりして使い方、設定を学んでください。/usr/local/share/doc/ppxp/ja にドキメントがインストールされています。
これで、OK ですが、root でしか実行できないのは困りますね。ぜひとも一般ユーザの権限で起動してみたいモノだ。そんな時はすかさず、
----------------
# ls -l /dev/cuaa1
crw-rw---- 1 uucp dialer 28, 129 8/12 00:56 /dev/cuaa1
----------------
してみるとっ!!ぉーー。なぁるほろ。dialer の grpup に登録してあげれば OK でないかい!? と、言う事に気がつきますが、果たしてその通りでございました;-)。
実は素晴らしいスバラシイとも言ってられない事態がおきております。ターミナルモードであるとか、X のアプリケーション上では動くのだけれど、実は、デーモンモードでは動いてくれないみたいです。いろいろ調べた結果、Linux では、cron に /usr/local/bin/ppxp conffile -C connect と書けば動くみたいですが、FreeBSD でこれすると、ppxpd なるデーモン君が signal 11 してしまいます。しくしく。どうあがいても cron で起動できませんでした。
ただ、一つだけ手があって、例えば、tkppxp を起動しつつダイアルが切ってある状態の時に ppxp conffile -C connect すると無事に cron で起動。と言うか接続できます。それでやるしか今の所手が無いみたいです。ちょっと悲しい状態ですがしかた無いですね・・。
と、言う事で、IIJ-PPP があるのに IPv6 トンネルと、IPv4 の NAT を同時にしたいが為にわざわざ、PPxP を使う。と、言う事になりました。が、まぁ、、cron で動かない。と、言う事があるにせよやりたい事が出来て動き出した。と、言う事は良い事です。
皆さんも IPv6 トンネルして、IPv4 の NAT をする時には是非ご利用ください;-)。IPv6 もどしどし利用してください。4.0-RELEASE より数段使いやすくなっています。IPv6 Only なネットワークも構築できますよ。ふふふ。