Skip to content
Installation and Upgrade

Architecture Overview

This document is an overview of the DNS Manager architecture.

DNS RFC Compliance

DNS Manager complies to the RFC listed below.

AspectRFC
A recordRFC 1035
AAAA recordRFC 3596
CNAME recordRFC 1035
MX recordRFC 1035
NAPTR recordRFC 3403
RFC 2915
CAA recordRFC 6844
NS recordRFC 1035
PTR recordRFC 1035
SRV recordRFC 2782
TXT recordRFC 1035
TXT structuredRFC 1464
SOA recordRFC 1912
SERIALRFC 1912
Classless delegationRFC 2317
E.164RFC 3761
IPv6 zonesRFC 4291
Mask delimitersRFC 4183
SRV services and protocolsRFC 3958
IPv6 formatRFC 5952
Dynamic Delegation Discovery System (DDDS)RFC 3401
RFC 3402
RFC 3403
RFC 3404
Straightforward-NAPTR (S-NAPTR) SpecificationRFC 3958
DomainKeys Identified Mail (DKIM)RFC 4871
List of accepted services for SRV and NAPTR recordsIANA Service Names Registry
Wildcard usage in IPv6 reverse DNSRFC 4472
Split value of long TXT record in 255 characters stringsRFC 4408

Zone Dump

The zone dump file format that is used by DNS Manager remote update protocol has been improved with:

  • Zones are classified according to type, if a zone type is missing, then the zone is treated as master
  • Master server IP addresses can be included in the dump on slave zones
  • Allow-transfer server IP addresses can be included in the dump on master zones
  • SOA records can be included in the dump on master zones, if the SOA records are not found in the dump, they are inherited from the client or system defaults;
  • Classless IN-ADDR.ARPA delegation for zone names and records (RFC 2317)
  • Reverse DNS lookups for IPv6 addresses
  • $ORIGIN, @ and blank substitution
  • Both / and - as mask delimiters for reverse zones
  • The primary nameserver may be tagged to be imported correctly

Dump File Examples

Master zones examples
domain.ltd.|master {
    |SERIAL| |2011110802| || ||
    |DEFAULT_TTL| |86400| || ||
    |REFRESH| |10800| || ||
    |RETRY| |3600| || ||
    |EXPIRE| |604800| || ||
    |MIN_TTL| |86400| || ||
    |ALLOW_TRANSFER| |4.3.2.1| || ||
    |NS| |domain.ltd.| |ns1.domain.ltd.| ||
    |NS| |aa.domain.ltd.| |ns.domain.ltd.| ||
    |CNAME| |cname.domain.ltd.| |canonical.name.| ||
    |CNAME| |somedir.domain.ltd.| |domain.ltd.| ||
    |CNAME| |ftp| |domain.ltd.| ||
    |A| |mail.domain.ltd.| |192.168.10.32| ||
    |AAAA| |sub.domain.ltd.| |2001:db8:85a3:88:8a2e:370:7334:89| ||
    |MX| |zone.domain.ltd.| |email.exchanger| |10|
    |TXT| |txt.domain.ltd.| |v=spf1 exists:%{ir}.%{v}.arpa -all | ||
    |TXT| |some-text.domain.ltd.| |any text| ||
    |TXT| |domain.ltd.| |sometext| ||
    |TXT| |private._domainkey.domain.ltd.| |k=rsa; p=MEwwDQYerwqEWwE| ||
	|NAPTR| |mail.domain.ltd.| |!^.*$!mailto:info@domain.ltd!i| |6| |5| || || |SMTP| |A| ||
    |SRV| |_sip._tcp.domain.ltd.| |.| |5| |25| |12345| ||
    |SRV| |_sip._tcp.domain.ltd.| |anotherdomain.com.| |10| |20| |5560| ||
    |SRV| |_h323._udp.domain.ltd.| |sub.domain.ltd.| |15| |25| |8550| || 
}

testdomain.com.|master {
 	|$ORIGIN| |com.| || ||
	|TXT| |testdomain| |v=spf1 a mx ptr mx:mail.testdomain.com ~all| ||
	|NS| || |ns1.test-web| ||
	|NS| || |ns2.test-web| ||
	|A| || |64.85.2.56| ||
    |CAA| |test.testdomain.com.| |test.com| |issue| |2|
}
Default zone type is master
domain.ltd.{
 	|REFRESH| |108002| || ||
	|RETRY| |36002| || ||
	|EXPIRE| |604802| || ||
	|MIN_TTL| |86402| || ||
	|DEFAULT_TTL| |86402| || ||
	|SERIAL| |1271668821| || ||
	|ALLOW_TRANSFER| |4.3.2.1| || ||
	|NS| |domain.ltd.| |ns1.domain.ltd.| ||
	|NS| |aa.domain.ltd.| |ns.domain.ltd.| ||
	|CNAME| |cname.domain.ltd.| |canonical.name.| ||
	|CNAME| |somedir.domain.ltd.| |domain.ltd.| ||
	|CNAME| |ftp| |domain.ltd.| ||
	|A| |mail.domain.ltd.| |192.168.10.32| ||
	|AAAA| |sub.domain.ltd.| |2001:db8:85a3:88:8a2e:370:7334:89| ||
	|MX| |zone.domain.ltd.| |email.exchanger| |10|
	|TXT| |txt.domain.ltd.| |v=spf1 exists:%{ir}.%{v}.arpa -all | ||
	|TXT| |some-text.domain.ltd.| |any text| ||
	|TXT| |domain.ltd.| |sometext| ||
	|TXT| |private._domainkey.domain.ltd.| |k=rsa; p=MEwwDQYerwqEWwE| ||
}
Slave zones example

If the zone type is missing, it is assumed to be a master zone definition.

3.2.1.in-addr.arpa.|slave {
 	|MASTER| |6.7.8.9| || ||
	|MASTER| |1999:db8:a0b:12f0:a1b2:c3d4:f5e6:1234| || ||
	|ALLOW_TRANSFER| |2002:a96:b95::a96f:b95| || ||
	|ALLOW_TRANSFER| |69.41.170.223| || ||
}
foo.com.|slave {
 	|MASTER| |1999:db8:a0b:12f0:a1b2:c3d4:f5e6:1234| || ||
 	|ALLOW_TRANSFER| |69.41.170.223| || ||
}
Classless delegation

The rules mentioned above also apply to reverse DNS zones. You can see below full DNS zones with /24 /28 and /32 subnet mask.

4.3.2.in-addr.arpa.|master {
 	|REFRESH| |10800| || ||
	|RETRY| |36000| || ||
	|EXPIRE| |604800| || ||
	|MIN_TTL| |86400| || ||
	|DEFAULT_TTL| |86400| || ||
	|SERIAL| |1271668821| || ||
	|NS| |4.3.2.in-addr.arpa.| |ns1.name.com.| ||
	|NS| |0/25.4.3.2.in-addr.arpa.| |ns.domain.com.| ||
 	|PTR| |5.4.3.2.in-addr.arpa.| |zone.name.| ||
	|PTR| |5.4.3.2.in-addr.arpa.| |dom1.com.| ||
	|PTR| |5.4.3.2.in-addr.arpa.| |dom2.com.| ||
	|PTR| |5.4.3.2.in-addr.arpa.| |dom3.com.| ||
	|CNAME| |10.4.3.2.in-addr.arpa.| |10.0/25.4.3.2.in-addr.arpa.| ||
	|TXT| |host.4.3.2.in-addr.arpa.| |value| ||
	|TXT| |4.3.2.in-addr.arpa.| |sometext| ||
}
4/28.3.2.1.in-addr.arpa.|master {
 	|REFRESH| |10800| || ||
	|RETRY| |3600| || ||
	|EXPIRE| |60480| || ||
	|MIN_TTL| |86400| || ||
	|DEFAULT_TTL| |86400| || ||
	|SERIAL| |1271668821| || ||
	|ALLOW_TRANSFER| |7.8.9.10| || ||
	|ALLOW_TRANSFER| |2002:a96:b95::a96f:b95| || ||
	|NS| |4/28.3.2.1.in-addr.arpa.| |aa.com.| ||
	|PTR| |6.4/28.3.2.1.in-addr.arpa.| |zone.c.om.| ||
	|PTR| |6.4/28.3.2.1.in-addr.arpa.| |dom1.com.| ||
	|PTR| |6.4/28.3.2.1.in-addr.arpa.| |dom2.com.| ||
	|TXT| |a.4/28.3.2.1.in-addr.arpa.| |text value| ||
	|TXT| |4/28.3.2.1.in-addr.arpa.| |sometext| ||
}
4.3.2.1.in-addr.arpa.|master {
 	|REFRESH| |10800| || ||
	|RETRY| |3600| || ||
	|EXPIRE| |60480| || ||
	|MIN_TTL| |86400| || ||
	|DEFAULT_TTL| |86400| || ||
	|SERIAL| |1271668821| || ||
	|ALLOW_TRANSFER| |7.8.9.10| || ||
	|ALLOW_TRANSFER| |2002:a96:b95::a96f:b95| || ||
	|NS| |4.3.2.1.in-addr.arpa.| |aa.com.| ||
	|PTR| |4.3.2.1.in-addr.arpa.| |zone.c.om.| ||
	|TXT| |abc.4.3.2.1.in-addr.arpa.| |sometext| ||
}
$ORIGIN, @ and Blank Substitution

The "@" character is accepted when defining zones. It is substituted with:

  • The last $ORIGIN directive encountered in the file, or
  • If no $ORIGIN directive is present - it is generated automatically.

Blank Substitution - with the last valid name (or label) or $ORIGIN if there are no previous names (labels).

testdomain.com.|master {
 	|NS| |@| |ns.isdomain.com.| ||
	|NS| || |new| ||
	|MX| |@| |mail.testdomain.com.| |10|
	|MX| |test| |mail1.testdomain.com.| |15|
	|TXT| |@| |this is not a test| ||
	|CNAME| |*.new| |newtest.com.| ||
}
Mask delimiter

Both "-" and "/" character are accepted when defining reverse zones. The zones are different!

4-28.3.2.1.IN-ADDR.ARPA.|master {
    |NS| |4-28.3.2.1.IN-ADDR.ARPA.| |aa.com.| ||
    |PTR| |6.4-28.3.2.1.IN-ADDR.ARPA.| |zone.com.| ||
    |PTR| |6.4-28.3.2.1.IN-ADDR.ARPA.| |dom1.com.| ||
    |PTR| |6.4-28.3.2.1.IN-ADDR.ARPA.| |dom2.com.| ||
    |TXT| |a.4-28.3.2.1.IN-ADDR.ARPA.| |text value| ||
    |TXT| |4-28.3.2.1.IN-ADDR.ARPA.| |sometext| ||
}
4/28.3.2.1.IN-ADDR.ARPA.|master {
    |NS| |4/28.3.2.1.IN-ADDR.ARPA.| |aa.com.| ||
    |PTR| |6.4/28.3.2.1.IN-ADDR.ARPA.| |zone.com.| ||
    |PTR| |6.4/28.3.2.1.IN-ADDR.ARPA.| |dom1.com.| ||
    |PTR| |6.4/28.3.2.1.IN-ADDR.ARPA.| |dom2.com.| ||
    |TXT| |a.4/28.3.2.1.IN-ADDR.ARPA.| |text value| ||
    |TXT| |4/28.3.2.1.IN-ADDR.ARPA.| |sometext| ||
}
SOA records

If the SOA records are not found in the zone definition, they are inherited from the client preferences, if the client has SOA records defined. If the client has no SOA records defined, the system wide SOA settings defined by the administrator are used.

domain.ltd.|master {
 	|ALLOW_TRANSFER| |4.3.2.1| || ||
	|ALLOW_TRANSFER| |2002:a96:b95::a96f:b95| || ||
	|NS| |domain.ltd.| |ns1.domain.ltd.| ||
	|NS| |aa.domain.ltd.| |ns.domain.ltd.| ||
	|CNAME| |cname.domain.ltd.| |canonical.name.| ||
	|CNAME| |somedir.domain.ltd.| |domain.ltd.| ||
	|CNAME| |ftp| |domain.ltd.| ||
	|A| |mail.domain.ltd.| |192.168.10.32| ||
	|MX| |zone.domain.ltd.| |email.exchanger| |10|
	|TXT| |txt.domain.ltd.| |v=spf1 exists:%{ir}.%{v}.arpa -all | ||
	|TXT| |some-text.domain.ltd.| |any text| ||
	|TXT| |private._domainkey.domain.ltd.| |k=rsa; p=MEwwDQYerwqEWwE| ||
	|TXT| |domain.ltd.| |text value| ||
}
4/28.3.2.1.in-addr.arpa.|master {
	|NS| |4/28.3.2.1.in-addr.arpa.| |aa.com.| ||
	|PTR| |6.4/28.3.2.1.in-addr.arpa.| |zone.com.| ||
	|PTR| |6.4/28.3.2.1.in-addr.arpa.| |dom1.com.| ||
	|PTR| |6.4/28.3.2.1.in-addr.arpa.| |dom2.com.| ||
	|TXT| |a.4/28.3.2.1.in-addr.arpa.| |text value| ||
	|TXT| |4/28.3.2.1.in-addr.arpa.| |sometext| ||
}
E164.ARPA reverse zone

Check the below example of E.164 reverse zone that contains all the supported record types, NS and NAPTR:

1.2.3.1.E164.ARPA.|master {
    |SERIAL| |1330507579| || ||
    |REFRESH| |10800| || ||
    |RETRY| |3600| || ||
    |EXPIRE| |604800| || ||
    |MIN_TTL| |86400| || ||
    |DEFAULT_TTL| |86400| || ||
    |ALLOW_TRANSFER| |134.222.123.123/27| || ||
	|ALLOW_TRANSFER| |2002:a96:b95::a96f:b95| || ||
    |NAPTR| |2.3.4.5.1.2.3.1.E164.ARPA.| |!regex!replace!| |10| |20| || || |service| |S| |mydomain.tst.|
    |NAPTR| |9.1.2.3.1.E164.ARPA.| |!^.*$!mailto:info@example.com!i| |10| |20| || || |email| |S| ||
    |NS| |1.2.3.1.E164.ARPA.| |ns1.example.com.| |1|
    |NS| |1.2.3.1.E164.ARPA.| |ns2.example.com.| ||
}
IP6.ARPA reverse zone

Check this example of IP6.ARPA reverse zone that contains both supported record types, NS and PTR:

1.2.3.4.5.6.7.8.9.0.1.2.3.4.5.6.7.8.9.0.2.1.2.A.A.2.2.IP6.ARPA.|master {
	|SERIAL| |2018071302| || ||
	|REFRESH| |10800| || ||
	|RETRY| |3600| || ||
	|EXPIRE| |604800| || ||
	|MIN_TTL| |86400| || ||
	|DEFAULT_TTL| |86400| || ||
	|NS| |1.2.3.4.5.6.7.8.9.0.1.2.3.4.5.6.7.8.9.0.2.1.2.A.A.2.2.IP6.ARPA.| |ns1.bar.com.| ||
	|NS| |1.2.3.4.5.6.7.8.9.0.1.2.3.4.5.6.7.8.9.0.2.1.2.A.A.2.2.IP6.ARPA.| |ns3.bar.com.| |1|
	|PTR| |9.8.7.6.5.1.2.3.4.5.6.7.8.9.0.1.2.3.4.5.6.7.8.9.0.2.1.2.A.A.2.2.IP6.ARPA.| |foo.com.| ||
	|PTR| |9.9.9.9.9.1.2.3.4.5.6.7.8.9.0.1.2.3.4.5.6.7.8.9.0.2.1.2.A.A.2.2.IP6.ARPA.| |bar.com.| ||
	|PTR| |*.1.2.3.4.5.6.7.8.9.0.1.2.3.4.5.6.7.8.9.0.2.1.2.A.A.2.2.IP6.ARPA.| |newtest.tst.| ||
}
Primary NS

The primary NS record is marked with 1 in the dump file. If missing the NS order is random.

bar.com.|master {
    |NS| |bar.com.| |ns1.first.co.uk.| ||
    |NS| |bar.com.| |ns2.first.co.uk.| |1|
}

Dump Export Utilities

Command Line Utilities

The export command line utilities support the new dump file format. These utilities help you set the DNS Manager server to act as slave DNS for other servers. The dump export utility should be copied on the primary server. To find out more details about how to configure Primary/Secondary Server Setup with DNS Manager read this KB article.

Dump Scripts

New dump scripts are provided for major control panels on the market. The new dump scripts can export both master and slaves zones. Export settings are set as variables in the script or in the configuration file. Use this command to find the DNSMANAGER_ROOT_D path:

#> grep DNSMANAGER_ROOT_D /etc/dnsmanager/dnsmanager.conf
DNSMANAGER_ROOT_D /usr/local/dnsmanager

Below you can find the list of export scripts available:

Zones management softwareFolderDNS Manager Script
Bind genericDNSMANAGER_ROOT_Dbind_export.sh
DNS ManagerDNSMANAGER_ROOT_Ddnsmanager_export.sh
Plesk LinuxDNSMANAGER_ROOT_Dplesk_export.sh
plesk_export.pl
Plesk WindowsDNSMANAGER_ROOT_Dplesk_win_export.exe
PowerDNSDNSMANAGER_ROOT_Dpowerdns_export.sh
Helm Control Panel for WindowsDNSMANAGER_ROOT_Dhelm_complete.exe
helm_export.exe
helm_zones.exe
InterWorx Hosting Control PanelDNSMANAGER_ROOT_Diworx_complete.php
iworx_zones.php
EnsimDNSMANAGER_ROOT_Densim_complete.sh
ensim_zones.sh

Services

Please find below a list of all services on a DNS Manager 4 server.

Web interface service
  • Name: dnsmanager
  • Short description: The service is responsible for running DNS Manager web interface
  • Init script: Usually located in /etc/init.d/dnsmanager
Zone management service
  • Name: zonemngd
  • Short description: The service synchronizes the bind configuration file with updates (received using any means)
  • Init script: Usually located in /etc/init.d/zonemngd
Remote import service
  • Name: updateurld
  • Short description: The service synchronizes DNS Manager local database with remote updates.
  • Init script: Usually located in /etc/init.d/updateurld
NAMED service
  • Name: named
  • Short description: BIND (Berkeley Internet Name Domain) is an implementation of the DNS (Domain Name System) protocols; BIND includes a DNS server (named), which resolves host names to IP addresses, a resolver library (routines for applications to use when interfacing with DNS), and tools to verify that the DNS server is operating properly.
  • Init script: Usually located in /etc/init.d/named or /etc/init.d/named-chroot
Round robin service
  • Name - rrmonitd
  • Short description - Automates the DNS Round Robin disqualification and qualification when a resource associated with a resource record becomes unavailable again.
  • Init script - Usually located in /etc/init.d/rrmonitd

Interface Access and Disk Location

DNS Manager comes with a dedicated web management interface, accessible in the browser at:

http
https:// <your_server_ip>

To log in to the interface for the first time, you must supply the following login credentials:

INFO

user: admin
password: welcome

The skin directory can be found in:

INFO

DNSMANAGER_ROOT_D/admin/htdocs/skins

The language pack directory can be found in:

INFO

DNSMANAGER_ROOT_D/admin/htdocs/language

All important paths are defined in /etc/dnsmanager/dnsmanager.conf

Last updated: Dec 8, 2025