2018/01/26 の追記
最近 (2018/01/26) 以下の方法をとっても、繋がらないことが多くなってきたので、お勧めできません。
Google Public DNS を使う方法使えそうですが、ネットワークマネージャを使う方法がある。
ここに有るように、Google Public DNS を使えば良いので、シェルスクリプト化出来る方法で対処。
話の前フリ
随分前から、読売新聞などの一部のサイトが繋がらない問題が有ったのだが、ネットで調べると随分前から話題になっていたねの。
私のメイン環境は Ubuntu でブラウザは Firefox を使っているが、Windows では OS の初期設定の関係で、問題に遭遇することはほとんど無さそう。
逆に問題が起きる環境と接続先の組み合わせでは、Firefox だけでなく w3m や curl といったコマンドもダメ。
問題の背景
問題の背景と対処法は『Re: [opensuse-ja] 読売新聞のサイトに接続出来ない』を参考にした。
- IPv6 が使われるようになってきた
- サイトの中にはアドレス解決 DNS に対して、複数のアドレスを返すことがあり、www.yomiuri.co.jp などはそれが多い
- これが A と重なると、DNS の元々の規格の文字数上限 512 を上回ることが有る
このあたりを知らないで、Firefox で about:config から隠しオプション network.dns.disableIPv6 を true にして IPv6 を OFF すれば、繋がることは解っていたが、これからの時代 IPv6 を使わないのは時代遅れ、ということで一時的に設定を変えて対処していた。
対処法
IPv6 前提として、DNS が拡張された EDNS0 が有るので、これを Windows 同様有効にしてやればよい。
具体的には、/etc/resolv.conf、Ubuntu ではこれの元となる /etc/resolvconf/resolv.conf.d/base に設定を追記してやる。
や
でファイルを開き、
を書き加え、再起動する。当然ながら sudo を使っているので、実行時にはパスワードの入力が必要。
ひょっとすると、DNS のキャッシュや統計情報をクリアしたほうが良いのかも知れない。
もちろん普及していない段階では、弊害も有るということで 2015 年ごろまでの書き込みは、Winodws で OFF にする方法が多く記載されている。しかし、もうそろそろ ON をデフォルトもして良いだろう。