AWS route53でワイルドカードを利用したDNSレコードの作成そして・・優先順位はどうなるの?
route53しか使っていないので、自分の中ではroute53の機能としてメモを書きます(笑) 結論として、awsのroute53はワイルドカードでDNSレコードを作成できる!ことです(笑)
例えば・・、
52.5.71.100 というpublic ipを持つインスタンスがあったとして、 これを、 zone s-quad.com に
a1.s-quad.com a2.s-quad.com a3.s-quad.com a4.s-quad.com a5.s-quad.com ・ ・ a1000.s-quad.com
というFQDNを登録したい場合どうしますか?私は1000レコード作る気まんまんだったのですが、どーもそんなことしなくても良さげな感じでした
DNSをはじめよう ?基礎からトラブルシューティングまで? はじめようシリーズ
- 作者: mochikoAsTech
- 発売日: 2018/10/29
- メディア: Kindle版
- この商品を含むブログを見る
例えば、上記の場合、a1 - a1000まで全ての向き先は、52.5.71.100としたい場合、以下のような書き方をします、TYPE : Aレコードのホスト名を * (アスタリスク)で設定すれば良いのです。
Nameに * を設定 Valueに 52.5.71.100 を設定
設定はこれだけです。上記の説明で、a1〜 と書きましたが、このケースの場合厳密には、*.s-quad.comのホスト名は、ホスト名に関係なく、52.5.71.100にマッピングされます。 つまり、a1とか何系なく、aaa.s-quad.com bbb.s-quad.comとかでも、52.5.71.100 にマッピングされるわけです。
全てがワイルドカードでマッピングされても困る
でも、全てワイルドカードで困りますよね(汗)
ざっくりいうと、a1とか何系なく、aaa.s-quad.com bbb.s-quad.comとか関係なく、52.5.71.100 にマッピングされるわけです
で困る場合があります。 たとえば、www.s-quad.com は別のpublicipにマッピングしたい場合などですね。
Name : www.s-quad.com ipaddr : 133.130.100.33
DNSの優先順位について
そこでDNSの優先順位があります。DNSの参照優先順位として
の優先順位の決定がされるわけです。例として、www.s-quad.comは、133.130.100.33としてAレコードを作成した場合、
Name : www.s-quad.com ipaddr : 133.130.100.33
DNSの内部では、 www.s-quad.com というFQDNにマッチした条件の優先して、ワイルドカードDNSは参照しない という動きになります。
では、以下のようなケースの場合、route53はどのような動きになるでしょうか?
例1:ワイルドカードが複数存在する場合、
Name : *.s-quad.com ipaddr: ip : 52.5.71.100
Name : a*.s-quad.com : ipaddr : 3.84.101.101
Name : b*.s-quad.com ipaddr : 34.203.193.100
Name : www.s-quad.com ipaddr : 133.130.100.33
上記3つのワイルドカードDNSレコードはそれぞれの向き先のipが異なります。 想定では
a1.s-quad.com --> 3.84.101.101 b1.s-quad.com --> 34.203.193.100 c1.s-quad.com --> 52.5.71.100 www.s-quad.com --> 133.130.100.33
となると思っていますが、どうでしょうか?
nslookupコマンドで確認してみます。
a1.s-quad.com
$ nslookup a1.s-quad.com Server: 8.8.8.8 Address: 8.8.8.8#53 Non-authoritative answer: Name: a1.s-quad.com Address: 52.5.71.100
b1.s-quad.com
$ nslookup b1.s-quad.com Server: 8.8.8.8 Address: 8.8.8.8#53 Non-authoritative answer: Name: b1.s-quad.com Address: 52.5.71.100
c1.s-quad.com
$ nslookup c1.s-quad.com Server: 8.8.8.8 Address: 8.8.8.8#53 Non-authoritative answer: Name: c1.s-quad.com Address: 52.5.71.100
www.s-quad.com
$ nslookup www.s-quad.com Server: 8.8.8.8 Address: 8.8.8.8#53 Non-authoritative answer: Name: www.s-quad.com Address: 133.130.100.33
もう・・なんていうか、、のっけからグダグダです。え。。とつまり、ワイルドカードを設定した場合は、部分一致の設定が追加されていても全て、*.s-quad.comに踏襲されるという意味なのかな? しかしながら、FQDNで指定した、www.s-quad.comはちゃんとした、ipaddrを返してくれています
例2: *.s-quad.comだけ削除
では、このようなケースの場合、どのような動きになるでしょうか?
Name : *.s-quad.com ipaddr: 52.5.71.100 <--- 削除
Name : a*.s-quad.com ipaddr : 3.84.101.101
Name : b*.s-quad.com ipaddr : 34.203.193.100
a1.s-quad.com
$ nslookup a1.s-quad.com Server: 8.8.8.8 Address: 8.8.8.8#53 ** server can't find a1.s-quad.com: NXDOMAIN
b1.s-quad.com
$ nslookup b1.s-quad.com Server: 8.8.8.8 Address: 8.8.8.8#53 ** server can't find b1.s-quad.com: NXDOMAIN
c1.s-quad.com
$ nslookup c1.s-quad.com Server: 8.8.8.8 Address: 8.8.8.8#53 ** server can't find c1.s-quad.com: NXDOMAIN
あら、こっちもメタメタでした(汗)まとめると、部分一致のワイルドカードなんて無いということでしょうか?
例3: FQDNを掘り下げてワイルドカード設定
もうこうなったらやけくそです。これならうまくいくだろう!!
Name : *.s-quad.com ipaddr: 52.5.71.100
Name : *.a1.s-quad.com ipaddr : 3.84.101.101
Name : *.b1.s-quad.com ipaddr : 34.203.193.100
x.a1.s-quad.com
# nslookup x.a1.s-quad.com Server: 8.8.8.8 Address: 8.8.8.8#53 Non-authoritative answer: Name: x.a1.s-quad.com Address: 3.84.101.101
x.b1.s-quad.com
# nslookup x.b1.s-quad.com Server: 8.8.8.8 Address: 8.8.8.8#53 Non-authoritative answer: Name: x.b1.s-quad.com Address: 34.203.193.100
s-quad.com
nslookup a1.s-quad.com Server: 8.8.8.8 Address: 8.8.8.8#53 Non-authoritative answer: Name: a1.s-quad.com Address: 52.5.71.100
今度はうまく振り分けてくれた!!でもなんか。。。全然うれしくない(笑)
結論
ドメイン(zone) を分けた方が全然楽!!!!