twitter を見ていると、MyDNSが引けないというツイートを見かけた。
1.1.1.1からだとmyDNSのIPが返ってこない
— ぴこにこ (@kuroKario_bot) June 21, 2019
引いてみた。
takuya@untitled1$ dig aaaaaa.mydns.jp @1.1.1.1 ; <<>> DiG 9.10.6 <<>> mydns.jp @1.1.1.1 ;; global options: +cmd ;; Got answer: ;; ->>HEADER<<- opcode: QUERY, status: SERVFAIL, id: 25043 ;; flags: qr rd ra; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 1 ;; OPT PSEUDOSECTION: ; EDNS: version: 0, flags:; udp: 1452 ;; QUESTION SECTION: ;mydns.jp. IN A ;; Query time: 2209 msec ;; SERVER: 1.1.1.1#53(1.1.1.1) ;; WHEN: Mon Jul 01 16:00:36 JST 2019 ;; MSG SIZE rcvd: 37
ちゃんと引ける。ほかのところからも引ける。
takuya@untitled1$ dig +short xyz.mydns.jp @dns-a.bbtec.net 163.44.151.xxx takuya@untitled1$ dig +short xyz.mydns.jp @8.8.8.8 168.235.75.xxx takuya@untitled1$ dig +short xyz.mydns.jp @1.0.0.1 takuya@untitled1$ dig +short xyz.mydns.jp @1.1.1.1
Cloudflare から引けない問題。。。
これはDNSフィルタリングなんだろうか。public DNS がフィルタリングを始めたとなると本当に怖い世の中になったと思う。
追記:あとで確認したらTRACEはできる。
1.1.1.1 にたいして、何度かdig +trace を投げつけておくと、キャッシュされるみたい。+trace 後は通常通りDNSレコードを応答してくれる
takuya@untitled1$ dig +short a.mydns.jp @1.1.1.1 takuya@untitled1$ for i in {1..10}; do echo $i; dig a.mydns.jp @1.1.1.1 +trace > /dev/null ;sleep 0.1 ; done 1 2 3 4 5 6 7 8 9 10 takuya@untitled1$ dig +short a.mydns.jp @1.1.1.1 168.235.75.38 210.197.74.203 46.19.34.8 107.191.99.190 163.44.151.204 takuya@untitled1$
不思議で仕方ないので少し考えてみた。
ここから考えると、Cloudflare自体のDNSに問題はなく、mydns側の ns レコード(ns[0-2].mydns.jp)の設定に難があってCloudflareがうまくDNSをたどってないのではないか
そう考えると、ns レコードを引けていないので、たぶんmydns 側とcloudflareが使ってる再帰サーバーがうまく引けないのかもしれない。
takuya@untitled1$ dig mydns.jp ns @8.8.8.8 +short ns1.mydns.jp. ns2.mydns.jp. ns0.mydns.jp. takuya@untitled1$ dig mydns.jp ns @1.1.1.1 +short takuya@untitled1$
いずれにせよ、特定のDNSサーバーを参照すると、DNSによる名前解決が止まってしまうのは困った問題だと思う(止められているならもっと怖い。)