【DNSの機能(ゾーン、ゾーン転送)について】
このHPはDNSの機能(ゾーン、ゾーン転送)についてまとめたものです。
1-1 ゾーンとは
DNSは階層構造によりドメイン名を管理している。
最上位の「ルート」から始まり、上位ドメイン→下位ドメイン→ホストという構造になっている。
このDNS内のある部分のことを「空間」というので、ドメイン名のことを「ドメイン名空間」という。
ドメイン名空間において、DNSサーバーが実際に管理をしている空間を「ゾーン(Zone)」といい、
そのゾーンを管理できる権限を「権威」という。
例えば、「yahoo.co.jp」ドメインを管理するDNSサーバーは、「yahoo.co.jp」ドメインに関するゾーンを
持っていて、その「yahoo.co.jp」のゾーンを管理する権威があることになる。
![](zone.png)
このゾーンを管理する権威だが、実際にはDNSツリー上の親DNSサーバーから指定され、発生する。
つまり、「yahoo.co.jp」ドメインを管理するDNSサーバーが「yahoo.co.jp」ゾーンを管理する権威は、
親のDNSサーバーである「co.jp」ドメインを管理するDNSサーバーから指定され発生することになる。
このことを「権限の委譲」という。
次の例の様に、「jpゾーン」に関する権威はルートDNSサーバーから、「co.jp」ゾーンに関する権威は「jp」を管理するDNSサーバーから、「yahoo.co.jp」に関する権威は「co.jp」を管理するDNSサーバーからそれぞれ委譲されている。
![](kengenizyou.png)
1-2 ゾーン転送
DNSによる名前解決は、Webアクセスやメール送信に先立って行われる重要な処理。
名前解決に失敗してしまったら、目的のWebサイトにアクセスすることができない。
従って、DNSサーバーはシングル構成ではなく、「プライマリDNSサーバー」と「セカンダリDNSサーバー」の冗長構成にするのが基本。
複数台のDNSサーバーのうち、本物のゾーンファイルを持っているのは1台のDNSサーバーだけで、
残りのDNSサーバーはそのゾーンファイルのコピーを持っている。
この本物のゾーンファイルを「マスターゾーンファイル」といい、マスターゾーンファイルを持っているDNSサーバー「プライマリDNSサーバー」という。
そして、このマスターゾーンファイルをコピーするDNSサーバーを「セカンダリDNSサーバー」という。
プライマリDNSサーバーからセカンダリDNSへのゾーンファイルのコピーは、レコードタイプがSOAである「SOAレコード」の設定情報に基づいて行われるが、このプライマリDNSサーバーからセカンダリDNSサーバーへの
ゾーンファイルのコピーのことを「ゾーン転送」という。
![](zonetensou.png)
ゾーン転送には、ゾーンの全ての情報を送る「AXFR」と、あるバージョンからの差分のみを送る「IXFR」の2種類がある。
![](AXFR.png)
![](IXFR.png)
プライマリDNSサーバーでゾーンデータが更新されると、プライマリDNSサーバーは、「DNS NOTIFY」と呼ばれる仕組みを用いて、ゾーンデータの更新があったことを、セカンダリDNSサーバーに通知する。
セカンダリDNSサーバーは「DNS NOTIFY」を受け取ると、プライマリDNSサーバーに対して該当するゾーンの「SOAレコード」を問い合わせ、得られたSOAリソースレコードのSERIAL値の値と、自身の持つゾーンデータのSOAリソースレコードのSERIAL値を比較し、得られたSERIAL値が自身の持つ値よりも大きい、つまり、プライマリDNSサーバーが、新しいゾーンデータを持っていることが確認できた場合、プライマリDNSサーバーにゾーン転送を要求して、最新のゾーンデータに更新する。
![](kousintsuuti_zonetensou.png)
このHPはDNSの機能(ゾーン、ゾーン転送)についてまとめたものです。
1-1 ゾーンとは
DNSは階層構造によりドメイン名を管理している。
最上位の「ルート」から始まり、上位ドメイン→下位ドメイン→ホストという構造になっている。
このDNS内のある部分のことを「空間」というので、ドメイン名のことを「ドメイン名空間」という。
ドメイン名空間において、DNSサーバーが実際に管理をしている空間を「ゾーン(Zone)」といい、
そのゾーンを管理できる権限を「権威」という。
例えば、「yahoo.co.jp」ドメインを管理するDNSサーバーは、「yahoo.co.jp」ドメインに関するゾーンを
持っていて、その「yahoo.co.jp」のゾーンを管理する権威があることになる。
![](zone.png)
このゾーンを管理する権威だが、実際にはDNSツリー上の親DNSサーバーから指定され、発生する。
つまり、「yahoo.co.jp」ドメインを管理するDNSサーバーが「yahoo.co.jp」ゾーンを管理する権威は、
親のDNSサーバーである「co.jp」ドメインを管理するDNSサーバーから指定され発生することになる。
このことを「権限の委譲」という。
次の例の様に、「jpゾーン」に関する権威はルートDNSサーバーから、「co.jp」ゾーンに関する権威は「jp」を管理するDNSサーバーから、「yahoo.co.jp」に関する権威は「co.jp」を管理するDNSサーバーからそれぞれ委譲されている。
![](kengenizyou.png)
1-2 ゾーン転送
DNSによる名前解決は、Webアクセスやメール送信に先立って行われる重要な処理。
名前解決に失敗してしまったら、目的のWebサイトにアクセスすることができない。
従って、DNSサーバーはシングル構成ではなく、「プライマリDNSサーバー」と「セカンダリDNSサーバー」の冗長構成にするのが基本。
複数台のDNSサーバーのうち、本物のゾーンファイルを持っているのは1台のDNSサーバーだけで、
残りのDNSサーバーはそのゾーンファイルのコピーを持っている。
この本物のゾーンファイルを「マスターゾーンファイル」といい、マスターゾーンファイルを持っているDNSサーバー「プライマリDNSサーバー」という。
そして、このマスターゾーンファイルをコピーするDNSサーバーを「セカンダリDNSサーバー」という。
プライマリDNSサーバーからセカンダリDNSへのゾーンファイルのコピーは、レコードタイプがSOAである「SOAレコード」の設定情報に基づいて行われるが、このプライマリDNSサーバーからセカンダリDNSサーバーへの
ゾーンファイルのコピーのことを「ゾーン転送」という。
![](zonetensou.png)
ゾーン転送には、ゾーンの全ての情報を送る「AXFR」と、あるバージョンからの差分のみを送る「IXFR」の2種類がある。
![](AXFR.png)
![](IXFR.png)
プライマリDNSサーバーでゾーンデータが更新されると、プライマリDNSサーバーは、「DNS NOTIFY」と呼ばれる仕組みを用いて、ゾーンデータの更新があったことを、セカンダリDNSサーバーに通知する。
セカンダリDNSサーバーは「DNS NOTIFY」を受け取ると、プライマリDNSサーバーに対して該当するゾーンの「SOAレコード」を問い合わせ、得られたSOAリソースレコードのSERIAL値の値と、自身の持つゾーンデータのSOAリソースレコードのSERIAL値を比較し、得られたSERIAL値が自身の持つ値よりも大きい、つまり、プライマリDNSサーバーが、新しいゾーンデータを持っていることが確認できた場合、プライマリDNSサーバーにゾーン転送を要求して、最新のゾーンデータに更新する。
![](kousintsuuti_zonetensou.png)