オラクる。

oracle専門ブログにしてみようかな~っと

カテゴリ: DNS

条件付きフォワーダーはドメインごとにDNSの転送先を指定することのできる機能です。
Windows Server 2008から追加された機能です。
例えば、複数のDNSが存在して、それぞれが異なるドメイン名を持っていたときに利用できる機能です。

それでは設定方法を確認しましょう。

flex_001158

DNSの管理マネージャーを開き、条件付きフォワーダー上で右クリックして、新規条件付きフォワーダーを選択します。

flex_001159

 条件付きフォワーダーの設定画面です。
ドメイン名とIPアドレスの設定を行ないます。

flex_001160

「bc.local」というえドメイン名の場合、「172.17.9.81」というIPアドレスのDNSに転送する。
という設定をしてみました。

flex_001162

また、DNSのゾーンをActive Directoryに保管している場合、条件付きフォワーダーのレプリケート範囲を設定することが出来ます。

flex_001163

 条件付きフォワーダーが設定されました。

LAN上にDNSサーバが存在するとき、そのDNSサーバはLAN上のクライアントのホストをレコードとして持ちます。
インターネット上のホストはレコードを持ちません。
もし、LAN上のクライアントからインターネット上のホストに対する問い合わせが行なわれたら、通常はその問い合わせをインターネット上のDNSに転送する必要があります。
転送先で得られた問い合わせに対する回答をクライアントに返します。
そのようなことが出来る機能がフォワーダと言います。

windows server 2012 DNSでの設定手順を確認します。

flex_001154

DNSの管理マネージャーからホスト名を右クリックして、プロパティを選択します。

flex_001155

DNSサーバのプロパティ画面が表示されるので、フォワーダータブを選択します。
転送先のIPアドレスを追加するには、こちらの編集ボタンをクリックします。

flex_001156

 こちらが、フォワーダーの編集画面です。
転送先のIPアドレスを設定します。
複数設定することも出来ます。
その場合、優先度が高いDNSサーバの回答を優先します。

flex_001157

最初、サーバFQDNに検証中・・・と表示されますが、しばらくするとホスト名が表示されます。

これでフォワードの設定は完了です。 

nslookupコマンドを利用することによって、DNSサーバへ直接要求を送り、その結果を確認することが出来ます。
Linuxだと、digやhostというコマンドがあるようですが、windowsではnslookupのみです。
今回は、そんなnslookupを利用して、名前解決の確認を行なってみます。

 C:\Users\209827>nslookup
既定のサーバー:  xxx.xxx.local
Address:  111.111.111.111
 
まずは、nslookupを対話モードで起動します。
既定のサーバには現在ユーザーが接続しているネットワークのデフォルトのDNSサーバが表示されています。
他のサーバを指定しない限り、名前解決は既定のサーバ経由で行われます。

 > server 172.17.9.88
既定のサーバー:  [172.17.9.88]
Address:  172.17.9.88

デフォルト以外のサーバを指定する場合は対話モードでserverコマンドを利用します。

> host02.test.com
サーバー:  [172.17.9.88]
Address:  172.17.9.88

名前:    host02.test.com
Address:  192.168.0.222
 
> 192.168.0.222
サーバー:  [172.17.9.88]
Address:  172.17.9.88

名前:    host02.test.com
Address:  192.168.0.222 

単純にホスト名を入力すると、IPアドレスが返り、IPアドレスを入力すると、ホスト名が返ってきます。 

> set domain=test.com
> host02
サーバー:  [172.17.9.88]
Address:  172.17.9.88

名前:    host02.test.com
Address:  192.168.0.222

また、domainパラメータをsetで指定すると、デフォルトドメインが設定されます。
入力したホスト名にドメイン名が付与されています。

> set type=soa
> test.com
サーバー:  [172.17.9.88]
Address:  172.17.9.88

test.com
        primary name server = srv1.contoso.com
        responsible mail addr = hostmaster.contoso.com
        serial  = 3
        refresh = 900 (15 mins)
        retry   = 600 (10 mins)
        expire  = 86400 (1 day)
        default TTL = 3600 (1 hour)
srv1.contoso.com        internet address = 172.17.9.88

また、AレコードやPTRレコード以外の各種レコードも検索することが出来ます。
上はドメインのゾーンの情報を収めるSOAレコードを検索した結果です。
typeパラメータでレコードの種類を指定しています。 

 > set d2
> host02.test.com
サーバー:  [172.17.9.88]
Address:  172.17.9.88

------------
SendRequest(), len 33
    HEADER:
        opcode = QUERY, id = 9, rcode = NOERROR
        header flags:  query, want recursion
        questions = 1,  answers = 0,  authority records = 0,  additional = 0

    QUESTIONS:
        host02.test.com, type = A, class = IN

------------
------------
Got answer (49 bytes):
    HEADER:
        opcode = QUERY, id = 9, rcode = NOERROR
        header flags:  response, auth. answer, want recursion, recursion avail.
        questions = 1,  answers = 1,  authority records = 0,  additional = 0

    QUESTIONS:
        host02.test.com, type = A, class = IN
    ANSWERS:
    ->  host02.test.com
        type = A, class = IN, dlen = 4
        internet address = 192.168.0.222
        ttl = 3600 (1 hour)

------------
------------
SendRequest(), len 33
    HEADER:
        opcode = QUERY, id = 10, rcode = NOERROR
        header flags:  query, want recursion
        questions = 1,  answers = 0,  authority records = 0,  additional = 0

    QUESTIONS:
        host02.test.com, type = AAAA, class = IN

------------
------------
Got answer (93 bytes):
    HEADER:
        opcode = QUERY, id = 10, rcode = NOERROR
        header flags:  response, auth. answer, want recursion, recursion avail.
        questions = 1,  answers = 0,  authority records = 1,  additional = 0

    QUESTIONS:
        host02.test.com, type = AAAA, class = IN
    AUTHORITY RECORDS:
    ->  test.com
        type = SOA, class = IN, dlen = 48
        ttl = 3600 (1 hour)
        primary name server = srv1.contoso.com
        responsible mail addr = hostmaster.contoso.com
        serial  = 3
        refresh = 900 (15 mins)
        retry   = 600 (10 mins)
        expire  = 86400 (1 day)
        default TTL = 3600 (1 hour)

------------
名前:    host02.test.com
Address:  192.168.0.222

また、debugパラメータを指定することで、詳細なリクエストとレスポンスを表示することが出来ます。
d2パラメータを指定することで、さらに詳細に表示することも出来ます。  

今回は作成したゾーンにレコードを追加してみます。
ホスト名からIPを参照する(正引き)レコードをAレコード
IPからホスト名を参照する(逆引き)レコードをPTRレコードと言います
 
flex_001145

まず、Aレコードを追加する場合
前方参照ゾーン内にあるゾーン名を右クリックして、新しいホストを選択します。

flex_001146
 
ホスト名と、それに対応するIPアドレスを入力します。
「関連付けられたポインター(PTR)~」にチェックを入れると対応する逆引き参照ゾーンにPTRレコードが作成されます。
 
flex_001147
 
対応する逆引き参照ゾーンが無い場合は上記のようなメッセージが出力されます。
Aレコード自体は正常に登録されています。

flex_001148

無事登録出来たときのメッセージです。

flex_001149

ゾーンにレコードが登録されていることが確認できます。

flex_001150
 
「関連付けられたポインター(PTR)~」にチェックを入れた場合、対応する逆引き参照ゾーンにPTRレコードも登録されます。

flex_001151

単独でPTRレコードを登録する場合、逆引き参照ゾーン内のゾーン名を右クリックして、新しいポインター(PTR)を選択します。

flex_001152

 IPアドレスと、それに紐付くホスト名を設定します。

flex_001153

無事にPTRレコードが登録されました。 

逆引き参照ゾーンを作成することによって、IPからホストを参照することの出来るレコードを格納することが出来ます。
また、ゾーンは複数作成することが出来ます。
異なるネットワークが存在する場合は複数のゾーンが必要です。

flex_001135

逆引き参照ゾーンを作成するには、まずDNSマネージャーを立ち上げます。

flex_001136
 
「逆引き参照ゾーン」と書かれているフォルダを右クリックして、「新しいゾーン」を選択します。

flex_001137
 
新しいゾーンのウィザードが起動します。

flex_001138
 
ゾーンの種類、ゾーンをADに格納するかを選択します。
→前方参照ゾーンと一緒

flex_001139

ゾーンをADに格納する場合、ゾーンをレプリケートする範囲を選択します。
→前方参照ゾーンと一緒

flex_001140

IPv4の逆引き参照ゾーンを作成するか、IPv6の逆引き参照ゾーンを作成するかを選択します。

flex_001141

ネットワークIDを入力します。
ネットワークIDはゾーンに属するIPの一部です。
例えば、「192.168.0.」というネットワークIDのゾーンは192.168.0.1~192.168.0.255のレコードを登録できます。
また、この場合ゾーンの名前は「0.168.192.in-addr.arpa」という名前になります。 
なぜか、逆向きに記載します。

flex_001142
 
ゾーンに許可する動的更新の種類を選択します。

「次へ」をクリックすると、ゾーンが作成されます。

flex_001143
 
ゾーンが作成されました。
完了ボタンをクリックして、ウィザードを閉じます。

 flex_001144

新しいゾーンが表示されていることが確認できました。

このページのトップヘ