Files
bind9/bin/tests/system
Evan Hunt 83d0b1ab69 [v9_10] DDoS mitigation features
3938.	[func]		Added quotas to be used in recursive resolvers
			that are under high query load for names in zones
			whose authoritative servers are nonresponsive or
			are experiencing a denial of service attack.

			- "fetches-per-server" limits the number of
			  simultaneous queries that can be sent to any
			  single authoritative server.  The configured
			  value is a starting point; it is automatically
			  adjusted downward if the server is partially or
			  completely non-responsive. The algorithm used to
			  adjust the quota can be configured via the
			  "fetch-quota-params" option.
			- "fetches-per-zone" limits the number of
			  simultaneous queries that can be sent for names
			  within a single domain.  (Note: Unlike
			  "fetches-per-server", this value is not
			  self-tuning.)
			- New stats counters have been added to count
			  queries spilled due to these quotas.

			These options are not available by default;
			use "configure --enable-fetchlimit" (or
			--enable-developer) to include them in the build.

			See the ARM for details of these options. [RT #37125]
2015-07-08 22:55:31 -07:00
..
2014-08-07 23:45:43 +00:00
2014-06-24 13:50:41 +10:00
2015-05-28 11:10:45 +10:00
2014-02-20 23:46:35 +00:00
2014-03-06 23:46:08 +00:00
2014-05-07 23:45:47 +00:00
2014-06-11 10:28:49 +10:00
2014-10-02 22:37:50 -07:00
2014-05-30 09:42:32 +10:00
2014-02-17 23:46:29 +00:00
2014-10-20 23:45:55 +00:00
2014-11-17 23:45:44 +00:00
2014-05-07 23:45:47 +00:00
2015-05-23 14:46:47 +02:00
2014-06-24 13:50:41 +10:00
2014-08-21 23:45:46 +00:00
2015-05-04 12:52:28 -07:00
2014-11-05 23:45:45 +00:00
2015-07-08 22:55:31 -07:00
2015-06-12 23:45:59 +00:00
2015-05-08 23:45:50 +00:00
2014-03-06 11:11:27 -08:00
2014-06-02 13:53:37 +10:00
2014-06-11 10:28:49 +10:00
2015-05-28 23:45:50 +00:00
2014-06-25 16:16:52 +10:00
2014-10-02 23:45:51 +00:00
2014-05-07 23:45:47 +00:00
2015-07-08 22:55:31 -07:00
2015-07-08 22:55:31 -07:00
2015-07-08 22:55:31 -07:00
2014-06-13 11:47:37 +10:00
2014-05-07 23:45:47 +00:00
2014-04-29 23:45:46 +00:00

Copyright (C) 2004, 2010, 2011, 2013, 2015  Internet Systems Consortium, Inc. ("ISC")
Copyright (C) 2000, 2001  Internet Software Consortium.
See COPYRIGHT in the source root or http://isc.org/copyright.html for terms.

This is a simple test environment for running bind9 system tests
involving multiple name servers.

There are multiple test suites, each in a separate subdirectory and
involving a different DNS setup.  They are:

  dnssec/	DNSSEC tests
  forward/	Forwarding tests
  glue/		Glue handling tests
  limits/	Tests of handling of large data (close to server limits)
  lwresd/	Tests of the lightweight resolver library and daemon
  notify/	More NOTIFY tests
  nsupdate/	Dynamic update and IXFR tests
  resolver/     Regression tests for resolver bugs that have been fixed
		(not a complete resolver test suite)
  rrl/		query rate limiting
  rpz/		Tests of response policy zone (RPZ) rewriting
  rpzrecurse/	Another set of RPZ tests to check recursion behavior
  stub/		Tests of stub zone functionality
  unknown/	Unknown type and class tests
  upforwd/	Update forwarding tests
  views/	Tests of the "views" statement
  xfer/		Zone transfer tests
  xferquota/	Zone transfer quota tests

Typically each test suite sets up 2-5 name servers and then performs
one or more tests against them.  Within the test suite subdirectory,
each name server has a separate subdirectory containing its
configuration data.  By convention, these subdirectories are named
"ns1", "ns2", etc.

The tests are completely self-contained and do not require access to
the real DNS.  Generally, one of the test servers (ns1) is set up as a
root name server and is listed in the hints file of the others.

To enable all servers to run on the same machine, they bind to
separate virtual IP address on the loopback interface.  ns1 runs on
10.53.0.1, ns2 on 10.53.0.2, etc.  Before running any tests, you must
set up these addresses by running "ifconfig.sh up" as root.

Mac OS X:
If you wish to make the interfaces survive across reboots
copy org.isc.bind.system and org.isc.bind.system to
/Library/LaunchDaemons then run
"launchctl load /Library/LaunchDaemons/org.isc.bind.system.plist" as
root.

The servers use port 5300 instead of the usual port 53, so they can be
run without root privileges once the interfaces have been set up.

The tests can be run individually like this:

  sh run.sh xfer
  sh run.sh notify
  etc.

To run all the tests, just type "make test".

When running system tests, named and lwresd can be run under
Valgrind. The output from Valgrind are sent to per-process files that
can be reviewed after the test has completed. To enable this, set the
USE_VALGRIND environment variable to "helgrind" to run the Helgrind
tool, or any other value to run the Memcheck tool. To use "helgrind"
effectively, build BIND with --disable-atomic.