#ワイルドカードドメインとは
特殊なラベル「*」 で始まる名前を持つリソースレコード。
ワイルドカード部分は任意の文字列がマッチし、指定された応答を返す。
ワイルドカードは以下のレコードに限り利用できる。
- Aレコード
- AAAAレコード
- MXレコード
- CNAMEレコード
- TXTレコード
- CAAレコード
最も左側のドメイン名ラベルとしてのみ利用ができ、下記のような半角英数字やハイフンと混在するような設定できない。
例)「abc*」、「abc」、「abcabc」、「abc-*abc」など
動作検証
まずは基本的な動作の確認から。それぞれのレコードタイプでレスポンスを確認する。
@ IN SOA sample.com. postmaster.sample.com. (
...
*.a.wildcard IN A 1.2.3.4
*.aaaa.wildcard IN AAAA ::1
*.mx.wildcard IN MX 10 sample.com.
*.cname.wildcard IN CNAME google.com.
*.txt.wildcard IN TXT "text record."
*.caa.wildcard IN CAA 0 issue sample.com
Aレコード
-bash-4.2$ dig @localhost +short hoge.a.wildcard.sample.com
1.2.3.4
AAAAレコード
-bash-4.2$ dig @localhost +short hoge.aaaa.wildcard.sample.com aaaa
::1
MXレコード
-bash-4.2$ dig @localhost +short moge.mx.wildcard.sample.com mx
10 sample.com.
CNAMEレコード
-bash-4.2$ dig @localhost +short moge.cname.wildcard.sample.com
google.com.
127.0.0.1
TXTレコード
-bash-4.2$ dig @localhost +short moge.txt.wildcard.sample.com txt
"text record."
CAAレコード
-bash-4.2$ dig @localhost +short fuga.caa.wildcard.sample.com caa
0 issue "sample.com"
基本的には「*」部分にはどんな文字列を入れてもマッチする。
ワイルドカードの効果範囲
複数のラベルと一致するため、ラベルを分けることで何階層でも適応される。
-bash-4.2$ dig @localhost +short fuga.moge.hoge.a.wildcard.sample.com
1.2.3.4
ラベルの上限を超えるものはNG。
-bash-4.2$ dig @localhost +short 1234567890123456789012345678901234567890123456789012345678901234.a.wildcard.sample.com
dig: '1234567890123456789012345678901234567890123456789012345678901234.a.wildcard.sample.com' is not a legal name (unexpected end of input)
ラベルを分ければ、長いドメイン名も可能。
-bash-4.2$ dig @localhost +short 123456789012345678901234567890123456789012345678901234567890123.fuga.hoge.a.wildcard.sample.com
1.1.1.1
ワイルドカードの優先順位
下記のように、ゾーンの領域が重なっている場合の動作を確認する。
*.a.wildcard IN A 1.1.1.1
b.a.wildcard IN A 2.2.2.2
*.a.wildcardに該当するドメインは、1.1.1.1が返される。
-bash-4.2$ dig @localhost +short hoge.a.wildcard.sample.com
1.1.1.1
-bash-4.2$ dig @localhost +short fuga.a.wildcard.sample.com
1.1.1.1
-bash-4.2$ dig @localhost +short fuga.hoge.a.wildcard.sample.com
1.1.1.1
b.a.wildcardについてはワイルドカードより優先されるため、2.2.2.2が返される。
-bash-4.2$ dig @localhost +short b.a.wildcard.sample.com
2.2.2.2
下記のような、b.a.wildcardのサブドメインはワイルドカードには該当しない。
-bash-4.2$ dig @localhost +short hoge.b.a.wildcard.sample.com
-bash-4.2$