トップ 最新 追記

インターノット崩壊論者の独り言


EPIC2014
Google Public DNS (8.8.8.8, 8.8.4.4) 経由では本サイトにアクセスできないよう措置させて頂いております。

2014-03-23 「浸透おそい」の原因はブラウザでしょ (Firefox編)

Firefox の名前解決キャッシュの謎

Firefox の名前解決キャッシュの動作が不可解だったので色々調べてみました。

「ISPのDNSキャッシュサーバはTTLを越えてキャッシュを保持するか?」の実験で用いている a.t.e-ontap.com は 5分毎に A レコードが切り替わるようになっています。

この http://a.t.e-ontap.com/ を Firefox 28.0 でリロードしながら観察するとおかしなことに気づきます。まず普通にリロードを行っても DNS 権威サーバ側で A レコードが切り替わっているのに、まるで HTTP の接続先が切り替わりません。さらにパケットダンプしてみると、DNSキャッシュサーバへ問合せを送り新しい A レコードを得ているのに HTTP は古い接続先から切り替わらないのです。

ここで、さらに奇妙なことがわかりました。Shift を押しながらリロードすると新しい接続先に繋がるようになる (この場合でも1分以内のリロードは DNS 問合せを出さない) のですが、次に Shift を押さずリロードするとなんと新しい DNS 検索結果を無視して古い方へ接続しに行ってしまうのです。実にしぶといキャッシュです。

Firefox の名前解決キャッシュの正体

こんなことは以前は起きていなかったと思いつつ、実験を重ねつつ、ソースや Mozilla コミュニティの情報など色々あたって調べてみた結果、およその動作と問題点が以下のように判明しました。

Firefox のソースを見ると、nsDNSService2.cpp に以下のパラメータがあります。

uint32_t maxCacheEntries  = 400;
uint32_t maxCacheLifetime = 2; // minutes 
uint32_t lifetimeGracePeriod = 1;

このうち固定で2分となっている maxCacheLifetime に lifetimeGracePeriod が足されたものが DNS キャッシュ時間になっています。ソース上では lifetimeGracePeriod のデフォルト値は 1分であり、キャッシュ時間は 2+1 = 3 分 ということです。

しかし、about:config から変更可能なパラメータに以下のデフォルト値が入っています。

network.dnsCacheExpirationGracePeriod;2592000

これを60で割った 2592000/60 = 43200 分が lifetimeGracePeriod を上書きしているのです。
つまり、43200分(=30日) + 2 分 の間 Firefox はキャッシュを保持するのです。ソースまで確認していませんがリスタートしても保持しているように見えます。

途中、Shift リロードを繰り返そうが、DNS prefetch が新しい値を得ようが、このキャッシュは更新されません。この network.dnsCacheExpirationGracePeriod を about:config から変更するとその値に従うこともわかりました。

結論

どう考えても network.dnsCacheExpirationGracePeriod = 2592000 は長過ぎます。Mozilla 関係サイトを調べまわってもこの値がなぜこうなったかは不明ですが、以前は 60 (1分) だったこの値が Firefox 18 (2013/01/08) 以降に今の値になったようです。性能競争の成れの果てかもしれませんが、バグと言っても良いのではないでしょうか。元通り 60 に変更したほうがよいと思います。さもないと「浸透おそい」というハメになるでしょう。浸透いうな!

p.s.

愚痴ですが私はブラウザの専門家ではありません。もっと詳しい人にちゃんと調べて欲しかった/欲しいと思います。皆「浸透おそい」と言うばかりで、調べてみた/みる人はいないのですかね。


参考:
本日のツッコミ(全4件) [ツッコミを入れる]

Before...

tss [「Firefox 29」ベータ版公開、ユーザーインターフェイス刷新 http://internet.watch.im..]

  [次期ESRとなる31α版では既定値が60となっているのを確認しました]

tss [ありがとうございます]


2014-03-24 デジタル通貨への政治的圧力?

仮想通貨ラボがドメイン名を強制利用停止されたような、、、

「仮想通貨ラボ 重要なお知らせ 今回のサイトダウンについて」という記事が出ていることを教えてもらいましたが、、、

whois に nameserver 指定されていますが、status が clientHold (利用停止状態)。そして .com サーバで引けない。

これ、政治的に強制利用停止を喰らったんじゃないですかね。単なる推測ですけど。

tao:~ tss$ whois kasoutuukalab.net
 
Whois Server Version 2.0
 
Domain names in the .com and .net domains can now be registered
with many different competing registrars. Go to http://www.internic.net
for detailed information.
 
   Domain Name: KASOUTUUKALAB.NET
   Registrar: PSI-USA, INC. DBA DOMAIN ROBOT
   Whois Server: whois.psi-usa.info
   Referral URL: http://www.psi-usa.info
   Name Server: NS1.JIMDO.COM
   Name Server: NS2.JIMDO.COM
   Status: clientHold
   Status: clientTransferProhibited
   Updated Date: 22-mar-2014
   Creation Date: 07-mar-2014
   Expiration Date: 07-mar-2015
 
>>> Last update of whois database: Mon, 24 Mar 2014 09:42:20 UTC <<<
tao:~ tss$ dig ns KASOUTUUKALAB.NET @a.gtld-servers.net
 
; <<>> DiG 9.8.3-P1 <<>> ns KASOUTUUKALAB.NET @a.gtld-servers.net
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 20735
;; flags: qr aa rd; QUERY: 1, ANSWER: 0, AUTHORITY: 1, ADDITIONAL: 0
;; WARNING: recursion requested but not available
 
;; QUESTION SECTION:
;KASOUTUUKALAB.NET.		IN	NS
 
;; AUTHORITY SECTION:
NET.			900	IN	SOA	a.gtld-servers.net. nstld.verisign-grs.com. 1395654210 1800 900 604800 86400
 
;; Query time: 240 msec
;; SERVER: 192.5.6.30#53(192.5.6.30)
;; WHEN: Mon Mar 24 18:43:46 2014
;; MSG SIZE  rcvd: 111

NS1.JIMDO.COM は応答なくて、NS2.JIMDO.COM は応答あり。プライマリが消されて、セカンダリにデータが残っている状態でしょうか。

tao:~ tss$ dig any KASOUTUUKALAB.NET @NS2.JIMDO.COM
 
; <<>> DiG 9.8.3-P1 <<>> any KASOUTUUKALAB.NET @NS2.JIMDO.COM
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 63261
;; flags: qr aa rd; QUERY: 1, ANSWER: 7, AUTHORITY: 0, ADDITIONAL: 4
;; WARNING: recursion requested but not available
 
;; QUESTION SECTION:
;KASOUTUUKALAB.NET.		IN	ANY
 
;; ANSWER SECTION:
KASOUTUUKALAB.NET.	3600	IN	TXT	"v=spf1 include:emailsrvr.com ~all"
KASOUTUUKALAB.NET.	3600	IN	A	122.200.253.144
KASOUTUUKALAB.NET.	3600	IN	NS	ns2.jimdo.com.
KASOUTUUKALAB.NET.	3600	IN	MX	20 mx2.jimdo.com.
KASOUTUUKALAB.NET.	3600	IN	MX	10 mx1.jimdo.com.
KASOUTUUKALAB.NET.	3600	IN	NS	ns1.jimdo.com.
KASOUTUUKALAB.NET.	3600	IN	SOA	ns1.jimdo.com. hostmaster.jimdo.com. 2014032441 10800 3600 604800 600
 
;; ADDITIONAL SECTION:
mx2.jimdo.com.		3600	IN	A	108.166.43.2
ns1.jimdo.com.		3600	IN	A	54.229.37.61
ns2.jimdo.com.		3600	IN	A	66.135.33.140
mx1.jimdo.com.		3600	IN	A	98.129.184.3
 
;; Query time: 207 msec
;; SERVER: 66.135.33.140#53(66.135.33.140)
;; WHEN: Mon Mar 24 19:14:26 2014
;; MSG SIZE  rcvd: 293
}}}
本日のツッコミ(全3件) [ツッコミを入れる]

tm [「ドメイン名を強制利用停止」というのは不正確な表現ですね。(単なる推測にしても。) 他のエントリの信頼性にも影響し..]

tss [JPRSでは Registrar HOLD に相当し「レジストラ預かり(状態)」と呼ぶようですね。問題はどうしてそう..]

tss [ドメイン名自体は復活していますが、サービスは停止中のようです。http://www.kasoutuukalab.ne..]


最近の日記

2008|04|05|06|07|08|10|11|
2009|02|03|04|06|07|09|10|11|
2010|01|03|06|09|10|11|12|
2011|01|02|03|05|06|07|10|11|
2012|03|06|07|10|11|12|
2013|02|03|04|05|06|08|09|10|11|
2014|01|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|07|08|09|10|11|12|
2016|01|06|08|12|
2017|03|07|08|09|12|
2018|04|08|10|11|
2019|01|02|07|11|12|
2020|01|02|03|05|06|07|08|

リンク

Copyright by T.Suzuki