HPlogo Configuring and Managing MPE/iX Internet Services

Appendix B BIND 8 Configuration File

MPE documents

Complete PDF
Table of Contents
Glossary
Index

E0802 Edition 6 ♥
E0701 Edition 5
E0400 Edition 4

The following is a dummy configuration file example. This explains in brief what each configuration directive is useful for and its syntax. All the directives are not required for a typical BIND configuration.
/*
* This is a worthless, nonrunnable example of a named.conf file that has
* every conceivable syntax element in use. We use it to test the parser.
* It could also be used as a conceptual template for users of new features.
*/

/*
* C-style comments are OK
*/

// So are C++-style comments

# So are shell-style comments

// watch out for ";" -- it's important!

options {
         directory ".";                        // use current directory
         named-xfer "/usr/libexec/named-xfer"; // _PATH_XFER
         dump-file "named_dump.db";            // _PATH_DUMPFILE
         pid-file "/var/run/named.pid";        // _PATH_PIDFILE
         statistics-file "named.stats";        // _PATH_STATS
         check-names master fail;
         check-names slave warn;
         check-names response ignore;
         datasize default;
         stacksize default;
         coresize default;
         files unlimited;
         recursion yes;
         fetch-glue yes;
         fake-iquery no;
         notify yes;                      // send NOTIFY messages. You can set
                                          // notify on a zone-by-zone
                                          // basis in the "zone" statement
                                          // see (below)
         auth-nxdomain yes;               // always set AA on NXDOMAIN.
                                          // don't set this to 'no' unless
                                          // you know what you're doing -- older
                                          // servers won't like it.
         multiple-cnames no;              // if yes, then a name my have more
                                          // than one CNAME RR. This use
                                          // is non-standard and is not
                                          // recommended, but it is available
                                          // because previous releases supported
                                          // it and it was used by large sites
                                          // for load balancing.
allow-query { any; };
allow-transfer { any; };
transfers-in 10;                          // DEFAULT_XFERS_RUNNING, cannot be
                                          // set > than MAX_XFERS_RUNNING (20)
transfers-per-ns 2;                       // DEFAULT_XFERS_PER_NS
transfers-out 0;                          // not implemented
max-transfer-time-in 120;                 // MAX_XFER_TIME; the default number
                                          // of minutes an inbound zone transfer
                                          // may run. May be set on a per-zone
                                          // basis.

/*
 * The "transfer-format" option specifies the way outbound zone
 * transfers (i.e. from us to them) are formatted. Two values are
 * allowed:
 *
 *     one-answer                   Each RR gets its own DNS message.
 *                                  This format is not very efficient,
 *                                  but is widely understood.All
 *                                  versions of BIND prior to 8.1 generate
 *                                  this format for outbound zone
 *                                  and require it on inbound transfers.
 *
 *     many-answers                 As many RRs as will fit are put into
 *                                  each DNS message. This format is
 *                                  the most efficient, but is only known
 *                                  to work with BIND 8. Patches to
 *                                  BIND 4.9.5 named-xfer that enable it
 *                                  to understand 'many-answers' will be
 *                                  available.
 *
 * If you are going to be doing zone transfers to older servers, you
 * shouldn't use 'many-answers'. 'transfer-format' may also be set
 * on a host-by-host basis using the 'server' statement (see below).
 */
transfer-format one-answer;
query-source address * port *;
/*
 * The "forward" option is only meaningful if you've defined
 * forwarders. "first" gives the normal BIND
 * forwarding behavior, i.e. ask the forwarders first, and if that
 * doesn't work then do the full lookup. You can also say
 * "forward only;" which is what used to be specified with
 * "slave" or "options forward-only". "only" will never attempt
 * a full lookup; only the forwarders will be used.
 */
forward first;
forwarders { };                       // default is no forwarders
/*
 * Here's a forwarders example that isn't trivial
 */
/*
forwarders {
          1.2.3.4;
          5.6.7.8;
};
*/
topology { localhost; localnets; };   // prefer local nameservers
/*
 * Here's a more complicated topology example; it's commented out
 * because only one topology block is allowed.
 * topology {
          10/8;                       // prefer network 10.0.0.0
                                      // netmask 255.0.0.0 most
          !1.2.3/24;                  // don't like 1.2.3.0 netmask
                                      // 255.255.255.0 at all
          { 1.2/16; 3/8; };           // like 1.2.0.0 netmask 255.255.0.0
                                      // and 3.0.0.0 netmask 255.0.0.0
                                      // equally well, but less than 10/8
};
*/

listen-on port 53 { any; };         // listen for queries on port 53 on
                                    // any interface on the system
                                    // (i.e. all interfaces). The
                                    // "port 53" is optional; if you
                                    // don't specify a port, port 53
                                    // is assumed.
/*
 * Multiple listen-on statements are allowed. Here's a more
 * complicated example:
 */
/*
listen-on { 5.6.7.8; };              // listen on port 53 on interface
                                     // 5.6.7.8
listen-on port 1234 {                // listen on port 1234 on any
          !1.2.3.4;                  // interface on network 1.2.3
          1.2.3/24;                  // netmask 255.255.255.0, except for
};                                   // interface 1.2.3.4.
*/

/*
 * Interval Timers
 */
clean-interval 60;                   // clean the cache of expired RRs
                                     // every 'clean-interval' minutes
interface-interval 60;               // scan for new or deleted interfaces
                                     // every 'interface-interval' minutes
statistics-interval 60;              // log statistics every
                                     // 'statistics-interval' minutes
};

zone "master.demo.zone" {
          type master;               // what used to be called "primary"
          file "master.demo.zone";
check-names fail;
allow-update { none; };
allow-transfer { any; };
allow-query { any; };
// notify yes;                       // send NOTIFY messages for this
                                     // zone? The global option is used
                                     // if "notify" is not specified
                                     // here.
also-notify { };                     // don't notify any nameservers other
                                     // than those on the NS list for this
                                     // zone
};

zone "slave.demo.zone" {
          type slave;                // what used to be called "secondary"
          file "slave.demo.zone";
          masters {
               1.2.3.4;              // where to zone transfer from
               5.6.7.8;
          };
          check-names warn;
          allow-update { none; };
          allow-transfer { any; };
          allow-query { any; };
          max-transfer-time-in 120;  // if not set, global option is used.
                                     //   also-notify { };
                                     // don't notify any nameservers other
                                     // than those on the NS list for this
                                     // zone
};

zone "stub.demo.zone" {
          type stub;                   // stub zones are like slave zones,
                                       // except that only the NS records
                                       // are transferred.
          file "stub.demo.zone";
          masters {
               1.2.3.4;                // where to zone transfer from
               5.6.7.8;
          };
          check-names warn;
          allow-update { none; };
          allow-transfer { any; };
          allow-query { any; };
          max-transfer-time-in 120;    // if not set, global option is used.
};

zone "." {
          type hint;                   // used to be specified w/
                                       //   "cache" file "cache.db";
};

acl can_query { !1.2.3/24; any; };     // network 1.2.3.0 mask 255.255.255.0
                                       // is disallowed; rest are OK
acl can_axfr { 1.2.3.4; can_query; };  // host 1.2.3.4 and any host allowed
                                       // by can_query are OK

zone "non-default-acl.demo.zone" {
          type master;
          file "foo";
          allow-query { can_query; };
          allow-transfer { can_axfr; };
          allow-update {
               1.2.3.4;
               5.6.7.8;servers.
          };
};

key sample_key {                       // for TSIG; supported by parser
          algorithm hmac-md5;          // but not yet implemented in the
          secret "your secret here";   // rest of the server
};

key key2 {
          algorithm hmac-md5;
          secret "ereh terces rouy";
};

server 1.2.3.4 {
          bogus no;                    // if yes, we won't query or listen
                                       // to this server
          transfer-format one-answer;  // set transfer format for this
                                       // server (see the description of
                                       // 'transfer-format' above)
                                       // if not specified, the global option
                                       // will be used
          transfers 0;                 // not implemented
          keys { sample_key; key2; };  // for TSIG; supported by the parser
                                       // but not yet implemented in the
                                       // rest of the server
};

logging {
          /*
           * All log output goes to one or more "channels"; you can make as
           * many of them as you want.
           */

          channel syslog_errors {       // this channel will send errors or
                  syslog user;          // or worse to syslog (user facility)
                  severity error;
          };

          /*
           * Channels have a severity level. Messages at severity levels
           * greater than or equal to the channel's level will be logged on
           * the channel. In order of decreasing severity, the levels are:
           *
           *     critical               a fatal error
           * error
           * warning
           * notice                     a normal, but significant event
           * info                       an informational message
           * debug 1                    the least detailed debugging info
           * ...
           * debug 99                   the most detailed debugging info
           */
          /*
           * Here are the built-in channels:
           *
           *     channel default_syslog {
           *             syslog daemon;
           *             severity info;
           *     };
           *
           *     channel default_debug {
           *             file "named.run";
           *             severity dynamic;   // this means log debugging
           *                                 // at whatever debugging level
           *                                 // the server is at, and don't
           *                                 // log anything if not
           *                                 // debugging
           *     };
           *
           *     channel null {              // this is the bit bucket;
           *             file "/dev/null"    // any logging to this channel
           *                                 // is discarded.
           *
         };
           *
           *     channel default_stderr {    // writes to stderr
           *             file "<stderr>";    // this is illustrative only;
           *                                 // there's currently no way
           *                                 // of saying "stderr" in the
           *                                 // configuration language.
           *                                 // i.e. don't try this at home.
           *             severity info; * };
           *
           *     default_stderr only works before the server daemonizes (i.e.
           *     during initial startup) or when it is running in foreground
           *     mode (-f command line option).
           */
          /*
           * There are many categories, so you can send the logs
           * you want to see wherever you want, without seeing logs you
           * don't want. Right now the categories are
           *
           *     default                 the catch-all. many things still
           *                             aren't classified into categories, and
           *                             they all end up here. also, if you
           *                             don't specify any channels for a
           *                             category, the default category is used
           *                             instead.
           *     config                  high-level configuration file
           *                             processing
           *     parser                  low-level configuration file processing
           *     queries                 what used to be called "query logging"
           *     lame-servers            messages like "Lame server on ..."
           *     statistics
           *     panic                   if the server has to shut itself
           *                             down due to an internal problem, it
           *                             logs the problem here (as well as
           *                             in the problem's native category)
           *     update                  dynamic update
           *     ncache                  negative caching
           *     xfer-in                 zone transfers we're receiving
           *     xfer-out                zone transfers we're sending
           *     db                      all database operations
           *     eventlib                debugging info from the event system
           *                             (see below)
           *     packet                  dumps of packets received and sent
           *                             (see below)
           *     notify                  the NOTIFY protocol
           *     cname                   messages like "XX points to a CNAME"
           *     security                approved/unapproved requests
           *     os                      operating system problems
           *     insist                  consistency check failures
           *     maintenance             periodic maintenance
           *     load                    zone loading
           *     response-checks         messages like
           *                             "Malformed response ..."
           *                             "wrong ans. name ..."
           *                             "unrelated additional info ..."
           *                             "invalid RR type ..."
           *                             "bad referral ..."
           */

          category parser {
                 syslog_errors;            // you can log to as many channels
                 default_syslog;           // as you want
          };

          category lame-servers { null; }; // don't log these at all

          channel moderate_debug {
                  severity debug 3;        // level 3 debugging to file
                  file "foo";              // foo
                  print-time yes;          // timestamp log entries
                  print-category yes;      // print category name
                  print-severity yes;      // print severity level
                  /*
                   * Note that debugging must have been turned on either
                   * on the command line or with a signal to get debugging
                   * output (non-debugging output will still be written to
                   * this channel).
                   */
          };

          /*
           * If you don't want to see "zone XXXX loaded" messages but do
           * want to see any problems, you could do the following.
           */
          channel no_info_messages {
                  syslog;
                  severity notice;
          };

          category load { no_info_messages; };
          /*
           * You can also define category "default"; it gets used when no
           * "category" statement has been given for a category.
           */
          category default {
                   default_syslog;
                   moderate_debug;
          };

          /*
           * If you don't define category default yourself, the default
           * default category will be used. It is
* * category default { default_syslog; default_debug; }; */ /* * If you don't define category panic yourself, the default * panic category will be used. It is * * category panic { default_syslog; default_stderr; }; */ /* * Two categories, 'packet' and 'eventlib', are special. Only one * channel may be assigned to each of them, and it must be a * file channel. If you don't define them yourself, they default to * * category eventlib { default_debug; }; * * category packet { default_debug; }; */ }; include "filename"; // can't do within a statement




Appendix A Samba for MPE/iX Sample Comfiguration File


Appendix C BIND 8.1 Enhanced Features