Windows XP のネットワーク共有と、恐るべし hostsファイル
すでにどこかに文書としてあがっているかもしれないのですが、自分で coLinuxなどを入れて試してみて気付いたことなど。
![ワイアレスネットワーク接続の設定 ワイアレスネットワーク接続の設定](https://masaru.org/wp/wp-content/uploads/2006/12/thumb_pc_20061227_3.png)
coLinux は Windows 上で動く Linux で、ネットワークの接続の設定をきちんと行えば、インターネットと通信できる状態になります。 この Linux のシステムからインターネットに接続するには、Windows側で管理されたネットワークのインターフェースを介して通信するという具合になります。 coLinux 側と coLinuxを動かしているWindowsとの間では、Windows側にはTAPと呼ばれる仮想ネットワークインターフェースが準備され、このTAPがcoLinuxのEthernetと繋がっているという具合になっています。 これで coLinux : Windows 間のネットワークができました。
んで、この coLinux が外部のインタネットと通信するには、Windowsで何らかのパケット交換を行ってもらうこと隣ます。 そのために、このPCと対外的につないでいるインターフェースのプロパティ設定の「詳細設定」の「インターネット接続の共有」を行います。ここの「ホームネットワークの接続」のところに、coLinuxと繋がるTAPのデバイスを指定します。 (今回の場合、対外的に接続するネットワークが無線LANなので)
この設定を行ったところ、Windows側の coLinux TAP のインターフェースに IPアドレス 192.168.0.1/24 が割り当てられていたので、coLinux 側ではインターフェースIPアドレスに 192.168.0.2/24 を指定して、default route と DNS server に 192.168.0.1 を指定しました。 どうやら WindowsではNAT router と DNS proxy の機能を持っているようです。
ちと遊び半分で Windows の TAP側に設定されているIPアドレスの 192.168.0.1 を coLinux 側で nslookup してみたところ、venti.mshome.net. というホスト名が。 venti はWindows機にあてているホスト名なので普通ですが、mshome.net. って。。 と思って whoisで調べてみたところマイクロソフトさんでした。
んで、このDNSのレスポンス、どっから来ているんだとおもって調べたところ、 C:WINDOWSsystem32driversetchosts.ics
というファイルが /etc/hosts 形式で自動生成されており、このような内容となっておりました。
# Copyright (c) 1993-2001 Microsoft Corp.
#
# This file has been automatically generated for use by Microsoft Internet
# Connection Sharing. It contains the mappings of IP addresses to host names
# for the home network. Please do not make changes to the HOSTS.ICS file.
# Any changes may result in a loss of connectivity between machines on the
# local network.
#
192.168.0.1 venti.mshome.net # 2011 12 1 26 15 49 9 62
なるほどなるほど。 ということは、hosts に書かれた内容をWindowsでDNSのレスポンスとすることができるのか。 すばらしい。
ってことで、ついでに coLinux側のIPアドレスを C:WINDOWSsystem32driversetchosts
に書いて遊んでみたり。
192.168.0.2 colinux.masaru.org colinux
これで正引き・逆引きともに Windows の hosts ファイルで設定できるようになりました。 Windowsのhostsファイル恐るべし
コメント
コメントを投稿