325 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
			
		
		
	
	
			325 lines
		
	
	
		
			18 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
| Version 1.2.9a fixes a bug in the 1.2.9 release that causes a build failure when
 | |
| pdnsd is configured with --enable-strict-rfc2181. Unless you use this option to
 | |
| compile pdnsd, there is no need to upgrade from 1.2.9 to 1.2.9a.
 | |
| 
 | |
| Version 1.2.9 has support for many additional RR types, in particular those
 | |
| needed for DNSSEC (though no support for the DNSSEC protocol itself yet in
 | |
| pdnsd). Caching data structures are now more efficient when they only store the
 | |
| most commonly used RR types. Fine-grained configurability over which RR-types
 | |
| are cache-able. Pdnsd now has support for EDNS (Extension mechanisms for DNS),
 | |
| although its usefulness is currently limited to enabling UDP messages larger
 | |
| than 512 bytes. Defining local TXT records in the configuration file is now
 | |
| supported.  A new configuration option provides a fix in case the query uptest
 | |
| fails due to remote servers ignoring empty queries. Several bugs have been fixed
 | |
| including a UDP socket descriptor leak that affected the FreeBSD platform, and
 | |
| an IPv6 port binding bug.
 | |
| 
 | |
| Version 1.2.8 implements support for automatic discovery of root servers.
 | |
| There are also some improvements in the resolver and a new default setting for
 | |
| the neg_rrs_pol configuration option.
 | |
| 
 | |
| Version 1.2.7-par fixes some security problems. It contains a fix for a
 | |
| "dangling pointer" bug that could cause pdnsd to crash when it received a long
 | |
| reply. It also addresses some of the issues raised in the CERT vulnerability
 | |
| note VU#800113 by making the default of query_port_start equal to 1024, thereby
 | |
| ensuring that source ports are randomly selected by the pdnsd resolver in the
 | |
| range 1024-65535. This release also fixes problems with compiling pdnsd for the
 | |
| ARM architecture and for the Darwin platform (Max OS X).  There are a number of
 | |
| (minor) new features. pdnsd now supports "include" files, essentially
 | |
| configuration files that only contain definitions for local records. It is now
 | |
| possible to define interactively, using pdnsd-ctl, any local record that can be
 | |
| defined in a configuration file.
 | |
| 
 | |
| Version 1.2.6-par has an upgraded license: GPL version 3.
 | |
| A bug has been fixed which which caused pdnsd to handle NXDOMAIN replies
 | |
| inefficiently when configured with neg_domain_pol=on.  Also the code for the
 | |
| ping test has been fixed, which was broken for 64-bit systems.  A new option
 | |
| randomize_servers can be used to give each server in a section of the
 | |
| configuration file an equal chance of being queried.  The new options reject,
 | |
| reject_policy and reject_recursively make it possible to check for the presence
 | |
| of certain IP addresses in the replies of name servers and to correct some types
 | |
| of unwanted replies or to censor these IP addresses.
 | |
| The pdnsd-ctl 'add a' and 'add aaaa' commands now allow multiple IP addresses to
 | |
| be specified for the same name. There are some further improvements to pdnsd's
 | |
| recursive resolver.
 | |
| 
 | |
| Version 1.2.5-par introduces a new query method: udp_tcp. With this method a UDP
 | |
| query is tried first and, if the UDP answer is truncated, the query is repeated
 | |
| using TCP, which is the behaviour that seems to be recommended by the DNS
 | |
| standards. There is a new configuration option use_nss, which can be turned off
 | |
| to prevent lengthy timeouts and stalls in certain situations. A bug has been
 | |
| fixed which could cause pdnsd to crash if debug output was generated before the
 | |
| debug output stream was properly initialized.
 | |
| 
 | |
| In version 1.2.4-par a memory leak and a minor buffer-overflow problem have been
 | |
| fixed. There is now a fix for some situations that would previously cause pdnsd
 | |
| to exit prematurely (such as ACPI S3 sleep or trying to attach strace to pdnsd).
 | |
| Time intervals specified in the configuration file can now be expressed in
 | |
| minutes, hours, days and weeks as well as seconds. Support for Apple Mac OS X
 | |
| v10.4 Tiger has been improved. The "pdnsd-ctl status" command now also provides
 | |
| some information about the status of the running threads. There are some further
 | |
| improvements in the debugging information provided by pdnsd.
 | |
| TCP-query support is now compiled in by default (but can still be disabled using
 | |
| the configure option --disable-tcp-queries).
 | |
| 
 | |
| In version 1.2.3-par the "pdnsd-ctl empty-cache" command can be provided with an
 | |
| include/exclude list, allowing the user to specify a selection of names to be
 | |
| removed, instead of emptying the cache completely.
 | |
| Additional improvements: pdnsd should now remain responsive while executing the
 | |
| "pdnsd-ctl empty-cache" command. With the query_method=tcp_udp option pdnsd will
 | |
| now also try a UDP query after a TCP connection times out, which should allow
 | |
| pdnsd to resolve the same names with query_method=tcp_udp as with
 | |
| query_method=udp_only, although perhaps with an occasional delay.
 | |
| "pdnsd-ctl config" or "pdnsd-ctl server" commands should now run without delays,
 | |
| even if pdnsd is performing ping or query uptests at the time. A problem with
 | |
| resolving certain names using root servers has been fixed.
 | |
| 
 | |
| Version 1.2.2-par has a number of important portability improvements. A bug has
 | |
| been fixed that prevented pdnsd from compiling successfully on some 64 bit
 | |
| architectures. The code for determining endianness (most significant or least
 | |
| significant byte first) should now be more portable. This release has
 | |
| (experimental) support for the Darwin (Apple Mac OS X) platform. On Linux
 | |
| systems, the configure script will now try to detect automatically whether the
 | |
| system implements the Native POSIX Thread Library, but the method used may not
 | |
| necessarily be foolproof. In addition, the debug features have been improved and
 | |
| should make it easier to find out why pdnsd considers some queries or replies
 | |
| malformed.
 | |
| 
 | |
| Version 1.2.1-par has improved support for non-Linux platforms. This release has
 | |
| (experimental) support for the Cygwin platform, and should also fix some
 | |
| compilation glitches that have been reported by FreeBSD users.
 | |
| 
 | |
| Version 1.2-par is a new and improved version of pdnsd! Most of the changes
 | |
| effect the internal workings of pdnsd, but there are also a number of
 | |
| interesting new features (well, I think they are interesting). Among the bugs
 | |
| fixed are two rather nasty ones which involve the handling of NXT and NAPTR
 | |
| records and which can cause pdnsd to crash or abort. The new features include a
 | |
| new server availability test which can be specified with uptest=query, support
 | |
| for reading the DNS configuration from resolv.conf files, a new option for
 | |
| optimizing the use of root servers, a new option that makes defining local
 | |
| records for reverse resolving easier, support for defining wildcard records, a
 | |
| new pdnsd-ctl command for reloading the config file without restarting pdnsd,
 | |
| and a new pdnsd-ctl command for dumping information about the names stored in
 | |
| the cache.
 | |
| The documentation has also been updated: there is now a pdnsd.conf man page. For
 | |
| a more complete list of the changes I'll have to refer you to README.par and the
 | |
| ChangeLog.
 | |
| 
 | |
| Version 1.1.11a-par contains a fix for FreeBSD users that bypasses a problem
 | |
| with the macro ENONET, which can cause a compilation failure when it is
 | |
| undefined. Linux users will notice no difference between 1.1.11a-par and
 | |
| 1.1.11-par.
 | |
| 
 | |
| Version 1.1.11-par has a rather large number of small changes, which are rather
 | |
| difficult to summarize. Among the bugs fixed are a race condition in the cache
 | |
| lookup code, a flaw in the code that caused a busy spin when a remote server
 | |
| answered with "Not Implemented", and problems with the -4 and -6 command-line
 | |
| options. Among the improvements are an alternative sorting algorithm which
 | |
| should allow pdnsd to start up faster when reading a large cache file from disk,
 | |
| automatic mapping of IPv4 to IPv6 addresses when running in IPv6 mode, somewhat
 | |
| more efficient memory use, better compression of the replies and changes in the
 | |
| parallel querying algorithm that should improve the chances of catching a reply
 | |
| from a remote server.  For a more complete list of the changes I'll have to
 | |
| refer you to README.par and the ChangeLog.
 | |
| 
 | |
| Version 1.1.10-par has a new parser for configuration files, completely
 | |
| rewritten from scratch in C. The main advantages are: (f)lex and yacc/bison are
 | |
| no longer needed to build pdnsd, more informative error messages instead of
 | |
| merely "parse error", and string literals no longer need to be enclosed in
 | |
| quotes in most cases.  Furthermore, a bug has been fixed that caused incorrect
 | |
| IPV6-type PTR records to be generated when sourcing /etc/hosts like files.
 | |
| There have been other small changes, more details can be found in the ChangeLog.
 | |
| 
 | |
| Version 1.1.9-par adds some missing pieces to the documentation (the pdnsd
 | |
| manual and the man page for pdnsd-ctl). The changes to the code consist mostly
 | |
| of optimizations, removal of some size limits due to fixed-size buffers, and
 | |
| some cleaning up. I've also tried to make the error responses of pdnsd-ctl more
 | |
| helpful.  More details can be found in the ChangeLog.
 | |
| 
 | |
| Version 1.1.8b1-par8 introduces a "delegation-only" feature that may be useful
 | |
| for blocking Verisign's Sitefinder. The parser for the configuration file now
 | |
| tolerates domain names missing a dot at the end. I have provided alternative
 | |
| implementations for some GNU extensions that I used in an effort to make the
 | |
| code more portable. In particular, the code should build on FreeBSD again. More
 | |
| details can be found in the README.par file.
 | |
| 
 | |
| Version 1.1.8b1-par7 fixing a number of bugs. I have also reworked some of the
 | |
| code for adding and removing entries in the cache in an effort to improve
 | |
| efficiency and stability. More details can be found in the ChangeLog.
 | |
| 
 | |
| Version 1.1.8b1-par6 introduces some further code cleanup. In addition the
 | |
| documentation has been revised.
 | |
| 
 | |
| Version 1.1.8b1-par5 fixes a troublesome allocation size error that has been
 | |
| discovered in Thomas Moestl's code. In practice this bug only wastes memory but
 | |
| it could also potentially lead to memory corruption. Upgrading is
 | |
| recommended. More details can be found in the ChangeLog.
 | |
| 
 | |
| Version 1.1.8b1-par4 has been released.  Due to incompatibilities between
 | |
| various implementations of the pthread library on Linux systems, problems can
 | |
| occur with signal handling in pdnsd. The usual symptom is failure by pdnsd to
 | |
| save the cache to disk, and /var/cache/pdnsd/pdnsd.cache remaining empty. If you
 | |
| experience this kind of trouble, try reconfiguring with different values for the
 | |
| new --with-thread-lib option. The allowable values are described in the
 | |
| documentation.
 | |
| 
 | |
| pdnsd is no longer maintained by Thomas Moestl: I have not had time to maintain
 | |
| pdnsd for quite a while now, and have been very slow to respond to issues, or
 | |
| did not respond at all. It is time that I officially announce that pdnsd is no
 | |
| longer actively maintained; I apologize to all those who reported bugs or asked
 | |
| questions without receiving any reply. However, Paul A. Rombouts has published a
 | |
| patch set against the last released version at
 | |
| http://www.phys.uu.nl/~rombouts/pdnsd.html, which cleans up a lot of code fixes
 | |
| many bugs.
 | |
| 
 | |
| Version 1.1.7a fixes a reversed assertion that would cause pdnsd to terminate
 | |
| if used with the ping uptest. No other changes were made.
 | |
| 
 | |
| Version 1.1.7 fixes some problems that might be remotely exploitable to
 | |
| gain access as the user pdnsd runs as (an unprivileged user by default). To do
 | |
| this, an attacker needs to control a name server that is queried by pdnsd, and
 | |
| send a malicious reply to such a query. Upgrading is strongly recommended!
 | |
| There are also minor bug fixes and stability improvements.
 | |
| 
 | |
| Version 1.1.6 adds the query_port_start and query_port_end options (contributed
 | |
| by Andreas Steinmetz), that allow confining the ports pdnsd uses for outgoing
 | |
| queries to a certain range. It also fixes numerous bugs, one of which could
 | |
| cause pdnsd to hang; update is therefore recommended.
 | |
| 
 | |
| Version 1.1.5 contains a fix for a security bug that would allow local users
 | |
| that are allowed to use pdnsd-ctl on a running pdnsd server to execute
 | |
| arbitrary code as the user that pdnsd runs as (or on Linux, when strict_setuid
 | |
| is not enabled, as the user that started pdnsd). The danger of this is usually
 | |
| quite limited; the status socket is not enabled by default, it's default
 | |
| permissions do only allow the user pdnsd runs as to use the socket,
 | |
| strict_setuid is enabled by default and pdnsd runs as an unprivileged user.
 | |
| There is also a new configure option, --enable-underscores, that will make
 | |
| pdnsd allow underscores in domain names. Furthermore, the SRV record handling
 | |
| has been fixed to allow underscores in any case (this was not allowed
 | |
| previously, but is required by the RFC). SOA records are not put in the
 | |
| answer section any more if no answers are found (this violates the RFC's).
 | |
| It may be put in the authority section in a later version.
 | |
| There are also various bugfixes in this release.
 | |
| Upgrade is recommended.
 | |
| 
 | |
| Version 1.1.4 fixes various smaller bugs, and should also improve the cache
 | |
| write performance especially for larger caches.	There are also two new
 | |
| features: servers can now be given a label (using the label server option)
 | |
| which can be used to identify them for the pdnsd-ctl server command
 | |
| (contributed by Andrew M. Bishop), and local records can be marked to make
 | |
| the domain record authoritative in pdnsd's cache (which means that pdnsd will
 | |
| assume that records that are not present in the cache for that domain are
 | |
| non-existent); this is on by default now, and can be controlled using the new
 | |
| authrec server option).
 | |
| 
 | |
| Version 1.1.3 added contrib/ and had a lot of robustness fixes.
 | |
| This release addresses a security hole that affects only Linux systems. Due to
 | |
| a bug in glibc, pdnsd could crash during a port scan. This release contains
 | |
| a workaround for this, as well as a fix for a deadlock under heavy load 
 | |
| conditions. It also fixes a possible problem that could be triggered by 
 | |
| malicious servers, and contains numerous bug fixes.
 | |
| A script, contributed by Marko Stolle, makes pdnsd useful in a DHCP setup.
 | |
| pdnsd also preservers the case of names in the cache, and should work much
 | |
| better on alpha machines (thanks for the contributions by Bjoern Fischer 
 | |
| and P.J. Bostley that made this possible). New types were dded for rr 
 | |
| sections and pdnsd-ctl.
 | |
| Upgrade is recommended.
 | |
| 
 | |
| Version 1.1.2 has a fix for a bug that could cause SERVFAIL to be 
 | |
| returned when NXDOMAIN would be appropriate. The bug surfaced only when
 | |
| pdnsd queried name servers with a behaviour different from BIND's in the
 | |
| NXDOMAIN case, e.g. pdnsd querying another pdnsd or e.g. djbdns. 
 | |
| 
 | |
| Version 1.1.1 fixes a possible race condition in status socket creation.
 | |
| This race might be used by a local attacker to change the access 
 | |
| permissions of a certain file in /tmp. The risk of this is probably 
 | |
| negligible. The default setup uses a non-privileged user, default mode 
 | |
| 0600, and the status socket is disabled normally, so this should be 
 | |
| relatively safe. I don't see any possibility to exploit this, it is
 | |
| more of a paranoia fix.
 | |
| There are also some other minor fixes and documentation improvements. 
 | |
| Upgrade is recommended. 
 | |
| 
 | |
| Version 1.1.0 introduces negative cacheing, pdnsd-ctl enhancements and
 | |
| a much improved FreeBSD support. The cache file format has changed from
 | |
| prior releases. Some configuration defaults have changed, too.
 | |
| 
 | |
| Version 1.0.15 is mostly a bugfix release. It also has a new option:
 | |
| randomize_recs in the global section.
 | |
| 
 | |
| Version 1.0.14 has a fix in icmp.c that will make it build properly
 | |
| on FreeBSD and older Linux systems.
 | |
| 
 | |
| Version 1.0.13 has some code cleanup, a fix for the Debian rc install,
 | |
| and a security fix (contributed by Olaf Kirch): when changing
 | |
| user and group id, pdnsd did not drop supplementary group IDs that
 | |
| the original user was member of.
 | |
| 
 | |
| Version 1.0.12 is a bugfix release and contains some security
 | |
| enhancements. There are also inclusion/exclusion lists for servers
 | |
| (new options include=, exclude=, policy= in the server
 | |
| section).
 | |
| 
 | |
| Version 1.0.11 fixes two bugs that might be used for denial-of-service
 | |
| attacks, upgrading is recommended.
 | |
| 
 | |
| Versions 1.0.9 and 1.0.10 are bugfix releases.
 | |
| 
 | |
| Version 1.0.8 introduces special linux ppp device support contributed
 | |
| by Ron Yorston, and has some bugfixes.
 | |
| 
 | |
| Version 1.0.7 introduces autoconf support, many new config file options and
 | |
| the new pdnsd-ctl run-time configuration program.
 | |
| 
 | |
| Version 1.0.6 has another set of bugfixes, in addition to higher compile-
 | |
| time configurability and UDP query support. It also contains Debian rc
 | |
| scripts contributed by Markus Mohr.
 | |
| 
 | |
| Version 1.0.5 has some bugfixes and the new "server_ip" option 
 | |
| contributed by Wolfgang Ocker.
 | |
| 
 | |
| Version 1.0.4 introduces the new options run_as, strict_setuid and
 | |
| paranoid. These new options are optional security enhancements.
 | |
| 
 | |
| Versions 1.0.1, 1.0.2 and 1.0.3 are bugfix releases.
 | |
| 
 | |
| Version 1.0.0 has a lot of changes compared to the 0.9.x tree, but much of 
 | |
| them "under the hood":
 | |
| - IPv6 support (experimental; compile- and run-time configurable)
 | |
| - FreeBSD (and such hopefully *BSD) support
 | |
| - better rfc2181 compatability
 | |
| - new options:
 | |
|   - serve_aliases in source section
 | |
|   - linkdown_kluge in global section 
 | |
|   - max_ttl in global section 
 | |
| - cache-code reorganization, only one unified hash (of variable depth)
 | |
| - Optimizations & cleanups
 | |
| - Automatic deps (only interesting for developers ;-)
 | |
| 
 | |
| Version 0.9.11 fixes a locally exploitable security hole (the cache file was
 | |
| world writeable by default). Please see ChangeLog.old for details.
 | |
| 
 | |
| Version 0.9.10 fixes some bugs and improves build on Red Hat.
 | |
| 
 | |
| Version 0.9.9 contains the rc scripts for Red Hat Linux contributed by Torben 
 | |
| Janssen, in addition to code cleanups and bugfixes.
 | |
| The meaning of the option -v has changed in this release.
 | |
| There is also a new config file option "lean_query" that is on by default. It 
 | |
| is an optimization, so please look in the docs when updating whether you want 
 | |
| it switched on or not.
 | |
| 
 | |
| When compiling versions after 0.9.8, you will probably get more
 | |
| compiler warningsthan before. This is because the C compiler settings
 | |
| have been made stricter.
 | |
| 
 | |
| Version 0.9.8 fixes a minor bug some build problems with glibc2.0 systems.
 | |
| 
 | |
| The versions 0.9.6 and 0.9.7 are bugfix releases.
 | |
| 
 | |
| Version 0.9.5 introduces uptest=exec, and a modified config file syntax (cache
 | |
| sizes are now specified in kB).
 | |
| 
 | |
| Version 0.9.4 was the first to be released to the public. For information on 
 | |
| changes, see ChangeLog.
 | |
| 
 |