MS Windows の DNSクライアント
ちゃんと実装してんのか!?と、DNSレコードを勝手にキャッシュしたりする挙動を見ると腹が立つ。Microsoftのこーいうとこがキライなわけですよ。
ま、主観的な話はさておいて。
コントロールパネル→管理ツール→サービス の、"DNS Client" というサービス。説明の欄にはコレがないとDNSの名前解決が出来ないと書いてある。
このコンピュータのドメインネームシステム(DNS)名を 解決およびキャッシュします。このサービスが停止した場合、 このコンピュータはDNS名を解決できず、Active Directory ドメインコントローラーを見つけることができなくなります。 このサービスが使用不可にされた場合、このサービスに 明示的に依存するサービスはすべて起動できなくなります。
が、ホントのところこの記述は正しくない。名前解決できますよ。普通に。こいつを停止して出来なくなるのは、名前解決ではなくて、PCの上のDNSキャッシュが使われなくなること。その証拠に、マイクロソフトのサポートページでは「Windows XP および Windows Server 2003 でクライアント側の DNS キャッシュを無効にする方法」が紹介されていて、この解決方法は、"DNS Client"サービスを停止することだった。
http://support.microsoft.com/default.aspx?scid=kb;ja;318803
で、このサービスを停止して二度と起動しないようにして、PCを再起動。そしたらさっきまで引けていたドメインが引けなくなった。理由はさっぱりわからない。いろいろ苦心の末大丈夫になったんだけれど、その時覚えた nslookup の変わった話を。
nslookup コマンドの詳しい動きを知る
C:\>nslookup Default Server: ns.example.jp Address: 192.168.0.101 > ? Commands: (identifiers are shown in uppercase, [] means optional) NAME - print info about the host/domain NAME using default server NAME1 NAME2 - as above, but use NAME2 as server help or ? - print info on common commands set OPTION - set an option all - print options, current server and host [no]debug - print debugging information [no]d2 - print exhaustive debugging information [no]defname - append domain name to each query [no]recurse - ask for recursive answer to query [no]search - use domain search list [no]vc - always use a virtual circuit domain=NAME - set default domain name to NAME srchlist=N1[/N2/.../N6] - set domain to N1 and search list to N1,N2, etc. root=NAME - set root server to NAME retry=X - set number of retries to X timeout=X - set initial time-out interval to X (後略)
nslookup コマンドっていろいろあったのね、と初めて知ったよ。とくに set debug とか set d2 を叩いていろいろ調べるととてもよくわかる。"example.jp" と "example.jp."(最後にドットがある/ない)の違いもわかるかもね。
で、nslookup コマンドの紹介みたいなマネをしちゃったけれど、これはダメなコマンドなのですよ。Bind9からだと思うんだけれど、nslookupコマンドの起動時にはこんなメッセージが出ます。
Note: nslookup is deprecated and may be removed from future releases. Consider using the `dig' or `host' programs instead.
要するに、nslookup はダメな奴だから dig とか host コマンドを使いなさいよ、ってことです。Windows環境しかない人にはちょっとかわいそうだけれど、UNIXみたいなOSの人はdigを使いましょう。便利だしね。