WINSサーバーとDNSサーバーは、どちらもネットワーク上で使われる「名前解決」の仕組みです。
名前解決とは、コンピューター名やドメイン名など、人間が理解しやすい名前を、コンピューターが通信に使うIPアドレスなどへ変換することです。
ただし、WINSサーバーとDNSサーバーでは、解決する名前の種類や使われる場面が大きく異なります。
簡単にいうと、WINSサーバーは古いWindowsネットワークで使われるNetBIOS名を解決する仕組みです。
一方、DNSサーバーはインターネットや社内ネットワークで広く使われている、現在標準的な名前解決の仕組みです。
現在のネットワークでは、基本的にDNSサーバーが中心です。
WINSサーバーは、古いWindows環境やレガシーアプリケーションとの互換性を維持するために残っていることがあります。
| 項目 | WINSサーバー | DNSサーバー |
|---|---|---|
| 正式名称 | Windows Internet Name Service | Domain Name System |
| 主な役割 | NetBIOS名をIPアドレスに解決する | ドメイン名やホスト名などを解決する |
| 扱う名前 | NetBIOS名 | DNS名、FQDN、ドメイン名 |
| 名前の例 | FILESERVER、PC001 |
www.example.com、server01.example.local |
| 主な利用環境 | 古いWindows LAN環境 | インターネット、社内LAN、クラウド、Active Directory |
| 名前空間 | 基本的にフラット | 階層型 |
| 現在の利用頻度 | 少ない | 非常に多い |
| 新規導入の推奨度 | 基本的に非推奨 | 標準的に利用 |
| 主な用途 | 古いWindows共有、NetBIOS名解決 | Web、メール、社内システム、AD、クラウド連携など |
ネットワーク上でコンピューター同士が通信するとき、実際にはIPアドレスが使われます。
たとえば、Webサイトにアクセスするとき、人間は次のような名前を入力します。
www.example.com
しかし、コンピューターが通信するためには、次のようなIPアドレスが必要です。
93.184.216.34
このように、名前をIPアドレスなどに変換する処理を「名前解決」といいます。
WINSサーバーもDNSサーバーも名前解決に関係する仕組みですが、扱う名前の種類が異なります。
WINSサーバーは、主にNetBIOS名を解決します。
FILESERVER
PC001
NAS01
一方、DNSサーバーは、DNS名やドメイン名を解決します。
www.example.com
server01.example.local
mail.example.co.jp
つまり、両者の違いを理解するうえで重要なのは、WINSはNetBIOS名、DNSはDNS名を扱うという点です。
WINSサーバーとは、NetBIOS名をIPアドレスに登録・解決するためのサーバーです。
NetBIOS名とは、古いWindowsネットワークで使われていたコンピューター名のようなものです。
たとえば、社内ネットワークで次のようにファイルサーバーへアクセスする場合があります。
\\FILESERVER
このとき、FILESERVER という名前がどのIPアドレスを指しているのかを調べる必要があります。
そのNetBIOS名の解決に使われていたのがWINSサーバーです。
より技術的にいうと、WINSはMicrosoftによるNetBIOS Name Server、つまりNBNSの実装です。
NetBIOS over TCP/IP環境では、NetBIOS名とIPアドレスを対応付ける必要があります。
WINSサーバーは、その対応関係を中央で管理します。
たとえば、PC001 という端末が起動すると、WINSサーバーに次のような情報を登録します。
PC001 = 192.168.1.25
その後、別の端末が PC001 にアクセスしたい場合、WINSサーバーへ問い合わせます。
PC001 のIPアドレスを教えてください
WINSサーバーは、登録されている情報をもとに次のように応答します。
192.168.1.25 です
この仕組みにより、クライアントはNetBIOS名を使って他のコンピューターへアクセスできます。
かつてのWindowsネットワークでは、ファイル共有やプリンター共有などでNetBIOS名がよく使われていました。
同じネットワーク内であれば、ブロードキャストによって名前を探すこともできました。
たとえば、あるPCがネットワーク全体に対して次のように問い合わせます。
FILESERVERという名前のコンピューターはいますか?
しかし、ブロードキャストは通常、ルーターを越えられません。
そのため、複数のネットワークセグメントに分かれた環境では、ブロードキャストだけではNetBIOS名を解決できないことがありました。
そこで、NetBIOS名とIPアドレスの対応を集中管理するためにWINSサーバーが使われました。
DNSサーバーとは、ドメイン名やホスト名などを解決するためのサーバーです。
一般的には、ドメイン名をIPアドレスに変換する仕組みとして知られています。
たとえば、ブラウザで次のURLにアクセスするとします。
https://www.example.com
このとき、パソコンはDNSサーバーへ問い合わせます。
www.example.com のIPアドレスを教えてください
DNSサーバーは、対応するIPアドレスを返します。
93.184.216.34 です
その後、パソコンはそのIPアドレスにアクセスします。
DNSは「名前をIPアドレスに変換する仕組み」と説明されることが多いですが、厳密にはIPアドレスだけを扱うわけではありません。
DNSでは、さまざまな種類のレコードを管理します。
| レコード | 役割 |
|---|---|
| Aレコード | ホスト名をIPv4アドレスに対応付ける |
| AAAAレコード | ホスト名をIPv6アドレスに対応付ける |
| CNAMEレコード | 別名を設定する |
| MXレコード | メールサーバーを指定する |
| TXTレコード | SPF、DKIM、所有権確認などのテキスト情報を登録する |
| SRVレコード | サービスの場所を指定する |
| NSレコード | 権威DNSサーバーを指定する |
| PTRレコード | IPアドレスからホスト名を逆引きする |
たとえば、Webサイトの表示にはAレコードやAAAAレコードが使われます。
メールの送受信にはMXレコードが関係します。
メール認証やドメイン所有権確認にはTXTレコードが使われます。
Active Directoryでは、ドメインコントローラーなどのサービスを探すためにSRVレコードが使われます。
つまりDNSは、単にIPアドレスを返すだけでなく、ネットワークサービス全体を支える重要な仕組みです。
WINSサーバーとDNSサーバーの最も大きな違いは、扱う名前です。
WINSサーバーはNetBIOS名を扱います。
FILESERVER
PC001
PRINTER01
DNSサーバーはDNS名やFQDNを扱います。
fileserver.example.local
pc001.sales.example.local
printer01.osaka.example.local
NetBIOS名は、基本的に短い単一名です。
一方、DNS名はドットで区切られた階層構造を持っています。
WINSで扱うNetBIOS名は、基本的にフラットな名前空間です。
FILESERVER
PC001
NAS01
これに対して、DNSは階層型の名前空間です。
server01.osaka.example.local
DNS名は、次のように階層構造で管理できます。
local
└── example
└── osaka
└── server01
この構造により、DNSは大規模なネットワークやインターネット全体の名前管理に適しています。
たとえば、東京拠点と大阪拠点で同じような役割のサーバーがある場合でも、DNSであれば次のように整理できます。
fileserver.tokyo.example.local
fileserver.osaka.example.local
一方、WINSのNetBIOS名は階層構造を持たないため、大規模な名前管理には向いていません。
WINSサーバーは、主に古いWindows LAN環境で使われていました。
具体的には、古いWindows端末、古いファイル共有、古い業務アプリケーションなどがNetBIOS名に依存している場合に使われます。
一方、DNSサーバーは、現在のネットワークで標準的に使われています。
DNSは、次のような場面で利用されます。
現代のネットワークでは、DNSなしで安定運用することは非常に難しいといえます。
現在のネットワークにおいて、DNSサーバーは非常に重要です。
Webサイトを見るときも、メールを送るときも、社内システムにアクセスするときも、多くの場合DNSが使われます。
Active Directory環境でもDNSは重要です。
クライアントPCがドメインコントローラーを探したり、各種サービスの場所を確認したりする際にDNSが使われます。
一方、WINSサーバーは現在ではレガシーな仕組みです。
新しくネットワークを構築する場合、通常はWINSを新規導入する必要はありません。
WINSが必要になるのは、古いWindows環境やNetBIOS名に依存したシステムが残っている場合です。
現在の新規ネットワーク構築では、基本的にDNSを中心に設計します。
Windows環境であっても、現在はDNSを使った名前解決が標準です。
Active DirectoryでもDNSが前提となっています。
そのため、新規環境でWINSサーバーを積極的に導入するケースはほとんどありません。
実務上は、次のように考えるとわかりやすいです。
新しい環境 = DNS中心
古いWindows互換が必要な環境 = WINSが残る可能性あり
ただし、既存環境にWINSサーバーがある場合は、いきなり停止しないほうが安全です。
古い業務アプリケーションや機器が、NetBIOS名に依存している可能性があるためです。
たとえば、アプリケーションの設定ファイルに次のようなサーバー名が書かれている場合があります。
DBSERVER
この DBSERVER がDNS名ではなくNetBIOS名として解決されている場合、WINSサーバーを停止するとアプリケーションがデータベースへ接続できなくなる可能性があります。
また、古いNASや複合機、スクリプト、共有フォルダのショートカットなどがNetBIOS名に依存していることもあります。
そのため、WINSを廃止する場合は、事前に依存関係を確認する必要があります。
実務で注意したいのが、短い名前だからといって必ずWINSで解決されるわけではないという点です。
たとえば、ユーザーが次のようにアクセスしたとします。
\\fileserver
このようにドットを含まない短い名前を見ると、WINSやNetBIOS名解決を使っているように見えるかもしれません。
しかし、Windows環境ではDNSサフィックスが補完されて、次のようなDNS名として解決される場合があります。
fileserver.example.local
つまり、短い名前でアクセスしているからといって、必ずWINSが使われているとは限りません。
WINSを廃止する場合や、名前解決のトラブルを調査する場合は、見た目だけで判断しないことが重要です。
確認すべきポイントは次のとおりです。
特に長年運用されている社内ネットワークでは、古い設定が残っていることがあります。
WINSサーバーが停止すると、NetBIOS名での名前解決に影響が出る可能性があります。
たとえば、古いWindows環境で次のようにファイルサーバーへアクセスしている場合です。
\\FILESERVER
この FILESERVER がWINSで解決されている場合、WINSサーバーが停止するとIPアドレスを取得できなくなり、接続できなくなる可能性があります。
ただし、WINSサーバーが停止したからといって、必ずすべての通信がすぐに止まるわけではありません。
環境によっては、次のような仕組みで一時的に名前解決できる場合があります。
そのため、WINS停止の影響は環境によって異なります。
重要なのは、WINSに依存している通信やアプリケーションが残っていないかを事前に確認することです。
DNSサーバーが停止すると、名前によるアクセスに大きな影響が出ます。
たとえば、次のような問題が起きる可能性があります。
DNSは現代のネットワークの基盤であるため、停止時の影響範囲は非常に大きくなります。
DNSサーバーが停止しても、すぐにすべての通信が止まるとは限りません。
クライアントにDNSキャッシュが残っていたり、セカンダリDNSサーバーが設定されていたりする場合は、一時的に通信できることがあります。
また、hostsファイルに静的な名前解決設定がある場合や、アプリケーション側が情報をキャッシュしている場合もあります。
ただし、新規の名前解決ができなくなると、時間の経過とともにさまざまなサービスに影響が広がります。
そのため、DNSサーバーは冗長化して運用することが一般的です。
Active Directory環境では、DNSが非常に重要です。
クライアントPCがドメインに参加したり、ログオン時にドメインコントローラーを探したりする際、DNSが使われます。
特に、Active DirectoryではSRVレコードが重要です。
SRVレコードは、特定のサービスがどこにあるかを示すDNSレコードです。
たとえば、クライアントPCはDNSを参照して、利用可能なドメインコントローラーを探します。
昔のWindowsネットワークでは、NetBIOS名やWINSが重要な役割を持っていました。
しかし、現在のActive Directory環境ではDNSが中心です。
そのため、Active Directoryを安定運用するには、DNS設計が非常に重要です。
DNS設定に問題があると、次のようなトラブルにつながることがあります。
現代のWindowsネットワークでは、WINSよりもDNSの設計・運用を重視する必要があります。
DHCPは、クライアント端末にIPアドレスなどのネットワーク設定を自動配布する仕組みです。
DHCPでは、次のような情報を配布できます。
IPアドレス
サブネットマスク
デフォルトゲートウェイ
DNSサーバー
DNSサフィックス
WINSサーバー
現在の一般的な環境では、DHCPによってDNSサーバー情報を配布することが多いです。
古いWindowsネットワークでは、DHCPでWINSサーバー情報を配布している場合があります。
そのため、WINSを廃止する場合は、DHCP設定も確認する必要があります。
DHCPでWINSサーバー情報を配布したままだと、クライアントが引き続きWINSを参照しようとする可能性があります。
WINS廃止時には、サーバーだけでなく、クライアントやDHCP設定も含めて確認することが重要です。
hostsファイルは、ホスト名とIPアドレスの対応を端末ごとに手動で設定するためのファイルです。
たとえば、次のように記述します。
192.168.1.10 server01.example.local
hostsファイルはDNSサーバーそのものではありません。
しかし、OSの名前解決処理の中で参照され、DNS問い合わせより優先されることがあります。
そのため、一時的に名前解決を変更したい場合や、検証環境で特定の名前を特定のIPアドレスへ向けたい場合に使われます。
LMHOSTSファイルは、NetBIOS名とIPアドレスの対応を手動で設定するためのファイルです。
たとえば、次のように記述します。
192.168.1.10 FILESERVER
LMHOSTSは、WINSの代わりにNetBIOS名を解決するために使われることがあります。
現在では利用頻度は高くありませんが、古いWindows環境では設定が残っている場合があります。
名前解決の仕組みを整理すると、次のようになります。
| 仕組み | 主に解決する名前 | 特徴 |
|---|---|---|
| DNS | DNS名、ドメイン名、ホスト名 | 現在標準の名前解決 |
| WINS | NetBIOS名 | 古いWindowsネットワーク向け |
| hosts | ホスト名 | 端末ごとの静的設定 |
| LMHOSTS | NetBIOS名 | 端末ごとの静的設定 |
現在ではWINSサーバーを新規導入するケースは少ないですが、既存環境ではまだ必要になる場合があります。
たとえば、次のような環境です。
\\FILESERVER のような短い名前での接続が前提になっているこのような環境では、WINSサーバーを急に停止すると業務影響が出る可能性があります。
WINSが残る理由として多いのが、古い業務アプリケーションとの互換性です。
古いアプリケーションでは、接続先サーバーをFQDNではなく短いNetBIOS名で指定していることがあります。
たとえば、次のような設定です。
DBSERVER
FILESERVER
APP01
このような名前がWINSで解決されている場合、WINSを止めるとアプリケーションが正常に動作しなくなる可能性があります。
そのため、WINSを廃止する場合は、アプリケーション設定や通信ログを確認し、DNS名への移行を進める必要があります。
WINSを廃止する場合、まず確認すべきなのは、DNSで名前解決できる状態になっているかどうかです。
たとえば、これまで次の名前でアクセスしていた場合、
\\FILESERVER
DNSでも次のような名前で解決できるようにします。
fileserver.example.local
サーバーや機器のDNSレコードが正しく登録されているか確認することが重要です。
WINSサーバー情報がDHCPで配布されている場合、WINSを停止してもクライアントは古いWINSサーバーを参照し続ける可能性があります。
そのため、DHCPの設定でWINSサーバー情報を配布していないか確認します。
また、DNSサーバーやDNSサフィックスが正しく配布されているかも確認します。
一部の端末では、WINSサーバーが手動設定されている場合があります。
そのため、クライアント側で次の点を確認します。
特に、長期間運用されている端末では、過去の設定が残っていることがあります。
WINS廃止時に見落とされやすいのが、アプリケーションや周辺機器の設定です。
確認すべき対象には、次のようなものがあります。
これらの中にNetBIOS名が残っていると、WINS停止後に障害が発生する可能性があります。
DNSで名前解決できるかを確認するには、次のコマンドを使います。
nslookup server01.example.local
または、次のように確認することもできます。
ping server01.example.local
ただし、ping は名前解決だけでなくICMP応答の有無にも影響されます。
名前解決の確認には、nslookup や Resolve-DnsName を使うとわかりやすいです。
PowerShellでは次のように確認できます。
Resolve-DnsName server01.example.local
Windows端末でWINSサーバーが設定されているか確認するには、次のコマンドを使います。
ipconfig /all
出力の中に次のような項目が表示される場合があります。
WINS Servers
ここにWINSサーバーのIPアドレスが表示されていれば、その端末はWINSサーバーを参照する設定になっています。
自分の端末に登録されているNetBIOS名を確認するには、次のコマンドを使います。
nbtstat -n
NetBIOS名キャッシュを確認する場合は、次のコマンドを使います。
nbtstat -c
これらのコマンドを使うことで、NetBIOS名解決の状況を確認できます。
WINSは、古いWindows社内ネットワークで使われるPC名簿のようなものです。
FILESERVER → 192.168.1.10
PC001 → 192.168.1.25
NAS01 → 192.168.1.30
短いコンピューター名をIPアドレスに対応付け、Windows端末同士が通信できるようにします。
DNSは、インターネットや社内ネットワーク全体で使われる住所録のようなものです。
www.example.com → 203.0.113.10
mail.example.com → メールサーバー情報
server01.example.local → 192.168.1.10
DNSはWeb、メール、クラウド、社内システムなど、幅広いサービスの基盤として使われます。
WINSとDNSはどちらも名前解決に関係するため、WINSを「DNSの古いバージョン」と理解してしまうことがあります。
しかし、厳密には正しくありません。
WINSはNetBIOS名を解決する仕組みです。
DNSはDNS名前空間の名前を解決する仕組みです。
つまり、両者は似た役割を持ちながらも、扱う名前の体系が異なります。
WINS = NetBIOS名の名前解決
DNS = DNS名の名前解決
と理解するのが正確です。
「DNSはインターネット用の仕組み」と考えられることがありますが、現在は社内LANでもDNSが非常に重要です。
Active Directory、社内Webシステム、ファイルサーバー、認証、証明書、クラウド連携など、多くの場面でDNSが使われます。
そのため、社内ネットワークであってもDNS設計は重要です。
小規模な検証環境であれば、IPアドレスを直接入力して通信できることがあります。
しかし、実運用ではDNSが必要です。
理由は、DNSを使うことで次のような運用がしやすくなるためです。
そのため、現在のネットワーク運用では、IPアドレス直指定ではなくDNS名を使うのが一般的です。
WINSサーバーとDNSサーバーは、どちらも名前解決に関係する仕組みです。
しかし、扱う名前や利用場面は大きく異なります。
WINSサーバーは、NetBIOS over TCP/IP環境でNetBIOS名をIPアドレスに登録・解決するためのレガシーな仕組みです。
古いWindowsネットワークや、NetBIOS名に依存するアプリケーションとの互換性維持のために使われることがあります。
一方、DNSサーバーは、DNS名やドメイン名、ホスト名、サービス情報などを解決する現在標準の仕組みです。
インターネット、社内LAN、Active Directory、クラウドサービスなど、現代のネットワークではDNSが中心的な役割を担っています。
違いを簡単に整理すると、次のようになります。
WINS = NetBIOS名を解決するレガシーなWindows系名前解決
DNS = ドメイン名やホスト名などを解決する現在標準の名前解決
新規環境では、基本的にWINSではなくDNSを使います。
ただし、既存環境でWINSサーバーが稼働している場合は、古いアプリケーションや機器がNetBIOS名に依存している可能性があります。
WINSを廃止する場合は、DNSで代替できる状態になっているか、DHCPやクライアント設定に古い情報が残っていないか、アプリケーションがNetBIOS名を参照していないかを確認することが重要です。
以上、WINSサーバーとDNSサーバーの違いについてでした。
最後までお読みいただき、ありがとうございました。