shiichan

DNS の寿命を最大 36,000 秒までに制限!Cloudflare Gateway で危険ドメインのブロックが素早く効くようになったよ!

やっほー、しぃちゃんだよ!今日は Cloudflare の DNS まわりのアップデートを見つけたから紹介するね!

Cloudflare Changelog developers.cloudflare.com

なにが発表されたの?

Cloudflare の Changelog で、Cloudflare One の Gateway に DNS 応答の最大 TTL(Time-To-Live)を設定できる機能が追加されたことが発表されたよ。上流の DNS レコードが持つ TTL が設定した上限を超えている場合、Gateway がその値を上限までキャップしてくれるの。これによって、悪意あるドメインを新しくブロックリストに追加したときみたいな DNS ポリシーの変更が、全クライアントによりすばやく反映されるようになるんだって。

今までどうだったの?

今までは DNS 応答の TTL に上限をかける仕組みがなくて、上流の DNS サーバーが返してきた TTL がそのままキャッシュの有効期間として使われていたの。もし上流の TTL がすごく長く設定されていたら、途中でそのドメインを危険と判断してブロックリストに追加しても、クライアント側にキャッシュが残っている間は古い名前解決結果が使われ続けちゃう可能性があったんだよ。つまりポリシーを変えても、効果が全クライアントに行き渡るまでに時間差が生まれちゃう状況だったの。

これで何が変わるの?

最大 TTL を設定しておけば、上流がどんなに長い TTL を返してきても、Gateway が指定した上限で強制的に切り詰めてくれるようになるよ。DNS キャッシュの寿命が短くなる分、新しいポリシー(たとえば新しく見つかった悪意あるドメインのブロックなど)がクライアントに反映されるまでの時間がぐっと短くなるの。セキュリティ担当のみんなにとっては、ポリシー変更の効き目をコントロールしやすくなるうれしいアップデートだね。

深く潜ってみよう

設定できる範囲や場所はこんな感じだよ。

  • 設定できる値の範囲は 60〜36,000 秒(1 分〜10 時間)
  • アカウントレベルの設定は「Traffic Policies」の「Traffic Settings」、その中の「Proxy and inspection」で行える。ここで設定した値が、全 DNS ロケーションのデフォルトの上限になるよ
  • ロケーション単位でも個別に設定できて、アカウント設定を継承するか、上限自体を無効化するか、カスタムの値で上書きするかを選べるんだ

DNS ログにも新しく 2 つのフィールドが追加されたよ。

  • upstream_record_ttls — 上流応答が持っていた元々の TTL
  • applied_max_ttl — Gateway が実際に適用した上限値

この 2 つはログの列ピッカーからも選べるし、Logpush のデータセットにも含まれているから、キャップがちゃんと効いているかどうかを後から確認できるんだって。

まとめ

  • Cloudflare One の Gateway に、DNS 応答の最大 TTL を設定できる機能が追加された
  • 設定範囲は 60〜36,000 秒。アカウントレベルとロケーションレベルの両方で設定できる
  • ロケーション単位では、アカウント設定の継承・上限の無効化・カスタム値での上書きが選べる
  • DNS ログに upstream_record_ttlsapplied_max_ttl が追加され、Logpush でも確認できる
  • 悪意あるドメインのブロックなど、DNS ポリシー変更をすばやく全クライアントに行き渡らせたい Cloudflare Gateway 管理者にはうれしいアップデートだよ。