Fortigate DNS Server Konfiguration

Ab den Mid-Size Modellen kann eine Fortigate auch DNS Zonen hosten. Einerseits als primärer DNS Server, auf dem die DNS Records gepflegt werden müssen, andererseits als sekundärer DNS Server, der eine DNS Zone von einem anderen primären DNS Server synchronisiert.

Zwar sind viele Begrifflichkeiten in der Konfiguration „Standard“, allerdings hatte ich an der ein oder anderen Stelle doch etwas Problem zu verstehen, wie sich welche Einstellung auf die Funktionalität auswirkt.

Type

Primary

Der Zone-Type Primary gibt an, dass die Fortigate der Master Server für die DNS Zone ist. In dieser Konfiguration werden die DNS Records auf der Fortigate angelegt/geändert/gelöscht und zusätzliche Slave Server können die Zone replizieren.

Secondary

Der Zone-Type Secondary gibt an, dass die Fortigate ein Slave Server für die DNS Zone ist. In dieser Einstellung muss zwingend eine IP des Master Servers angegeben werden, von dem die DNS Records der Zone repliziert werden. In dieser Konfiguration können auf der Fortigate selbst keine DNS Records angelegt/geändert/gelöscht werden.

View

Shadow

Der View-Type Shadow hat glücklicherweise nichts mit DNS-Shadowing/Hijacking zu tun, sondern ist mehr oder minder Fortinets Bezeichnung dafür, dass die DNS Zone ausschließlich durch interne Clients genutzt werden kann. Also selbst wenn der DNS-Service auf einem WAN Interface aktiviert wird, sind die DNS Records einer Shadow Zone über diese Interfaces durch öffentliche Clients nicht auflösbar.

Public

Folglich bedeutet der View-Type Public genau das Gegenteil. DNS Zonen mit diesem View-Type sind auch über WAN Interfaces durch öffentliche Clients erreichbar. Public wird daher i.d.R. als View-Type verwendet, wenn man die DNS Zone für seine öffentliche Domain selbst hosten möchte und nicht bei einem Hosting Provider.

Proxy

Eine letzte Option, die es (soweit ich weiß) erst ab FortiOS 7.4 gibt, ist der View-Type Proxy. Der View-Type Proxy entspricht im Prinzip dem View-Type Shadow, außer dass die Zone nur durch den Fortigate-internen Proxy verwendet werden kann. Sowohl interne als auch öffentliche Clients können die Zone nicht nutzen.

Sonstige Optionen

Abhängig vom Typ der DNS Zone sind weitere Optionen zwingend oder optional zu konfigurieren.

DNS Zone

Das Feld DNS Zone ist bei allen Zone-Types verfügbar und ein Pflichtfeld. Es definiert allerdings lediglich den internen Anzeigename der Zone und hat für die DNS Funktion keine sonstige Bedeutung.

Domain Name

Das Feld Domain Name ist ebenfalls bei allen Zone-Types verfügbar und ein Pflichtfeld. Im Normalfall, wenn die Zone eine Primary Zone ist, wird hier der DNS Name der Domain konfiguriert, für den in der Zone DNS Records angelegt/geändert/gelöscht werden. Ist die Zone allerdings vom Zone-Type Secondary und wird z.B. von Windows DNS Servern repliziert, gibt es eine Besonderheit. Während man auf der Fortigate als Primary Zone Forward- und Reverse-Lookukp mischen kann (aber nicht muss!), trennt Windows dies auf jeden Fall. D.h. es gibt für Forward Lookup und Reverse Lookup zwei getrennte Zonen. Somit sind auch getrennte Secondary Zonen anzulegen. Während für die Forward Zone das gleiche gilt, wie für die Zone, wenn sie vom Zone-Type Primary ist, gilt für die Reverse Zone, dass im Feld Domain Name das gleiche wie auf dem Windows DNS Server eingetragen wird, also z.B. <IP-Segment>.<IP-Segment>.in-addr.arpa.

Hostname of Primary DNS

Das Feld Hostname of Primary DNS ist beim Zone-Type Primary verfügbar und optional. Hier kann ein Hostname angegeben werden, der den primären DNS Server identifiziert.

Contact Email Address

Das Feld Contact Email Address ist auch nur beim Zone-Type Primary verfügbar und ebenfalls optional. Hier kann ein Name oder eine Email Adresse des für die DNS Zone zuständigen Admins hinterlegt werden.

TTL

Das Feld TTL ist ebenfalls nur beim Zone-Type Primary verfügbar. Hier lässt sich das TTL einstellen, das für alle Records der Zone gilt, sofern im jeweiligen Record kein eigenes TTL angegeben ist. Standardmäßig ist das TTL 86.400 Sekunden (1 Tag).

IP of Primary

Die Option IP of Primary ist nur im Zone-Type Secondary verfügbar. Das Feld ist ein Pflichtfeld und gibt an, welche IP der Master Server hat, von dem die Fortigate als Slave Server die DNS Records repliziert.

Authoritative

Der Switch Authoritative gibt an, ob der DNS Server für diese Zone autoritativ ist, also ob der DNS Server die einzige/letzte Quelle für die DNS Zone ist. Der Switch verhindert im aktiven Zustand, dass die Fortigate DNS Anfragen, die in der lokalen DNS Datenbank nicht aufgelöst werden können, an andere DNS Server weiterleitet.

DNS Forwarder

In DNS Forwarder Felder wird ein oder mehrere DNS Server hinterlegt, an die DNS Anfragen weitergeleitet werden, die auf der Fortigate nicht aufgelöst werden können. Ist für die Zone der Authoritative Switch aktiviert, werden DNS Forwarder Einträge ignoriert und Anfragen nicht weitergeleitet.

Beispiel (CLI)

Im folgenden Beispiel konfiguriere ich über die CLI eine primary DNS-Zone mit 3 Records und ein paar Einstellungen:

config system dns-database
   edit mydomain
      set authoritative disable
      set contact dnsamin@mydomain.com
      set domain mydomain.com
      set forwarder 8.8.8.8
      set ttl 86400
      set type primary
      set view shadow
      config dns-entry
         edit 1
            set hostname server11
            set ip 192.168.1.11
            set type A
         next
         edit 2
            set hostname server11
            set ip 192.168.1.11
            set type PTR
         next
         edit 3
            set canonical-name server12
            set hostname server4711.otherdomain.com
            set ttl 43200
            set type CNAME
         next
      end
   next
end

Im zweiten Beispiel konfiguriere ich über die CLI eine sekundäre Zone mit einem Windows DNS Server als primären DNS. Die Zone ist eine Reverse Lookup Zone und autoritativ, da i.d.R. interne Reverse Lookup Zonen nicht extern zur Auflösung weitergeleitet werden.

config system dns-database
   edit mydomain-reverse
      set authoritative enable
      set domain 1.168.192.in-addr.arpa
      set forwarder 8.8.8.8
      set ip-primary 192.168.1.11
      set type secondary
      set view shadow
   next
end
Troubleshooting

Über die CLI bietet die Fortigate einige Optionen, um die DNS-Server Funktion zu verifizieren und zu analysieren. Folgender Befehl gibt alle verfügbaren Optionen aus:

# diagnose test application dnsproxy

worker idx: 0

1. Clear DNS cache
2. Show stats
3. Dump DNS setting
4. Reload FQDN
5. Requery FQDN
6. Dump FQDN
7. Dump DNS cache
8. Dump DNS DB
9. Reload DNS DB
10. Dump secure DNS policy/profile
11. Dump Botnet domain
12. Reload Secure DNS setting
13. Show Hostname cache
14. Clear Hostname cache
15. Show SDNS rating cache
16. Clear SDNS rating cache
17. DNS debug bit mask
18. DNS debug obj mem
99. Restart dnsproxy worker

Um z.B. zu prüfen, ob eine Slave Zone auf der Fortigate die Records vom Master Server replizieren kann, ist Option 8 hilfreich:

diagnose test application dnsproxy 8

Die Abfrage gibt alle DNS-Records aus, die die Fortigate in den jeweiligen Zonen in ihrer DB hat. Sind Einträge in der Slave Zone vorhanden, funktioniert die Replikation.

Quellen:
https://docs.fortinet.com/

2 Antworten

  1. Egon sagt:

    Bei https://blog.andreas-schreiner.de/2023/11/22/fortigate-dns-server-konfiguration/
    gibt es unter Troubleshooting einen Tippfehler – diagnose test applicatoin dnsproxy 8

    Ansonsten danke, hat mir geholfen.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert

Diese Website verwendet Akismet, um Spam zu reduzieren. Erfahre mehr darüber, wie deine Kommentardaten verarbeitet werden.