ワイルドカードDNSとは?
ワイルドカードDNSは、明示的なDNSレコードが定義されていないサブドメインへの問い合わせに、アスタリスク(*)で一致させるDNS設定です。*.example.comのようなワイルドカードレコードは、未定義のサブドメイン(blog.example.com、app.example.com、anything.example.com)に対する問い合わせをすべて捕捉し、指定した宛先へ解決します。ワイルドカードDNSの仕組み
DNS Zone for example.com:
├── example.com A 192.0.2.1 (explicit)
├── www.example.com A 192.0.2.1 (explicit)
├── mail.example.com A 192.0.2.2 (explicit)
└── *.example.com A 192.0.2.10 (wildcard)
Query: random.example.com → 192.0.2.10 (matched by wildcard)
Query: www.example.com → 192.0.2.1 (explicit takes priority)
ワイルドカードレコードの構文
*.example.com. 3600 IN A 192.0.2.10
*.example.com. 3600 IN CNAME catch-all.example.com.
*.example.com. 3600 IN MX 10 mail.example.com.
よくある用途
マルチテナントSaaSアプリケーション
*.myapp.com → Single server handles:
├── customer1.myapp.com
├── customer2.myapp.com
├── customername.myapp.com
└── (unlimited subdomains)
開発環境
- 設定なしで任意のサブドメインを使える
- 機能をすばやくテストできる
- 動的なプレビュー環境を作れる
ユーザー生成コンテンツ
- username.platform.com
- projectname.service.com
- ブランド化したカスタムサブドメイン
ワイルドカードの優先順位
| レコード | test.example.comへの問い合わせ |
|---|---|
| test.example.com (explicit) | ✓ 最初に一致 |
| *.example.com (wildcard) | 明示的なレコードがない場合に一致 |
明示的なレコードは常にワイルドカードより優先されます。
制限事項
1. 1レベルにのみ一致: *.example.comはa.b.example.comには一致しない
2. 頂点には置けない: *.comは許可されない
3. セキュリティ上の考慮: 意図しないサブドメインまで捕捉する可能性がある
4. SSLの複雑さ: ワイルドカードSSL証明書が必要になる
DNS設定例
; Zone file
$ORIGIN example.com.
@ A 192.0.2.1 ; apex
www A 192.0.2.1 ; explicit www
* A 192.0.2.10 ; everything else
* MX 10 mail.example.com. ; wildcard mail
ベストプラクティス
1. 必要な場合に限定する: 本当に必要なときだけ使う
2. SSLと組み合わせる: ワイルドカード証明書を取得する
3. アプリケーションで処理する: サーバーがサブドメインを正しくルーティングできるようにする
4. 利用状況を監視する: 予期しないサブドメインへのアクセスを監視する
5. 明示的に上書きする: 既知のサブドメインには個別のレコードを作成する
ワイルドカードDNSを使うと、サブドメインごとに個別のDNSレコードを作らずに柔軟に処理できます。動的アプリケーションやマルチテナントプラットフォームに適しています。