DNS 服务器
DNS 服务器
FortiGate 可以在指定接口上提供本地 DNS 服务,并通过 DNS 数据库维护本地区域记录或从主 DNS 服务器同步区域数据。主 DNS 区域由 FortiGate 直接维护记录,适合解析本地服务,可以减少内部客户端访问外部 DNS 服务器产生的流量和时延。辅助 DNS 区域从现有主 DNS 服务器获取记录,用于提供冗余和分担查询负载。
在接口开启 DNS 服务
进入“系统管理 → 可见功能”,在“附加功能”区域开启“DNS 数据库”,然后点击“应用”。默认情况下,FortiGate GUI 不显示 DNS 服务器和 DNS 数据库配置入口。

config system settings set gui-dns-database enable end进入“网络 → DNS 数据库”,在“接口上的 DNS 服务”区域点击“新建”,配置提供 DNS 服务的接口和工作模式。

config system dns-server edit <interface_name> set dnsfilter-profile <dns_filter_profile> set doh {enable | disable} set doh3 {enable | disable} set doq {enable | disable} set mode {recursive | non-recursive | forward-only | resolver} set ssl-cert <certificate_name> next end- 接口:选择需要监听客户端 DNS 查询的 FortiGate 接口。
- 模式:
- 递归(recursive):先查询 Shadow 视图的 DNS 数据库。没有找到本地记录时,将查询转发到 FortiGate 配置的系统 DNS 服务器。
- 非递归(non-recursive):只查询 Public 视图的 DNS 数据库。没有找到本地记录时,不会继续查询系统 DNS 服务器。
- 转发至系统 DNS(forward-only):绕过本地 DNS 数据库,将所有查询直接转发到系统 DNS 服务器。
- 解析器(resolver):FortiGate 依次查询根域名服务器、顶级域(Top-Level Domain,TLD)域名服务器和权威域名服务器,获得 FQDN 的最终解析结果,不再将请求转发到外部递归 DNS 服务器。
- DNS 过滤器:对该接口上的 DNS 服务应用 DNS Filter 配置文件。非递归模式不支持此选项。
- DNS over HTTPS:开启基于 HTTPS 的 DNS(DNS over HTTPS,DoH)。
- DNS over HTTP3:开启基于 HTTP/3 的 DNS(DNS over HTTP3,DoH3)。
- DNS over QUIC:开启基于 QUIC 的 DNS(DNS over QUIC,DoQ)。
相关信息
- 递归模式使用的系统 DNS 服务器可参考网络管理 → DNS → DNS 配置。Resolver 模式的根域名服务器选择和配置方法可参考 FortiGate as a recursive DNS resolver。
- 从 FortiOS 8.0.0 开始,加密 DNS 服务优先使用
config system dns-server中的ssl-cert。如果未在该配置中指定证书,FortiGate 将回退使用config web-proxy global中的ssl-cert。 - FortiGate DNS 服务器支持通过 TLS 和 HTTPS 接收客户端查询。DoQ 和 DoH3 可用于基于代理检查的透明模式和 Local-in 显式模式,相关协议配置可参考 DNS over TLS and HTTPS 和 DNS over QUIC and DNS over HTTP3 for transparent and local-in DNS modes。
配置 DNS 区域
在“DNS 数据库”区域点击“新建”,配置 DNS 区域。

config system dns-database edit <dns_zone_name> set authoritative {enable | disable} set contact <contact> set domain <domain_name> set forwarder <dns_server_ip_list> set primary-name <primary_dns_hostname> set ttl <seconds> set type {primary | secondary} set view {shadow | public | shadow-ztna | proxy} config dns-entry edit <id> set status {enable | disable} set type {A | NS | CNAME | MX | AAAA | PTR | PTR_V6} set ttl <seconds> set ip <ipv4_address> set ipv6 <ipv6_address> set hostname <hostname> set canonical-name <canonical_name> next end next end类型:选择区域数据的维护方式。
- 主用:直接在 FortiGate 上管理该区域的 DNS 记录。
- 备用:从其他主 DNS 区域导入记录。主 DNS 服务器不可用时,辅助 DNS 区域仍可继续响应该域名的查询。
用途(View):选择该 DNS 区域由哪种 DNS 服务使用。
- 影子(Shadow):供递归和 Resolver 接口模式查询。非递归模式不会查询 Shadow 区域中的记录。
- 公共(Public):只供非递归接口模式查询。递归和 Resolver 模式不会查询 Public 区域中的记录。
- 代理(Proxy):供显式代理使用本地数据库执行 DNS 查询,减少代理访问网站和在线服务时的解析时延。
DNS 区域鸣潮:设置区域对象的名称。
域名:设置该区域对应的域名。
主 DNS 主机名:设置该区域默认 DNS 服务器的域名,仅 Primary 类型可用。
主 DNS IP:设置主 DNS 服务器的 IP 地址,仅 Secondary 类型可用。
联系人电子邮件地址:设置区域管理员的邮箱,仅 Primary 类型可用。只填写用户名时,系统使用区域域名作为邮箱域名。
TTL:设置该区域内记录的默认生存时间,仅 Primary 类型可用。
权威(Authoritative):将 FortiGate 设置为该区域唯一的信息来源,并停止继续向上游查询该区域的记录。
重要
启用“权威”后,FortiGate 将成为该区域唯一的信息来源,并停止向上游查询该区域的其他记录。由于 IP 地址可能变化,持续维护完整记录的工作量较大,因此不建议默认启用“权威”。
DNS 转发器:根据域名将查询转发到指定 DNS 服务器。GUI 可以配置一个或两个转发器地址,使用 CLI 可以配置更多地址。
在“DNS 条目”区域点击“新建”,选择资源记录类型并设置对应值和 TTL。
- 类型: - Address(A):将主机名映射到 IPv4 地址。 - Name Server(NS):指定对该域名具有权威性的 DNS 服务器。 - Canonical Name(CNAME):将一个名称设置为另一个规范名称的别名。 - Mail Exchange(MX):指定接收该域名邮件的邮件服务器。 - IPv6 Address(AAAA):将主机名映射到 IPv6 地址。 - IPv4 Pointer(PTR):将 IPv4 地址反向映射到主机名。 - IPv6 Pointer(PTR):将 IPv6 地址反向映射到主机名。 - TTL:设置该记录的生存时间(优先于 DNS 区域配置的 TTL)。
总结
接口 DNS 工作模式决定查询流程,DNS 数据库的“用途(View)”决定该区域是否参与这个流程:
- 接口配置为递归或 Resolver 时,Public 数据库中的记录不会参与查询。
- 接口配置为非递归时,Shadow 数据库中的记录不会参与查询。

| 接口 DNS 工作模式 | 匹配的 DNS 数据库 | 本地数据库未命中后的处理 |
|---|---|---|
| 递归(recursive) | Shadow | 转发到 FortiGate 配置的系统 DNS 服务器 |
| 非递归(non-recursive) | Public | 不再向其他 DNS 服务器查询,直接返回未找到 |
| 解析器(resolver) | Shadow | 向根、TLD 和权威 DNS 服务器逐级查询 |
| 转发至系统 DNS(forward-only) | 不查询本地数据库 | 不查询本地 DNS 数据库,直接转发到系统 DNS 服务器 |
| 接口 DNS 工作模式 | Shadow 数据库 | Public 数据库 |
|---|---|---|
| 递归(Recursive) | 查询 | 忽略 |
| 非递归(Non-Recursive) | 忽略 | 查询 |
| 解析器(resolver) | 查询 | 忽略 |
| 转发至系统 DNS(forward-only) | 忽略 | 忽略 |