Android 端末で login.live.com が引けないというツイートを見た。そしてこれは随分前から発生しているらしい。"Login.live.com can't be found when accessing from Android phone" という QA が MS のサイトにあって解決していないらしい。
調べてみた。
~% dig a login.live.com ; <<>> DiG 9.16.20 <<>> a login.live.com ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 35317 ;; flags: qr rd ra; QUERY: 1, ANSWER: 12, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags: do; udp: 512 ;; QUESTION SECTION: ;login.live.com. IN A ;; ANSWER SECTION: login.live.com. 298 IN CNAME login.msa.msidentity.com. login.msa.msidentity.com. 299 IN CNAME www.tm.lg.prod.aadmsa.akadns.net. www.tm.lg.prod.aadmsa.akadns.net. 60 IN CNAME prda.aadg.msidentity.com. prda.aadg.msidentity.com. 300 IN CNAME www.tm.a.prd.aadg.trafficmanager.net. www.tm.a.prd.aadg.trafficmanager.net. 300 IN A 40.126.38.69 www.tm.a.prd.aadg.trafficmanager.net. 300 IN A 40.126.38.133 www.tm.a.prd.aadg.trafficmanager.net. 300 IN A 40.126.38.68 www.tm.a.prd.aadg.trafficmanager.net. 300 IN A 20.190.166.2 www.tm.a.prd.aadg.trafficmanager.net. 300 IN A 40.126.38.67 www.tm.a.prd.aadg.trafficmanager.net. 300 IN A 20.190.166.5 www.tm.a.prd.aadg.trafficmanager.net. 300 IN A 40.126.38.134 www.tm.a.prd.aadg.trafficmanager.net. 300 IN A 40.126.38.135
CNAME が 4 段もある。これだけでもダメダメな感。
そして www.tm.a.prd.aadg.trafficmanager.net.を怪しんでみた。まずはネームサーバは?
~% dig ns trafficmanager.net @a.gtld-servers.net +noall +auth +nodnssec trafficmanager.net. 172800 IN NS tm1.edgedns-tm.info. trafficmanager.net. 172800 IN NS tm2.edgedns-tm.info. trafficmanager.net. 172800 IN NS tm1.dns-tm.com. trafficmanager.net. 172800 IN NS tm2.dns-tm.com.
そして直感で ENT (Empty Non-Terminal) を疑ってみる。
~% dnsq ns aadg.trafficmanager.net tm1.dns-tm.com 2 aadg.trafficmanager.net: 102 bytes, 1+0+1+0 records, response, authoritative, nxdomain query: 2 aadg.trafficmanager.net authority: trafficmanager.net 30 SOA tm1.dns-tm.com hostmaster.trafficmanager.net 2003080800 900 300 2419200 30
ビンゴ! Empty Non-Terminal がことごとく NXDOMAIN になってる。これは RFC 8020 違反。RFC 8020 のタイトルは "NXDOMAIN: There Really Is Nothing Underneath" だ。「そこから下には本当に何も無い」のである。(くわしくはスライド参照)
aadg.trafficmanager.net が無いなら www.tm.a.prd.aadg.trafficmanager.net も無いと判断してよいのである。そして、ENT の NXDOMAIN を受け取ったあとの qname-minimisation-strict: yes な Unbound ではこの通り login.live.com は引けなくなる。
~% dnsqr ns aadg.trafficmanager.net 2 aadg.trafficmanager.net: 102 bytes, 1+0+1+0 records, response, nxdomain query: 2 aadg.trafficmanager.net authority: trafficmanager.net 30 SOA tm1.dns-tm.com hostmaster.trafficmanager.net 2003080800 900 300 2419200 30 ~% ~% dnsqr a login.live.com 1 login.live.com: 179 bytes, 1+2+1+0 records, response, nxdomain query: 1 login.live.com answer: login.live.com 299 CNAME login.msa.msidentity.com answer: login.msa.msidentity.com 300 CNAME www.tm.lg.prod.aadmsa.trafficmanager.net authority: trafficmanager.net 23 SOA tm1.dns-tm.com hostmaster.trafficmanager.net 2003080800 900 300 2419200 30
ところで、tm[12].edgedns-tm.info では正しく NODATA の応答が返る。tm[12].dns-tm.com が RFC 違反。
~% dnsq ns aadg.trafficmanager.net tm1.edgedns-tm.info 2 aadg.trafficmanager.net: 102 bytes, 1+0+1+0 records, response, authoritative, noerror query: 2 aadg.trafficmanager.net authority: trafficmanager.net 30 SOA tm1.dns-tm.com hostmaster.trafficmanager.net 118221445 900 300 2419200 30ちなみに dns-tm.com は委任と権威の NS 応答が異なっている。そのうち大事故を起こしそう。
~% dig ns dns-tm.com @a.gtld-servers.net +nodnssec +noall +auth dns-tm.com. 172800 IN NS ns1-09.azure-dns.com. dns-tm.com. 172800 IN NS ns2-09.azure-dns.net. dns-tm.com. 172800 IN NS ns3-09.azure-dns.org. dns-tm.com. 172800 IN NS ns4-09.azure-dns.info. dns-tm.com. 172800 IN NS ns4-34.azure-dns.info. dns-tm.com. 172800 IN NS ns1-34.azure-dns.com. dns-tm.com. 172800 IN NS ns2-34.azure-dns.net. dns-tm.com. 172800 IN NS ns3-34.azure-dns.org. ~% ~% dig ns dns-tm.com @ns1-09.azure-dns.com +nodnssec +noall +ans dns-tm.com. 172800 IN NS ns1-09.azure-dns.com. dns-tm.com. 172800 IN NS ns2-09.azure-dns.net. dns-tm.com. 172800 IN NS ns3-09.azure-dns.org. dns-tm.com. 172800 IN NS ns4-09.azure-dns.info.
Copyright by T.Suzuki
trafficmanager.com NS の返答の一部がRFCに従っていないのは気持ち悪い。 <br> <br>msa.msidentity.com (zone) もおかしい。調べてみるのがいいでしょう。
親子同居だし奇妙な返事をするやつが混じっていますね。
奇妙な返事は親子同居で説明つきませんか。
prda.aadg.msidentity.com はCNAMEレコードを持っていますが、 <br>その値は問い合わせたNSによるようです。
$ dig -t a trafficmanager\.net. @tm1.dns-tm.com <br> <br>NXDOMAIN 返答が返ります。(SOA, NS はある。) <br> <br>権威サーバーになにを使っているのでしょうね。