Instlation of iij-ppp and NAT patch iij-ppp + NATパッチのインストール |
もしLANに2台以上のPCがぶら下がっているなら,思い切ってダイアルアップサーバーを組んでみましょう.
これを組むと,LANに繋がっているPC全てからインターネットへ接続することが可能です.
※1:root権限でインストールしましょう.
※2:調整中のためまだ怪しい箇所があるかも知れません.参考程度にどうぞ.
↓ここから取ってきましょう.
http://www2a.biglobe.ne.jp/~junichi/freebsd/lowtech/nat.html
FreeBSDのリリース番号を間違えないように注意して下さい.
また,ダウンロードしたときに改行コードが変わると思いますので,nkfなどで改行コードをCRLFからCRに変換して下さい.さもないと正しくパッチが当たりません.
# mv nat-xxxxxx.patch nat-xxxxxx.bak # rm nat-xxxxxx.patch # nkf -d nat-xxxxxx.patch.bak > nat-xxxxxx.patch |
このパッチを入れるとRELEASE-2.2.7R(98)では,日本語化されているマニュアルが英語版に変わってしまうので,/usr/share/man/cat8/ にある ppp.8.gz を別ディレクトリにバックアップしておく.
(このファイルは既にマニュアル形式に整形済み)
/usr/src/usr.sbin/ppp/ のバックアップを取ってからパッチを当てます.
/usr/src/usr.sbin/ が無い場合は /stand/sysinstall でソースをインストールして下さい.
# cd /usr/src/usr.sbin/ # patch -p < nat-xxxxxx.patch |
# cd ppp/ # make # make install |
必要なファイルは以下の通り.
・ppp.confこれらを /etc/ppp/ に作成します.
・ppp.linkup
・ppp.linkdown
・ppp.secret
# mv filename filename.bak # nkf -de filename.bak > filename |
1.ゲートウェイの認可
/etc/rc.conf の中の gateway_enable を "YES" にします.さもないとFreeBSDマシンがルーターとして働いてくれません.
/usr/local/etc/rc.d/ppp.sh を作成します.
/usr/local/etc/rc.d/ は,Windowsで言えばスタートアップフォルダのような物です.
この中に実行属性が付いた *.sh ファイルが入っていると,それを実行するようになっています.
ファイル作成後,ppp.sh には実行属性を付けておきましょう.
# chmod 555 ppp.sh
ゲートウェイとDNSの設定を行います.
まず,「コントロールパネル」→「ネットワーク」→「TCP/IP」のプロパティ→「ゲートウェイ」タブでゲートウェイの設定ができます.
ここにはNATパッチを当てたiij-pppが動いているFreeBSDマシンのIPアドレスを指定します.
次に,「DNS設定」タブでDNSの設定をしますが,DNSアドレス欄にはプロバイダから教えられたDNSのIPアドレスを記述します.
「ホスト名」にはプロバイダで使っているIDを記述し,ドメインにはプロバイダのドメイン名を記述します.
・ゲートウェイの設定
・DNSの設定
ダイアルアップさせたくないときや,逆にダイアルアップさせたい場合などが往々にしてあります.
しかし,PPPをオートモードで起動していると手が出せません.
そんなときに役立つのがpppctl(8).
こいつでiij-pppのコントロールができます.
・pppauto:iij-pppをオートモードで実行で,このファイルもWindowsでゲットすると改行コードが変わるみたいなので,圧縮ファイルにて置いておきます.
・pppquit:iij-pppデーモンを終了します.
・pppopen:ダイアルアップ開始
・pppclose:ダイアルアップ切断
・pppteleho:テレホーダイ用にtimeoutを設定
・ppplogclear:/var/log/ppp.log を綺麗さっぱり(rmで消してはダメです)
・ppplogview:/var/log/ppp.log をエディタで閲覧
# perl ppp-command.cgi |
50 7 * * * root /usr/sbin/pppctl -p password 3000 set timeout 90 10 23 * * * root /usr/sbin/pppctl -p password 3000 set timeout 27000 55 7 * * * root /usr/sbin/pppctl -p password 3000 \; close #5 23 * * * root /usr/sbin/pppctl -p password 3000 \; dial |
これで設定は終了,と言いたいところですが,このままでは不意にダイアルアップする場合があるようです.
理由としては,Windowsが名前解決のためにDNSを使う,ということです.
通常,NetBIOSでは名前解決ができない場合はそのまま放って置くはずが,なぜかDNSを引きに行くのです(バグ?).
/var/log/ppp.log を見てみると,たしかにポート番号53でDNS参照しています.
ということで,ここで2つの解決方法があります.
1.ローカルなDNSサーバー(BIND)を建てる
2.Windowsのレジストリをいじる
1.を選択すると,構築がちょっと面倒ですが,マシンごとにhostsファイルの用意とレジストリの書き換えを行わずにすみます.
2.を選択すると,初めのマシンが少ないうちは楽でしょうが,マシンが増えてくるとレジストリの書き換えとhostsファイルの用意に大露わです.(笑)
ここでは目先の楽さには目をつぶってローカルDNSサーバーを構築することにします.
ちなみにWindowsのレジストリをいじる場合は,\HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\VxD\MSTCP\ の EnableDns を 0 にします.
これを施した後にネットワークのプロパティでDNSの設定を見てみると,DNSが未使用になっていますが,上位ネットワークの辞書引きは行えるので大丈夫です.
ただし,ネットワークのプロパティを変更した場合,この文字列の値が必ず 1 になってしまうので,その都度書き換えなければなりません.
DNSサーバーを建てた方が遙かに楽なのは一目瞭然ですね.
それにどのみち避けることのできない道でしょうから・・・.
それではbindの設定に行きましょうか.
bindの設定へGo!
←戻る |
Made with Original Machine "MIRAGE"
Made by HyperEdit for Windows |