Releases: valeriansaliou/constellation
Releases · valeriansaliou/constellation
Constellation v1.12.2
- Bumped
trust-dns-resolver
tov0.8.2
, as an attempt to fix file descriptor leaks seen when using Constellation on large-scale deployments.
Constellation v1.12.1
- Breaking: A list of DNS resolvers must now be passed in the configuration using the
dns.flatten.resolvers
option for the DNS flattening service to work. This should fix a file descriptor leak seen when using Constellation in large-scale deployments, due to a weakness in the underlying DNS resolver library used (trust-dns-resolver
), where some file descriptors would not be closed after performing a DNS request using the default system resolver. This can, after some time, overwhelm the system-enforcedfd
limit, and prevent Constellation from accepting any further TCP DNS query, as well as open any TCP client connection.
Constellation v1.12.0
- Added the ability to flatten CNAME values for a record (with the
flatten
API property; no CNAME flattening is done by default). - Do not return a
CNAME
value aside fromA
,AAAA
, etc. records, set priority to flat records.
Constellation v1.11.0
- Updated GeoIP updates management to support new licensing requirements from MaxMind (you can now pass your license key in the initialization script and update URL).
- Bumped dependencies.
Constellation v1.10.0
- Breaking: Reworked the Redis pool manager to be able to configure failover (ie. rescue) Redis servers, that should be set to be read-only (the primary Redis host has been moved to
redis.master
, while optional failover Redis hosts can be configured withredis.rescue
). - Added the ability to perform DNS health checks on a forced virtual host, with the
dns.health.http.host
configuration variable.
Constellation v1.9.2
- Implemented health check retries in case of a failed attempt due to an invalid response status code or response body (retries were previously only performed in case of a TCP-level or TLS-level error, but it's also good to have them work for HTTP-level errors in some stacks).
Constellation v1.9.1
- Bumped
http_req
tov0.5.2
, which adds support for IPv6 URIs. - Now showing replica identity in DNS health check Slack notifications (the
server.identifier
configuration property has been added, allowing this).
Constellation v1.9.0
- Added a DNS health check system, that temporarily removes unhealthy endpoints (for
A
,AAAA
andCNAME
RR types) from DNS responses for a host (HTTP and HTTPS checks are supported via thedns.health.http
configuration property). - Improved the cache system, which is now able to serve stale cache if the Redis backend is unreachable.
- Cached records are now kept up-to-date with Redis in the background, saving precious milliseconds in the main DNS responder thread (with the
redis.cache_refresh_seconds
configuration property). - Fixed an implementation mistake in the DNS responder, that resulted in a
NOERROR
with no records if Redis is unreachable, where the correct answer wasSERVFAIL
. - Fixed a bug in the Redis backend connector; if Redis went down and Constellation failed accessing Redis as many times as there were connections in the Redis pool, all further attempts would hang and timeout (where they should have failed fast with a
Disconnected
internal error). - Fixed a bug in the DNS
NOERROR
andNXDOMAIN
response types that are sent depending on whether record exists or not (regression introduced inv1.7.0
with the cache system). - Bumped all dependencies (except
trust-dns
andtrust-dns-server
due to conflicts).
Constellation v1.8.0
- Added a metrics interface through the HTTP REST API, which provides statistics for:
Query Types
,Query Origins
andAnswer Codes
.
Constellation v1.7.0
- Added the ability to serve empty DNS records to certain countries (with the
blackhole
API property). - Optimized Redis reads at scale with a local cache layer (this avoids hitting Redis 1M time if there are 1M DNS queries on the same name and type).
- Added a Docker image, available on Docker Hub.
- Bumped all dependencies (except
trust-dns
andtrust-dns-server
due to conflicts).