mydns.conf - mydns
(8) configuration file.
is read by mydns
(8) on startup. The default location of
this file is /usr/local/etc/mydns.conf
might look something like this:
# 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
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 (` \
(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
The following configuration variables control the general behavior of the name
- 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
The following configuration variables affect the cache used internally by the
- 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
- use-rr-active = boolean (`yes')
- Where there is a rr-active column use this to determine which records to
- 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
- 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
- rr-where = string
- An extra WHERE clause to append to queries selecting records from the `rr'
- 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.
file should be readable only by the root user (uid=0)
since it typically contains a username and password allowing access to your
The default location of the configuration file.