Ciscoルータで学ぶネットワーク > DNS(ゾーンとレコード)・DNS探索の仕組み
当サイト概要CCNA・CCENT・資格書籍学習環境の準備リンクについてリンクの申込お問い合せプライバシーポリシー
◆DNS(ゾーンとレコード)・DNS探索の仕組み

DNS(ゾーンとレコード)


各ノードでは、自分のドメインに関する名前解決の情報であるDNSゾーンと呼ばれるデータを管理しています。

 ゾーンに含まれるデータの単位を「レコード」と呼び下表のような種類があります。レコードは、ホスト名とIPアドレスの対応だけの情報だけでなく、ホスト名のエイリアス(別名)など様々な情報を扱います。

ゾーン情報は下のように指定します。

●ゾーン情報
$TTL  86400
@    IN    SOA    dns.company.co.jp.  postmaster.company.co.jp.  (
     20091218001   ;  Serial
     10800         ;  Refresh
     3600          ;  Retry
     604800        ;  Expire
     3600 )        ;  Negative cache TTL
             IN    NS         dns.company.co.jp.
             IN    NS         dns2.company.co.jp.
             IN    MX   10    dns.company.co.jp.
             IN    MX   20    mail.company.co.jp.
localhost    IN    A          127.0.0.1
dns          IN    A          192.168.1.1
dns2         IN    A          192.168.1.2
mail         IN    A          192.168.1.3
sv01         IN    CNAME      dns
sv02         IN    CNAME      dns2
sv03         IN    CNAME      mail

レコードの種別は以下の通りです。

レコード種別 定義例 / 意味
SOA 例)
@ IN SOA dns.company.co.jp. postmaster.company.co.jp. (
20091218001 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
3600 ) ; Negative cache TTL

●@
ORIGINと全く同じドメイン名は「@」で記載する。
ORIGINの値は$ORIGINで始まる行で指定する。$ORIGINを明示的に設定していない場合は「 named.conf」 で設定されたゾーン名が使われる。

●MNAME(dns.company.co.jp.)
ドメインを管理するDNSサーバ名を表します。

●RNAME(postmaster.company.co.jp.)
ドメイン管理者のメールアドレス
ドメイン管理者の電子メールアドレスを表します。電子メールは「@」の代わりに「.」を表現します。

●SERIAL(シリアル番号)
ゾーンファイルのバージョンを表す数字。この数字が大きいほど新しいバージョンであることを意味します。通常、YYYYMMDDnn という10けたの数字で表現します。

●REFRESH(更新間隔)
ゾーン情報をリフレッシュするまでの時間を秒で指定する。

●RETRY(転送再試行時間)
REFRESHでゾーン情報の更新ができなかった場合に、再試行を試みる周期を秒で指定する。

●EXPIRE(レコード有効時間)
ゾーン情報のリフレッシュができない状態が続いた場合のゾーン情報の有効時間を秒で指定する。

●MINIMUM(Negative cache TTL)(キャッシュ有効時間)
存在しない情報をキャッシュする有効時間を秒で指定する。
NS 例)(ドメイン名) IN NS dns.example.com.

ドメインのDNSサーバ名を指定する。ドメイン名が空白である場合には、直前のレコードの名前が適用される。上の例では直前のレコードのSOAレコード。
A 例)www IN A 192.168.1.10

ホストのIPアドレス
PTR 例)192.168.1.10 IN PTR www.company.co.jp.

IPアドレスに対するホスト名
CNAME 例)www IN CNAME www1.company.co.jp.

ホスト名のエイリアス(別名)
MX 例)(ドメイン名) IN MX 10 mail.company.com.
ドメインのメールサーバ名
HINFO 例)www IN HINFO HP DL320 G6 Linux

ホストの情報。ホストのハードウェア、OS情報などをを記述する。
WKS 例)www IN WKS tcp http ftp smtp

ホストで実行されているサービス情報を記述する。
TXT 例)www IN TXT "This is company server"

ホストへのテキスト情報を記述する。

 ゾーンは省略して記述することができます。省略ルールの基本は、「明示的に記述しない場合は直前の記述内容が設定される」 ということです。

省略のルールに則ってゾーンを記述することで簡潔にゾーンを定義することができます。


DNS探索の仕組み(正引き)


DNSを使って、ドメイン名からIPアドレスを引くことを正引きといいます。

「DNSのドメインツリー」で説明したように、DNSの名前解決は、ドメインツリーに沿って行われます。

 例えば「www.sales.company.co.jp」というホスト名からIPアドレスを求めるには、トップレベルドメイン(TLD:Top Level Domain)の上位に存在するルートネームサーバから問い合わせを行います。

 「jp」の上には一見、何もなさそうに思えますが、実際には更に上に階層があり、「ルート」や「.(ドット)」で表現されるルートドメインが存在します。

問合せの流れは、下のようになります。

 「ルートネームサーバ」→「jpドメインのDNSサーバ」→「co.jpドメインのDNSサーバ」→「company.co.jpドメインのDNSサーバ」→「sales.company.co.jpサブドメインのDNSサーバ」


 このようにルートネームサーバから必要とするレコードまで下位の層にたどることで、目的のレコードまでたどり着けるようになっています。


DNS探索(リゾルバとリカーシブ)


 上の「DNS探索の仕組み(正引き)」では、DNSの正引きの仕組みについて説明しました。同じDNSサーバなのにDNSサーバによって動作が異なることに気付いたと思います。


 クライアントが問合せを行う「dns.shop.co.jp」のDNSサーバとドメインツリー上の「company.co.jp」から上位のDNSサーバでは、振舞い方が違っています。

 「company.co.jp」から上位のDNSサーバは、外部からの問い合わせに対して、自分が管理している情報だけを応答しています。つまり、これらのDNSサーバはDNSクライアント(リゾルバ)として動作しています。

この場合、自身が管理しているゾーン情報のみ返答し、他のサーバへ問い合わせを行っていません。

 これに対して、クライアントが問合せを行う「dns.shop.com」は、クライアントからの問い合わせに対して、ドメインツリー上の上位のDNSサーバへ順次問合せを行い、DNSによる名前解決を最後まで行っています。

 この違いは、問合せの方法によって変わってきます。「dns.shop.com」が受けた問合せをリカーシブ(再起検索)と呼びます。一方、「company.co.jp」から上位のDNSが「dns.shop.com」から受けた問合せをイテレイティブ(反復検索)と呼びます。

 このように、DNSサーバは、問い合わせ種類によって、異なる動作を行っています。この動作を行うサーバは、別々のサーバに分けて運用することも同一サーバで運用することもできます。


DNS探索の仕組み(逆引き)


 「DNSの逆引き」とは、DNSを使ってIPアドレスからドメイン名を求める行為を指します。「DNSの正引き」のドメイン名からIPアドレスを求める行為は必要性を感じると思いますが、「DNSの逆引き」の必要性に疑問を持つかもしれません。

 逆引きは、サーバなどのログ解析などで役に立ちます。ログにアクセス元のIPアドレスしか分からなかったらどうでしょうか?

 IPアドレスだけでは、単なる数字の羅列で、どのコンピュータからアクセスしてきたのか、どのサイトからアクセスしてきたのかを分析する際に便利が悪いです。

 どのサイトからアクセスしてきたのか、どのサーバやクライアントからアクセスしてきたのかが分かれば、分析やトラブルシューティングを行う時にスムーズに行うことができます。

 また、「traceroute」コマンドなどでも逆引きが可能なドメイン名が表示されます。ドメイン名が表示されるとデバッグをする際にも便利です。

 「DNSの逆引き」は、DNSの逆引きを行って認証を行ったり、迷惑メールのブロックにも活用されています。このようにDNSの逆引きも正引きと同様に重要な仕組みと言えます。

このように、DNSでは、ドメイン名からIPアドレスを求めることも、また、その逆も行えるようになっています。

 IPアドレスは、「192.168.1.10」のように、1オクテットごとに「.」(ピリオド)で区切って表現します。そこで、「DNSの逆引き」では、1オクテットごとにDNSにおける1つのサブドメイン名を対応させています。

 IPアドレスとは反対の順番に並べた「10.1.168.192」に逆引きのゾーンを表すサブドメイン名の「in-addr.arpa」を付けて「10.1.168.192.in-addr.arpa」と表記するようになっています。

下の図は、DNSの正引きと逆引きの探索の流れを図にしています。


 このように逆引きは、表記を見ると反対に並んでいるように見えますが、DNSツリー的には上から順番にたどることで、正引きと同様に名前解決することができます。

正引きの場合は、Aレコードを探索しましたが、逆引きの場合は、PTRレコードを検索します。

DNSB  @ABCDEF

◆Menu
◆スポンサードリンク
◆Amazon

Copyright(c)2014〜 Ciscoルータで学ぶネットワーク All rights reserved.