ローカルドメインでワイルドカード名を使う

webサーバー作るときに最終的には *.example.com とか使うつもりだけど、開発テストで *.hogehoge.local みたいな名前を使いたい。
Windows上でHyper-Vで仮想PCをサーバーにしてLinuxを動作させる。
Linuxはwebサーバー、DB等。Windowsでブラウザを開いて使うため、Windowsにワイルドカードなホスト名を認識させないといけない。hostsにはワイルドカードが書けないので、LinuxでもWindowsでもどっちでもいいのでDNSを立てる。

今回はWindows上にUnboundを使ってみました。ちゃんとwindows用インストーラーがある。
NLnet Labs – Unbound – About

インストールしたら c:\Program Files\Unbound\service.conf を編集。

server:
    interface: ::1
    interface: ::0
    interface: 192.168.99.1 #Hyper-Vの仮想スイッチ(内部)接続で使ってるIPアドレス
    interface: 127.0.0.1
    interface: 0.0.0.0
    access-control: 0.0.0.0/0 refuse #外部には使わせない
    access-control: ::0/0 refuse
    access-control: 127.0.0.1/8 allow
    access-control: 192.168.99.1/24 allow #仮想スイッチ内からは使わせる
    access-control: ::1 allow

    auth-zone:
        name: "hogehoge.local"
        for-downstream: yes
        for-upstream: no
        zonemd-check: no
        zonemd-reject-absence: no
        zonefile "hogehoge.local.zone"

forward-zone: #ローカル該当ドメイン以外はGoogle Public DNSに問い合わせる
    name:"."
    forward-addr: 2001:4860:4860::8888
    forward-addr: 2001:4860:4860::8844
    forward-addr: 8.8.8.8
    forward-addr: 8.8.4.4

hogehoge.local.zoneも作成

$ORIGIN hogehoge.local
*.hogehoge.local    A    192.168.99.2

unbound-checkconfでチェック後、WindowsなのでサービスからUnboundを再起動して読み込ませる。

nslookup fuga.hogehoge.local localhost で結果が返ってくればOK。
ネットワークアダプタの設定でDNSを手動にしてlocalhost指定。
ワイルドカードを使う際はauth-zoneじゃなきゃダメみたい。

ローカルにbind立てるのは面倒だったのですが、unboundは簡単な感じでいいですね。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください