前回に引き続き、DNSについて学んでいきます。
今回は、DNSの基本的な登録方法を中心にまとめます。
前回の記事はこちら
もくじ
1.ゾーンファイル
■ゾーンファイル
DNSコンテンツサーバ(権威サーバ)はゾーンファイルを持っている。
ゾーンファイルは、IPアドレスとドメイン名の対応関係表のようなもので、
DNSコンテンツサーバは、ゾーンファイルをもとに、問い合わせに応じている。
ゾーンファイルの各行を「DNSレコード」と言い、
DNSレコードには複数の種類が存在する。
■代表的なDNSレコード
◎Aレコード
最もスタンダードなレコード。
IPアドレス(IPv4形式)とドメイン名+ホスト名の対応関係が登録されている。
<例>
example.com IN A 100.200.50.100
◎AAAAレコード
IPアドレスとドメイン名+ホスト名の対応関係が登録されている。
ただしIPアドレス形式はIPv6。
(IPv4とIPv6の違いはここでは省略。知りたい方はググってください)
<例>
example.com IN AAAA fd00::1
◎CNAMEレコード
正式なドメイン名+ホスト名とは異なる、別名(エイリアス)を登録できる。
<例>
example.com IN A 100.200.50.100
example.com IN CNAME hello-world.com
例の意味:
正式なドメイン名+ホスト名「example.com」は、100.200.50.100というIPアドレスに対応する。
また、正式なドメイン名+ホスト名「example.com」は「hello-world.com」というエイリアスを持つ。
エイリアスを登録すると、
100.200.50.100(example.com)が指すサーバへのアクセスは、
エイリアスである「hello-wolrd.com」にアクセスすることで可能になる。
エイリアスを登録しておけば、万一、IPアドレスが変更になったり、正式なドメイン名+ホスト名を変えることになったりしても、
外部から当該サーバへのアクセスは変更前と同様、「hello-wolrd.com」にアクセスできる。
変更の影響を最小限に留めることが出来るのである。
◎PTRレコード
これまでは、ドメイン名+ホスト名 → IPアドレス 方向のマッピングだったが、逆方向がPTRレコードである。
<例>
100.200.50.100 IN PTR example.com
◎NSレコード
参照すべきDNSサーバを指定するためのレコード。
<例>
test.example.com IN NS dns1.example.com
例の意味:
「ドメイン名 IN NS DNSサーバ名」という記述の仕方。
「test.example.com」というドメインに関する情報は、「dns1.example.com」というDNSサーバに聞いてくれ、という意味になる。
◎TXTレコード
ホスト名に関連付けたい文字列があれば、登録しておける。
よくある使い方は、自ドメインで送信を許可するメールサーバ指定時に、認証情報を記載しておくなど。
書き方は環境によってまちまちな模様。。
DNSレコードの種類は他にもあるが(とくにメールサーバ関連とか)、ここでの紹介は以上とする。
■クライアント側でのDNSの設定
Linuxにおいて、名前解決のために利用するDNSキャッシュサーバなどを指定する必要がある。
指定にあたっては、/etc/resolv.confという設定ファイルを用いる。
◎resolv.confの記述内容
・nameserver
当該マシンが、名前解決に利用するDNSサーバの情報(最低限必要な情報)
・domain
当該マシンの所属するドメイン(ドメインなのでホスト名は含まない)
・search
domainを複数指定したい場合に記述
◎記述例
nameserver 192.168.1.0
nameserver 100.200.50.100
search localdomain test.com
例の意味:
まず、「localdomain」というドメイン内に、名前解決したいホストが含まれているかを確認し、含まれていればそのIPアドレスを返して名前解決となる。
次に、「test.com」というドメイン内に、名前解決したいホストが含まれているかを確認し、含まれていればそのIPアドレスを返して名前解決となる。
次に、「192.168.1.0」というDNSサーバに、名前解決の問い合わせを行う。
ここまでで名前解決できなかった場合、「100.200.50.100」というDNSサーバに、名前解決の問い合わせを行う。
domain、search系のものを先に検索し、なければnameserverで設定したDNSサーバに問い合わせを行う順となっている。
また、それぞれ複数指定されている場合は、searchは左から順、nameserverは上から順に検索される。
■小規模なネットワーク内での名前解決
名前解決は、通常DNSサーバの階層構造の仕組みを使って行われる。
ただローカルネットワークなど、小規模なネットワークや外部公開していないネットワーク内での名前解決は、DNSの仕組みを使わない。
代わりに、hostsファイルと呼ばれる、IPとホスト名の対応表が用いられる。
hostsファイルを、内部ネットワーク内の全クライアントに配置することで、
各クライアントから、ネットワーク内のホスト名の名前解決が出来るようになる。
(ただし、最初の配置に加え、ホスト名や対応するIPが変わったときに、全クライアントのhostsファイルを修正しないといけない面倒さがある)
◎hostsファイルの所在と記述方法(Linux)
・所在: /etc/hosts
・記述例: 192.168.0.1 test.host ←「IP ホスト名」で記述する
※Windows10も書き方は同じな模様。
所在は C:\Windows\System32\drivers\etc でした。
(Mac、およびWindowsの他のバージョンは調べてない)
今回は以上!