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.comが192.168.1.77に解決されている。また、aaaという適当なホストも同様に解決できている。
サブドメインにも対応できる
また、ワイルドカードレコードで設定すると、サブドメインを含めても同様に名前解決できる。test.sub.designetwork.comと、サブドメインがあっても問題ない。
まとめ
Windows Server 2016でワイルドカードDNSの動作を確認した。* (アスタリスク)のAレコードを登録することで、サブドメインも含め、いずれのホストでも同様に名前解決することができる。