1MARARC(5)                      MaraDNS reference                     MARARC(5)
2
3
4

NAME

6       mararc - Format of the mararc zone file that MaraDNS uses
7

MARARC FILE FORMAT

9       Mararc files use a syntax that is a subset of Python 2.2.3 syntax. In
10       particular, Python 2.2.3 (and possibly other versions of Python) can
11       read a properly formatted mararc file without error.
12
13       Unlike Python, however, a mararc file can only use certain variable
14       names, and the variables can only be declared as described below.
15

COMMENTS

17       Comments (lines ignored by the MaraDNS parser) start with the '#'
18       character, like this:
19
20       # This is a comment
21
22       The MaraDNS parser also ignores lines which contain only white space.
23

OPERATORS

25       The MaraRC file supports two operators: = and +=
26
27       The = operator can be used to assign both numeric and string values
28
29       The += operator can only be used on string values, and concatenates the
30       value to the right of the += operator to the string specified to the
31       left of the += operator.
32
33       Examples:
34
35       ipv4_bind_addresses = "10.2.19.83"
36       ipv4_bind_addresses += ",10.2.66.74"
37       ipv4_bind_addresses += ",10.3.87.13"
38
39       ipv4_bind_addresses now has the value
40       "10.2.19.83,10.2.66.74,10.3.87.13"
41
42       ipv4_alias["icann"] = "198.41.0.4"
43       ipv4_alias["icann"] += ",192.228.79.201"
44       ipv4_alias["icann"] += ",192.33.4.12,128.8.10.90"
45

MARARC VARIABLES

47       Follows is a listing of variables that can be declared in the mararc
48       file.
49

DICTIONARY VARIABLE FORMAT

51       A dictionary variable is an array that can have multiple elements.
52       Unlike a traditional array, these arrays are indexed by strings instead
53       of numbers. These are analogous to associative arrays, or what Perl
54       somewhat inaccurately calls hashes.
55
56       The syntax of a dictionary variable is in the following form:
57
58       name["index"] = "value"
59
60       Where name is the name of the dictionary variable, index is the index
61       of the array, and value is the value stored at that index.
62
63       Every time we have a dictionary-type variable (such as csv2), we must
64       first initialize it using a line in the following form:
65
66       csv2 = {}
67
68       Here, csv2 is the name of the "dictionary" variable that we are
69       initializing.
70

DICTIONARY VARIABLES

72       Here is a listing of all "dictionary"-style variables that MaraDNS
73       uses:
74
75    csv2
76
77       The csv2 dictionary variable stores all of the zone names and file
78       names for the zone files that MaraDNS uses. Note that csv2 files are
79       read after MaraDNS is chrooted. Hence the filename is relative to the
80       chroot_dir. Example:
81
82       csv2["example.net."] = "db.example.net"
83
84       See csv2(5) for a description of this file's format.
85
86       The dictionary index (zone name) can not have a * in it. If it does,
87       MaraDNS will terminate with an "Illegal zone name" error.
88
89       Please note that, in order to reload a zone file, it is necessary to
90       restart MaraDNS and reload all zone files. MaraDNS uses a hash data
91       format which loads records very quickly from memory, but requires a
92       restart to update.
93
94    csv1
95
96       csv1: Used to indicate the filename to use for a given zone stored in
97       the legacy csv1 zone file format. This is primarily for compatibility
98       with people who have maradns-1.0 zone files.
99
100       csv1["zone"] = "filename"
101       csv1: A pipe-separated-file. See csv1(5).
102
103
104       zone: the zone that file in question is authoritative for
105
106       filename: the file with the CSV1 zone data
107
108       Note that csv1 files are read after MaraDNS is chrooted, and, hence the
109       filename is relative to the chroot_dir.
110
111       See the csv1(5) man page for more information on this file format.
112
113    ipv4_alias
114
115       ipv4_alias: Used to give nicknames or aliases for ip/netmask pairs for
116       ipv4 (standard 32-bit) IP addresses.
117
118       ipv4_alias["name"] = "ip1/netmask,ip2/netmask,etc"
119       name: The name of the alias in question
120
121       ip: The ip portion of an ip/netmask pair
122
123       netmask: the mask portion of an ip/netmask pair
124
125       ,: Used to separate ip/netmask pairs. Spaces may be placed before or
126       after this comma.
127
128       An ip is in dotted-decimal format, e.g. "10.1.2.3".
129
130       The netmask can be in one of two formats: A single number between 1 and
131       32, which indicates the number of leading "1" bits in the netmask, or a
132       4-digit dotted-decimal netmask.
133
134       The netmask is used to specify a range of IPs.
135
136    ipv4_alias examples
137
138       10.1.1.1/24 indicates that any ip from 10.1.1.0 to 10.1.1.255 will
139       match.
140
141       10.1.1.1/255.255.255.0 is identical to 10.1.1.1/24
142
143       10.2.3.4/16 indicates that any ip from 10.2.0.0 to 10.2.255.255 will
144       match.
145
146       10.2.3.4/255.255.0.0 is identical to 10.2.3.4/16
147
148       127.0.0.0/8 indicates that any ip with "127" as the first octet
149       (number) will match.
150
151       127.0.0.0/255.0.0.0 is identical to 127.0.0.0/8
152
153       The netmask is optional, and, if not present, indicates that only a
154       single IP will "match". e.g:
155
156       10.9.9.9/32,
157
158       10.9.9.9/255.255.255.255, and 10.9.9.9 are all functionally identical,
159       and indicate that only the ip 10.9.9.9 will match.
160
161       The significance of "match" depends on what we use the ipv4 alias for.
162
163       ipv4 aliases can nest. E.g:
164
165       ipv4_alias["susan"] = "10.6.7.8/24"
166       ipv4_alias["office"] = "susan,10.9.9.9"
167
168       Where "susan" in the "office" alias matches the value of the ipv4_alias
169       susan.
170
171       Multiple levels of nesting are allowed. Self-referring nests will
172       result in an error.
173

NORMAL VARIABLE FORMAT

175       Normal variables. These are variables that can only take a single
176       value.
177
178       The syntax of a normal variable is in the form
179
180       name = "value"
181
182       Where name is the name of the normal variable, and value is the value
183       of the variable in question.
184

NORMAL VARIABLES

186       Here is a listing of normal variables that MaraDNS uses:
187
188    ipv4_bind_addresses
189
190       ipv4_bind_addresses: The IP addresses to give the MaraDNS server.
191
192       This accepts one or more ipv4 IPs in dotted-decimal (e.g. "127.0.0.1")
193       notation, and specifies what IP addresses the MaraDNS server will
194       listen on. Multiple bind addresses are separated with a comma, like
195       this: "10.1.2.3, 10.1.2.4, 127.0.0.1"
196
197    admin_acl
198
199       This is a list of ip/netmask pairs that are allowed to get certain
200       administrative information about MaraDNS, including:
201
202       * The version number of MaraDNS running
203
204       * The number of threads MaraDNS has
205
206       * MaraDNS' internal timestamp value
207
208       Note that this information is not available unless the mararc variable
209       debug_msg_level is sufficiently high. See the information on
210       debug_msg_level below for details on this and on the TXT queries sent
211       to get the above information.
212
213    bind_address
214
215       bind_address: The IP address to give the MaraDNS server.
216
217       This accepts a single IP in dotted-decimal (e.g. "127.0.0.1") notation,
218       and specifies what IP address the MaraDNS server will listen on. Note
219       that ipv4_bind_addresses has the same functionality. This name is
220       included so that old MaraDNS configuration files will continue to work
221       with new MaraDNS releases.
222
223    bind_star_handling
224
225       In the case where there is both a star record for a given name and
226       recordtype, a non-star record with the same name but a different
227       recordtype, and no record for the given name and recordtype, MaraDNS
228       will usually return the star record. BIND, on the other hand, will
229       return a "not there" reply. In other words:
230
231       * If a non-A record for foo.example.com exists
232
233       * An A record for *.example.com exists
234
235       * No A record for foo.example.com exists
236
237       * And the user asks for the A record for foo.example.com
238
239       * MaraDNS will usually return the A record attached to *.example.com
240
241       * BIND, on the other hand, returns a "not there" for foo.example.com
242
243       If the BIND behavior is desired, set bind_star_handling to 1.
244       Otherwise, set this to 0. In MaraDNS 1.3, this has a default value of
245       1.
246
247       In addition, if there is a star record that could match any given
248       record type, when bind_star_handling is 1, it makes sure that MaraDNS
249       does not incorrectly return a NXDOMAIN (RFC 4074 section 4.2).
250
251       Also, if bind_star_handling has a value of 2, MaraDNS will handle the
252       following case exactly as per section 4.3.3 of RFC1034:
253
254       * If a record for foo.example.com exists
255
256       * An A record for *.example.com exists
257
258       * And the user asks for the A record for bar.foo.example.com
259
260       * MaraDNS will usually return the A record attached to *.example.com
261
262       * RFC1034 section 4.3.3 says one should return a NXDOMAIN.
263
264       MaraDNS will exit with a fatal error if bind_star_handling has any
265       value besides 0, 1, or 2.
266
267    chroot_dir
268
269       chroot_dir: The directory MaraDNS chroots to
270
271       This accepts a single value: The full path to the directory to use as a
272       chroot jail.
273
274       Note that csv1 zone files are read after the chroot operation. Hence,
275       the chroot jail needs to have any and all zone files that MaraDNS will
276       load.
277
278    csv2_default_zonefile
279
280       This is a special zone file that allows there to be stars at the end of
281       hostnames. This file is similar to a normal csv2 zone file, but has the
282       following features and limitations:
283
284       * Stars are allowed at the end of hostnames
285
286       * A SOA record is mandatory
287
288       * NS records are mandatory
289
290       * Neither CNAME, FQDN4, nor FQDN6 records are permitted in the zone
291         file
292
293       * Delegation NS records are not permitted in the zone file
294
295       * Default zonefiles may not be transferred via zone transfer
296
297       * Both recursion and default zonefiles may not be enabled at the same
298         time
299
300    csv2_synthip_list
301
302       Sometimes the IP list of nameservers will be different than the
303       nameservers one is bound to. This allows the synthetic nameserver list
304       to have different IPs.
305
306       Note that this may act in an unexpected manner if routable and non-
307       routable (localhost and RFC1918) addresses are combined; in particular,
308       a list with both routable and non-routable addresses will discard the
309       non-routable IP addresses, and a list with rfc1918 and localhost
310       addresses will discard the localhost addresses.
311
312    csv2_tilde_handling
313
314       How the csv2 zone file parser handles tildes (the ~ character) in csv2
315       zone files. This is a numeric record, with a possible value between 0
316       and 3 (four possible values). The way the csv2 parser acts at different
317       csv2_tilde_handling levels:
318
319       * 0) The csv2 parser behaves the same as it does in old MaraDNS
320         releases: The tilde has no special significance to the parser.
321
322       * 1) A tilde is not allowed anywhere in a csv2 zone file.
323
324       * 2) A tilde is only allowed between records in a csv2 zone file. If a
325         tilde is between the first record and the second record, a tilde is
326         required to be between all records. Otherwise, a tilde is not allowed
327         anywhere in a csv2 zone file. The first record can not be a TXT, WKS,
328         or LOC record.
329
330       * 3) A tilde is required to be between all records in a csv2 zone file.
331
332       The default value for csv2_tilde_handling is 2; this allows
333       compatibility with older zone files without tildes while allowing zone
334       files to be updated to use the tilde to separate resource records.
335
336    debug_msg_level
337
338       This is a number indicating what level of information about a running
339       MaraDNS process should be made public. When set to 0, no information
340       will be made public.
341
342       When set to one (the default), or higher, a Tversion.maradns. (TXT
343       query for "version.maradns.") query will return the version number of
344       MaraDNS.
345
346       When set to two or higher, a Tnumthreads.maradns. (TXT query for
347       "numthreads.maradns.") query will return the number of threads that
348       MaraDNS is currently running, and a Tcache-elements.maradns. query will
349       return the number of elements in MaraDNS' cache.
350
351       If MaraDNS is compiled with debugging information on, a
352       Tmemusage.maradns. query will return the amount of memory MaraDNS has
353       allocated. Note that the overhead for tracking memory usage is
354       considerable and that compiling MaraDNS with "make debug" will greatly
355       slow down MaraDNS. A debug build of MaraDNS is not recommended for
356       production use.
357
358       When set to three or higher, a Ttimestamp.maradns. query will return,
359       in seconds since the UNIX epoch, the timestamp for the system MaraDNS
360       is running on.
361
362
363    default_rrany_set
364
365       This variable used to determine what kind of resource records were
366       returned when an ANY query was sent. In MaraDNS, the data structures
367       have since been revised to return any resource record type when an ANY
368       query is sent; this variable does nothing, and is only here so that old
369       MaraDNS mararc files will continue to work. The only accepted values
370       for this variable were 3 and 15.
371
372    dns_port
373
374       This is the port that MaraDNS listens on. This is usually 53 (the
375       default value), but certain unusual MaraDNS setups (such as when
376       resolving dangling CNAME records on but a single IP) may need to have a
377       different value for this.
378
379    dos_protection_level
380
381       If this is set to a non-zero value, certain features of MaraDNS will be
382       disabled in order to speed up MaraDNS' response time. This is designed
383       for situations when a MaraDNS server is receiving a large number of
384       queries, such as during a denial of service attack.
385
386       This is a numeric variable; its default value is zero, indicating that
387       all of MaraDNS' normal features are enabled. Higher numeric values
388       disable more features:
389
390       * A dos_protection_level between 1 and 78 (inclusive) disables getting
391         MaraDNS status information remotely.
392
393       * A dos_protection_level of 8 or above disables CNAME lookups.
394
395       * A dos_protection_level or 12 or above disables delegation NS records.
396
397       * A dos_protection_level of 14 or above disables ANY record processing.
398
399       * A dos_protection_level of 18 or above disables star record processing
400         at the beginning of hostnames (default zonefiles still work,
401         however).
402
403       * A dos_protection_level of 78 disables all authoritative processing,
404         including default zonefiles.
405
406       The default level of dos_protection_level is 0 when there are one or
407       more zonefiles; 78 when there are no zone files.
408
409    ipv6_bind_address
410
411       If MaraDNS is compiled with as an authoritative server, then this
412       variable will tell MaraDNS which ipv6 address for the UDP server to;
413       for this variable to be set, MaraDNS must be bound to at least one ipv4
414       address.
415
416    hide_disclaimer
417
418       If this is set to "YES", MaraDNS will not display the legal disclaimer
419       when starting up.
420
421    long_packet_ipv4
422
423       This is a list of IPs which we will send UDP packets longer than the
424       512 bytes RFC1035 permits if necessary. This is designed to allow
425       zoneserver, when used send regular DNS packets over TCP, to receive
426       packets with more data than can fit in a 512-byte DNS packet.
427
428       This variable only functions if MaraDNS is compiled as an authoritative
429       only server.
430
431    maradns_uid
432
433       maradns_uid: The numeric UID that MaraDNS will run as
434
435       This accepts a single numerical value: The UID to run MaraDNS as.
436
437       MaraDNS, as soon as possible drops root privileges, minimizing the
438       damage a potential attacker can cause should there be a security
439       problem with MaraDNS. This is the UID maradns becomes.
440
441       The default UID is 707.
442
443    maradns_gid
444
445       maradns_gid: The numeric GID that MaraDNS will run as.
446
447       This accepts a single numerical value: The GID to run MaraDNS as.
448
449       The default GID is 707.
450
451    max_ar_chain
452
453       max_ar_chain: The maximum number of records to display if a record in
454       the additional section (e.g., the IP of a NS server or the ip of a MX
455       exchange) has more than one value.
456
457       This is similar to max_chain, but applies to records in the
458       "additional" (or AR) section.
459
460       Due to limitations in the internal data structures that MaraDNS uses to
461       store RRs, if this has a value besides one, round robin rotates of
462       records are disabled.
463
464       The default value for this variable is 1.
465
466    max_chain
467
468       max_chain: The maximum number of records to display in a chain of
469       records.
470
471       With DNS, it is possible to have more than one RR for a given domain
472       label. For example, "example.com" can have, as the A record, a list of
473       multiple ip addresses.
474
475       This sets the maximum number of records MaraDNS will show for a single
476       RR.
477
478       MaraDNS normally round-robin rotates records. Hence, all records for a
479       given DNS label (e.g. "example.com.") will be visible, although not at
480       the same time if there are more records than the value allowed with
481       max_chain
482
483       The default value for this variable is 8.
484
485    max_tcp_procs
486
487       max_tcp_procs: The (optional) maximum number of processes the zone
488       server is allowed to run.
489
490       Sometimes, it is desirable to have a different number of maximum
491       allowed tcp processes than maximum allowed threads. If this variable is
492       not set, the maximum number of allowed tcp processes is "maxprocs".
493
494    max_total
495
496       max_total: The maximum number of records to show total for a given DNS
497       request.
498
499       This is the maximum total number of records that MaraDNS will make
500       available in a DNS reply.
501
502       The default value for this variable is 20.
503
504    max_mem
505
506       max_mem is the maximum amount of memory we allow MaraDNS to allocate,
507       in bytes.
508
509       The default value of this is to allocate 2 megabytes for MaraDNS'
510       general use, and in addition, to allocate 3072 bytes for each element
511       we can have in the cache or DNS record that we are authoritatively
512       serving.
513
514    min_visible_ttl
515
516       min_visible_ttl: The minimum value that we will will show as the TTL
517       (time to live) value for a resource record to other DNS servers and
518       stub resolvers. In other words, this is the minimum value we will ask
519       other DNS server to cache (keep in their memory) a DNS resource record.
520
521       The value is in seconds. The default value for this is 30; the minimum
522       value this can have is 5.
523
524       As an aside, RFC1123 section 6.1.2.1 implies that zero-length TTL
525       records should be passed on with a TTL of zero. This, unfortunately,
526       breaks some stub resolvers (such as Mozilla's stub resolver).
527
528    remote_admin
529
530       remote_admin: Whether we allow verbose_level to be changed after
531       MaraDNS is started.
532
533       If remote_admin is set to 1, and admin_acl is set, any and all IPs
534       listed in admin_acl will be able to reset the value of verbose_level
535       from any value between 0 and 9 via a TXT query in the form of
536       5.verbose_level.maradns. What this will do is set verbose_query to the
537       value in the first digit of the query.
538
539       This is useful when wishing to temporarily increase the verbose_level
540       to find out why a given host name is not resolving, then decreasing
541       verbose_level so as to minimize the size of MaraDNS' log.
542
543    rfc8482
544
545       If this is set to 1, MaraDNS will not allow ANY queries, sending a
546       RFC8482 response if one is given to MaraDNS. If this is 0, ANY queries
547       are allowed. Default value: 1
548
549    synth_soa_origin
550
551       When a CSV2 zone file doesn't have a SOA record in it, MaraDNS
552       generates a SOA record on the fly. This variable determines the host
553       name for the "SOA origin" (which is called the MNAME in RFC1035); this
554       is the host name of the DNS server which has the "master copy" of a
555       given DNS zone's file.
556
557       This host name is in human-readable format without a trailing dot,
558       e.g.:
559
560       synth_soa_origin = "ns1.example.com"
561
562       If this is not set, a synthetic SOA record will use the name of the
563       zone for the SOA origin (MNAME) field.
564
565    synth_soa_serial
566
567       This determines whether we strictly follow RFC1912 section 2.2 with SOA
568       serial numbers. If this is set to 1 (the default value), we do not
569       strictly follow RFC1912 section 2.2 (the serial is a number, based on
570       the timestamp of the zone file, that is updated every six seconds), but
571       this makes it so that a serial number is guaranteed to be automatically
572       updated every time one edits a zone file.
573
574       If this is set to 2, the SOA serial number will be in YYYYMMDDHH
575       format, where YYYY is the 4-digit year, MM is the 2-digit month, DD is
576       the 2-digit day, and HH is the 2-digit hour of the time the zone file
577       was last updated (GMT; localtime doesn't work in a chroot()
578       environment). While this format is strictly RFC1912 compliant, the
579       disadvantage is that more than one edit to a zone file in an hour will
580       not update the serial number.
581
582       I strongly recommend, unless it is extremely important to have a DNS
583       zone that generates no warnings when tested at dnsreport.com, to have
584       this set to 1 (the default value). Having this set to 2 can result in
585       updated zone files not being seen by slave DNS servers.
586
587       Note that synth_soa_serial can only have a value of 1 on the native
588       Windows port.
589
590       On systems where time_t is 32-bit, MaraDNS will always act as if
591       synth_soa_serial has a value of 1. This is to avoid having MaraDNS use
592       invalid time and date values starting in late January of 2038; systems
593       with a 32-bit time_t can very well have their underlying system
594       libraries with regards to dates and times no longer correctly function
595       come 2038.
596
597    tcp_convert_acl
598
599       This only applies to the zoneserver (general DNS-over-TCP) program.
600
601       This is a list of IPs which are allowed to connect to the zoneserver
602       and send normal TCP DNS requests. The zoneserver will convert TCP DNS
603       requests in to UDP DNS requests, and send the UDP request in question
604       to the server specified in tcp_convert_server.  Once it gets a reply
605       from the UDP DNS server, it will convert the reply in to a TCP request
606       and send the reply back to the original TCP client.
607
608       Whether the RD (recursion desired) flag is set or not when converting a
609       TCP DNS request in to a UDP DNS request is determined by whether the
610       TCP client is on the recursive_acl list. Since MaraDNS 2.0 does not
611       have recursion, the maradns daemon ignores the RD bit (Deadwood will
612       not process any queries without the RD bit set).
613
614    tcp_convert_server
615
616       This only applies to the zoneserver (general DNS-over-TCP) program.
617
618       This is the UDP server which we send a query to when converting DNS TCP
619       queries in to DNS UDP servers. Note that, while this value allows
620       multiple IPs, all values except the first one are presently ignored.
621
622    timestamp_type
623
624       timestamp_type: The type of timestamp to display. The main purpose of
625       this option is to suppress the output of timestamps. Since duende uses
626       syslog() to output data, and since syslog() adds its own timestamp,
627       this option should be set to 5 when maradns is invoked with the duende
628       tool.
629
630       This option also allows people who do not use the duende tool to view
631       human-readable timestamps. This option only allows timestamps in GMT,
632       due to issues with showing local times in a chroot() environment.
633
634       This can have the following values:
635
636       0   The string "Timestamp" followed by a UNIX timestamp
637
638       1   Just the bare UNIX timestamp
639
640       2   A GMT timestamp in the Spanish language
641
642       3   A (hopefully) local timestamp in the Spanish language
643
644       4   A timestamp using asctime(gmtime()); usually in the English
645           language
646
647       5   No timestamp whatsoever is shown (this is the best option when
648           maradns is invoked with the duende tool).
649
650       6   ISO GMT timestamp is shown
651
652       7   ISO local timestamp is shown
653
654       On systems where time_t is 32-bit, MaraDNS will always act as if
655       timestamp_type has a value of 5, never showing a timestamp. This is to
656       avoid having MaraDNS show an invalid timestamp starting in late January
657       of 2038; systems with a 32-bit time_t can very well have their
658       underlying system libraries with regards to dates and times no longer
659       correctly function come 2038.
660
661       The default value for this variable is 5.
662
663    verbose_level
664
665       verbose_level: The number of messages we log to stdout
666
667       This can have five values:
668
669       0   No messages except for the legal disclaimer and fatal parsing
670           errors
671
672       1   Only startup messages logged (Default level)
673
674       2   Error queries logged
675
676       3   All queries logged
677
678       4   All actions adding and removing records from the cache logged
679
680       The default value for this variable is 1.
681
682    zone_transfer_acl
683
684       zone_transfer_acl: List of ips allowed to perform zone transfers with
685       the zone server
686
687       The format of this string is identical to the format of an ipv4_alias
688       entry.
689

EXAMPLE MARARC FILE

691       # Example mararc file (unabridged version)
692
693       # The various zones we support
694
695       # We must initialize the csv2 hash, or MaraDNS will be unable to
696       # load any csv2 zone files
697       csv2 = {}
698
699       # This is just to show the format of the file
700       #csv2["example.com."] = "db.example.com"
701
702       # The address this DNS server runs on.  If you want to bind
703       # to multiple addresses, separate them with a comma like this:
704       # "10.1.2.3,10.1.2.4,127.0.0.1"
705       ipv4_bind_addresses = "127.0.0.1"
706       # The directory with all of the zone files
707       chroot_dir = "/etc/maradns"
708       # The numeric UID MaraDNS will run as
709       maradns_uid = 99
710       # The (optional) numeric GID MaraDNS will run as
711       # maradns_gid = 99
712
713       # Normally, MaraDNS has some MaraDNS-specific features, such as DDIP
714       # synthesizing, a special DNS query ("erre-con-erre-cigarro.maradns.org."
715       # with a TXT query returns the version of MaraDNS that a server is
716       # running), unique handling of multiple QDCOUNTs, etc.  Some people
717       # might not like these features, so I have added a switch that lets
718       # a sys admin disable all these features.  Just give "no_fingerprint"
719       # a value of one here, and MaraDNS should be more or less
720       # indistinguishable from a tinydns server.
721       no_fingerprint = 0
722
723       # These constants limit the number of records we will display, in order
724       # to help keep packets 512 bytes or smaller.  This, combined with round_robin
725       # record rotation, help to use DNS as a crude load-balancer.
726
727       # The maximum number of records to display in a chain of records (list
728       # of records) for a given host name
729       max_chain = 8
730       # The maximum number of records to display in a list of records in the
731       # additional section of a query.  If this is any value besides one,
732       # round robin rotation is disabled (due to limitations in the current
733       # data structure MaraDNS uses)
734       max_ar_chain = 1
735       # The maximum number of records to show total for a given question
736       max_total = 20
737
738       # The number of messages we log to stdout
739       # 0: No messages except for fatal parsing errors and the legal disclaimer
740       # 1: Only startup messages logged (default)
741       # 2: Error queries logged
742       # 3: All queries logged (but not very verbosely right now)
743       verbose_level = 1
744
745       # Here is a ACL which restricts who is allowed to perform zone transfer from
746       # the zoneserver program
747
748       # Simplest form: 10.1.1.1/24 (IP: 10.1.1.1, 24 left bits in IP need to match)
749       # and 10.100.100.100/255.255.255.224 (IP: 10.100.100.100, netmask
750       # 255.255.255.224) are allowed to connect to the zone server
751       # NOTE: The "maradns" program does not serve zones.  Zones are served
752       # by the "zoneserver" program.
753       #zone_transfer_acl = "10.1.1.1/24, 10.100.100.100/255.255.255.224"
754
755

BUGS

757       If one should declare the same the same index twice with a dictionary
758       variable, MaraDNS will exit with a fatal error. This is because earlier
759       versions of MaraDNS acted in a different manner than Python 2.3.3. With
760       Python 2.3.3, the last declaration is used, while MaraDNS used to use
761       the first declaration.
762
764       THIS SOFTWARE IS PROVIDED BY THE AUTHORS ''AS IS'' AND ANY EXPRESS OR
765       IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
766       WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
767       DISCLAIMED. IN NO EVENT SHALL THE AUTHORS OR CONTRIBUTORS BE LIABLE FOR
768       ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
769       DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
770       OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
771       HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
772       STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
773       IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
774       POSSIBILITY OF SUCH DAMAGE.
775
776
777
778
779MARADNS                          January 2002                        MARARC(5)
Impressum