Skip to content

Releases: Control-D-Inc/ctrld

Release v1.3.6

Choose a tag to compare

@cuonglm cuonglm released this 19 Apr 17:03
429a98b

Minor Release

This contains new features, some performance improvements and bug fixes.

Added

  • upgrade command with 2 optional args: dev and prod.
  • Support MAC address wildcard matching in listener policy.
  • Config param to specify domains which ctrld will trigger a flush cache before sending request to upstream.
  • Support for Netgear Orbi with Voxel firmware.

Improved

  • General improvements to the UX:
    • Self-check process won't hang forever when ctrld failed to connect to socket control server.
    • Un-usable interfaces will be ignored during set/reset DNS on Darwin.
  • DoH/DoH3 endpoint can now be set without specifying scheme (assuming https).
  • Queries from host which run ctrld will now always use the same hostname.
  • ctrld now uses the same directory with ctrd binary as home directory on Firewalla.
  • ctrld start command now validates remote config, allowing better UX with invalid config.
  • On BSD, unbound and dnsmasq status will be recorded using system config.
  • Checking PIN protected deactivation will now happen before any calls to Control D APIs.

Fixed

  • Fix PIN protected deactivation for mobile platforms.
  • Fix NDP discover issue with Android clients.
  • Fix quic-go's ECN issue on some platforms.

Release v1.3.5

Choose a tag to compare

@cuonglm cuonglm released this 04 Mar 17:43
810cbd1

Minor Release

This contains new features, some performance improvements and bug fixes.

Added

Improved

  • Clients with empty hostname will be filled in based on other clients with same MAC address.
  • File information is now included in Windows builds.
  • DNS settings updated on all physical interfaces on Windows/Darwin.
  • Static DNS settings of the current network interface are preserved before installing ctrld and restored when uninstall command is executed on Windows/Darwin.
  • File /etc/resolv.conf is now watched for changes on all unix platforms.

Fixed

  • Fix detecting UniFi UXG products.
  • Fix ctrld uninstall command sometimes failing on Windows.

Release v1.3.4

Choose a tag to compare

@cuonglm cuonglm released this 24 Jan 00:48
f8967c3

Minor Release

This contains new features, some performance improvements and bug fixes.

Added

  • Add NDP discovery.
  • Support for custom device names on Ubios routers.
  • host_entries.conf (Host overrides) parser in pfsense/OPNsense.
  • kea-dhcp4 parser in pfsense.
  • Internal stats and Prometheus exporter

Improved

  • Client information (mdns data) is automatically discovered from the Avahi daemon if it is running on the device.
  • ctrld on some routers uses dnsmasq: max-cache-ttl=0 to prevent wrong caching of queries with multiple listeners, by ensuring DNS records are always refreshed.
  • The discovery refresh interval can now be configured.
  • On FreeBSD, if ctrld stops unexpectedly, it will restart automatically.
  • ctrld's bootstrap DNS is now different.
  • On UniFi OS, ctrld will report an error if DNS shield was enabled.

Fixed

  • Latest Ubiqiti firmware bugs
  • Fix the TOML struct tag for ARP discovery.
  • Fix MAC policy not working when non-Control D upstreams are used.

Release v1.3.3

Choose a tag to compare

@cuonglm cuonglm released this 19 Dec 11:12
2a23fea

Minor Release

This contains some improvements and bug fixes.

Improved

  • Logging:
    • The logging of request flow is now more clearer and more useful between INFO and DEBUG level.
    • DoH header logging has been adjusted to match the format and level of detail used for the rest of the request flow.
  • ctrld now uses /var/run as the running directory for its control server on nix systems.
  • Using invalid flags no longer throws errors; they will be disregarded instead.
  • WSAEHOSTUNREACH on Windows is now classified as a network error.

Fixed

Fix the bug that causes the check upstream process to run only once.

Release v1.3.2

Choose a tag to compare

@cuonglm cuonglm released this 13 Dec 15:04
998b9a5

Major Release

This contains new features, some performance improvements and bug fixes.

Major Changes

  • Will now respond to LAN-local machine hostnames and PTR record queries using the internal discovered clients list
  • MAC address based DNS steering policies were added
  • Will no longer respond to DNS queries made from WAN IP addresses by default
  • Any RFC1918/CGNAT/local DNS upstream will now be automatically used for PTR discovery

Added

Improved

  • Relax the service's dependency on systemd-netword-wait-online.
  • Upstream monitor checking more aggressively.
  • mDNS discovery will not complain about the use of closed network connections.
  • An RFC 1918 address will be used in client info instead of localhost for requests to local listeners.
  • Bump golang.org/x/net to v0.17.0
  • Probing for IPv6 will not flood requests to the Control D server.
  • PTR discovery will result in less noise in the log.
  • "ctrld service start" will not do router setup anymore, allowing power users full control of configuring ctrld manually.
  • ctrld will now notify users when reading or writing to the configuration file.
  • Pre-run conditions on Merlin routers are more thoroughly checked.
  • DNS loop test queries will not be sent for non-local upstreams.
  • WAN originating DNS queries will be refused by default using REFUSED RCODE

Fixed

  • Fix mobile platforms that crash if fetching the resolver configuration fails in CD mode.
  • Fix the wrong checking condition that causes --cd-org not to be removed from the command line arguments.
  • Network policies now function correctly when ctrld is upstream for dnsmasq.
  • Fix EDNS0 with RFC 1918 and loopback addresses results in suboptimal Control D server responses.
  • Eliminate duplicate client IDs generated for the same IPv6 client.
  • Re-bootstrap transport in cases of network outages more aggressively

Release v1.3.1

Choose a tag to compare

@cuonglm cuonglm released this 11 Oct 02:32
f1b8d1c

Minor Release

This is a minor release with new features, some performance improvements, and various bug fixes.

Added

  • Support the hosts file as a source for resolving hostnames.
  • Including the OS version in the DoH header.
  • Including the client's IP address when ctrld is an upstream of dnsmasq.

Improved

  • Making PTR lookup failures less noisy for users.
  • Upgrading quic-go to v0.38.0
  • ctrld now generates a working default configuration in both cd and local mode.
  • Using /etc/version to detect a UniFi Gateway.
  • The general performance and stability of ctrld:
    • All upstreams are monitored to prevent high resource consumptions in case of outage.
    • Guarding against DNS loops.
  • Reporting error when --cd/--cd-org is set to empty string.

Fixed

  • Service restart loop in EdgeOS.
  • Using Control D bootstrap DNS for the OS resolver, fixed #59.
  • Fix the default route IP address with the public interface.
  • Fix the setting of DNS so that it takes effect in some cloud providers with systemd-resolved.
  • Fix ctrld home directory created randomly with windows RMM.

Release v1.3.0

Choose a tag to compare

@cuonglm cuonglm released this 15 Aug 15:52
0ca37dc

Major Release

This is a major release that may have breaking changes with existing configs in some narrow edge cases, especially if deploying custom configs via Control D web interface.

Deprecated

  • The "Router Mode" and "setup" command have been replaced with a universal "start" command.

Added

  • LAN client discovery via ARP, mDNS, and PTR probes, with support for custom client name on Asus Merlin routers.
  • The "clients list" subcommand shows all discovered LAN clients.
  • Running client discovery on all platforms and in all modes of operation.
  • Support for older GL.iNet routers.
  • Support for UniFi Gateway.
  • Support for Firewalla.
  • Support for OPNsense firewall.
  • Support for building Docker images with multiple architectures.
  • Support Control-D hostname overrides.
  • Support Control-D org provisioning tokens.
  • Support remote custom configuration from the Control-D API.
  • Support limiting the maximum number of concurrent requests via a configuration parameter.

Improved

  • The performance and stability of ctrld on underpowered devices.
  • DoH and DoH3 transport setup.
  • General improvements to the UX:
    • All "ctrld service" subcommands now have aliases.
    • More friendly error and debug message when the "ctrld start" command failed to run.
  • Configuration validation error message.
  • Configuration fetching and probing process.

Fixed

  • Resolving bootstrap IP address broken with CNAME chain.
  • Performance issues with EdgeOS routers.
  • Incorrect checking condition in pre-start preventing ctrld from running on DD-WRT.
  • Incorrect reading of base64 config.
  • Attempting to write configuration in ephemeral mode.

Release v1.2.1

Choose a tag to compare

@cuonglm cuonglm released this 08 Jun 04:23
0c99d27

New Features

  • Added support for WSL
  • Added support for Synology
  • Added support for EdgeOS
  • Added support for Pfsense
  • Added support for Freshtomato

Enhancements

  • Enhanced spoofing of source IP on routers using DHCP lease file
  • Implemented error handling for UDM devices with "Content Filtering" enabled, which may conflict with ctrld
  • Improved compatibility with older versions of Openwrt

Bug Fixes

  • Resolved split mode issue for when DNS-over-TLS/QUIC is used
  • Fixed incorrect checking condition in pre-start that caused ctrld to fail on ddwrt

View all changes.

v1.2.0

Choose a tag to compare

@cuonglm cuonglm released this 16 May 18:48
b126db4

Major Changes

  • Added router support for OpenWRT, DD-WRT, Asus Merlin, Ubiquiti, GL.iNet
  • Added network topology transmission when Control D upstreams are used
  • Added ability to fetch a config file from the Control D API
  • Added split stack mode when Control D upstreams are used
  • Multiple bug fixes

View all changes.

v1.1.4

Choose a tag to compare

@cuonglm cuonglm released this 03 Apr 16:52
9c22701

Changelog

  • 42d29b6 Adding more source for getting available DNS
  • 8869e33 Inject version and commit during goreleaser build
  • 9c22701 Merge pull request #37 from Control-D-Inc/release-branch-v1.1.4
  • a77a924 Require go1.20 for building ctrld
  • 95dbf71 Upgrage tailscale.com for fixing security issue
  • b65a5ac all: fix bug that causes ctrld stop working if bootstrap failed
  • ba48ff5 all: fix os resolver hangs when all server failed
  • b3a342b all: some improvements for better troubleshooting
  • c94e1b0 all: supports multiple protocols for no config mode
  • 8a56389 cmd/ctrld: ensure both udp/tcp listener aborted
  • f0c604a cmd/ctrld: only watch config when doing self-check
  • 9927803 cmd/ctrld: response to OS service manager earlier