EDNS0 查询无法穿过防火墙
7798
Created On 01/31/23 23:34 PM - Last Modified 01/03/25 15:13 PM
Symptom
运行 EDNS0 查询超时并出现错误,如屏幕截图所示。
+CategoryInfo:OperationTimeout:(_ldap_tcp.dc._msdcs.domain.com:字符串)+完全合格错误ID:ERROR_TIMEOUT
Environment
- Palo Alto 防火墙
- PAN-OS 9.1.x 或更高版本。
- DNS服务器和具有 EDNS0功能的客户端之间的 PA 防火墙。
Cause
此问题可能是由以下一个或多个原因导致的:
- 在 PA防火墙上启用DNS代理,并选中“缓存 EDNS 响应”选项。
- 启用了DNS安全的间谍软件安全配置配置文件。
- 在基于数据包的攻击保护下启用了片段流量选项的区域保护配置配置文件。
- 与正常DNS相比,EDNS0 数据包过大,导致网络设备碎片化。
Resolution
1.验证DNS代理是否已配置,并在高级 > 缓存下启用了“缓存 EDNS0 响应”选项
2.运行以下命令检查全局计数器,以检查DNS数据包丢失,即“ctd_dns_wait_pkt_drop”和 ip fragmenattion。测试时多次重复这些命令
debug dataplane packet-diag clear filter-marked-session all
debug dataplane packet-diag set filter match source ip1 destination ip2
debug dataplane packet-diag set filter match source ip2 destination ip1
debug dataplane packet-diag set filter on
show counter global filter delta yes | match "dns"
show counter global filter delta yes | match "ctd_dns_wait_pkt_drop"
show counter global filter delta yes | match "ipfrag"
3.如果启用了具有DNS安全性的间谍软件安全配置配置文件,则禁用并检查查询。
4.在基于数据包的攻击保护下启用片段流量选项的区域保护配置配置文件,然后禁用它并测试
5. 还可以创建应用程序覆盖以对DNS应用程序进行验证。
6. 如果在防火墙上没有看到相关计数器,并且进行了上述故障排除, 则可以进行数据包捕获以查找 IP 碎片查询和响应。
- 捕获示例:
- 通过防火墙成功进行 EDNS0 查询的示例:
- 捕获显示防火墙接收、处理、传输和接收响应。
- 如果您没有看到防火墙收到任何响应,则请检查所涉及的上游设备,因为到目前为止,EDNS0 尚未得到网络设备的广泛支持,因此可能会由于碎片问题或数据包过大且 DFbit(位-bit)打开等原因而丢弃它,或者可能是不对称路由问题。
- 如果防火墙收到了响应,但是客户端DNS服务器仍然没有看到响应,则验证响应包中的 DFbit(位-bit)(不分bit(位-bit))是否打开,并且防火墙是否将其丢弃。
- 此外,可能需要运行详细的数据包捕获(即基本流、app-id),以更深入地了解防火墙是否正在接收和丢弃它。如需进一步帮助,请打开支持案例。