DSC 从 v2.9.0 起支持通过 DNSTAP 直接接收 DNS 服务器导出的原始消息,解决了接口抓包无法看到 DoT/DoH 明文的难题,形成“抓包+DNSTAP”双通道监控体系。
DNSTAP 架构与性能隔离:
DNSTAP 由 Farsight Security 开发,采用 Protocol Buffers 封装 DNS 服务器内部事件,再经 Frame Streams (fstrm) 通过可靠字节流套接字传输给接收端。系统包含发送端、传输层、接收端和分析端四大组件。关键设计是将 DNSTAP I/O 与权威/递归服务器主进程分离,避免了传统文件日志在高负载下争抢 CPU、磁盘 I/O 导致丢包或响应延迟抖动。原文未给出具体性能损耗数据,但明确指出“服务新请求优先于写日志”不再发生。
加密 DNS 可见性与 DSC 接入方式:
DNSTAP 采集的是服务器内部未加密的原始报文,因此天然包含 DoT (DNS over TLS) 与 DoH (DNS over HTTPS) 解密后的查询/应答。DSC 现支持 file、UNIX socket、TCP、UDP 四种 DNSTAP 输入源,已在 BIND 9 与 Unbound 上验证通过。相比旁路镜像流量,DNSTAP 数据更“纯净”:无链路层干扰、无重传噪声、可精确对应服务器内部处理阶段(AUTH、RESOLVER、CLIENT、FORWARDER 四类事件)。
对网络工程师的实操意义:
部署时只需在 named.conf 或 unbound.conf 开启 dnstap-output,指定传输方式指向 DSC 监听地址,即可在 Grafana 面板同步看到加密与明文查询的 QPS、RCODE 分布、EDNS 选项等指标。双通道模式下,接口抓包负责网络层异常排查,DNSTAP 负责应用层业务审计,二者互补,无需在服务器上开启高开销的全量查询日志。
原文: APNIC Blog(2020-12-17)|编译自 APNIC Blog,事实以原文为准。
来源:APNIC Blog