10月24日、RedHatが「Network Observability per flow DNS tracking」と題した記事を公開した。この記事では、DNSトラッキングについて詳しく紹介されている。
DNSトラッキングは、ネットワークモニタリングやセキュリティ強化などの目的で使用される。DNSトラッキングは、eBPFトレースポイントフックを使用して実現される。eBPFトレースポイントフックは、Linuxカーネル内の事前定義されたポイントであり、特定のイベントをキャプチャして分析するためにeBPFプログラムをアタッチすることができる。DNSトラッキングでは、DNS解決プロセスに関連するトレースポイントフックを使用し、DNSヘッダーを解析してクエリかレスポンスかを判断し、DNSの遅延時間を計算するために経過時間を記録する。さらに、DNSネットワークフローにはDNS関連のフィールド(ID、遅延時間、レスポンスコード)が付加され、集計されたDNS統計情報のグラフの構築や特定のフィールドでのフィルタリングがネットワークオブザーバビリティコンソールで表示される。
DNSトラッキングの潜在的な用途として、ネットワークモニタリング、セキュリティ分析、トラブルシューティングが挙げられている。ネットワークモニタリングでは、DNSクエリやレスポンスを分析することで、ネットワーク管理者が異常なパターンやパフォーマンスの問題を特定することができる。セキュリティ分析では、マルウェアによって使用されるドメイン名生成アルゴリズム(DGA)などの不審なDNSアクティビティを検出したり、セキュリティ侵害を示す可能性のある不正なDNS解決を特定することができる。トラブルシューティングでは、DNS解決の手順をトレースし、遅延時間を追跡し、設定ミスを特定することで、DNSに関連する問題をデバッグすることができる。
DNSトラッキングを有効にするには、特権アクセスが必要なため、デフォルトでは無効になっている。DNSトラッキングを有効にするには、eBPFの設定セクションで特定のフィールドを有効にする必要がある。
DNSトラッキングを有効にすると、OCPコンソールのObserve -> Network Trafficページで新しいフィルタと情報が表示される。DNS Id、DNS Latency、DNS Response Codeの3つの新しいフィルタが利用可能であり、これらを使用して特定のDNS Idでフィルタリングしたり、DNS解決の遅延時間を確認したり、DNSのレスポンスコードを表示したりすることができる。
また、DNSトラッキングを有効にすると、グラフやテーブルビューでDNSの情報が表示される。具体的には、平均DNS遅延時間の上位X件やDNSレスポンスコードの上位X件などの情報が表示される。
将来のサポート計画としては、mDNSのトラッキング機能の追加、DNS over TCPのサポートの追加、DNSヘッダーが完全に暗号化されているDNS over TLSの処理方法の調査などが挙げられている。
詳細はNetwork Observability per flow DNS trackingを参照していただきたい。