原作: 浅見 賢 <asami@FreeBSD.ORG>8 Aug 1995.
訳: 花井浩之 <hanai@FreeBSD.ORG>8 August 1996.
ここには FreeBSD マシンを静的アドレスのネットワークにつなげる場合の SLIPのセットアップの一つの方法を書いてあります. ホスト名を動的に割り当てる(つまり, ダイヤルアップするたびにアドレスが かわる)ためには, おそらくもっと凝ったことが必要です.
まず, モデムがどのシリアルポートにつながっているか決めましょう. 私は /dev/cuaa1 から /dev/modemへというシンボリックリンクを張り, コンフィグレーションではその名前だけを使っています. /etc や.kermrc など, システム全体に散らばっているファイルを修正する 必要がでるとまったく煩わしいのです!
Note: ここで, /dev/cuaa0は COM1であり, cuaa1はCOM2です.
カーネルのコンフィグレーションファイルに
pseudo-device sl 1という記述があるのを確認してください. これは GENERIC カーネルに含まれている ので削除していない限り大丈夫でしょう.
/etc/hosts ファイルにあなたのマシンのゲートウェイとネームサーバ を加えてください. 私のは以下のようになっています.
127.0.0.1 localhost loghost 136.152.64.181 silvia.HIP.Berkeley.EDU silvia.HIP silvia 136.152.64.1 inr-3.Berkeley.EDU inr-3 slip-gateway 128.32.136.9 ns1.Berkeley.edu ns1 128.32.136.12 ns2.Berkeley.edu ns2
余談ですが, silviaというのは私が日本にいた時に持っていた 車の名前です(米国では2?0SXと呼ばれています).
/etc/host.conf ファイル中で hostsがbind よりも前にあること を確認してください. さもないとヘンなことが起こるかもしれません.
/etc/rc.conf ファイルを編集してください. なお, お使いの FreeBSD が 2.2.2 よりも前のバージョンのものの場合は, /etc/sysconfig を編集してください.
行
hostname=myname.my.domain
を編集してホスト名をセットしてください. 完全なInternetホスト名を与えるべきです.
行
network_interfaces="lo0"
を
network_interfaces="lo0 sl0"
へ変更することにより ネットワークインタフェースのリストに sl0 を加えてください.
行
ifconfig_sl0="inet ${hostname} slip-gateway netmask 0xffffff00 up"
を加えて sl0 のスタートアップフラグをセットしてください.
行
defaultrouter=NO
を
defaultrouter=slip-gateway
へ変更してデフォルトのルータを 指定してください.
次の
domain HIP.Berkeley.EDU nameserver 128.32.136.9 nameserver 128.32.136.12
という内容を含むファイル /etc/resolv.conf を作ってください. 見ればわかるように, これらはネームサーバホストを設定しています. もちろん, 実際のドメイン名やアドレスは あなたの環境に依存します.
root と toor (及びパスワードを持っていない他のアカウントすべて) のパスワード を設定してください. passwdコマンドを使いましょう. /etc/passwd や /etc/master.passwd といったファイルを編集してはいけません!
マシンを再起動して正しいホスト名で 立ち上がることを確認してください.
モデムを起動, つながったらプロンプトで slipとタイプし, マシン名と パスワードを入力してください. 入力する必要があるものは環境に よって異なります. 私は次のようなスクリプトでkermitを使っています.
# kermit setup set modem hayes set line /dev/modem set speed 115200 set parity none set flow rts/cts set terminal bytesize 8 set file type binary # The next macro will dial up and login define slip dial 643-9600, input 10 =>, if failure stop, - output slip\x0d, input 10 Username:, if failure stop, - output silvia\x0d, input 10 Password:, if failure stop, - output ***\x0d, echo \x0aCONNECTED\x0a
(もちろん, ホスト名とパスワードは変える必要があります). 接続するためには kermit のプロンプトで slipとタイプするだけです.
Note: ファイルシステムのどんなところにもプレインテキスト にパスワードを書いておくのは一般的にはよくありません. 覚悟の上で やってください. 私は単に不精なだけです.
ここでkermitから抜け出し (zでkermitをサスペンドできます), root で
# slattach -h -c -s 115200 /dev/modem
と入力しましょう. もしルータの向う側のホストへ ping できるなら接続成功です! もしうまく いかなければslattachへの引数として -c の代わりに-aとやってみてください.
slattachを殺すためにrootで
# kill -INT `cat /var/run/slattach.modem.pid`とタイプしてください. そして kermit に戻り (もしkermitをサスペンドしていたなら fg), kermitから抜けてください (q).
slattachのマニュアルページにはインタフェースを落すために ifconfig sl0 downをしなければいけないと書いていますが, 私には差がないように見えます. (ifconfig sl0とやっても同じ結果が得られる.)
時にはモデムがキャリアを落すのを 拒絶するかもしれません(私のは よくそうなります). その時は単にkermitをスタートしてまた終了 してください. 普通は2回目で落ちます.
もし動かなければ自由に私に質問してください. 今までいろんな人がつまずいた のは次のようなことです.
slattach で -c や -a を使わなかった(私はなぜこれが致命的になり得るのか わかりませんが, このフラグを付けることで少なくとも一人の 問題は解決しました.)
sl0 の代わりに s10 を使った(いくつかのフォントでは見分けるのは難しい かもしれません).
インタフェースの状態を見るために ifconfig sl0 をやってみてください. 私は,
# ifconfig sl0 sl0: flags=10<POINTOPOINT> inet 136.152.64.181 --> 136.152.64.1 netmask ffffff00
となります.
また, pingが "no route to host" というメッセージを返す時には netstat -rでルーティングテーブルを確認しましょう. 私のは,
# netstat -r Routing tables Destination Gateway Flags Refs Use IfaceMTU Rtt Netmasks: (root node) (root node) Route Tree for Protocol Family inet: (root node) => default inr-3.Berkeley.EDU UG 8 224515 sl0 - - localhost.Berkel localhost.Berkeley UH 5 42127 lo0 - 0.438 inr-3.Berkeley.E silvia.HIP.Berkele UH 1 0 sl0 - - silvia.HIP.Berke localhost.Berkeley UGH 34 47641234 lo0 - 0.438 (root node)
となります. (これはたくさんのファイルを転送した後でのもので, あなたの見る数字はもっと小さいかも しれません).