この特集のトップページへ
Chapter 1:NetBIOSの基礎知識

COLUMN:TCP/IPアプリケーションの名前解決手順

 Windows 95,Windows 98,Windows NTでは,TCP/IPアプリケーションの名前解決方法が拡張されている。Unixに代表される一般的なTCP/IPインプリメンテーションでは,HOSTSファイルとDNSによる名前解決を試みる。しかしWindowsの場合は,これに加えてNBTによる名前解決も利用するようになっている。DNSキャッシュ,HOSTSファイル,DNSの順に検索して名前解決に失敗すると,NBTのノードタイプに従って名前解決を試みるのである。したがって,HOSTSファイルやDNSサーバーがなくても,TCP/IPアプリケーションで名前解決できる場合がある。

 たとえば,コマンドプロンプトからftpコマンドを実行した場合について説明してみよう。

 まずは,DNSに登録されているホストと接続するときのトレースを見てほしい。biblo.dsl.privateというのがDNSサーバーである。[1]でDNSに対して問い合わせ,[2]で回答が戻ってきている。名前解決に成功したため,[3]でftpのセッションを確立しようとしている。なお,dsl.privateというのは架空のドメイン名である。

[1] lily.dsl.private.1060 > biblo.dsl.private.53: 1+ (35)
[2] biblo.dsl.private.53 > lily.dsl.private.1060: 1* 1/1/1 (92)
[3] lily.dsl.private.1061 > biblo.dsl.private.21: S 8030612:8030612(0) win 8192  (DF)
[4] biblo.dsl.private.21 > lily.dsl.private.1061: S 1628197891:1628197891(0) ack 8030613 win 32120  (DF)
[5] lily.dsl.private.1061 > biblo.dsl.private.21: . ack 1 win 8760 (DF)
[6] biblo.dsl.private.21 > lily.dsl.private.1061: P 1:93(92) ack 1 win 32120 (DF) [tos 0x10]
[7] lily.dsl.private.1061 > biblo.dsl.private.21: . ack 93 win 8668(DF)

フォントサイズを 大きくする / 小さくする(※Internet Explorer4.0以上)

 次に,DNSに登録されていないサーバーへの接続を試みた場合を見てほしい。[1]で DNSに対して問い合わせ,[2]でDNSに登録されていないという回答を得ている。そのあと,[3]でftpクライアント側から,UDPの137番ポートを使用してブロードキャストしているのがわかる。これが,NBTによる名前解決のパケットである。ftpクライアントとなっているコンピュータはbノードであるため,ブロードキャストを利用して名前解決している。[4]でbibloというコンピュータから回答を得て名前解決に成功し,[5]でftpのセッションを確立しようとしていることがわかる。

[1] lily.dsl.private.1062 > biblo.dsl.private.53: 1+ (38)
[2] biblo.dsl.private.53 > lily.dsl.private.1062: 1 NXDomain* 0/1/0 (109)
[3] lily.dsl.private.137 > 192.168.1.255.137: udp 50
[4] biblo.dsl.private.137 > lily.dsl.private.137: udp 62
[5] lily.dsl.private.1063 > biblo.dsl.private.21: S 8653610:8653610(0) win 8192  (DF)
[6] biblo.dsl.private.21 > lily.dsl.private.1063: S 2297233530:2297233530(0) ack 8653611 win 32120  (DF)
[7] lily.dsl.private.1063 > biblo.dsl.private.21: . ack 1 win 8760 (DF)
[8] biblo.dsl.private.21 > lily.dsl.private.1063: P 1:93(92) ack 1 win 32120 (DF) [tos 0x10]
[9] lily.dsl.private.1063 > biblo.dsl.private.21: . ack 93 win 8668(DF)

フォントサイズを 大きくする / 小さくする(※Internet Explorer4.0以上)

 また,Windows 95,Windows 98,Windows NTでは,DNSに問い合わせた結果をキャッシュしている。いったん名前を解決すると,TTL(Time To Live)の有効期限が切れるまで,DNSサーバーに対して問い合わせることはなくなる。ただし,DNSに対する問い合わせのキャッシュは,NBTのようにシステムレベルで保持されるのではなく,アプリケーションごとに保持される。

 NBTと同様に,TCP/IPの名前解決手順も変更することができる。Windows NT 4.0の場合は,HKEY_LOCAL_MACHINE\SYSTEM
\CurrentControlSet\Services\Tcpip
\ServiceProviderに,Windows 95/98の場合は
HKEY_LOCAL_MACHINE\SYSTEM
\CurrentControlSet\Services\VxD
\MSTCP\ServiceProviderに,Table 1-4のパラメータをDWORDタイプで設定する。値が小さいほど,優先度が高くなる。

Table 1-4 TCP/IPの名前解決手順を表すレジストリの設定値
パラメータ 意味 デフォルト値
LocalPriority DNSキャッシュ 0x1f3
HostsPriority HOSTSファイル 0x1f4
DNSPriority DNSサーバー 0x7d0
NetbtPriority NBTによる名前解決 0x7d1

PREV 5/14 NEXT