Commit Graph

346 Commits

Author SHA1 Message Date
Evan Hunt
b66b333f59 [master] dnstap
4235.	[func]		Added support in named for "dnstap", a fast method of
			capturing and logging DNS traffic, and a new command
			"dnstap-read" to read a dnstap log file.  Use
			"configure --enable-dnstap" to enable this
			feature (note that this requires libprotobuf-c
			and libfstrm). See the ARM for configuration details.

			Thanks to Robert Edmonds of Farsight Security.
			[RT #40211]
2015-10-02 12:32:42 -07:00
Mark Andrews
4d085258cc make macro name match category name 2015-09-29 15:02:49 +10:00
Mark Andrews
a0ef8211d3 4201. [func] The default preferred-glue is now the address record
type of the transport the query was received
                        over.  [RT #40468]
2015-09-11 13:27:58 +10:00
Evan Hunt
420a43c8d8 [master] timing safe memory comparisons
4183.	[cleanup]	Use timing-safe memory comparisons in cryptographic
			code. Also, the timing-safe comparison functions have
			been renamed to avoid possible confusion with
			memcmp(). [RT #40148]
2015-08-17 18:26:44 -07:00
Evan Hunt
bf4a7968e8 [master] errors in pipelined queries could assert
4180.	[bug]		Error responses in pipelined queries could
			cause a crash in client.c. [RT #40289]
2015-08-14 08:34:54 -07:00
Mark Andrews
58eb2006a4 return notimp for qcount=0 unimplemeneted opcodes
(cherry picked from commit 7c10dc502a34f88f11c6b6469bb234c72e61fec8)
2015-07-24 13:37:12 +10:00
Evan Hunt
1479200aa0 [master] 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.

			See the ARM for details of these options. [RT #37125]
2015-07-08 22:53:39 -07:00
Mark Andrews
4968e1de7e allow named to build w/o openssl 2015-07-08 11:54:25 +10:00
Evan Hunt
70d987def5 [master] traffic size stats
4156.	[func]		Added statistics counters to track the sizes
			of incoming queries and outgoing responses in
			histogram buckets, as specified in RSSAC002.
			[RT #39049]
2015-07-06 22:29:06 -07:00
Mark Andrews
3e33f4198d 4154. [bug] A OPT record should be included with the FORMERR
response when there is a malformed EDNS option.
                        [RT #39647]

4153.   [bug]           Dig should zero non significant +subnet bits.  Check
                        that non significant ECS bits are zero on receipt.
                        [RT #39647]
2015-07-06 12:52:37 +10:00
Mark Andrews
ce67023ae3 4152. [func] Implement DNS COOKIE option. This replaces the
experimental SIT option of BIND 9.10.  The following
                        named.conf directives are avaliable: send-cookie,
                        cookie-secret, cookie-algorithm and nocookie-udp-size.
                        The following dig options are available:
                        +[no]cookie[=value] and +[no]badcookie.  [RT #39928]
2015-07-06 09:44:24 +10:00
Mark Andrews
c82b378115 4108. [func] A additional nxdomain redirect (nxdomain-redirect)
method is now supported. [RT #37989]
2015-04-23 16:57:15 +10:00
Francis Dupont
ab973ec40c misc x64 VS 2015 CTP fixes [#39308] 2015-04-17 11:39:26 +02:00
Francis Dupont
bcb68be0a8 misc fixes for VS 2015 CTP #39267 2015-04-17 02:57:02 +02:00
Mark Andrews
af669cb4fd 4074. [cleanup] Cleaned up more warnings from gcc -Wshadow. [RT #38708] 2015-02-27 10:55:55 +11:00
Evan Hunt
8378b0c190 [master] reduce rrl logging noise
4067.	[cleanup]	Reduce noise from RRL when query logging is
			disabled. [RT #38648]
2015-02-25 16:44:43 -08:00
Mukund Sivaraman
4eefa351cc Fix a leak of query fetchlock (#38454)
4052.	[bug]		Fix a leak of query fetchlock. [RT #38454]
2015-02-03 11:42:58 +05:30
Evan Hunt
761d135ed6 [master] add TCP pipelining support
4040.	[func]		Added server-side support for pipelined TCP
			queries. TCP connections are no longer closed after
			the first query received from a client. (The new
			"keep-response-order" option allows clients to be
			specified for which the old behavior will still be
			used.) [RT #37821]
2015-01-20 16:14:09 -08:00
Tinderbox User
c110d61b17 update copyright notice / whitespace 2015-01-20 23:45:26 +00:00
Evan Hunt
11463c0ac2 [master] clean up gcc -Wshadow warnings
4039.	[cleanup]	Cleaned up warnings from gcc -Wshadow. [RT #37381]
2015-01-20 13:29:18 -08:00
Mark Andrews
ffeaac1d82 3961. [bug] Forwarding of SIG(0) signed UPDATE messages failed with
BADSIG.  [RT #37216]
2014-10-01 07:24:16 +10:00
Mark Andrews
f4a9c9226a silence signed/unsigned warning 2014-09-16 23:46:37 +10:00
Mark Andrews
947cf282a7 3949. [experimental] Experimental support for draft-andrews-edns1 by sending
EDNS(1) queries (define DRAFT_ANDREWS_EDNS1 when
                        building).  Add support for limiting the EDNS version
                        advertised to servers: server { edns-version 0; };
                        Log the EDNS version received in the query log.
                        [RT #35864]
2014-09-10 15:31:40 +10:00
Evan Hunt
a878301981 [master] servfail cache
3943.	[func]		SERVFAIL responses can now be cached for a
			limited time (configured by "servfail-ttl",
			default 10 seconds, limit 30). This can reduce
			the frequency of retries when an authoritative
			server is known to be failing, e.g., due to
			ongoing DNSSEC validation problems. [RT #21347]
2014-09-03 23:28:14 -07:00
Evan Hunt
d46855caed [master] ECS authoritative support
3936.	[func]		Added authoritative support for the EDNS Client
			Subnet (ECS) option.

			ACLs can now include "ecs" elements which specify
			an address or network prefix; if an ECS option is
			included in a DNS query, then the address encoded
			in the option will be matched against "ecs" ACL
			elements.

			Also, if an ECS address is included in a query,
			then it will be used instead of the client source
			address when matching "geoip" ACL elements.  This
			behavior can be overridden with "geoip-use-ecs no;".

			When "ecs" or "geoip" ACL elements are used to
			select a view for a query, the response will include
			an ECS option to indicate which client network the
			answer is valid for.

			(Thanks to Vincent Bernat.) [RT #36781]
2014-08-28 22:05:57 -07:00
Mark Andrews
9b819daddf 3862. [cleanup] Return immediately if we are not going to log the
message in ns_client_dumpmessage.
2014-05-27 12:16:04 +10:00
Mark Andrews
9f1959f0a7 silence signed/unsigned comparision warning 2014-03-16 11:14:26 +11:00
Mark Andrews
9e39bafd2e adjust SIT computation 2014-02-24 09:29:49 +11:00
Mark Andrews
02a5e3ed85 3755. [func] Add stats counters for known EDNS options + others.
[RT #35447]
2014-02-24 09:24:25 +11:00
Mark Andrews
6d7aa71f2f encrypt nonce and time 2014-02-24 07:16:00 +11:00
Mark Andrews
89b23dc57e silence compiler warning 2014-02-23 11:44:12 +11:00
Mark Andrews
47cb20eae1 add EDNS EXPIRE processing on ixfr and axfr out 2014-02-20 17:51:31 +11:00
Mark Andrews
16134801ce 3750. [experimental] Partially implement EDNS EXPIRE option as described
in draft-andrews-dnsext-expire-00.  Retrivial of
                        remaining time to expiry from slave zones is supported.

                        EXPIRE uses an experimental option code (65002) and
                        is subject to change. [RT #35416]
2014-02-20 14:56:20 +11:00
Mark Andrews
801b958a5c s/DNS_EDNSOPTIONS/DNS_EDNSOPTIONS/ 2014-02-20 14:00:54 +11:00
Mark Andrews
72ba6ba736 define DNS_OPT_EDNSOPTIONS 2014-02-20 13:55:21 +11:00
Francis Dupont
f1a6c8e78c WIN32 master fixes 2014-02-19 23:17:52 +01:00
Mark Andrews
f45c36fb19 add client cookie in hmacsha* 2014-02-19 20:19:36 +11:00
Mark Andrews
b5f6271f4d 3744. [experimental] SIT: send and process Source Identity Tokens
(which are similar to DNS Cookies by Donald Eastlake)
                        and are designed to help clients detect off path
                        spoofed responses and for servers to detect legitimate
                        clients.

                        SIT use a experimental EDNS option code (65001).

                        SIT can be enabled via --enable-developer or
                        --enable-sit.  It is on by default in Windows.

                        RRL processing as been updated to know about SIT with
                        legitimate clients not being rate limited. [RT #35389]
2014-02-19 12:53:42 +11:00
Evan Hunt
31f6244cc2 [master] tcp and udp stats counters
3739.	[func]		Added per-zone stats counters to track TCP and
			UDP queries. [RT #35375]
2014-02-15 20:57:00 -08:00
Tinderbox User
81f58902eb update copyright notice 2014-02-07 23:46:39 +00:00
Evan Hunt
166341d554 [master] add no-case-compress
3731.	[func]		Added a "no-case-compress" ACL, which causes
			named to use case-insensitive compression
			(disabling change #3645) for specified
			clients. (This is useful when dealing
			with broken client implementations that
			use case-sensitive name comparisons,
			rejecting responses that fail to match the
			capitalization of the query that was sent.)
			[RT #35300]
2014-02-06 19:37:26 -08:00
Mark Andrews
c3c8823fed 3681. [port] Update the Windows build system to support feature
selection and WIN64 builds.  This is a work in
                        progress. [RT #34160]
2013-12-04 12:47:23 +11:00
Mark Andrews
cb69994ff8 3645. [protocol] Use case sensitive compression when responding to
queries. [RT #34737]
2013-09-05 12:22:34 +10:00
Mark Andrews
8e091f3d3e 3633. [cleanup] Refactor OPT processing in named to make it easier
to support new EDNS options. [RT #34414]
2013-08-15 12:01:12 +10:00
Evan Hunt
f3c8e48b95 [master] change RRL log category 'query-errors'
3575.	[func]		Changed the logging category for RRL events from
			'queries' to 'query-errors'. [RT #33540]
2013-05-21 12:20:54 -07:00
Evan Hunt
a6d43d18b1 [master] fixed several RRL issues
3554.	[bug]		RRL failed to correctly rate-limit upward
			referrals and failed to count dropped error
			responses in the statistics. [RT #33225]
2013-04-25 14:42:44 -07:00
Evan Hunt
67adc03ef8 [master] add DSCP support
3535.	[func]		Add support for setting Differentiated Services Code
			Point (DSCP) values in named.  Most configuration
			options which take a "port" option (e.g.,
			listen-on, forwarders, also-notify, masters,
			notify-source, etc) can now also take a "dscp"
			option specifying a code point for use with
			outgoing traffic, if supported by the underlying
			OS. [RT #27596]
2013-03-22 14:05:33 -07:00
Evan Hunt
55e5c51e66 [master] DNS RRL
3494.	[func]		DNS RRL: Blunt the impact of DNS reflection and
			amplification attacks by rate-limiting substantially-
			identical responses. [RT #28130]
2013-02-25 12:45:56 -08:00
Tinderbox User
573d78f3d5 update copyright notice 2013-02-21 23:45:56 +00:00
Evan Hunt
2425d8bb7c [master] truncate logged rdata if too long
3490.	[bug]		When logging RDATA during update, truncate if it's
                        too long. [RT #32365]

cherry picked from:
        commit 16ddb566e5a5b57bf925adef2b5543dddc1de49b
        commit cd97e0c23b09f38aac49aabab66ee13c68b7a3f3
        commit d087fa982649c081d58c5bb16e63da3428e2b89d
        commit d0795bdffef57612dd7654ffd09c9f4216eee2c8
2013-02-20 13:54:52 -08:00