DDNS
DDNS
当外部接口的 IP 地址经常变化,但外部管理员或用户需要通过固定域名访问该接口时,可以配置动态域名系统(Dynamic DNS,DDNS)。FortiGate 会将接口当前使用的公网 IPv4 或 IPv6 地址更新到 DDNS 服务,使域名持续指向该接口。
相关信息
- 入门级、中端和高端 FortiGate 的 DDNS 条目上限分别为 16、32 和 64,具体上限由设备的配置表容量决定。
- DDNS 不支持透明模式。
应用场景
以下示例在动态地址接口 wan1 上启用 FortiGuard DDNS,并将域名 summerice7.fortiddns.com 指向该接口使用的公网地址。FortiGuard DDNS 还可以使用 float-zone.com 和 fortidyndns.com 域名。

配置 FortiGuard DDNS
GUI 配置
进入“网络 → DNS”,在“动态 DNS(Dynamic DNS)”区域点击“新建(Create new)”。

在新建 DDNS 条目中配置接口、服务器和唯一位置,然后点击“确定”。

- 接口:选择动态获取地址的外部接口。
- 使用公网 IP 地址:当 FortiGate 接口上没有直接配置公网地址(如在公网 NAT 设备后)时开启此选项。
- 服务器:选择
fortiddns.com域名或其他 DDNS 服务器。 - 独特的位置:设置域名前缀,GUI 会组合并显示最终的 DDNS 域名,并显示是否已被占用。
IPv4 CLI 配置
执行以下配置,将
wan1使用的公网 IPv4 地址更新到summerice7.fortiddns.com。config system ddns edit 1 set ddns-server FortiGuardDDNS set server-type ipv4 set ddns-domain "summerice7.fortiddns.com" set addr-type ipv4 set use-public-ip enable set monitor-interface "wan1" next end
IPv6 CLI 配置
执行以下配置,将
wan1的 IPv6 地址更新到summerice6.fortiddns.com。config system ddns edit 1 set ddns-server FortiGuardDDNS set server-type ipv6 set ddns-domain "summerice6.fortiddns.com" set addr-type ipv6 set monitor-interface "wan1" next end
配置第三方 DDNS
第三方 DDNS 服务可以按接口配置。可用参数会随选择的服务商变化。
根据服务商要求选择服务类型、服务器地址和需要更新的接口地址类型。
config system ddns edit <ddns_id> set monitor-interface <external_interface> set ddns-server <ddns_server> set server-type {ipv4 | ipv6} set ddns-server-addr <server_address_list> set addr-type {ipv4 | ipv6} next end以下示例在
wan1上配置基于 RFC 2136 的通用 IPv6 DDNS 客户端。config system ddns edit 1 set ddns-server genericDDNS set server-type ipv6 set ddns-server-addr "2001:db8::53" "192.0.2.53" "ddnstest.genericddns.com" set ddns-domain "test.com" set monitor-interface "wan1" next end
相关信息
GUI 只显示第一个已配置端口的第三方 DDNS 配置。服务商需要认证时,还需根据其要求配置用户名、密码或 TSIG 参数。
定时刷新公网 IP
开启 use-public-ip 后,FortiGate 使用的公网地址可能并未直接配置在接口上,例如设备位于上游 NAT 后方。此时 FortiGate 无法通过接口地址变化事件触发更新,可以配置周期检查,使 DDNS 记录持续刷新。
在对应 DDNS 条目中开启公网地址检查并设置更新间隔。
相关信息
当 update-interval 设置为 0 时,FortiGuard DDNS 的更新间隔为 300 秒,第三方 DDNS 的更新间隔由服务端指定。
config system ddns
edit 1
set use-public-ip enable
set update-interval <seconds> //60~2592000,默认 0
next
end加密 DDNS 更新
关闭 clear-text 后,FortiGate 使用 SSL 连接发送和接收 DDNS 更新。可以同时指定用于 SSL 连接的本地证书。
在对应 DDNS 条目中关闭明文连接并指定本地证书。
config system ddns
edit 1
set clear-text disable
set ssl-certificate <certificate_name>
next
endDHCP 客户端 DDNS 更新
FortiGate DHCP 服务器可以强制为客户端更新 DDNS A 记录,即使 DHCP 客户端没有主动请求更新也会执行。该功能可配合 DDNS 服务端的 allow client-updates、ignore client-updates 和 deny client-updates 策略使用。
在对应 DHCP 服务器中开启 DDNS 更新和强制更新,并指定 DDNS 服务器与区域。
config system dhcp server
edit 1
set ddns-update enable
set ddns-update-override enable
set ddns-server-ip <ddns_server_ip>
set ddns-zone <ddns_zone>
next
end结果验证与排障
从外部网络解析配置的 DDNS 域名,确认返回地址与 FortiGate 当前使用的公网地址一致。
nslookup summerice7.fortiddns.com Server: 223.5.5.5 Address: 223.5.5.5#53 Non-authoritative answer: Name: summerice7.fortiddns.com Address: 60.247.121.226执行以下命令,查看 FortiDDNS 服务器和域名列表是否可用。
diagnose test application ddnscd 3无法获取 FortiDDNS 服务信息时,
svr_num和domain_num均为0:FortiDDNS status: ddns_ip=0.0.0.0, ddns_ip6=::, ddns_port=443 svr_num=0 domain_num=0相关信息
svr_num=0和domain_num=0只能确认设备尚未获得 FortiDDNS 服务器与域名信息,不能单独证明是 DNS、路由或 FortiGuard 连接中的哪一环节故障。正常获取 FortiDDNS 服务信息后,输出会显示服务器数量、地址和可用域名:
FortiDDNS status: ddns_ip=<FortiDDNS_server_ip>, ddns_ip6=::, ddns_port=443 svr_num=1 domain_num=3 svr[0]= <FortiDDNS_server_ip> domain[0]= fortiddns.com domain[1]= fortidyndns.com domain[2]= float-zone.com
需要查看 DDNS 更新过程时:
清除已有 Debug 过滤条件,开启
ddnscdDebug,然后复现一次更新。diagnose debug reset diagnose debug application ddnscd -1 diagnose debug enable完成复现后立即关闭 Debug 并清除过滤条件。
diagnose debug disable diagnose debug reset