Internet Week 2019 DNS DAY

DNS flag day
2019振り返りと2020に向けて
株式会社ＸＡＣＫ
技術部 矢島 崇史

DNS flag dayとは
DNSソフトウェアやサービス提供者たちが共同で
 特定の日付以降
 運用上またはセキュリティ上の問題に対して 相互運用性を持続させ、性能に影響を与える問題を解消するために 何らかの動作を変更する日
公式サイト
https://dnsflagday.net/
Copyright © 2019 XACK, Inc. All Rights Reserved.

1

DNS flag day 2019とはDNSソフトウェアやサービス提供者たちが共同で 2019/02/01から
 EDNS0に正しく対応していない権威サーバーに対して
 名前解決の再送回数低減および時間短縮を目的として
 EDNS0なしへの再送する回避策を止めた日(当時は2019は付与されておらず、継続的に行うことは決定していなかったと思われる)(主として)
フルリゾルバー

EDNS0あり
EDNS0なし(回避策)
Copyright © 2019 XACK, Inc. All Rights Reserved.

(不正な)権威サーバー
2

DNS flag day 2019でどうなるか 一部または全部の権威サーバーがタイムアウトするよ
うなドメインの名前解決にかかる時間が短くなることが期待される
 EDNS0に正しく対応していない権威サーバーの管理するドメイン名が名前解決できなくなるかもしれない※EDNS0はRFC 6891で規定されるDNSの拡張機構

Copyright © 2019 XACK, Inc. All Rights Reserved.

3

DNS flag day 2019でどうなったか 公式に「DNS Flag Day 2019は成功裏に終わりました。」と高らかに宣言されている
 高遅延のドメインが全ドメイン中5.68%減少⇒名前解決できないドメインに 私自身は開発者で直接運用しているわけでないので実数を観測できないが、実施後特に問い合わせもなく、うまくいったのでは

Copyright © 2019 XACK, Inc. All Rights Reserved.

4

DNS flag day 2020とはDNSソフトウェアやサービス提供者たちが共同で 時期未定 IPフラグメンテーションに対して
 転送の失敗原因やメッセージの一部偽装を回避するために
 UDPで送信するDNSメッセージをフラグメンテーションしないようなサイズに制限する日
UDPクエリーリゾルバー

UDPアンサー(MTU以内のサイズまたはTC応答)

Copyright © 2019 XACK, Inc. All Rights Reserved.

サーバー
5サイズを制限するとどうなる フラグメント由来の脆弱性から解放される(第一フラグメント便乗攻撃など)
 欠損や、NW機器の破棄などによる、後続パケット待ちタイムアウトから解放される
 TCの増加により、TCPのクエリーが増えるかも TCPのクエリーに応答しない権威サーバーの管理するドメインが引けなくなるかも

Copyright © 2019 XACK, Inc. All Rights Reserved.

6どうすればいい？
 サーバーがTCPのクエリーに応答するか確認 リゾルバーがTC応答に対し、TCPにフォールバックするか確認 トラフィックモデルが変わることが想定されるので必要に応じて検証、チューニングを検討

Copyright © 2019 XACK, Inc. All Rights Reserved.

7

どうなるのかもう少し具体的に
 リゾルバーのEDNS0に含まれるUDPペイロードサイズが変更される(推奨値1232オクテット)
 IPv6必須MTU-(IPv6+UDPヘッダー)=1280-48=1232

 多くの実装でデフォルト値は4096オクテット
 縮小になる 以降は現状UDPペイロードサイズが4096オクテットで動作している前提

Copyright © 2019 XACK, Inc. All Rights Reserved.

8どうなるのかもう少し具体的に
 どうなる(1232オクテット以下の応答)⇒変更なし

DNS flag day 2020以前

リゾルバー
DNS flag day 2020以降

リゾルバー

UDPクエリーUDPアンサー

サーバー

UDPクエリーUDPアンサー

Copyright © 2019 XACK, Inc. All Rights Reserved.

サーバー

9

どうなるのかもう少し具体的に
 どうなる(4096オクテット超の応答) ⇒変更なし
DNS flag day 2020以降

リゾルバー

DNS flag day 2020以降

リゾルバー

UDPクエリーUDPアンサー(TC)
TCPクエリーTCPアンサー

サーバー

UDPクエリーUDPアンサー(TC)
TCPクエリーTCPアンサー
Copyright © 2019 XACK, Inc. All Rights Reserved.

サーバー

10

どうなるのかもう少し具体的に
 どうなる(1233～4096オクテットの応答)
 TCPに応答するサーバーの場合
DNS flag day 2020以前

リゾルバー
DNS flag day 2020以降

リゾルバー

UDPクエリーUDPアンサー

サーバー

UDPクエリーUDPアンサー(TC)
TCPクエリーTCPアンサーサーバー

UDPで名前解決できていたのが、TC応答により、TCPにフォールバックする。
Copyright © 2019 XACK, Inc. All Rights Reserved.

11どうなるのかもう少し具体的に
 どうなる(1233～4096オクテットの応答)
 TCPに応答しないサーバーの場合
DNS flag day 2020以前

リゾルバー
DNS flag day 2020以降

リゾルバー

UDPクエリーUDPアンサーサーバー

UDPクエリーUDPアンサー(TC)
TCPクエリーTCPアンサー

サーバー

TCPにフォールバックする上、名前解決できなくなる。
Copyright © 2019 XACK, Inc. All Rights Reserved.

12どうなるのかもう少し具体的に
 応答サイズが1233～4096オクテットのクエリーがTC応答するようになる
 TCPにフォールバックするのでTCPのクエリーが増加する

 TCPに応答しないサーバーは名前解決できなくなる とはいえ現状でも4096オクテット超の場合にはすでに名前解決できない状態であるはず ゾーン転送はほぼ影響がないはず AXFRは始めからTCP、IXFRはUDPの実装が多分ない SOAは署名付きだと1232を超えるかも、Notifyは……
Copyright © 2019 XACK, Inc. All Rights Reserved.

13どうすればいいかもう少し具体的に
DNSサーバー運用者(権威サーバー) ひとまず影響ありかは公式ツールでチェック可能https://ednscomp.isc.org/ednscomp
https://dnsflagday.net/

Copyright © 2019 XACK, Inc. All Rights Reserved.

14どうすればいいかもう少し具体的に
DNSサーバー運用者(権威サーバー)
 TCP/53で応答することを確認する
 dig +tcp @auth_IP yourdomain.example
 ブロックするFWもあるので忘れずに

 MTUが1280以上であることを確認する
 1280未満だとフラグメントしなくなる、という効果を享受できないかも (EDNS0のUDPペイロードサイズを1232に変更する)

Copyright © 2019 XACK, Inc. All Rights Reserved.

15

どうすればいいかもう少し具体的に
DNSサーバー運用者(権威サーバー)
 応答サイズが1232オクテットを超えるようなゾーンを管理している場合、TC応答が増加する
 TCPクエリーの増加
 UDP応答サイズの減少？
DNS flag day 2020以降

リゾルバー

今まで4096以下だったのが1232以下に今までなかった
TCPクエリーが増加

UDPクエリーUDPアンサー(TC)
TCPクエリーTCPアンサー
Copyright © 2019 XACK, Inc. All Rights Reserved.

権威サーバー16どうすればいいかもう少し具体的に
DNSサーバー運用者(権威サーバー) 現状のトラフィックを把握すると、DNS flag day 2020
前後の変化がある程度予測できるのでは ソケット数やFWのセッション数などチューニング
 minimal-responseで応答サイズを小さくするのもありかも

DNS flag day 2020以前

リゾルバー

1232超の数/割合が分かれば増加す
るTCPクエリーの数の見当がつく
UDPクエリーUDPアンサー
Copyright © 2019 XACK, Inc. All Rights Reserved.

権威サーバー17どうすればいいかもう少し具体的に
DNSサーバー管理者(フルリゾルバー)
 基本的には権威サーバーと同じ
 TCP/53、MTU、UDPペイロードサイズ

 加えてTC応答に対して、TCPフォールバックするか確認する dig @resolver_IP test.knot-resolver.cz. TXTCopyright © 2019 XACK, Inc. All Rights Reserved.

18

どうすればいいかもう少し具体的に
DNSサーバー管理者(フルリゾルバー)
 TCPによる反復問い合わせが増えるはず TATの増加
 同時反復問い合わせ数の増加

DNS flag day 2020以降

TCPフォールバックする応答は応答までの時間が今までより長くなる
UDPクエリー

クエリー

スタブ
リゾルバー

TCPの反復問
い合わせが増加アンサー

UDPアンサー(TC)権威
フルTCPクエリー
サーバー
リゾルバー

TCPアンサー

Copyright © 2019 XACK, Inc. All Rights Reserved.

19どうすればいいかもう少し具体的に
DNSサーバー管理者(フルリゾルバー)
 場合によってはチューニングが必要
 BINDならrecursive-clients、reserved-sockets
 Unboundならnum-queries-per-thread、outgoing-num-tcp

DNS flag day 2020以降

時間が長くなるので同時数を増やす
UDPクエリー

クエリー

スタブリゾルバー

アンサー

TCPが増えるのでソケット数を増やす

UDPアンサー(TC)権威フル
TCPクエリーサーバー
リゾルバー

TCPアンサー

Copyright © 2019 XACK, Inc. All Rights Reserved.

20

どうすればいいかもう少し具体的に
DNSソフトウェア製品ベンダー
 標準規格に準拠しましょう RFC7766
 RFC6891
 EDNS0の対応が必須なわけではありません。対応していなければOPTレコードなしのFormErrを応答すればよいです DNS flag day 2020に賛同するなら、UDPペイロードサイズのデフォルト値を1232に、ただし設定可能とすることも重要

Copyright © 2019 XACK, Inc. All Rights Reserved.

21

まとめ 時期未定ですが、そのうちEDNS0のUDPペイロードサ
イズのデフォルト値が1232オクテットに変更されます 基本的によい方向に修正されるはずですが、一部名前解決ができなくなることが懸念されています 事前に検証、対応できることはしておきましょうCopyright © 2019 XACK, Inc. All Rights Reserved.

22https://xack.co.jp