DNSとは
TCP/IPネットワークでは、IPアドレスという番号を使って通信を行います。ところが私達がネットサーフィンやメールを行うこと時に、IPアドレスを入力することは、ほとんどありません。
インターネットへのアクセスは、「www.yahoo.co.jp」のようにURLを入力しますし、メールも「aaa@bbb.com」という表記で宛先を指定します。
TCP/IPの世界では、IPアドレスという「192.168.1.10」のような番号を使わなければ通信できないはずなのに、なぜ、通信が出来ているのでしょうか?
それは、DNS(Domain Name System)という名前解決の仕組みがあるからです。アルファベットや数字を用いた名前を使用したとても、DNSにより、IPアドレスを求めることができるからです。この求めたIPアドレスを使って相手を特定しているのです。

DNSでは、IPアドレスとホスト名をマッピングしてホスト名からIPアドレスを解決する仕組みを提供しています。
初期のネットワークでは、インターネットのように不特定多数が参加すること考慮する必要がなく、またネットワークの規模も小さかったので、各クライアントごとでhostsファイルを管理することで対応していました。hostsファイルとは、ホスト名とIPアドレスをマッピングした一覧です。
しかし、インターネットという規模になると各ホストに名前解決の情報を持たせることは現実的ではありません。インターネットへは不特定多数のホストが参加するからです。
接続する機器が増える度に、hostsファイルを書き直さなければなりませんし、また、ホストのIPアドレスが変わる度に書き直さなくてはなりません。これは、気が遠くなるような作業でユーザの負担があまりにも大きくなってしまいます。
このため、現在では、名前解決を行う専用のDNSサーバを設置して、IPアドレスとホスト名のマッピングを一元的に管理する仕組みが採られています。
DNSを利用すると以下のメリットがあります。
- ①人間に覚えやすい名前でアクセスできる。覚えにくいIPアドレスの数字を覚える必要がない。
- ②ユーザに通知しなくても、ホストのIPアドレスを変更できる。
- ③ユーザがhostsファイルを定義する必要がなくなる。
このようなメリットがあるため、DNSは現在のネットワークにはなくてはならない存在になっています。
hostsファイル
初期のネットワークでは、インターネットのように不特定多数が参加すること考慮する必要がなく、またネットワークの規模も小さかったので、名前解決の仕組みを各クライアントごとに持たせていました。
その仕組みとは、IPアドレスとホスト名のマッピングをhostsファイルに定義することで、ローカルで名前解決を行う方法です。
hostsファイルがが存在する位置はOSによって異なります。
OS | hostsファイルの位置 |
UNIX | /etc/hosts |
Windows XP/Vista/7/8 | C:\WINDOWS\system32\drivers\etc\hosts |
Windows 2000 | C:\WINNT\system32\drivers\etc\hosts |
Windows 95/98/ME | C:\Windows\hosts |
hostsファイルは以下のように書きます。
[IP アドレス] [正式なホスト名] [エイリアス名]
例えば、アドレスが 192.168.1.1 のコンピュータを、www1.xxx.or.jp および www1 で呼べるようにするには、以下のように書きます。
192.168.1.1 www1.xxx.or.jp www1
●hostsファイルの例(Windows)
# Copyright (c) 1993-2006 Microsoft Corp.
#
# This is a sample HOSTS file used by Microsoft TCP/IP for Windows.
#
# This file contains the mappings of IP addresses to host names. Each
# entry should be kept on an individual line. The IP address should
# be placed in the first column followed by the corresponding host name.
# The IP address and the host name should be separated by at least one
# space.
#
# Additionally, comments (such as these) may be inserted on individual
# lines or following the machine name denoted by a '#' symbol.
#
# For example:
#
# 102.54.94.97 rhino.acme.com # source server
# 38.25.63.10 x.acme.com # x client host
127.0.0.1 localhost
192.168.1.1 www1.xxx.or.jp www1
192.168.1.2 www2.xxx.or.jp www2
192.168.1.3 www3.xxx.or.jp www3
hostsファイルでホスト名とIPアドレスを管理する方法にはデメリットがあります。
接続する機器が増える度に、hostsファイルを書き直さなければなりませんし、また、ホストのIPアドレスが変わる度に書き直さなくてはなりません。これは、気が遠くなるような作業でユーザの負担があまりにも大きくなってしまいます。
このような理由で現在では、hostsファイルを用いた手法は、あまり利用されなくなっています。