designetwork

ネットワークを軸としたIT技術メモ

ワイルドカードDNSをWindows Serverに設定する

Cloud FoundryなどのPaaSでは、一般的にワイルドカードDNSでCF Routerへルーティングされるようにすれば、あとはCF内でFQDNのホストからHTTPルーティングをしてくれる。

多くの企業で使用されているWindows ServerのDNSサーバー機能でワイルドカードDNSを設定する方法を紹介する。

Windows Serverを用意する

Windows Serverは基本的に有償で、自宅で試験利用するには値が張る。そんなときは、こちらの記事で紹介した通り、無料で評価版を使用できる。

Windows Server 2016を無料で検証する(TP4からアップグレード) - designetwork

ワイルドカードDNSを設定する

ワイルドカードDNSレコードの設定は意外と簡単で、単純に * (アスタリスク) のAレコードを登録するだけでいい。

nslookupで動作確認しながら設定する。

まず初めにインタフェース設定をipconfig /allで確認する。今回はWindows Server 2016でをDNSサーバ及びDNSクライアントとする。IPアドレスは192.168.1.77で、自信をDNSサーバとして指定している。インターネット通信用にGoogle DNS 8.8.8.8も使用しておく。

DNSサーバの設定はこちら。内部ドメインは自身で解決し、一般的なトップドメインGoogle DNS宛に条件付きフォワーダの設定をしている。トップドメインを条件付きフォワーダ設定しておくと、サブドメイン含め転送される。

この状態でnslookupで名前解決を試みる。当然、未設定FQDNの名前解決に失敗する。今回はdesignetwork.comというドメインを想定し、ホストはtestとする。

新しいホスト(Aレコード)を登録する。ホストは * を設定する。

ワイルドカードレコードが設定された。

改めて確認する。

名前解決できていることが分かる。当初解決できなかったtest.desgnetwork.com192.168.1.77に解決されている。また、aaaという適当なホストも同様に解決できている。

サブドメインにも対応できる

また、ワイルドカードレコードで設定すると、サブドメインを含めても同様に名前解決できる。test.sub.designetwork.comと、サブドメインがあっても問題ない。

まとめ

Windows Server 2016でワイルドカードDNSの動作を確認した。* (アスタリスク)のAレコードを登録することで、サブドメインも含め、いずれのホストでも同様に名前解決することができる。