mydns.conf is read by mydns(8) on startup. The default location of this file is /etc/mydns.conf.
A mydns.conf might look something like this:
# /etc/mydns.conf # Configuration file for the MyDNS name daemon db-host = dbserver.example.com db-user = mydnsuser db-password = Gr8DNS!
Each line in the file may contain only one configuration variable. All allowable configuration variables are described in this man page. The syntax for a configuration line is `option [= value]'. All configuration variables have default values, which are used if the variable is omitted from the mydns.conf. These defaults are listed in parentheses after the variable syntax.
All text following a hash mark (`#') and empty lines are ignored. If you need to specify an actual hash mark in a option value, escape it by prefixing it with a backslash (`\') character.
The mydns(8) program has a convenient command-line option that will output all current configuration variables in mydns.conf format. If you are creating a mydns.conf file for the first time, this is a great way to create a template that you can customize. See mydns(8) for details.
The following configuration variables tell MyDNS about your database server.
- db-host = hostname (`localhost')
Connect to the database server located at hostname.
- db-user = username
Use username when authenticating with the database server.
- db-password = password
Use password when authenticating with the database server.
- database = name (`mydns')
Read resource record information from the database called name. The specified dbuser must have SELECT privileges on the specified database.
The following configuration variables control the general behavior of the name daemon.
- user = username (`nobody')
Run the name daemon with the permissions of user username.
- group = groupname (`nogroup')
Run the name daemon with the permissions of group groupname.
- listen = address (`*')
The name daemon should listen on address. If address is *, listen on all addresses. This must be an IP address in numbers-and-dots format, or *. Multiple addresses may be specified, either separated by commas, or listed on separate listen lines, or both. If a port number other than port 53 is desired, append `:port' to the address.
- no-listen = address (`*')
The name daemon should NOT listen on address, even if it was specified by listen. This must be an IP address in numbers-and-dots format, or *. Multiple addresses may be specified, either separated by commas, or listed on separate listen lines, or both. If a port number other than port 53 is desired, append `:port' to the address.
The following configuration variables affect the cache used internally by the name daemon.
- zone-cache-size = number (`4096')
The zone data cache will not contain more than number entries. The average entry in the cache is about 128 bytes. If number is 0, the zone data cache will not be used.
- zone-cache-expire = seconds (`60')
Entries expire from the zone data cache once they are seconds old. If seconds is 0, the zone data cache will not be used. If the TTL for any RR in the zone is less than the cache expire time, the TTL will be honored.
- reply-cache-size = number (`1024')
The reply cache will not contain more than number entries. The average entry in the cache is about 128 bytes. If number is 0, the reply cache will not be used.
- reply-cache-expire = seconds (`30')
Entries expire from the reply cache once they are seconds old. If seconds is 0, the reply cache will not be used.
The following configuration variables affect the name daemon also, but most users will not need to use them.
- log = facility (`LOG_DAEMON')
The name daemon should log via syslog facility facility. facility may be LOG_DAEMON or LOG_LOCAL0 through LOG_LOCAL7. If facility is stderr, program output will go to stderr only.
- pidfile = filename (`/var/run/named.pid')
Create a PID file for the name daemon called filename.
- timeout = seconds (`120')
Incoming queries time out if a reply could not be sent after seconds have elapsed.
- multicpu = cpucount (`1')
Run with multiple processes to support cpucount number of processors.- deprecated use servers instead
- servers = servercount (`1')
Number of server processors to run. Set this to 0 to run just a single process, 1 will run a master and a server process. n runs n servers plus a master. It is recommended that this be set to the number of CPUS times 2 plus 1.
- recursive = address
If this option is specified, address is the address of a DNS server that accepts recursive queries. If MyDNS receives a query where recursion is desired, and the zone is not local, MyDNS will forward the query to the server at address and return the result to the client.
- recursive-timeout = seconds (`60')
Number of seconds to wait before first retry
- recursive-retries = count (`5')
Number of retries before abandoning recursion
- recursive-algorithm = algorithm (`linear')
Algorithm to use when applying timeout. Linear - each timeout is equal to recursive-timeout, Exponential - double timeout on each retry, Progressive - increase timeout by number of retries.
- allow-axfr = bool (`no')
Should DNS-based zone transfers be allowed?
- allow-tcp = bool (`no')
Should TCP requests be allowed? (not recommended)
- allow-update = bool (`no')
Should DNS-based zone updates (RFC 2136) be allowed?
- ignore-minimum = bool (`no')
Should MyDNS ignore the minimum TTL for zones?
- soa-table = name (`soa')
The name of the table containing SOA records.
- rr-table = name (`rr')
The name of the table containing resource record data.
- use-soa-active = boolean (`yes')
Where there is an soa-active column use this to determine which zones to serve.
- use-rr-active = boolean (`yes')
Where there is a rr-active column use this to determine which records to serve.
- notify-enabled = boolean (`yes')
Support DNS NOTIFY message generation if this is enabled.
- notify-source = IPv4 address (`0.0.0.0')
IPv4 address from which NOTIFY messages will be sent - set to 0.0.0.0 or leave blank for the default of using the outgoing interface address.
- notify-source6 = IPv6 address (`;;')
IPv6 address from which NOTIFY messages will be sent - set to :: or leave blank for the default of using the outgoing interface address.
- notify-timeout = seconds (`60')
Number of seconds before first retry of NOTIFY message
- notify-retries = count (`5')
Number of times to retry the NOTIFY message before giving up.
- notify-algorithm = string (`linear')
Select type of notify algorithm to use - select oneof Linear - each timeout is equal to notify-timeout, Exponential - double timeout on each retry, Progressive - increase timeout by number of retries.
- ixfr-enabled = boolean (`yes')
Enable IXFR functionality - requires DB schema change as well.
- ixfr-gc-enabled = boolean (`yes')
Enable real-time IXFR garbage collection facility. With this switched on the server will periodically scan the database for expired records that have been marked deleted and will remove them from the DB.
- ixfr-gc-interval = seconds (`86400')
Number of seconds between each GC scan. - default 86400 seconds = 1 day.
Number of seconds before first GC scan. - default 600 seconds = 10 minutes.
- extended-data-support = boolean (`no')
Switch on extended data support, this allow resource records to grow very big as needed for large TXT records.
- dbengine = string (`MyISAM')
Select DBengine to use when running under MySQL. Has been tested with MyISAM, InnoDB, NDBCLUSTER.
- soa-where = string
An extra WHERE clause to append to queries selecting records from the `soa' table.
- rr-where = string
An extra WHERE clause to append to queries selecting records from the `rr' table.
- wildcard-recursion = number of ancestor levels
Allow the server to look in ancestor zones for wildcard matches. This specifies how many levels to scan up before giving up. Use '0' (the default) to switch this off, a positive number to specify how many levels and '-1' for infinite. [Caveat: Using this feature in the current release 1.2.8 will affect performance if you have deeply nested zones and search many levels. You have been warned, if you need to do this then increase the number of 'servers']
- debug-<module> = <debug level>
Switches on module based debug for the module in question. The debug level sets the volume and detail of messages produced. See output of --dump-config option for modules available.
The mydns.conf file should be readable only by the root user (uid=0) since it typically contains a username and password allowing access to your database.
The default location of the configuration file.
mydns(8), mydnscheck(8), mydns-conf(8), mydnsexport(8), mydnsimport(8).