summaryrefslogtreecommitdiffstats
path: root/CHANGES
diff options
context:
space:
mode:
Diffstat (limited to 'CHANGES')
-rw-r--r--CHANGES1288
1 files changed, 1288 insertions, 0 deletions
diff --git a/CHANGES b/CHANGES
new file mode 100644
index 0000000..97035a1
--- /dev/null
+++ b/CHANGES
@@ -0,0 +1,1288 @@
+2024-08-30 Jerry Lundström
+
+ Release 2.15.2
+
+ This releases fixes 3 issues detected by code analysis tools:
+ - File not closed and memory not freed during error while loading known
+ TLD file
+ - https://github.com/DNS-OARC/dsc/security/code-scanning/22
+ label buffer should be static
+ - https://github.com/DNS-OARC/dsc/security/code-scanning/20
+ unsigned difference expression
+
+ 855f037 CodeQL
+ b00cb11 Stack
+ c4d3634 Sonar
+ 26c3b9e Badges, fixes
+ b4a9171 Workflow
+
+2024-04-23 Jerry Lundström
+
+ Release 2.15.1
+
+ This release fixes client subnet indexer which overwrote the mask
+ options during initialization so the conf option `client_v4_mask` and
+ `client_v6_mask` was never used.
+
+ Other changes:
+ - Update documentation
+ - Update builtin known TLDs based on PSL
+ - Update copyright year
+
+ d577a97 Copyright
+ f71edff Known TLDs
+ dedafdd Client mask
+ 8ef947c Doc
+
+2023-08-09 Jerry Lundström
+
+ Release 2.15.0
+
+ This release fixes DNS parsing w.r.t. EDNS, implements better loop
+ detection during name decompression and adds a lot of EDNS indexers
+ and filters.
+
+ Previously the DNS parser expected the additional records to come
+ straight after the question section. Meaning that if the DNS packet
+ had any answer or authority records, they would be parsed as additional
+ records for the OPT record and EDNS information.
+
+ Following new indexers has been added:
+ - edns_cookie
+ - edns_cookie_len
+ - edns_cookie_client
+ - edns_cookie_server
+ - edns_ecs
+ - edns_ecs_family
+ - edns_ecs_source_prefix
+ - edns_ecs_scope_prefix
+ - edns_ecs_address
+ - edns_ecs_subnet
+ - edns_ede
+ - edns_ede_code
+ - edns_ede_textlen
+ - edns_ede_text
+ - edns_nsid
+ - edns_nsid_len
+ - edns_nsid_data
+ - edns_nsid_text
+
+ Following new filters has been added:
+ - edns0-only
+ - edns0-cookie-only
+ - edns0-nsid-only
+ - edns0-ede-only
+ - edns0-ecs-only
+
+ See man-page dsc.conf(5) for more information.
+
+ Other fixes/additions:
+ - Only parse entire DNS message if EDNS indexers are used
+ - `dns_protocol`: Implement proper loop detection during decompression
+ - `xmalloc`: Check return of `amalloc()` before using `memset()`/`memcpy()` because it's undefined behavior on null pointers
+
+ 8259f30 EDNS filters
+ 41f3b9a strtohex, nsid text
+ a666c04 EDNS(0) Client Subnet
+ b5164fe EDNS
+ 7cabfd9 EDNS0 parsing fixes and additional EDNS0 indexers.
+ 46b1797 memcpy/memset fixes
+ 8fd7b7a EDNS parsing
+ cee2bf7 EDNS0 parsing, multi RR test
+ a2c00c9 DNS compression loop detection
+ 9875a3e RR parsing
+
+2023-06-15 Jerry Lundström
+
+ Release 2.14.1
+
+ Fixed a bug in TLD handling when using `tld_list`, it did not reset
+ where it was in the QNAME when nothing was found and could therefor
+ wrongly indicate something as a TLD.
+
+ Also fixed a typo in the `dsc.conf` man-page.
+
+ 976589d GCOV
+ c3afee4 TLD list, doc typo
+
+2023-04-03 Jerry Lundström
+
+ Release 2.14.0
+
+ This release adds new configure option to control the file access to
+ the output files, support for newer DNSTAP, improved DNSTAP message
+ handling and updated Public Suffix List.
+
+ - Fix #279: Add new conf options to control output file access:
+ - `output_user`: set output file user ownership
+ - `output_group`: set output file group ownership
+ - `output_mod`: set output file mode bits
+ - `dnstap`: Move DNSTAP essential attributes checks inside each type and customize them for that specific type
+ - Update dnswire dependencies to v0.4.0
+ - `encryption_index`: Add support for new DNSTAP DNS-over-QUIC socket protocol
+ - Update builtin Public Suffix List (PSL)
+
+ abfe245 DNSTAP
+ da06317 Output file access
+ af01a48 DOQ transport, PSL update
+
+2023-02-10 Jerry Lundström
+
+ Release 2.13.2
+
+ Updated pcap-thread to v4.0.1:
+
+ Fixed issue with `pcap_dispatch()` during non-threaded timed runs by
+ checking packet timestamp and use `pcap_breakloop()` if the run
+ should end.
+ Based on reports, it looks like `pcap_dispatch()` won't stop
+ processing if load is high enough even if documentation says "only
+ one bufferful of packets is read at a time".
+
+ Many thanks to Klaus Darilion @klaus3000 (NIC.AT) for the report
+ and helping to track down the issue and test fixes!
+
+ e7d92fe Fix COPR
+ 7ecf217 pcap-thread
+
+2022-04-21 Jerry Lundström
+
+ Release 2.13.1
+
+ This patch release is mainly for build and packages where MaxMind DB
+ library is preferred over the legacy GeoIP library.
+ MaxMind has announced that the databases for GeoIP will be EOL May 2022
+ and recommends switching to GeoIP2 databases.
+
+ Also updated DSC's description, removing references to the now
+ discontinued Presenter and pointing to dsc-datatool instead.
+
+ d891e2c Package, description
+ c23406c Optional GeoIP
+ 26dd506 GeoIP
+
+2022-01-28 Jerry Lundström
+
+ Release 2.13.0
+
+ This release fixes a huge performance issue with hashing IPv6
+ addresses, adds support for new DNSTAP messages types and protocols,
+ and adds two new indexers.
+
+ Thanks to a patch sent in by Ken Renard (@kdrenard) a rather huge
+ performance issue related to hashing IPv6 addresses has been solved.
+ Old code used a very incorrect assumption about addresses in general
+ and while same way was used for IPv4, it didn't hit as hard as it did
+ for IPv6.
+ New code uses hashing functions on both address types and to quote
+ the GitHub issue (by Ken):
+ -"This performs about 5% better than what I did (51 sec versus 54 sec)
+ for 5GB pcap file with nearly 50/50 split of IPv4 and IPv6 (3.7M/3.5M
+ v4/v6 queries).
+ Old inXaddr_hash() has been running for 75 minutes and is about 20%
+ done. I say this is a winner!"
+
+ Many thanks to Ken for pointing this out and supplying a patch!
+
+ DSC now depends on dnswire v0.3.0 which includes new DNSTAP messages
+ types and protocols that was recently added to DNSTAP's Protobuf
+ definition.
+ The new `UPDATE_QUERY` and `UPDATE_RESPONSE` messages types are
+ now supported and are interpret as `AUTH_QUERY` and `AUTH_RESPONSE`.
+ The new socket protocols for DOT, DOH and DNSCrypt are also supported
+ and are interpret as TCP for indexers such as `ip_proto` and
+ `transport`. To get stats on the encryption itself you can use the
+ new indexer `encryption`.
+
+ Two new indexers have been added:
+ - `label_count`: Number of labels in the QNAME
+ - `encryption`: Indicates whether the DNS message was carried over an
+ encrypted connection or not, and if so over which. For example
+ "unencrypted", "dot" (DNS-over-TLS), "doh" (DNS-over-HTTPS).
+
+ Other changes:
+ - `inX_addr`: Rework structure, separate IPv4 and IPv6 addresses
+ - Fix some DNSTAP tests
+ - `transport_index`: Fix typo in code documentation
+
+ 37df703 DNSTAP update, encryption indexer
+ d27171f Label count indexer
+ 6932247 Adding labellen indexer which counts the number of labels in a DNS message
+ 68cc9c7 New IP hashing
+
+2022-01-13 Jerry Lundström
+
+ Release 2.12.0
+
+ This release adds a new conf option `tld_list` to control what DSC
+ considers are TLDs, and a script to convert the Public Suffix List to
+ this format (see `man dsc-psl-convert` for more information).
+
+ For example, using this option will allow DSC to gather statistics on
+ domains like `co.uk` and `net.au` that would otherwise be counted as
+ `uk` and `au`.
+
+ The release also updates the man-pages, clarifying how to use multiple
+ `interface` and other similar options. And removes the deprecated cron
+ upload scripts.
+
+ e779a87 Remove upload scripts
+ 2880f93 PSL TLD list
+ ea04022 Update Copyright and known TLDs
+ 5cbc7a4 Output format
+ b7e6c35 Doc
+ e66dae4 dh_auto_test
+ 6a3e817 debhelper
+ 89d033f Bye Travis
+ fa1c179 Mattermost
+
+2020-10-20 Jerry Lundström
+
+ Release 2.11.2
+
+ This release fixes a bug in `asn_indexer` that didn't enabled the usage
+ of MaxMindDB after successful initiation. Other changes include a typo
+ fix in `configure` and a lot of coverage tests.
+
+ 395b11a Travis, configure
+ ffea9ed Tests
+ 8b0bebd Tests
+ 09f8174 Config tests
+ d1514d4 Coverage
+ 66b018c Coverage, ASN indexer
+
+2020-08-18 Jerry Lundström
+
+ Release 2.11.1
+
+ This release fixes a 17-year old code cut&paste mistake in the
+ classification indexer, until now it's been classifying funny query
+ types based on the query class. This fix was sent in by Jim Hague
+ (Sinodun), thanks Jim!
+
+ Other changes are based on code analysis reports and setup for code
+ coverage.
+
+ 8d4763c Correct funny-qtype classification.
+ a1dd55e getline
+ 29bd143 Coverage
+ 685e504 SonarCloud
+ f759515 Badges
+
+2020-06-01 Jerry Lundström
+
+ Release 2.11.0
+
+ This release updates the built in known TLDs table and adds the optional
+ configuration option `knowntlds_file` to, instead of using the built in
+ table, load the data from a file.
+
+ If compiled with only MaxMindDB support then ASN and Country indexer
+ would complain (and exit) that no database has been specified.
+ This release changes the behavior to match that of GeoIP support,
+ making it possible to run without specifying a database.
+
+ Other changes:
+ - Fix compile warnings
+ - COPR packaging fixes
+ - `country_indexer`: Fixed typos in log messages (was copied from ASN)
+ - Fix issues and false-positives reported by newer version of scan-build
+
+ Commits:
+ e937d1 COPR
+ 1382370 country, asn
+ 423a813 scanbuild
+ 2571b97 Compile warnings
+ 4f69447 Known TLDs
+
+2020-05-07 Jerry Lundström
+
+ Release 2.10.0
+
+ This release adds new configuration options to `dnstap_unixsock` to
+ control ownership and permissions for the DNSTAP socket file.
+
+ Other fixes:
+ - Unlink the DNSTAP socket file if an error during initialization occur
+ - Do hard exit in forks to not run `atexit()` (which will unlink the
+ DNSTAP socket file)
+
+ Commits:
+ 9d1d49a fork
+ 733b286 DNSTAP socket
+
+2020-04-02 Jerry Lundström
+
+ Release 2.9.1
+
+ This release fixes a few bugs, removes a lot of the debug messages
+ about DNSTAP and removes GeoIP from openSUSE/SLE packages as it has
+ been deprecated on those platforms.
+
+ Changes:
+ - `daemon`: Fix bug with listening for SIGINT when in foreground mode
+ - `dnstap`:
+ - Fix #217: Unlink UNIX socket on exit if successfully initiated
+ - Fix startup bug, `exit()` if unable to initialize
+ - Fix #220:
+ - Remove/hide a lot of debug messages and the printing of the DNSTAP message
+ - Clarify a lot of the info and error messages
+ - Prefix all DNSTAP related messages with `DNSTAP: `
+ - Fix compile warnings and include headers when GeoIP is missing
+ - `asn_indexer`: Fix bug, said unknown IPv4 when it was IPv6
+
+ Commits:
+ 08bad5b DNSTAP debug
+ 1232264 LGTM
+ 589ea7a GeoIP, asn indexer
+ 4fea0d2 sigint, DNSTAP UNIX socket, DNSTAP init
+
+2020-03-20 Jerry Lundström
+
+ Release 2.9.0
+
+ This release adds support for receiving DNS messages over DNSTAP along
+ with documentation updates and eliminated compiler warnings.
+
+ To enable DNSTAP support, install dependencies (check `README.md`) and
+ run configure with `--enable-dnstap`.
+
+ New configuration options:
+ - `dnstap_file`: specify input from DNSTAP file
+ - `dnstap_unixsock`: specify DNSTAP input from UNIX socket
+ - `dnstap_tcp`: specify DNSTAP input from TCP connections (dsc listens)
+ - `dnstap_udp`: specify DNSTAP input from UDP connections (dsc listens)
+ - `dnstap_network`: specify network information in place of missing DNSTAP attributes
+
+ Other changes:
+ - Add documentation about extra configure options that might be needed for FreeBSD/OpenBSD
+ - Fix compile warnings on FreeBSD 11.2
+ - Fix compile warning `snprintf()` truncation
+ - Packaging updates
+
+ Commits:
+ 60e6950 DNSTAP
+ af0417b README
+ 1f1b489 COPR, spec
+ 435e136 Package
+ 3f24feb FreeBSD 11 compatibility
+ 563b986 Funding
+
+2019-04-23 Jerry Lundström
+
+ Release 2.8.1
+
+ Added all missing config options for the response time indexer:
+ - `response_time_mode`
+ - `response_time_bucket_size`
+ - `response_time_max_queries`
+ - `response_time_full_mode`
+ - `response_time_max_seconds`
+ - `response_time_max_sec_mode`
+
+ Commits:
+ 36f0280 Response time config
+
+2019-02-11 Jerry Lundström
+
+ Release 2.8.0
+
+ This release brings an new indexer `response_time` (funded by NIC.AT!),
+ support for MaxMind DB (GeoIP2) and an option to set the DNS port.
+
+ The new indexer `response_time` can track queries and report the time
+ it took to receive the response in buckets of microseconds or in
+ logarithmic scales (see `response_time_mode`). It will also report
+ timeouts, missing queries (received a response but have never seen the
+ query), dropped queries (due to memory limitations) and internal errors.
+
+ Here is an example output of log10 mode:
+
+ <array name="response_time" dimensions="2" start_time="1478727151"
+ stop_time="1478727180">
+ <dimension number="1" type="All"/>
+ <dimension number="2" type="ResponseTime"/>
+ <data>
+ <All val="ALL">
+ <ResponseTime val="100000-1000000" count="77"/>
+ <ResponseTime val="10000-100000" count="42"/>
+ <ResponseTime val="1000-10000" count="3"/>
+ <ResponseTime val="missing_queries" count="1"/>
+ </All>
+ </data>
+ </array>
+
+ New configuration options:
+ - `asn_indexer_backend`: Control what backend to use for the ASN indexer
+ - `country_indexer_backend`: Control what backend to use for the
+ country indexer
+ - `maxminddb_asn`: Specify database for ASN lookups using MaxMind DB
+ - `maxminddb_country`: Specify database for country lookups using
+ MaxMind DB
+ - `dns_port`: Control the DNS port
+ - `response_time_mode`: Set the output mode of the response time indexer
+ - `response_time_bucket_size`: The size of bucket (microseconds)
+ - Following options exists to control internal aspects of `response_time`
+ indexer, see man-page for more information:
+ - `response_time_max_queries`
+ - `response_time_full_mode`
+ - `response_time_max_seconds`
+ - `response_time_max_sec_mode`
+
+ Fixes:
+ - Add LGTM and fix alerts
+ - Update `pcap_layers` with fixes for `scan-build` warnings
+ - Fix port in debug output of DNS message, was showing server port
+ on responses
+
+ Commits:
+ f38a655 License
+ 48cd44e Man-page, interface any, response time
+ 8b9345f LGTM Alert
+ e57a013 DNS port
+ 38aa018 Response time statistics
+ 7a60d53 Cleanup
+ 5c45ce2 Copyright
+ 0dc8a3c MaxMind DB (GeoIP2)
+ 473387b LGTM, README, packages, scan-build
+
+2018-08-14 Jerry Lundström
+
+ Release 2.7.0
+
+ Add support for Linux "cooked" capture encapsulation (`DLT_LINUX_SLL`).
+
+ Fixes:
+ - `grok_question()`: Remove usage of `strcpy()`
+ - `pcap_tcp_handler()`: Use `snprintf()`
+ - `printable_dnsname()`: Use `snprintf()`
+ - Fix CID 104450, 186871
+
+ Commits:
+ 41d59ac man-page HTML
+ 476d6ed pcap_layers, CID
+ 747131b Configure options
+ 43c9ad0 DLT_LINUX_SLL
+ 8a48667 Support the linux cooked sll frame
+ bd4a94f Fix CID 104450
+
+2017-08-21 Jerry Lundström
+
+ Release 2.6.1
+
+ Compatibility fixes for FreeBSD 11.1+ which is now packing `struct ip`.
+
+ Commits:
+ c0cd375 Handle compile warnings and FreeBSD's packing of structs
+ c528ccb Code formatting and moved external code to own directory
+
+2017-07-11 Jerry Lundström
+
+ Release 2.6.0
+
+ Two new DNS filters and configuration for client subnet netmask has been
+ added thanks to pull request submission from Manabu Sonoda (@mimuret), see
+ `man 5 dsc.conf` for more details.
+
+ New DNS filters:
+ - `servfail-only`: Count only SERVFAIL responses
+ - `authentic-data-only`: Count only DNS messages with the AD bit is set
+
+ New configuration:
+ - `client_v4_mask`: Set the IPv4 MASK for client_subnet INDEXERS
+ - `client_v6_mask`: Set the IPv6 MASK for client_subnet INDEXERS
+
+ Fixes:
+ - Set `_DEFAULT_SOURCE`, was giving compile warnings on some platforms
+ - Update `pcap-thread` to v2.1.3 for compatibility fixes
+ - Fix bug where extra `"` would be OK in configuration
+ - Eat all white-space between tokens in configuration
+ - Minor documentation corrections
+
+ Commits:
+ 8a20421 Config parse quote/whitespace bug
+ 4eb91d8 PR review and corrections
+ 1dcdbc1 add supports statistics for DNSSEC validation resolver - SERVFAIL
+ DNS message filter - AD bit DNS message filter - set custom mask
+ for ClientSubnet
+ 7c4ce7e Update pcap-thread to v2.1.3
+ f5d152c Corrected date
+ 04f137d Prepare SPEC for OSB/COPR
+ 402c242 Config header is generated by autotools
+
+2017-03-29 Jerry Lundström
+
+ Release 2.5.1
+
+ Various compatibility issues and a possible runtime bug, related to
+ pcap-thread, fixed.
+
+ Commits:
+
+ 5ed03e3 Compat for OS X
+ 8605759 Fix compiler warnings
+ 5fbad26 Update pcap-thread to v2.1.2
+ 47ed110 Update pcap-thread to v2.1.1
+
+2017-03-02 Jerry Lundström
+
+ Release 2.5.0
+
+ Resolved memory leaks within the IP fragment reassembly code that was
+ reported by Klaus Darilion (NIC.AT) and added config option to control
+ some parts of the fragment handling.
+
+ Fixes:
+ - Add `pcap_layers_clear_fragments()` to remove old fragments after
+ `MAX_FRAG_IDLE` (60 seconds)
+ - Use correct alloc/free functions for dataset hash
+ - Fix spacing in dsc.conf(5) man-page
+
+ New config option:
+ - `drop_ip_fragments` will disable IP fragmentation reassembling and
+ drop any IP packet that is a fragment (even the first)
+
+ Commits:
+
+ eaee6c0 Drop IP fragments
+ 3ebb687 Issue #146: Fix leak in fragment handling
+ 9a5e377 Use correct alloc/free
+ 35f663c Fix #107: add const
+
+2017-01-27 Jerry Lundström
+
+ Release 2.4.0
+
+ Since there have been a few major issues with the threaded capturing code
+ it is now default disabled and have to be enabled with a configure option
+ to use: `./configure --enable-threads ...`
+
+ A lot of work has been done to ensure stability and correct capturing,
+ as of now `dsc` is continuously running on the testing platforms with
+ simulated traffic and tests are performance every 5-15 minutes:
+
+ https://dev.dns-oarc.net/jenkins/view/dsctest/
+
+ With the rewrite of the config parser to C it was missed that Hapy allowed
+ CR/LF within the values of the options. Changing the C parser to allow
+ it is a bit of work and having CR/LF within the value may lead to other
+ issues so it is now documented that CR/LF are not allowed in config option
+ values.
+
+ Fixes:
+ - The `-T` flag was just controlling pcap-thread usage of threads, it now
+ controls all usage of threads including how signals are caught.
+ - Fix program name, was incorrectly set so it would be reported as `/dsc`.
+ - Use thread safe functions (_r).
+ - Handle very long config lines by not having a static buffer, instead
+ let `getline()` allocate as needed.
+ - Use new activation in pcap-thread to activate the capturing of pcaps
+ after the initial interval sync have been done during start-up.
+ - Use factions of second for start-up interval sync and interval wait.
+ - Fix memory leaks if config options was specified more then once.
+ - Use new absolute timed run in pcap-thread to more exactly end capturing
+ at the interval.
+ - Fix config parsing, was checking for tab when should look for line feed.
+ - Exit correctly during pcap-thread run to honor `dump_reports_on_exit`.
+ - Use 100ms as default pcap-thread timeout, was 1s before but the old code
+ used 250ms.
+ - Various enhancements to logging of errors.
+
+ New config options/features:
+ - `pcap_buffer_size` can be used to increase the capture buffer within
+ pcap-thread/libpcap, this can help mitigate dropped packets by the
+ kernel during interval breaks.
+ - `no_wait_interval` will skip the interval sync that happens during
+ start-up and start capturing directly, the end of the interval will
+ still be the modulus of the interval.
+ - `pcap_thread_timeout` can be used to change the internal timeout use
+ in pcap-thread to wait for packets (default 100ms).
+ - Log non-fatal errors from pcap-thread w.r.t. setting the filter which
+ can indicate that the filter is running in userland because lack of
+ support or that it is too large for the kernel.
+
+ Special thanks to:
+ - Anand Buddhdev, RIPE NCC
+ - Klaus Darilion, NIC.AT
+ - Vincent Charrade, Nameshield
+
+ Commits:
+
+ ee59572 Fix #111, fix #116: Update pcap-thread to v2.0.0, remove debug
+ code
+ 64befef Update copyright year
+ 40a1fb4 Fix #139: Use 100ms as default pcap-thread timeout
+ 2a07185 Fix #137: Graceful exit on signal during run
+ f1b3ec3 Issue #116: Try and make select issue more clear
+ 950ea96 Fix #133: Return from `Pcap_run()` on signal/errors
+ 667cc91 Issue #116: Add config option pcap_thread_timeout
+ 3c9e073 Notice if non-fatal errors was detected during activation
+ 4ea8f54 Fix #108: Document that CR/LF are not allowed within configuration
+ line
+ 9fda332 Check for LF and not tab
+ 15a1dc0 Use pcap-thread timed run to interface
+ 1e98f8b Fix potential memory leaks if config options specified more then
+ once
+ a9b38e9 Add missing LF and indicate what config option was wrong if
+ possible
+ f8a2821 Use fractions of seconds for both start up interval sync and
+ timed run, always adjust for inter-run processing delay
+ f47069a Fix #121: Update to pcap-thread latest develop
+ fc13d73 Issue #116: Feature for not waiting on the interval sync
+ c832337 Fix #122: Update pcap-thread to v1.2.3 for fix in timed run
+ 4739111 Add `pcap_buffer_size` config option
+ 7d9bf90 Update pcap-thread to v1.2.2
+ ef43335 Make threads optional and default disabled
+ c2399cf getline() returns error on eof, don't report error if we are
+ 5c671e6 Clarify config error message and report `getline()` error
+ 8bd6a67 Fix #114: Handle very long lines
+ 47b1e1a Use _r thread safe functions when possible
+ 0f5d883 Update daemon.c
+ f18e3ea Update doc, -T now disables all usage of threads
+ 57aacbe Honor the -T flag when installing signal handlers
+
+2016-12-22 Jerry Lundström
+
+ Release 2.3.0
+
+ Rare lockup has been fixed that could happen if a signal was received
+ in the wrong thread at the wrong time due to `pcap_thread_stop()`
+ canceling and waiting on threads to join again. The handling of signals
+ have been improved for threaded and non-threaded operations.
+
+ A couple of bugfixes, one to fix loading of GeoIP ASN database and
+ another to use the lowest 32 bits of an IP address (being v4 or v6)
+ in the IP hash making it a bit more efficient for v6 addresses.
+
+ New functionality for the configure option `local_address`, you can now
+ specify a network mask (see `man 5 dsc.conf` for syntax).
+
+ Commits:
+
+ e286298 Fix CID 158968 Bad bit shift operation
+ c15db43 Update to pcap-thread v1.2.1
+ 1ac06ac Move stopping process to not require a packet
+ 597dd34 Handle signals better with and without pthreads
+ bcf99e8 Add RPM spec and ACLOCAL_AMFLAGS to build on CentOS 6
+ 667fe69 fixed load geoIP ASN database from config-file
+ e1304d4 Fix #97: Add optional mask to `local_address` so you can
+ specify networks
+ 5dae7dd Fix #96: Hash the lowest 32 bits of IP addresses
+
+2016-10-15 Jerry Lundström
+
+ Release 2.2.1
+
+ Two bugfixes with one being critical (caused segfault, sorry for that)
+ - `pcap-thread` had an issue that threads where not closed on exit
+ of `pcap_thread_run()`, this only created many threads in my testing
+ environment but reports came in that it segfaulted.
+ - When started `dsc` (not in debug mode) it will wait to align with
+ the time, that did not get update with the configurable interval
+ change.
+
+ Commits:
+
+ 6e3654b Fix #90: Update pcap-thread to v1.1.2 to fix a segfault issue
+ c9350a3 Fix #92: Honor configured interval when aligning
+ acaf617 minor typo
+
+2016-10-10 Jerry Lundström
+
+ Release 2.2.0
+
+ Some big changes in this release are the removal of the C++ configure
+ parser library Hapy and the addition of pcap-thread to (hopefully)
+ handle capturing packet in a correct and efficiant way.
+
+ With that addition of pcap-thread comes new runtime options:
+ - `-m` sets monitor mode on interfaces
+ - `-i` sets immediate mode on interfaces
+ - `-T` disable the usage of threads in pcap thread
+
+ Bugfixes:
+ - d95190a fixes a small memory leak in `Pcap_init()` and a possible
+ bug where `-p` might never been used because of not being declared
+ external.
+ - 55e1056 added check for `netinet/ip_compat.h` for use in
+ `src/pcap_layers/pcap_layers.c`.
+
+ Commits:
+
+ 0a1ce91 Fix coverity issues
+ 5a1d410 Delete useless line (related to mayasd#84)
+ 443db3e Check if the file was previously linked but not yet unlinked
+ (Tim CLERC.IM)
+ 02a7621 Fix #82: Oops, `pcap_thread_set_filter()` had changed during
+ development and missed this
+ 2a8aa29 Move definition of token struct inside and changed name to not
+ conflict on FreeBSD
+ 43da964 Fix #9: Implement conf parser in C and remove dependency of
+ Hapy and C++
+ 9f46f0d Update pcap thread to version 1.1.1
+ d95190a Use pcap thread, new options `-miT` and possible bugfix for
+ `-p` and a small memory leak fix
+ 55e1056 Fix #77: Check for netinet/ip_compat
+ 4e120f9 Fix travis script, only expand dir.
+
+2016-06-28 Jerry Lundström
+
+ Release 2.1.1
+
+ Bugfixes:
+ - 22688c1 Fix pcap/select last_ts
+ In some cases `select` will return the fd set as if there are packets
+ to read but there aren't. That would case the last timestamp to not
+ advance and the `Pcap_run` loop to never finish.
+ This fix add a check on packets captured and sets last timestamp if
+ none where caught.
+
+ Commits:
+
+ d115b3f Correct configuration, missing `;`.
+ 22688c1 Fix pcap/select last_ts
+ b6d3dd8 Fix package dependencies.
+ c8979c4 Add debian/ubuntu package files
+
+2016-06-09 Jerry Lundström
+
+ Release 2.1.0
+
+ This release brings a couple of new features, the ability to change
+ the interval for which DSC writes out the statistics files and a new
+ indexer for AS numbers.
+ There was also an issue detected in Ubuntu 16.04 when reading pcap files
+ would result in doubling the statistics if running in daemon mode.
+ Looking at the strace it might be a issue with the kernel, libc, pcap or
+ a combination that results in the open file handle to reset and essentially
+ read all the data twice.
+
+ Credits:
+ - Klaus Darilion NIC.AT for interval changes and AS number indexer.
+
+ Commits:
+
+ 8ab8632 Rewrote ASN indexer to remove the need for malloc/free. Removed
+ the need to malloc ipstr. Use same unknown tags as country
+ indexer.
+ 89d4984 add ASN index: maps src-IP to AS number using GeoIP ASNum DB
+ 8d5c6bf Fix #14: Remove ncap
+ c0f00e7 Add test for statistics_interval
+ cf9ede2 Add checks and documentation for statistics_interval
+ 93eeecd new config option 'statistics_interval' (defaults to 60s)
+ a28f5d4 Fix #62: Do not go into daemon mode if reading offline files
+ 2bc1abb Add information about puppet module
+
+2016-06-01 Jerry Lundström
+
+ Release 2.0.0
+
+ This release brings a major update to the DSC software with the separation
+ of the Collector and the Presenter, this repository will only include
+ the Collector from now on.
+
+ Please read UPGRADE.md for information on upgrading from previous version.
+
+ Major changes / additions are:
+ - Use of Automake and rework of the Makefiles
+ - Conform to FHS 3.0
+ - Man-pages (man dsc, man dsc.conf)
+ - Continuous Integration testing using Travis-CI
+ - Compatibility testing on Debian, CentOS, FreeBSD and OpenBSD
+ - Use of Coverity Scan to find defects
+ - JSON output format, see output_format in dsc.conf(5).
+ - IPv6 support in country indexer and libgeoip is now runtime
+ configurable, see geoip_v4_dat / geoip_v6_dat in dsc.conf(5).
+ - Signal handling and optional write reports on exit, see
+ dump_reports_on_exit in dsc.conf(5).
+ - Upload scripts are deprecated
+
+ Credits:
+ - Klaus Darilion NIC.AT for GeoIP IPv6 patch.
+ - Michael Braunoeder NIC.AT for NXDOMAIN filter patch.
+ - L-root for overflow bugfix IP fragments.
+ - McStork for JSON output patch.
+
+ Changes since release candidate:
+
+ 1be5148 Fix #57: Flush the pid file to write it out and add test for
+ pid file
+ 0f79aa0 Use Semantic Versioning 2.0.0 semver.org
+
+2016-05-10 Jerry Lundström
+
+ Release 2.0.0-rc.1
+
+ 69ef9b4 Add -v to display version
+ 7e5b403 Fix defects
+ 0f64128 Add badges
+ f795ed3 Old automake needs AM_PROG_CC_C_O
+ 27ae870 Fix #4: Remove old indexers, update indexers and filters
+ documentation, update authors.
+ d873411 Fix #38: Use locking to ensure we do not overwrite PID file
+ 800fe83 Fix #35: GeoIP configurable. Fix debug and syslog in country
+ indexer. Add documentation and config example.
+ a1dcdf1 Avoid the checks for newer .dat files, this may have performance
+ impacts.
+ bb9a059 Add IPv6 support to country indexer and add some failure handling
+ 03e16a8 Include config.h as this defines HAVE_LIBGEOIP. Thus, the geoip
+ code was not used yet.
+ 7808d2e New dsyslog/dsyslogf/dfprint macro. Change fprintf to dfprintf.
+ fe47288 Fix #34: Create man-pages.
+ 7a9b3c3 Fix #33: Handle most signals, new config option to dump reports
+ on exit.
+ 4753eda Add a filter to track NXDOMAIN responses
+ 1565952 Add info about DSP
+ 05ef699 Fix make test in dist.
+ 68bdc9b No default interface in conf example
+ 2be98be Correct libexec directory. Install etc files in subdirectory.
+ 319ac4e Only build dist. Build in a build directory.
+ 96e0e73 Fix #16: conform to FHS. Automake tweaks.
+ bbcca74 Fix #23: Add missing changes for master branch
+ 197ad52 No need to install autoconf/automake in Travis
+ eb95ee1 Add license to cron scripts
+ 4f62420 Fix/add make dist and try it in Travis
+ ac4c634 Reconstruct repository to move out presenter. Update licenses.
+ Use pcap_layers as a git submodule. Use automake/autoconf.
+ 89c7f4c Import patched pcap_layers.c code with buffer overflow bugfix
+ 2787db2 Only wait a certain number of times for the files to appear
+ b5d911d Add the first test, simple run and compare gold files
+ 32fd807 Fix #13: Document ability to read packets from pcap files
+ eee217e Rework some of the Makefiles based on some of the patches found in
+ the Debian packages
+ 7a2a67e Fix #12: Add hash for dataset names and check for duplicates
+ ed1eba9 Add base64 for certain non-printable characters in JSON output and
+ remove extra new-line
+ 580d543 Add output_format and JSON structure description to documentation
+ d2d1ed2 Fix #3: Reworked JSON output format implementation
+ 2e2f90f Give option for additional output JSON/Extended JSON
+ a23b6af Ignore generated files
+ f4214f3 Add Travis CI. Remove old TODAY/tar commands. Add ifndef/def to
+ all .h files. Fix issue with arpa/nameser_compat.h on OpenBSD by
+ checking for the header file and only including it if it exists.
+ Rename configure.scan to configure.ac and change contact info and
+ version. Update configure using autoconf 2.69 on Ubuntu 14.04 LTS.
+ Set CC/CPP/CXX/CXXFLAGS in Makefile found by configure.
+
+2016-01-11 Duane Wessels
+
+ added dfprintf() macro to improve code readability and avoid
+ multi-line if (debug_lvl) fprintf(...) statements.
+
+2016-01-11 Duane Wessels
+
+ Commenting out ancount and nscount to silence compiler warnings
+ about unused variables.
+
+2016-01-11 Duane Wessels
+
+ Patch from John Heidemann relating to TCP reassembly
+ - fix for multiple DNS messages per TCP connection that span
+ multiple segments
+ - some editorial code changes (== to >=)
+ - additional debugging statements
+
+2016-01-11 Duane Wessels
+
+ Minor fix: debugging statement wasn't protected with debug_flag
+ check. (thanks John H).
+
+2015-12-23 Duane Wessels
+
+ add prototype for dns_message_handle()
+
+2015-12-23 Duane Wessels
+
+ Experimental feature to drop "received responses" and "sent queries"
+ since DSC is generally used to monitor authoritative servers that,
+ under normal operation, never receive responses nor send queries.
+ Currently protected with #ifdefs.
+
+2015-12-15 Duane Wessels
+
+ Oops, forgot to set dns_message->server_ip_addr for new server_addr
+ indexer
+
+2015-11-23 Duane Wessels
+
+ removing one level of the "dsc/dsc" top directory
+
+2015-11-11 aqadeer
+
+ In pcap.c pcap_setnonblock doesn't accept captured files anymore and
+ must need a device from where it could do live capture. For offline
+ files to work, a simple check is added to by-pass this porblem.
+
+2015-11-05 Duane Wessels
+
+ Added a 'server' indexer. This records the server (query destination)
+ IP address.
+
+2015-11-05 Duane Wessels
+
+ Renamed "client_ipv4" to "client_ip" because it supports v4 and v6
+
+2015-11-04 Duane Wessels
+
+ Update copy of pcap_layers.c from https://github.com/wessels/pcap_layers
+
+2015-11-04 Duane Wessels
+
+ avoid "void *" pointer arithmetic (Yoshitaka Aharen)
+
+2015-10-09 Duane Wessels
+
+ bugfix: handle receiving TCP dns length prefix out of order.
+
+ A user reported that when a TCP segment containing only the DNS message
+ length is received *after* the message it references (i.e., out-of-order),
+ then DSC goes into a 100% CPU loop. Confirmed that the code doesn't work
+ correctly when dnslen comes out-of-order, but I wasn't able to easily
+ reproduce the 100% CPU bug.
+
+ The fix is to add a "dnslen_bytes_seen_mask" variable that tracks which
+ of the two dnslen bytes we've seen. Once both bytes have been seen,
+ then we can proceed to reassembling the message buffer.
+
+2015-10-09 Duane Wessels
+
+ cosmetic: rename ipv4 to ip4 to be consistent with ip6
+
+2015-10-09 Duane Wessels
+
+ Regarding recent change to add pcap_layers library, forgot to add it
+ to Makefile.in (vs Makefile) before committing.
+
+2015-10-09 Duane Wessels
+
+ Integrated https://github.com/wessels/pcap_layers with DSC collector.
+ The DSC code now includes a copy of the pcap_layers library, which does
+ a better job of extracting the layers of a pcap packet. In particular,
+ it does IP fragmentation reassembly, which is important for DSC and
+ RSSAC-002. At this time the DSC code still does TCP reassembly, however.
+
+ Removed USE_IPV6 ifdefs. IPV6 support is now always compiled.
+
+2015-10-08 Duane Wessels
+
+ Removing "DMC *dns_message_callback" because there is only one that
+ would ever be used. The callback layer of indirection makes the code
+ a little confusing, and also this change is in preparation for bringing
+ in a third-party pcap layer handling library which will work slightly
+ differently.
+
+2015-10-08 Duane Wessels
+
+ The "ip_message" code has not been in use since a commit back in 2012.
+ But the code lingered, until now.
+
+2015-02-25 Duane Wessels
+
+ User reported a concern with the way dsc-xml-extractor.pl called
+ the operating system 'mv' command. It has been replaced with Perl's
+ File::Copy::mv().
+
+2013-03-19 Duane Wessels
+
+ Fixed a bug in TCP reassembly when the DNS length field was
+ split between two segments.
+
+2012-08-27 Sebastian Castro
+
+ Added 'tc_bit' indexer and dataset to track the frequency
+ of responses having the TC bit set. Useful with DNSSEC
+ signed zones.
+
+2012-02-29 Duane Wessels
+
+ Added 'qr_aa_bits' dataset and graph. It shows the distribution
+ of QR/AA values in received messages and may be helpful in
+ detecting reflector attacks targeting your name server.
+
+2010-11-29 Duane Wessels
+
+ The dnssec_qtype and dns_ip_version plots were not working due
+ the presence of 'dataset' attributes in their definitions. Also
+ fixed the chaos plot.
+
+2010-11-04 Duane Wessels
+
+ Added NSEC3 record type to the extractor.
+
+2010-09-14 Duane Wessels
+
+ A fix to put pcap interfaces into non-blocking mode, which is
+ important when reading from multiple interfaces.
+
+2010-08-13 Alexander Mayrhofer
+
+ Added "country_index" to the collector which is an index based
+ on country as returned by the GeoIP library. configure attempts
+ to learn if you have GeoIP installed.
+
+2010-08-13 Peter Koch
+
+ Some minor fixes to the collector that allow it to read from
+ pcap files on disk, rather than live packets from an interface.
+
+2010-06-02 Henrik Kramsh?j
+
+ Improvements for OpenBSD compatibility
+
+2010-05-01 Duane Wessels
+
+ Added NSEC3 to DNSSEC query types
+
+2010-02-22 Duane Wessels
+
+ Collector bug fixed: USE_IPV6=1 was not passed to .c
+ files, which resulted in different-sized data structurs
+ and crashes on CentOS.
+
+2009-12-10 Duane Wessels
+
+ Added "priming_queries" and "priming_responses" datasets in
+ preparation for root zone signing.
+
+2009-11-11 Duane Wessels
+
+ On the presenter some of the "accum" graphs stopped working
+ due to recent rewrites. These should now be working again.
+
+2009-10-12 Duane Wessels
+
+ The presenter debugging is now configurable via dsc-grapher.cfg.
+
+2009-08-14 Duane Wessels
+
+ In the presenter, there have been some significant changes to
+ the perl modules so that they can be used in command line
+ (ie non-CGI) utilities, both for creating graphs and for
+ reading data. Most of these changes are purely internal.
+ However, you may need to update your dsc-grapher.pl CGI
+ program to be like presenter/grapher/dsc-grapher.pl.sample
+ in the source distribution.
+
+2009-04-15 Duane Wessels
+
+ In the presenter's refile-and-grok.sh script, note that in
+ some environtments it is useful to skip NODEs that don't
+ have an incoming directory because they might have been
+ "grokked" elsewhere and then rsync'd to you.
+
+2009-02-27 Duane Wessels
+
+ In the collector it is now necessary to include <stdlib.h>
+ and <stdio.h>. Not sure why it wasn't necessary before.
+ Perhaps due to 2009-01-26 Hapy library upgrade.
+
+2009-02-19 Duane Wessels
+
+ In the collector, fixed some 64-bit free disk space calculations
+ with casting.
+
+2009-01-26 Duane Wessels
+
+ Upgraded to more recent version of Hapy parsing library.
+
+2008-12-31 Duane Wessels
+
+ In the collector, changed the value of pcap_open_live() because
+ we always try to read from all interfaces after select() returns.
+ If we have multiple interfaces and one of them is quiet, and
+ the timeout is too large, we'll drop packets on the other
+ interface while waiting for the first to time out.
+
+ Also added a pseudo-dataset that reports on pcap packets captured
+ and dropped.
+
+
+2008-12-02 Duane Wessels
+
+ Grapher now preserves the order of the server list given in
+ dsc-grapher.cfg.
+
+2008-11-22 Duane Wessels
+
+ Added some collector indexers and datasets for 2nd and 3rd level
+ domains.
+
+2008-10-02 Duane Wessels
+
+ Made the 'no extractor for $dataset' error message non-fatal.
+ Now, the unknown dataset will just be skipped and the remaining
+ ones will be processed.
+
+2008-09-30 Duane Wessels
+
+ In the presenter, account for the possibility that the collector's
+ clock is not in sync.
+
+2008-09-18 Elmar Knipp
+
+ Found bug in upload script where a $PROG.out prevents removal
+ of a $YYYYMMDD directory.
+
+2008-09-16 Duane Wessels
+
+ New presenter feature: Node Merging. Now the DSC grapher can
+ automatically "merge" multiple nodes so that they appear as
+ one. For example instead of this dsc-grapher.cfg line:
+
+ server S N1a N1b
+
+ you can merge nodes "a" and "b" with this line:
+
+ server S N1=N1a,N1b
+
+ This feature is also useful for just renaming a node if you
+ want it to be displayed as a different name than the directory
+ where its files are.
+
+2008-09-15 Duane Wessels
+
+ On the collector, changed the sample config and upload scripts
+ to use /usr/local/dsc/run as the default run_dir (was formerly
+ /usr/local/dsc/var/run/).
+
+2008-08-21 Duane Wessels
+
+ Added an EDNS bufsiz indexer so we can collect buffer sizes
+ advertised by clients.
+
+2008-08-12 Duane Wessels
+
+ Attempt to improve portability (on Solaris) by checking for
+ libresolv, libnsl, and libsocket. Also check for statvfs() vs
+ statvs() in configure.
+
+2008-07-29 Duane Wessels
+
+ Updates to collector/cron/upload-rsync.sh so that it behaves
+ better with new date-based directories on both collector and
+ presenter.
+
+2008-06-27 Duane Wessels
+
+ Added a source port range dataset (for about-to-be-announced
+ vulnerability that can be mititgated by improving source port
+ randomness).
+
+2008-04-22 Duane Wessels
+
+ Added ./configure script for presenter/dsc code.
+
+2008-04-22 Duane Wessels
+
+ Added support for capturing NCAP data streams.
+
+2008-01-09 Duane Wessels
+
+ Changed the location of the presenter's ".dat" files. Previously
+ there were stored in a directory such as 20080109/qtype/qtype.dat
+ and now they will be moved one directory up and stored as
+ 20080109/qtype.dat.
+
+ The source distribution includes a script found at
+ presenter/grapher/update-dat-file-locations.sh that will traverse
+ the /usr/local/dsc/data directory and move all the .dat files
+ one level up.
+
+ When upgrading to this version of DSC you should first stop the
+ refile-and-grok.sh cron job, install the DSC software, and then
+ run the update-dat-file-locations.sh script (after reading it).
+
+2008-01-09 Duane Wessels
+
+ Data passed from collector to presenter is now contained in a
+ single XML file, rather than one XML file per dataset. This
+ should significantly reduce filesystem pressure (i.e., 20x fewer
+ files to be stored and sent) on both sides.
+
+2008-01-07 Duane Wessels
+
+ The collector now stores to-be-uploaded XML files in
+ date-named subdirectories. This reduces filesystem pressure
+ in the event that the collector cannot communicate with the
+ presenter for an extended period of time.
+
+ To accomodate this change, the upload-prep.sh script has been
+ replaced with a Perl version, named upload-prep.pl. After
+ installing DSC you should change your cron job to use the new
+ script.
+
+2008-01-04 Ken Keys
+
+ Previously, a child was forked for each collection interval.
+ Memory allocated for collected data was freed by simply exiting
+ the child. But this left no way to preserve any data across
+ intervals.
+
+ Now, interval collectors do not fork. To avoid the tedious,
+ slow, and error-prone nature of normal malloc-and-free memory
+ management, we instead store non-persistent data in memory
+ allocated from an "arena", which can be freed quickly and safely.
+ We don't need to free individual allocations, but we do need
+ to reset some pointers to allocated memory.
+
+ TCP resets are now properly handled and TCP state is freed
+ if a connection has been idle for too long.
+
+2008-01-04 Duane Wessels
+
+ The collector configuration (dsc.conf) has a new 'minfree_bytes'
+ directive. If the amount of free disk space on dsc's partition
+ falls below this limit, dsc will not write any XML files -- that
+ data will be lost.
+
+ The default value is 5 MB.
+
+2007-12-14 Alexander Gall
+
+ Added a 'dns_ip_version' indexer so that we can track DNS messages
+ sent over v4 and v6.
+
+2007-12-04 Duane Wessels
+
+ Fixed a collector bug when listening on multiple interfaces of
+ different datalink types (e.g., eth0 and lo).
+
+2007-11-26 Duane Wessels
+
+ Added a 'hide_nodes' feature to dsc-grapher.cfg. If 'hide_nodes'
+ is given, then the navigation menu will not display the nodes
+ underneath a server. Note, however, that knowledgeable users
+ could still view individual node data by manually if they know
+ the names by specifying it in the URL query terms.
+
+2007-10-09 Duane Wessels
+
+ Changed the presenter to not use "data URIs" by default. Now
+ Internet Explorer users should be happier.
+
+2007/06/14 Duane Wessels
+
+ Added -f command line option to keep 'dsc' collector as a foreground
+ process.
+
+2007-06-11 Duane Wessels
+
+ dsc-xml-extractor.pl now looks for incoming XML files in
+ "incoming/YYYY-MM-DD" directories.
+
+2007-06-07 Duane Wessels
+
+ New TCP code did not compile cleanly on Linux. Added some
+ #ifdefs and macros for Linux compatibility on TCP headers.
+
+2007-05-15 Ken Keys, Duane Wessels
+
+ TCP support
+ New 'transport' indexer for DNS messages. Indicates whether message
+ arrived over UDP or TCP.
+
+2007-04-04 Duane Wessels
+
+ IPv6 support
+ New 'ip_version' indexer. Indicates whether DNS message arrived
+ via IPv4 or IPv6.