Cloudflare Resolver(1.1.1.1)でArchive.todayにアクセスできないワケ

Cloudflare ResolverとHTTPS Everywhereが原因でArchive.todayにアクセスできなかった話」を書いた後、改めて調べてみると、その原因が何となく解ってきた。

結論から言うと、Archive.todayが意図的にCloudflareからのDNS問い合わせをブロックしていた。

海外では既知の問題

Cloudflare Resolver(1.1.1.1)でArchive.todayにアクセスできない件は、2018年2月の時点で既知の問題であった。

Cloudflare側の主張

2018年の春にはCloudflare Communityにスレッドが立ち、Cloudflareの開発者が問題の解決にあたるが、Archive.today側に問題があるとしてスレッドは閉じられてしまう。

調査の結果、archive.isのネームサーバ(anna.archive.is)は通常AレコードでOVHのIPアドレスを返すが、問い合わせ元がCloudflareの場合に限って何故かCNAMEレコードで"cdn-wo-ecs.archive.is"を返すことが判明している。Amazon ECSを連想するサブドメインだが、そのIPアドレス(104.28.24.2)はCloudflareのものである。しかし、すでにArchive.todayはCloudflareを利用していないため、このDNS応答を使ったHTTPリクエストは失敗する。

なお上記は2018年当時の話であり、現在はCloudflare Resolverを通じたDNS要求にはAレコードでループバックアドレス(127.0.0.3や127.0.0.4)を返す。FirefoxでCloudflare Resolverを設定していても別のリゾルバにフォールバックしてArchive.todayにアクセスできるようになったのは、それが関係しているのだろう。

世界各地からのDNS応答はDig web interfaceで調べることができる。これでarchive.isを調べると、要求元の回線に応じて様々なAレコードが返ってくることが分かる。それぞれが直近のOVHのCDNサーバのIPアドレスのようだ。

archive.is@1.1.1.1 (CloudFlare):
archive.is. 69814 IN A 127.0.0.3
archive.is@8.8.8.8 (Google):
archive.is. 297 IN A 78.108.190.21
archive.is@208.67.222.222 (OpenDNS):
archive.is. 159 IN A 51.38.113.224
archive.is@9.9.9.9 (Quad9):
archive.is. 300 IN A 46.45.185.30

Archive.todayの主張

2018年7月にあるセキュリティ研究者が上記のスレをArchive.today(@archiveis)に示して対応を求めるが、Archive.todayはCloudflareのDNS要求に問題があるとして対応を拒む。

曰く、Cloudflare ResolverはEDNS Client Subnetをサポートしておらず、DNSの位置とHTTP要求のミスマッチは多くのトラブルを引き起こすので、EDNS情報が欠落したCloudflareからのDNS要求は無効と見なしているのだという。えぇぇぇ……。

なみにArchive.todayがCloudflareを悪し様に言う度に訂正に走り回ってるJustin(@xxdesmus)という認証済みアカウントはCloudflareの部門責任者である。

EDNS Client Subnetが理由?

Cloudflare ResolverはパブリックなDNSリゾルバであるにもかかわらず、ユーザのプライバシー保護を理由にEDNS Client Subnetに対応していない。

1.1.1.1 is a privacy centric resolver so it does not send any client IP information and does not send the EDNS Client Subnet Header to authoritative servers.
(1.1.1.1はプライバシー中心のリゾルバであるため、クライアントのIP情報は送信されず、権威サーバにEDNS Client Subnetヘッダは送信されません。)

そのため、ネームサーバ(権威サーバ)がクライアントの位置を知ることができず、ユーザは住まいから遠くのエッジサーバからArchive.todayのコンテンツをダウンロードすることになるかもしれない。

しかし、それだけのことでダミーのCNAMEレコードを用意してまでCloudflare Resolverを排除しようとするのは理解できない。遺恨でもあるのだろうか。

Google Public DNSを利用してEDNS Client Subnetヘッダによる位置情報の推定を許容するか、普段はCloudflare Resolverを利用しつつArchive.todayは通常のDNSリゾルバへのフォールバックを許容するか、完全にCloudflare ResolverのみとしてArchive.todayへのアクセスは諦めるか、どれも大差ないように思えるのがまた悩ましい。

Guest

コメント2件

cdn-wo-ecs はAWSというか、without EDNS Client Subnet で、ECS無しのDNS queryの場合用のCDNという意図だったのだと思います。公開DNSフォワーダでもECSを常に付けてくるのはGoogleくらいですし、ECS付けなかったり、付けるサイトを限定しているフォワーダの方が多いのであまり悩むこともないと思います。もっともコピーして公開されると著作権侵害になるアイテムがあってrobots.txtなどで対応していても見もせずにコピーした上に削除にも応じないクソサイトなど見れない方がありがたいので、みんなone.one.one.one使いましょう。
>cdn-wo-ecs はAWSというか、without EDNS Client Subnet で、ECS無しのDNS queryの場合用のCDNという意図だったのだと思います。

そう言われてみると全くその通りとしか思えません、いやお恥ずかしい……
コメントを投稿するには、 ログイン または 会員登録 をする必要があります。