Description | This article describes a possible solution when the FortiGate shows 'unreachable' or high latency for the FortiGuard servers (96.45.45.45 and 96.45.46.46). |
Scope | FortiGate v7.x. |
Solution |
Sometimes, when setting the FortiGuard DNS servers for the system DNS on the FortiGate, it can show the following behavior:
That happens because the FortiGuard DNS server uses DNS over TLS on port 853 for encrypted communication, while other public DNS server uses DNS on port 53.
TLS requires a certificate to authenticate the communication between the FortiGate and the server hostname globaldns.fortinet.net, once authenticated, the session can be opened to send DNS queries.
Since the authentication is against the FortiGuard servers, if a certificate without the SN of the FortiGate is selected for the TLS communication, the authentication is going to fail and for that is going to show the 'unreachable' error.
This can be resolved by using the self-signed certificate from FortiGate for the TLS authentication against the FortiGuard servers:
From CLI :
config system dns
Troubleshooting: To verify if FortiGate is using DoT (TCP/853), 'DNS Servers' will include port 853, and encrypt will show 'dot':
diagnose test application dnsproxy 3
A packet capture filtering by port 853 can further help debug whether the server is responding to DNS responses:
diagnose sniffer packet any 'port 853' 4 0 l
To dig into the issue further, the following sniffer can be tuned to use the verbose level '6' and converted to a Wireshark file to review queries and responses:
diagnose sniffer packet any 'port 853' 6 0 l
Related articles: Troubleshooting Tip: Unable to connect to FortiGuard servers Technical Tip: How to import 'diagnose sniffer packet' data to WireShark Troubleshooting Tip: Using Cloudflare DNS with DNS over TLS showing as unreachable |