~ubuntu-branches/ubuntu/quantal/maradns/quantal

« back to all changes in this revision

Viewing changes to doc/en/source/mararc.ej

  • Committer: Package Import Robot
  • Author(s): Iain Lane
  • Date: 2012-01-12 23:35:38 UTC
  • mto: This revision was merged to the branch mainline in revision 26.
  • Revision ID: package-import@ubuntu.com-20120112233538-5jkaqrh9nbqtf1ey
Tags: upstream-2.0.04+really1.4.09
ImportĀ upstreamĀ versionĀ 2.0.04+really1.4.09

Show diffs side-by-side

added added

removed removed

Lines of Context:
207
207
result in an error.
208
208
<p>
209
209
 
 
210
<h2>root_servers</h2>
 
211
 
 
212
root_servers:  This is a special "dictionary" element that can
 
213
have multiple elements, where a given element points to either an 
 
214
ip, or a pointer to an ipv4 alias.  For example:
 
215
 
 
216
<pre>
 
217
root_servers["."] = "list_of_servers"
 
218
</pre>
 
219
 
 
220
In this example, "." indicates that this is a listing of root_servers
 
221
that will resolve any name not otherwise listed as a root_servers
 
222
entry.  <p>
 
223
 
 
224
list_of_servers is a list of root name servers in the exact same
 
225
format as ipv4_aliases.
 
226
<p>
 
227
 
 
228
The root_servers dictionary array can have multiple elements.  Like csv2
 
229
elements, the names must be valid domain names that end with the
 
230
'.' character.  When there are multiple root_servers elements, the
 
231
element with the most domain name labels that matches the end of 
 
232
the hostname one is searching for is used.
 
233
<p>
 
234
 
 
235
For example, let us suppose we have the following root_servers entries:
 
236
 
 
237
<pre>
 
238
root_servers["."] = "198.41.0.4"
 
239
root_servers["com."] = "192.5.6.30"
 
240
root_servers["example.net."] = "10.1.2.3,10.2.3.4"
 
241
</pre>
 
242
 
 
243
In this example, we use use the name server with the IP 10.1.2.3 or
 
244
10.2.3.4 to start resolving "www.example.net", the name server with the
 
245
IP 192.5.6.30 to start resolving "www.google.com", and the name server
 
246
with the IP 198.41.0.4 to start resolving "www.maradns.org".  
 
247
<p>
 
248
 
 
249
Note that, while ips in a listing of root name servers can have
 
250
netmasks, the netmask portion is ignored.
 
251
<p>
 
252
 
 
253
The root_servers should point to root servers.  If one wishes to use
 
254
MaraDNS as a forwarding name server, which forwards DNS requests on to 
 
255
another server, use the upstream_servers variable instead.
 
256
 
 
257
<h2>upstream_servers</h2>
 
258
 
 
259
This is identical to the root_servers variable (can have multiple
 
260
elements, the elements are a list of ipv4_addresses, the variable is a 
 
261
dictionary variable, etc.), but is used
 
262
when one wishes to use MaraDNS to query other recursive servers, instead
 
263
of querying the actual root name servers for an answer.
 
264
<p>
 
265
 
 
266
Note that one can not have both root_servers and upstream_servers set
 
267
in a given mararc file; MaraDNS will return with a fatal error if one
 
268
attempts to do this.
 
269
<p>
 
270
 
 
271
Like root_servers, this is a dictionary variable that can have multiple
 
272
elements.  For example:
 
273
 
 
274
<pre>
 
275
upstream_servers["."] = "10.5.6.7"
 
276
upstream_servers["cl."] = "10.2.19.83"
 
277
</pre>
 
278
 
 
279
Here, we use 10.2.19.83 to resolve host names that end in "cl", and
 
280
10.5.6.7 to resolve all other host names.
 
281
 
210
282
<h1>NORMAL VARIABLE FORMAT</h1>
211
283
 
212
284
Normal variables.  These are variables that can only take
448
520
    at the beginning of hostnames (default zonefiles still work, however).
449
521
 
450
522
<li>A dos_protection_level of 78 disables all authoritative processing,
451
 
    including default zonefiles.
 
523
    including default zonefiles; recursive lookups still work.
452
524
 
453
525
</ul>
454
526
 
461
533
for this variable to be set, MaraDNS must be bound to at least one 
462
534
ipv4 address.
463
535
 
 
536
<h2>handle_noreply</h2>
 
537
This is a numeric variable which determines how the recursive resolver
 
538
informs the client that Mara was unable to contact any remote DNS servers
 
539
when trying to resolve a given domain.  
 
540
 
 
541
If this is set to 0, no response will be sent to the DNS client.
 
542
 
 
543
If this is set to 1, a "server fail" message will be sent to the DNS client.
 
544
 
 
545
If this is set to 2, either a "this host does not exist" message will be sent
 
546
to the DNS client if notthere_ip is not set, or the IP specified in 
 
547
notthere_ip will be sent if set.
 
548
 
 
549
The default value for this is 1.
 
550
 
464
551
<h2>hide_disclaimer</h2>
465
552
If this is set to "YES", MaraDNS will not display the legal disclaimer when
466
553
starting up.
497
584
 
498
585
The default GID is 99.
499
586
 
 
587
<h2>maximum_cache_elements</h2>
 
588
maximum_cache_elements: The maximum number of elements we can have
 
589
in the cache of recursive queries.
 
590
<p>
 
591
 
 
592
This cache of recursive queries is used to store entries we have
 
593
previously obtained from recursive queries.
 
594
<p>
 
595
 
 
596
If we approach this limit, the "custodian" kicks in to effect.
 
597
The custodian removes elements at random from the cache (8 elements
 
598
removed per query) until we are at the 99% or so level again.
 
599
 
 
600
<p> The default value for this variable is 1024.
 
601
<h2>maxprocs</h2>
 
602
maxprocs: The maximum number of threads or processes that MaraDNS
 
603
is allowed to run at the same time.
 
604
<p>
 
605
 
 
606
This variable is used to minimize the impact on the server when
 
607
MaraDNS is heavily loaded.  When this number is reached, it is
 
608
impossible for MaraDNS to spawn new threads/processes until the
 
609
number of threads/processes is reduced.
 
610
<p> The default value for this variable is 64.
 
611
<p>
 
612
The maximum value this can have is 500.
500
613
<h2>max_ar_chain</h2>
501
614
max_ar_chain: The maximum number of records to display if a record in
502
615
the additional section (e.g., the IP of a NS server
563
676
use, and in addition, to allocate 1536 bytes for each element we
564
677
can have in the cache or DNS record that we are authoritatively serving.  
565
678
 
 
679
<h2>min_ttl</h2>
 
680
min_ttl: The minimum amount of time a resource record will stay in
 
681
MaraDNS' cache, regardless of the TTL the remote server specifies.
 
682
<p>
 
683
 
 
684
Setting this value changes the minimum amount of time MaraDNS'
 
685
recursive server will keep a record in the cache.  The value is
 
686
in seconds.
 
687
 
 
688
<p>
 
689
The default value of this is 300 (5 minutes); the minimum value
 
690
for this is 180 (2 minutes).
 
691
 
 
692
<h2>min_ttl_cname</h2>
 
693
min_ttl_cname: The minimum amount of time a resource record
 
694
will stay in MaraDNS' cache, regardless of the TTL the remote server
 
695
specifies.
 
696
<p>
 
697
 
 
698
Setting this value changes the amount of time a CNAME record stays
 
699
in the cache.  The value is in seconds.
 
700
 
 
701
<p>
 
702
The default value for this is the value min_ttl has; the minimum value
 
703
for this is 180 (2 minutes).
 
704
 
566
705
<h2>min_visible_ttl</h2>
567
706
min_visible_ttl: The minimum value that we will will show as the TTL (time
568
707
to live) value for a resource record to other DNS servers and stub resolvers.
571
710
<p>
572
711
 
573
712
The value is in seconds.  The default value for this is 30; the minimum 
574
 
value this can have is 5.  
 
713
value this can have is 5.  People running highly loaded MaraDNS servers 
 
714
may wish to increase this value to 3600 (one hour) in order to reduce the
 
715
number of queries recursively processed by MaraDNS.
575
716
<p>
576
717
 
577
718
As an aside, RFC1123 section 6.1.2.1 implies that zero-length TTL records 
578
719
should be passed on with a TTL of zero.  This, unfortunately, breaks some
579
720
stub resolvers (such as Mozilla's stub resolver).
580
721
 
 
722
<h2>notthere_ip</h2>
 
723
 
 
724
This parameter, if set, causes MaraDNS' recursive resolver to return a
 
725
0-TTL synthetic IP for non-existent hostnames instead of a "this host does
 
726
not exist" DNS reply.  The IP returned is the value for this parameter.
 
727
<p>
 
728
 
 
729
For example, if one wishes to send the IP 10.11.12.13 to clients whenever
 
730
MaraDNS' recursive resolver gets a "this host does not exist" reply, set
 
731
notthere_ip thusly:
 
732
<p>
 
733
 
 
734
notthere_ip = "10.11.12.13"
 
735
<p>
 
736
 
 
737
If one also wishes to have this IP returned when there is no reply
 
738
from remote DNS servers, set handle_noreply thusly:
 
739
<p>
 
740
 
 
741
handle_noreply = 2
 
742
<p>
 
743
 
 
744
This parameter only affects the recursive resolver, and doesn't affect
 
745
authoritative zones that MaraDNS serves.  This parameter only affects
 
746
A queries, and doesn't affect other DNS query types.
 
747
 
 
748
<h2>random_seed_file</h2>
 
749
random_seed_file:  The file from which we read 16 bytes from to
 
750
get the 128-bit seed for the secure pseudo random number generator.
 
751
<p>
 
752
 
 
753
The location of this file is relative to the root of the
 
754
filesystem, not MaraDNS' chroot directory.
 
755
<p>
 
756
 
 
757
This is ideally a file which is a good source of random numbers
 
758
(e.g. /dev/urandom), but can also be a fixed file if your OS does not
 
759
have a decent random number generator.  In that case, make sure the
 
760
contents of that file is random and with 600 perms, owned by root.
 
761
We read the file <b>before</b> dropping root privileges.
 
762
 
 
763
<h2>recurse_delegation</h2>
 
764
recurse_delegation: Whether to recurse in the case of us finding a NS
 
765
delegation record, but the user/stub resolver sent a query that
 
766
desires recursion.  Before MaraDNS 1.3, this was the default behavior.
 
767
<p>
 
768
 
 
769
When recurse_delegation has a value of 1, we recurse in this case.  
 
770
Otherwise, we do not.
 
771
<p>
 
772
 
 
773
This parameter has a default value of 0.
 
774
 
 
775
<h2>recurse_min_bind_port</h2>
 
776
MaraDNS, by default, binds to a UDP port with a value between 15000 and
 
777
19095 when making a recursive query.  This variable, and the 
 
778
recurse_number_ports variable, allow this value to be changed.
 
779
<p>
 
780
 
 
781
recurse_min_bind_port is the lowest port number that MaraDNS will bind
 
782
to when making recursive queries.  The default value for this is 15000.
 
783
 
 
784
<h2>recurse_number_ports</h2>
 
785
This determines the size of the port range MaraDNS will bind to when 
 
786
making recursive queries.  MaraDNS, when making a recursive query, will
 
787
locally bind to a port number between recurse_min_bin_port and 
 
788
recurse_min_bind_port + recurse_number_ports - 1.
 
789
<p>
 
790
 
 
791
This number must be a power of 2 between
 
792
256 and 32768.  In other words, this must have the value 256, 512, 1024,
 
793
2048, 4096, 8192, 16384, or 32768.  The default value for this is 4096.
 
794
<p>
 
795
 
 
796
The sum of the values for recurse_min_bind_port + recurse_number_ports must
 
797
fit within the 16-bit value used for UDP ports.  In other words, these
 
798
two parameters, added together, can not be greater than 65534.
 
799
 
 
800
<h2>recursive_acl</h2>
 
801
recursive_acl: List of ips allowed to perform recursive queries with
 
802
the recursive portion of the MaraDNS server
 
803
<p>
 
804
 
 
805
The format of this string is identical to the format of an ipv4_alias
 
806
entry.
 
807
 
 
808
<h2>reject_aaaa</h2>
 
809
If this has a value of 1, a bogus SOA "not there" reply is sent whenever
 
810
an AAAA query is sent to MaraDNS.  In other words, every time a program asks
 
811
MaraDNS for an IPv6 IP address, instead of trying to process the request,
 
812
when this is set to 1, MaraDNS pretends the host name in question does not
 
813
have an IPv6 address.
 
814
<p>
 
815
 
 
816
This is useful for people who aren't using IPv6 but use applications (usually
 
817
*NIX command like applications like "telnet") which slow things down trying
 
818
to find an IPv6 address.
 
819
 
 
820
<h2>reject_ptr</h2>
 
821
If this has a value of 1, a bogus SOA "not there" reply is sent whenever
 
822
an PTR query is sent to MaraDNS.  In other words, every time a program asks
 
823
MaraDNS for an IP-to-name mapping, instead of trying to process the request,
 
824
when this is set to 1, MaraDNS pretends the IP in question does not
 
825
have a host name.
 
826
<p>
 
827
 
 
828
This is useful for people who don't need this data but use applications 
 
829
(usually *NIX command like applications like "telnet") which slow things 
 
830
down trying to look up a host name for an IP.
 
831
 
581
832
<h2>remote_admin</h2>
582
833
remote_admin: Whether we allow <tt>verbose_level</tt> to be changed
583
834
after MaraDNS is started.
596
847
resolving, then decreasing <tt>verbose_level</tt> so as to minimize
597
848
the size of MaraDNS' log.
598
849
 
 
850
<h2>retry_cycles</h2>
 
851
retry_cycles: The number of times the recursive resolver will try to contact 
 
852
all of the DNS servers to resolve a given name before giving up.  This 
 
853
has a default value of 2.
 
854
 
 
855
<h2>spammers</h2>
 
856
spammers: A list of DNS servers which the recursive resolver will
 
857
not query.
 
858
<p>
 
859
 
 
860
This is mainly used to not allow spam-friendly domains to
 
861
resolve, since spammers are starting to get in the habit of using
 
862
spam-friendly DNS servers to resolve their domains, allowing them
 
863
to hop from ISP to ISP.
 
864
<p>
 
865
 
 
866
The format of this string is identical to the format of an ipv4_alias
 
867
entry.
 
868
 
599
869
<h2>synth_soa_origin</h2>
600
870
When a CSV2 zone file doesn't have a SOA record in it, MaraDNS generates
601
871
a SOA record on the fly.  This variable determines the host name for
653
923
<p>
654
924
Whether the RD (recursion desired) flag is set or not when converting a TCP
655
925
DNS request in to a UDP DNS request is determined by whether the TCP client
656
 
is on the <b>recursive_acl</b> list.  Since MaraDNS 2.0 does not have 
657
 
recursion, the maradns daemon ignores the RD bit (Deadwood will not
658
 
process any queries without the RD bit set).
 
926
is on the <b>recursive_acl</b> list.
659
927
 
660
928
<h2>tcp_convert_server</h2>
661
929
This only applies to the zoneserver (general DNS-over-TCP) program.
666
934
multiple IPs, all values except the first one are presently
667
935
ignored.
668
936
 
 
937
<h2>timeout_seconds</h2>
 
938
This only applies when performing recursive lookups.  
 
939
<p>
 
940
 
 
941
The amount of time, in seconds, to wait for a reply from a remote DNS 
 
942
server before giving up and trying the next server on this list.  The 
 
943
default value is 2 seconds.
 
944
<p>
 
945
This is for setups where a recursive MaraDNS server is on a slow
 
946
network which takes more than two seconds to send and receive a DNS
 
947
packet.
 
948
<p>
 
949
 
 
950
Note that, the larger this value is, the slower MaraDNS will process 
 
951
recursive queries when a DNS server is not responding to DNS queries.
 
952
 
669
953
<h2>timestamp_type</h2>
670
954
timestamp_type: The type of timestamp to display.  The main purpose of
671
955
this option is to suppress the output of timestamps.  Since duende uses
703
987
 
704
988
<p> The default value for this variable is 5.
705
989
 
 
990
<h2>upstream_port</h2>
 
991
 
 
992
This is the port that MaraDNS' recursive resolver uses to contact other
 
993
DNS servers.  This is usually 53 (the default value), but certain unusual
 
994
MaraDNS setups (such as when resolving dangling CNAME records on but a
 
995
single IP) may need to have a different value for this.
 
996
 
706
997
<h2>verbose_level</h2>
707
998
verbose_level: The number of messages we log to stdout
708
999
<P>
723
1014
 
724
1015
<p> The default value for this variable is 1.
725
1016
 
 
1017
<h2>verbose_query</h2>
 
1018
verbose_query: Whether to verbosely output all DNS queries that the
 
1019
recursive DNS server receives.  If this is set to 1, then all recursive
 
1020
queries sent to MaraDNS will be logged.  
 
1021
 
 
1022
<p>
 
1023
 
 
1024
This is mainly used for debugging.
 
1025
 
726
1026
<h2>zone_transfer_acl</h2>
727
1027
zone_transfer_acl: List of ips allowed to perform zone transfers
728
1028
with the zone server