繋がらないサイトが有る

2018/01/26 の追記

最近 (2018/01/26) 以下の方法をとっても、繋がらないことが多くなってきたので、お勧めできません。

Google Public DNS を使う方法使えそうですが、ネットワークマネージャを使う方法がある。

ここに有るように、Google Public DNS を使えば良いので、シェルスクリプト化出来る方法で対処。

話の前フリ

随分前から、読売新聞などの一部のサイトが繋がらない問題が有ったのだが、ネットで調べると随分前から話題になっていたねの。

私のメイン環境は Ubuntu でブラウザは Firefox を使っているが、Windows では OS の初期設定の関係で、問題に遭遇することはほとんど無さそう。

逆に問題が起きる環境と接続先の組み合わせでは、Firefox だけでなく w3mcurl といったコマンドもダメ。

問題の背景

問題の背景と対処法は『Re: [opensuse-ja] 読売新聞のサイトに接続出来ない』を参考にした。

  1. IPv6 が使われるようになってきた
  2. サイトの中にはアドレス解決 DNS に対して、複数のアドレスを返すことがあり、www.yomiuri.co.jp などはそれが多い
  3. これが A と重なると、DNS の元々の規格の文字数上限 512 を上回ることが有る

このあたりを知らないで、Firefox で about:config から隠しオプション network.dns.disableIPv6true にして IPv6 を OFF すれば、繋がることは解っていたが、これからの時代 IPv6 を使わないのは時代遅れ、ということで一時的に設定を変えて対処していた。

対処法

IPv6 前提として、DNS が拡張された EDNS0 が有るので、これを Windows 同様有効にしてやればよい。

具体的には、/etc/resolv.conf、Ubuntu ではこれの元となる /etc/resolvconf/resolv.conf.d/base に設定を追記してやる。

sudo vi /etc/resolvconf/resolv.conf.d/base

sudo gedit /etc/resolvconf/resolv.conf.d/base

でファイルを開き、

options edns0

を書き加え、再起動する。当然ながら sudo を使っているので、実行時にはパスワードの入力が必要。

ひょっとすると、DNS のキャッシュや統計情報をクリアしたほうが良いのかも知れない。

sudo systemd-resolve --flush-caches ; sudo systemd-resolve --reset-statistics

もちろん普及していない段階では、弊害も有るということで 2015 年ごろまでの書き込みは、Winodws で OFF にする方法が多く記載されている。しかし、もうそろそろ ON をデフォルトもして良いだろう。