• 全部
  • 经验案例
  • 典型配置
  • 技术公告
  • FAQ
  • 漏洞说明
  • 全部
  • 全部
  • 大数据引擎
  • 知了引擎
产品线
搜索
取消
案例类型
发布者
是否解决
是否官方
时间
搜索引擎
匹配模式
高级搜索

f1000-ai-25 DNS代理不工作问题

6小时前提问
  • 0关注
  • 0收藏,51浏览
粉丝:0人 关注:0人

问题描述:

策略中做了:
1.LOCAL-TRUST,TRUST-LOCAL做了互通放行
2.LOCAL-UNTRUST 做了放行
3.也做了192.168.250.4-UNTRUST放行

DNS代理配置:
1.网络配置的DNS中的DNS服务器地址已设定,高级设置中的DNS代理已启用

但是在防火墙设备上PING ***.***无法解析域名
局域网电脑上将DNS设为192.168.250.4,也无法解析域名

跟了一下报文,也没报错,就是没得回来的包
192.168.250.4为防火墙的内网接口地址。

附件为抓的包

求大神指点

5 个回答
已采纳
粉丝:6人 关注:2人

我直接按 H3C F1000-AI-25(也就是你之前的 F1000-AK1150 同系列) 的真实排障逻辑给你讲,一步到位定位为什么 DNS 代理不工作、抓包只有请求没回复

核心结论(99% 是这个问题)

你现在的现象:
  • 设备自身 ping 域名不能解析
  • 内网 PC 指向防火墙 DNS 也不能解析
  • 抓包看到有请求出去、没有回复回来
  • 策略已经放行了 LOCAL、TRUST、UNTRUST
这典型是:
DNS 代理请求从防火墙 LOCAL 区域发出去,但回程路由 / 安全区域 / 源 NAT 不对,回复包回不来。

一、最关键的 3 个配置点(缺一个就不行)

1. 防火墙自身 DNS 查询走的是 LOCAL 区域

你虽然放了:
  • LOCAL → UNTRUST
  • UNTRUST → LOCAL
但很多人漏了一条:
DNS 代理的请求出去时,必须做源 NAT!
防火墙自己发起的 DNS(53 端口)走 LOCAL 区域出外网,
如果没做 NAT,公网运营商根本不回包 → 你看到的就是 “有去无回”。

2. DNS 代理依赖 正确的出接口 / 路由

如果你是多出口(主备 / 主主 / 策略路由),
DNS 代理默认走系统默认路由,不会自动走策略路由
结果就是:
DNS 请求从错误线路出去 → 运营商丢包 → 无回包。

3. DNS 代理必须绑定内网接口

你虽然启用了 DNS 代理,但如果没绑定 192.168.250.4 这个接口,
PC 发过来的 DNS 请求防火墙不收

二、直接给你可复制的修复方案(按顺序做)

① 确保 DNS 代理绑定内网接口(必须做)

plaintext
system-view dns proxy enable interface Vlan-interface 你的内网口(192.168.250.4) dns proxy enable

② 给 LOCAL 区域出外网做 NAT(最容易漏!)

plaintext
nat-policy rule name LOCAL-OUT source-zone local destination-zone untrust action nat outbound # 自动做源NAT
或者精确接口 NAT:
plaintext
interface GigabitEthernet 外网口 nat outbound

③ 放行安全策略(你已经做了,再确认一遍)

plaintext
security-policy rule name LOCAL-UNTRUST-DNS source-zone local destination-zone untrust service dns action permit rule name TRUST-LOCAL-DNS source-zone trust destination-zone local service dns action permit

④ 强制 DNS 代理走正确出口(多线路必配)

如果你有双线 / 专线 / 策略路由,必须指定 DNS 走哪条:
plaintext
dns route enable dns route ip 114.114.114.114 interface 外网口 dns route ip 8.8.8.8 interface 外网口

三、为什么你抓包 “有去无回”?

真实流程:
  1. PC → 防火墙 53 端口 → 收到
  2. 防火墙 LOCAL 区域发起 DNS 查询 → 出外网
  3. 没做 NAT → 源 IP 是内网私网 → 公网丢弃
  4. 所以你看到:请求发出去了,永远没有回包
这就是 F1000 系列 DNS 代理最经典的坑。

四、10 秒验证是否修复

在防火墙命令行执行:
plaintext
ping www.baidu.com
  • 能解析出 IP → 修复成功
  • 仍然 unknown host → 还有问题
PC 上:
plaintext
nslookup www.baidu.com 192.168.250.4
能解析就正常。

五、如果你愿意,我可以一步定位

你把下面 3 个输出发我,我 1 分钟告诉你 exact 问题:

  1. display current-configuration | include dns
  2. display nat policy
  3. display security-policy | include rule
  4. 外网接口配置(dis cu int g1/0/x

非常感谢,根据你的指引,确实是因为我这边有两条外网线路,也做了策略路由,而默认路由中两条外网线路的默认优先级一样,我将希望走的那条链路的优先级调高后,问题解决。

平行线 发表时间:50分钟前 更多>>

非常感谢,根据你的指引,确实是因为我这边有两条外网线路,也做了策略路由,而默认路由中两条外网线路的默认优先级一样,我将希望走的那条链路的优先级调高后,问题解决。

平行线 发表时间:50分钟前

您好,DNS设置为本地运营商DNS,不要设置网关地址

平行线 知了小白
粉丝:0人 关注:0人

谢谢上面网友的回复,我前面没将我的需求讲清楚,我是想实现在策略中通过域名对各客户諯电脑对外网的访问进行管控,我看了资料,好象需要通过在防火墙上做DNS代理,然后客户端将DNS设为防火墙地址的模式下才行。


粉丝:8人 关注:0人

防火墙 DNS 代理配置后无法解析域名,抓包显示“没得回来的包”。这种情况通常是DNS请求报文未能正确转发到上游DNS服务器,或上游响应无法返回给客户端。下面按步骤帮你梳理排查要点,请逐项检查。


一、确认 DNS 代理基础配置

  1. 检查 DNS 代理是否启用

    display dns proxy 确认状态为 Enabled,且监听接口为 any 或包含内网接口。
  2. 检查上游 DNS 服务器配置

    display dns server 确保已配置可用的 DNS 服务器地址(如 114.114.114.114、运营商 DNS),且状态为 active
  3. 检查 DNS 代理监听端口

    display current-configuration | include dns-proxy 确认未更改默认端口(UDP 53)。若自定义端口,需确保客户端使用相同端口。


二、安全策略检查(关键点)

你已配置了 LOCAL-UNTRUSTTRUST-LOCALLOCAL-TRUST 和 192.168.250.4-UNTRUST 放行,但还需要确认策略的方向、源目地址和域是否正确。

1. DNS 代理涉及的两个会话方向

  • 客户端 → 防火墙:源域 TRUST,目的域 LOCAL(因 DNS 请求到防火墙自身的 IP 192.168.250.4)

  • 防火墙 → 上游 DNS:源域 LOCAL,目的域 UNTRUST(防火墙向外发起 DNS 查询)

  • 上游 DNS → 防火墙:源域 UNTRUST,目的域 LOCAL(响应返回)

  • 防火墙 → 客户端:源域 LOCAL,目的域 TRUST(DNS 响应回客户端)

2. 必须放行的策略

  • 允许 TRUST → LOCAL:放行客户端到防火墙 192.168.250.4 的 DNS 请求(UDP 53)

  • 允许 LOCAL → UNTRUST:放行防火墙到上游 DNS 的查询报文

  • 允许 UNTRUST → LOCAL:放行上游 DNS 的响应报文(通常由会话状态自动放行,但如果防火墙严格匹配策略,也需配置)

  • 允许 LOCAL → TRUST:放行防火墙将 DNS 响应返回给客户端

你配置的 TRUST-LOCAL 和 LOCAL-TRUST 应能覆盖第一和第四项,但需确认策略的源目地址是否精确。例如 192.168.250.4-UNTRUST 可能只放行了内网到外网,但并未覆盖防火墙自身向外查询的流量。

建议检查或补充以下策略

# 允许防火墙自身访问外网 DNS(LOCAL → UNTRUST)
acl advanced 3000 rule 5 permit udp source-port eq 53 # 可选,更精确 quit policy 1 rule name LOCAL_to_UNTRUST source-zone LOCAL destination-zone UNTRUST action pass特别注意:某些防火墙版本中,LOCAL 域与其他域之间的策略需要明确配置双向放行。如果只配置了 TRUST-LOCAL 但未配置 LOCAL-TRUST,响应包可能被阻断。


三、检查防火墙自身的 DNS 解析能力

在防火墙上直接测试 DNS 解析,判断问题在代理层还是上游:

ping <域名> 如果无法解析,检查防火墙自身是否能访问上游 DNS:
dns resolve # 确保 DNS 解析功能启用或使用 nslookup 测试:
nslookup <域名> <上游DNS地址>
如果防火墙自身能解析,说明上游可达,问题在代理转发或安全策略;如果不能解析,需检查路由和出接口。


四、检查会话表与抓包分析

1. 查看 DNS 相关会话

display session table ipv4 | include 53 执行 DNS 解析操作后,观察会话表:
  • 是否有 TRUST → LOCAL 的会话(客户端到防火墙 192.168.250.4:53)

  • 是否有 LOCAL → UNTRUST 的会话(防火墙到上游 DNS)

  • 会话状态是否为 ESTABLISHED

如果只有第一段会话而无第二段,说明防火墙未转发请求,可能:

  • DNS 代理未启用或监听端口不对

  • 防火墙未配置 DNS 服务器地址

  • 安全策略阻止 LOCAL → UNTRUST

如果两段会话都有但无响应返回,可能是上游 DNS 无响应,或响应被 UNTRUST → LOCAL 策略阻断。

2. 抓包分析(重点)

你提到抓包没有回来的包,但需要明确抓包点:

  • 内网口抓包:确认客户端发出的 DNS 请求是否到达防火墙内网口。

  • 外网口抓包:确认防火墙是否向外转发 DNS 请求,以及是否收到上游响应。

  • 防火墙本地抓包(推荐):

    packet-capture local interface GigabitEthernet1/0/x (内外网口) // 或使用 ACL 过滤 UDP 53
  • 典型报文流程
  • 客户端 → 防火墙内网口 (192.168.250.4:53) 发出请求(应看到)

  • 防火墙 → 上游 DNS 服务器 (如 114.114.114.114:53) 发出新请求(应看到)

  • 上游 DNS → 防火墙 返回响应(应看到)

  • 防火墙 → 客户端 返回响应(应看到)

常见问题

  • 若外网口无请求发出:检查 LOCAL → UNTRUST 策略、DNS 代理是否启用、上游 DNS 配置。

  • 若外网口有请求但无响应:上游 DNS 不通,或防火墙未放行 UNTRUST → LOCAL 响应。

  • 若有响应但内网口无响应:检查 LOCAL → TRUST 策略是否放行 UDP 53 响应。



五、其他常见原因

  1. DNS 代理高级设置:检查是否开启了“递归查询”或“DNS 缓存”,某些版本需要额外配置。

  2. 接口安全域:确保内网接口属于 TRUST 域,外网接口属于 UNTRUST 域,且 IP 地址配置正确。

  3. 路由问题:防火墙到上游 DNS 的路由是否可达?可以 ping -a 内网口IP 上游DNS 测试。

  4. DNS 源 NAT:如果外网口配置了 NAT,通常不需要特殊处理,但某些场景下需要开启 DNS 代理的源地址转换(如 nat outbound)。

  5. 域名白名单:部分防火墙有 DNS 过滤功能,可能拦截了域名查询。

粉丝:2人 关注:9人

DNS代理故障排查步骤:

1. 检查DNS代理配置:
display dns proxy
display dns server
确认代理已启用,DNS服务器地址正确。

2. 检查安全策略:
display security-policy rule
确保存在放行DNS流量的规则:
- 源:内网区域(如Trust)到Local区域,目的端口UDP 53。
- 源:Local区域到外网区域(如Untrust),目的端口UDP 53。
若使用域名对象,需确认解析正常。

3. 检查路由与接口:
display ip routing-table
display interface brief
确认防火墙有默认路由指向外网,且内、外网接口状态UP。

4. 检查NAT策略:
display nat policy
确保DNS查询流量(UDP 53)被正确NAT转换为出接口地址。

5. 检查会话表:
display session table source-ip 192.168.250.4
查看DNS查询是否成功建立会话。

6. 启用调试与抓包:
debugging dns proxy
terminal monitor
terminal debugging
同时在外网接口抓包,确认DNS请求是否发出并收到响应。

补充信息需求:
- 安全策略、NAT策略的具体配置。
- `display dns proxy`和`display session table`的详细输出。
- 外网接口抓包结果,确认是否有DNS响应返回。

注意: 排查前建议备份配置。若DNS服务器地址为公网IP,确保防火墙能访问该IP(如通过ping测试)。

编辑答案

你正在编辑答案

如果你要对问题或其他回答进行点评或询问,请使用评论功能。

分享扩散:

提出建议

    +

亲~登录后才可以操作哦!

确定

亲~检测到您登陆的账号未在http://hclhub.h3c.com进行注册

注册后可访问此模块

跳转hclhub

你的邮箱还未认证,请认证邮箱或绑定手机后进行当前操作

举报

×

侵犯我的权益 >
对根叔社区有害的内容 >
辱骂、歧视、挑衅等(不友善)

侵犯我的权益

×

泄露了我的隐私 >
侵犯了我企业的权益 >
抄袭了我的内容 >
诽谤我 >
辱骂、歧视、挑衅等(不友善)
骚扰我

泄露了我的隐私

×

您好,当您发现根叔知了上有泄漏您隐私的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您认为哪些内容泄露了您的隐私?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)

侵犯了我企业的权益

×

您好,当您发现根叔知了上有关于您企业的造谣与诽谤、商业侵权等内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到 pub.zhiliao@h3c.com 邮箱,我们会在审核后尽快给您答复。
  • 1. 您举报的内容是什么?(请在邮件中列出您举报的内容和链接地址)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
  • 3. 是哪家企业?(营业执照,单位登记证明等证件)
  • 4. 您与该企业的关系是?(您是企业法人或被授权人,需提供企业委托授权书)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

抄袭了我的内容

×

原文链接或出处

诽谤我

×

您好,当您发现根叔知了上有诽谤您的内容时,您可以向根叔知了进行举报。 请您把以下内容通过邮件发送到pub.zhiliao@h3c.com 邮箱,我们会尽快处理。
  • 1. 您举报的内容以及侵犯了您什么权益?(请在邮件中列出您举报的内容、链接地址,并给出简短的说明)
  • 2. 您是谁?(身份证明材料,可以是身份证或护照等证件)
我们认为知名企业应该坦然接受公众讨论,对于答案中不准确的部分,我们欢迎您以正式或非正式身份在根叔知了上进行澄清。

对根叔社区有害的内容

×

垃圾广告信息
色情、暴力、血腥等违反法律法规的内容
政治敏感
不规范转载 >
辱骂、歧视、挑衅等(不友善)
骚扰我
诱导投票

不规范转载

×

举报说明