MXレコードやTXTレコードでは*(アスタリスク)は使えない?
hoge.infra.xyzでもfuga.infra.xyzでもメールを受信できるように、BINDのinfra.xyz.zoneでこんな設定を書いてみた。
mx1 IN A 153.126.198.20 * IN MX 10 mx1.infra.xyz. * IN TXT "v=spf1 a:mx1.infra.xyz -all"
named-checkzoneでエラーはでない、よしよし、とnamedをrestartして、digで
dig hoge.infra.xyz mx dig hoge.infra.xyz txt
を叩いてみたら、なんと何も出ない。 statusはNOERRORなのに、ANSWERは0・・・MXとかTXTだと*(アスタリスク)でワイルドカードの指定はできないのかな?と思ったら、ワイルドカードは「個別の設定があればそちらが優先、なければワイルドカードが適用される」ということらしく、そもそも個別の設定が1つもないとワイルドカードも適用されない模様。
つまり、以下のようにワイルドカードしかない状態だと、hoge.infra.xyzのAを引いても、MXを引いても、TXTを引いても、ANSWERは0なんだけど、
* IN A 153.126.198.20 * IN MX 10 mx1.infra.xyz. * IN TXT "v=spf1 a:mx1.infra.xyz -all"
以下のように、hoge.infra.xyzという個別の設定をした上で、ワイルドカードの設定をした状態で、fuga.infra.xyzを引くと、AもMXもTXTもちゃんと値が返ってきた。
hoge IN A 153.126.198.20 * IN A 153.126.198.20 hoge IN MX 10 mx1.infra.xyz. * IN MX 10 mx1.infra.xyz. hoge IN TXT "v=spf1 a:mx1.infra.xyz -all" * IN TXT "v=spf1 a:mx1.infra.xyz -all"
というわけで、AレコードやMXレコードやTXTレコードでは*(アスタリスク)は使える。 但し、同じ種類のレコードにおいて個別の設定が1つもないと、ワイルドカードも適用されない模様。
という一旦の理解。BINDのDOCUMENTATIONとかちゃんと読めば、説明見つかるかな。