DNS 配置
DNS 配置
功能介绍
FortiGate 在需要将域名解析为 IP 地址(如被域名定义的 NTP 服务器、FortiGuard 更新服务器、FQDN 地址对象、FortiGate 作为 DNS 服务器、SD-WAN SLA 使用域名作为探测服务器等场景)时会查询已配置的 DNS 服务器。默认配置下,FortiGate 使用 FortiGuard 的 DoT(DNS over TLS)作为自身的 IPv4 DNS 服务器。

config system dns
set primary 96.45.45.45
set secondary 96.45.46.46
set protocol dot
set server-hostname "globalsdns.fortinet.net"
end自定义 DNS 服务器
如果需要修改为自定义的 DNS 服务器,需要点击“设置”按钮,然后填入自定义的 DNS 服务器并选择 DNS 协议。
重要
在取消使用 FortiGuard 服务器后,DNS 协议默认会选择“TLS (TCP/853)”,需要手动修改为自定义 DNS 服务器使用的 DNS 协议。

config system dns
set primary 223.5.5.5
set secondary 114.114.114.114
endDNS 服务器主备模式
DNS 服务器在主备的选择上有两种模式:
least-rtt(默认配置):主 DNS 和备用 DNS 都是候选服务器。FortiGate 根据加权 RTT 动态选择延迟更低的服务器,主 DNS 不保证始终优先。failover:根据服务器的配置顺序选择,首先使用主 DNS 服务器。提示
- 主 DNS 在
timeout和retry指定的超时重试周期内没有返回响应,或 DNS 传输不可用时,FortiGate 才转到备用 DNS 服务器。RTT 高低不会改变配置顺序。 No such name(NXDOMAIN)表示已经收到 DNS 服务器的响应,不属于服务器超时,不会触发普通的主备 DNS 故障切换。如果配置了alt-primary或alt-secondary,NXDOMAIN 可以触发独立的 Alternate DNS 查询。
- 主 DNS 在
该选项只能通过 CLI 进行更改。
config system dns set server-select-method {least-rtt | failover} end通过
diagnose test application dnsproxy 2命令可以看到两个服务器的加权延迟。如下所示,使用least-rtt模式会优先选择延迟更低的 223.5.5.5。使用failover模式时,FortiGate 按配置顺序优先选择主 DNS 服务器 8.8.8.8。
FortiGate # diagnose test application dnsproxy 2 ...... DNS latency info: vfid=0 server=8.8.8.8 latency=14 updated=126 vfid=0 server=223.5.5.5 latency=1 updated=41 ......当其中一个 DNS 服务器无法访问时,会使用另一个 DNS 服务器进行解析,
diagnose test application dnsproxy 3命令可以看到服务器的探测失败的次数(failure)以及距离上次探测失败过去的时间(last_failed)。FortiGate # diagnose test application dnsproxy 3 ...... DNS servers: 8.8.8.8:53 vrf=0 tz=0 encrypt=none req=4 to=4 res=0 rt=0 ready=1 timer=0 probe=0 failure=5 last_failed=1215 223.5.5.5:53 vrf=0 tz=0 encrypt=none req=5 to=0 res=5 rt=1 ready=1 timer=0 probe=0 failure=0 last_failed=0 ......相关信息
FortiOS 7.4.4 和 7.6.x 的 RTT 更新方式与排障字段说明,参见网络管理 → DNS → DNS 延迟 → 计算机制。
DNS 服务器覆盖
要特别注意,如果配置了 PPPoE 或 DHCP,并从 ISP 侧获取了 IP 地址与 DNS 服务器。默认配置下,从 ISP 获取的 DNS 服务器会覆盖手动配置的 DNS 服务器。如下所示,wan1 接口 DHCP 获取的 DNS 服务器 172.22.6.1 覆盖了手工配置的 223.5.5.5/114.114.114.114。

如果需要手工配置的 DNS 服务器生效,需要在相关 PPPoE/DHCP 接口下关闭“DNS 覆盖”功能。
重要
如果使用的是将普通接口修改为 PPPoE 的模式,在接口上关闭“DNS 覆盖”功能,会导致接口重新拨号,请务必在窗口期进行操作。
所以强烈建议新建 PPPoE 接口来作为拨号接口,而不要使用普通接口上的 PPPoE 模式(参考:部署前注意事项 → PPPoE 接口配置。

config system interface edit "wan1" set dns-server-override disable next end
VDOM DNS
当 FortiGate 处于多 VDOM 模式时,DNS 解析由管理 VDOM(默认为 root VDOM)处理。但在某些情况下,用户可能希望在非管理 VDOM 上配置自定义 DNS 设置。例如在多租户情况下,每个 VDOM 可能被不同的租户占用,每个租户可能需要自己的 DNS 服务器。
config vdom
edit <vdom>
config system vdom-dns
set vdom-dns enable
set primary <primary_DNS>
set secondary <secondary_DNS>
set protocol {cleartext dot doh}
set ip6-primary <primary_IPv6_DNS>
set ip6-secondary <secondary_IPv6_DNS>
set source-ip <IP_address>
set interface-select-method {auto | sdwan | specify}
end
next
end