====== 自用 dnsmasq 的补丁集 ====== ===== patch-dnsmasq-try-all-servers-upon-failure ===== 当 dnsmasq 启用 all-servers 时, 将会把请求同时发送到所有上游服务器, 并且采纳最快响应的结果返回给客户端. 但是如果最快响应的结果是 SERVFAIL, dnsmasq 也依然直接返回给客户端. 该补丁的用途是, 上游服务器返回 SERVFAIL 时, 不采纳, 继续尝试其他服务器的结果. ===== patch-dnsmasq-filter_rr-qtype-64-65 ===== 查询 DNS 的 QTYPE 类型为 64(SVCB) 或 65(HTTPS) 时, 其结果返回类型可能是多样化的. [[https://datatracker.ietf.org/doc/rfc9460/?include_text=1|RFC 9460]] 当 dnsmasq 配置 filter_rr= 为 64 或 65 时, 并不能很好挡掉这些请求. 该补丁用途是配置了 filter_rr= 64或65时, 直接返回 NXDOMAIN. ===== FreeBSD /etc/make.conf ===== 如果需要在 FreeBSD 安装 ports dnsmasq 时自动应用补丁, 在 /etc/make.conf 下添加以下内容. 将其中的路径替换为实际. .if ${.CURDIR:M*/dns/dnsmasq} EXTRA_PATCHES+=/path/patch-dnsmasq-try-all-servers-upon-failure.txt EXTRA_PATCHES+=/path/patch-dnsmasq-filter_rr-qtype-64-65.txt .endif ===== 附件 ===== {{ :xnix:patch-dnsmasq-filter_rr-qtype-64-65.txt |}} {{ :xnix:patch-dnsmasq-try-all-servers-upon-failure.txt |}} {{tag>freebsd dnsmasq}}