浸透いうな(その3):まずいNS設定

この状況で「浸透」はおこりますか?

SMALL-IS-BEAUTIFUL.JPでは、現在、NSのひとつが ftp.small-is-beautiful.jp 、そしてもうひとつ外部のセカンダリ ns.internot.jp を利用しているとします。そして、新しいDNSサーバ ns.example.jp に引越しをしたいと考えているとしましょう。ありがちな状況ですね。

今、これまでのDNSサーバに旧来の設定を残したまま、上位レジストリ(ここではJP)への Name Server の登録をたとえば ns.example.jp に変更したとしましょう。さて、世界中のDNSキャッシュは ns.example.jp へうまく切り替わってくれるでしょうか。

以下に古いキャッシュをもった、あるDNSキャッシュサーバ(127.0.0.2)の様子を再現してみました。


  1. 最初の状態
    % dig @127.0.0.2 a ftp.small-is-beautiful.jp
    
    ;; QUESTION SECTION:
    ;ftp.small-is-beautiful.jp.	IN	A
    
    ;; ANSWER SECTION:
    ftp.small-is-beautiful.jp. 10	IN	A	202.41.218.226
    
    ;; AUTHORITY SECTION:
    small-is-beautiful.jp.	3600	IN	NS	ns.internot.jp.
    small-is-beautiful.jp.	3600	IN	NS	ftp.small-is-beautiful.jp.
    

  2. ftp.small-is-beautiful.jp のキャッシュ切れ直前

    この時点ではNSのTTLはまだ残存し、ns.internot.jp の AレコードのキャッシュもNSと同じTTLで残存

    % dig @127.0.0.2 a ftp.small-is-beautiful.jp
    
    ;; QUESTION SECTION:
    ;ftp.small-is-beautiful.jp.	IN	A
    
    ;; ANSWER SECTION:
    ftp.small-is-beautiful.jp. 1	IN	A	202.41.218.226
    
    ;; AUTHORITY SECTION:
    small-is-beautiful.jp.	3472	IN	NS	ns.internot.jp.
    small-is-beautiful.jp.	3472	IN	NS	ftp.small-is-beautiful.jp.
    

  3. NSに対応するAレコードのキャッシュ切れ直後、誰かがAレコードを検索した!

    この際、ns.internot.jp の additional A のキャッシュが残っていると、上位のJPサーバが参照されないまま、ns.internot.jp へ ftp.small-is-beautiful.jp の問い合わせが発生し、その応答の Authority Section により small-is-beautiful.jp の NS の TTL がリフレッシュされてしまう。(実装依存: unbound 1.4.7, dnscacheで確認。BINDもバージョンによるみたい、、、)

    % dig @127.0.0.2 a ftp.small-is-beautiful.jp
    
    ;; QUESTION SECTION:
    ;ftp.small-is-beautiful.jp.	IN	A
    
    ;; ANSWER SECTION:
    ftp.small-is-beautiful.jp. 10	IN	A	202.41.218.226
    
    ;; AUTHORITY SECTION:
    small-is-beautiful.jp.	3600	IN	NS	ns.internot.jp.
    small-is-beautiful.jp.	3600	IN	NS	ftp.small-is-beautiful.jp.
    

    (この設定はまだ残してあります。手元のキャッシュサーバで試して頂いて結構です。実装と設定で動作は変わるかとは思いますが、パケットダンプしながら観察するとよいでしょう)

    追記: 空のキャッシュサーバを用意して、www.iij.ad.jp を検索したあと、TTLを観察しながら、ftp.iij.ad.jp を検索してみるというのも参考になるかもしれません。

さて、何がいけないのでしょう。どうすればいいですか? (この例のバリエーションは他にも色々あります)

業者は言うかもしれません。「浸透には時間がかかります。数日待ってください」

浸透って言うな!   引越しのための適切な手を打たないと、切り替わりは運まかせとなります。(その4へ続く)

2012.11 追記: この現象は幽霊ドメイン名脆弱性として広く知られるようになり、BIND 9.9.0/9.8.2/9.7.5/9.6-ESV-R6, Unbound 1.4.8 で対策済。この現象が起きるキャッシュサーバは脆弱性を抱えているといえるでしょう。

戻る
by T.Suzuki