タイトル【Darwinシリーズ】ネットワークの設定:外部ネットとのルータを指定するカテゴリーネットワーク, Darwin, Darwin 1.0
作成日2000/7/13 11:43:1作成者新居雅行
IPアドレスさえ指定できれば、インターネット通信ができるとは言っても、それは完全ではない。次は、ルータのアドレスを指定したい。このあたりからはネットワーク環境がからんでくるので、まずは実験を行ったネットワーク環境を説明しておこう。もちろん、100BASE-TXで何台かのパソコンが接続されていて、その1つがBlue & WhiteのPower Macintosh G3で、そこでDarwinが稼働している。そして、ネットワークにつながれたLinuxマシンを経由して、ケーブルテレビのインターネットに接続している。LinuxマシンにはEthernetカードが2枚刺さっている状態で、IPマスカレードしている。ケーブルテレビに対してはDHCPでグローバルアドレスが配給されるが、IPマスカレードの内側では、192.168.0.Xという典型的なプライベートアドレス環境となっている。なお、末尾が100以降をプライベートアドレスの範囲だけに機能するDHCPサーバで、IPアドレスを配給している。内部ネットワークから見れば、ルータもネームサーバもいずれも192.168.0.1となっている。

Darwinでのルータの指定は、いろいろなファイルを調べているうちに、/etc/hostconfigにありそうなので、そこを変更してみてることにした。ここも-AUTOMATIC-になっている。
◇/etc/hostconfigファイルの初期状態
 

ここで、
 HOSTNAME=darwin99
 ROUTER=192.168.0.1
と指定をした。いちおう、期待を込めて、AFPSERVERやAPPLETALKなどの右側もYESを入れてみた。
だが、hostconFigファイルのコメントにあるように、このファイルはシステムによって管理されている。-AUTOMATIC-としておけば、たとえばDHCPから必要な情報を取得するような機能がMac OS Xのレベルでは組み込まれるのかもしれない。また、NetInfoについてはここではノーマークで作業を行っているが、NetInfoの設定とのからみもあるのかもしれない。だから、このファイルを修正するという方法はおそらくMac OS Xでは通用しないとは思われるが、とりあえずDarwinのレベルで稼働するためにここを変更してみた。
なお、ここで、hostconfigファイルは、所有者のrootに対しても読み込みのみのアクセス権となっている。もちろん、chmodで変更してもいいが、viで編集しているとき、「:w!」コマンドで、書き込み不許可を無視してファイルの上書きを行う。まあ、あまり行儀はいいとは言えないまでも、知っておくと便利なことは確かだろう。

そして、再起動してみた。これで、「ping (IPアドレス)」、あるいは「telnet (IPアドレス)」というコマンドを、IPアドレスにネットワークの外側にあるものを指定して入力し、うまくいった。つまり、外部のネットワークとの通信では、ルータに送られるというゲートウエイの設定がなされたということである。

netstat -r コマンドの実行結果は次の通りだ。上がhostconfig修正前で、下がhostconfig修正後である。デフォルトのルータとして、「msykhome.msyk....」が設定されているが、これは、192.168.0.1からホスト名を逆引きした結果得られるドメイン名である。フラグにGがあり、ゲートウエアであることが分かる。
◇netstat -rコマンドでルータの設定を参照した
 

ただ、ps auxコマンドで、プロセス一覧を見てみたが、AppleTalkやAppleShareサーバ、あるいはhttpd(Apacheサーバ)が起動している様子はなかった。hostconfigの設定は、指定をしたからと言って必ずしも有効とは限らないようだ。
さて、残るは、ドメイン名を指定しての通信だ。このままでは、nslookupはもちろんだが、telnet (ドメイン名) と指定して、別のマシンに接続することができない。
関連リンク