Releases: Control-D-Inc/ctrld
Releases · Control-D-Inc/ctrld
Release list
Release v1.3.6
Minor Release
This contains new features, some performance improvements and bug fixes.
Added
upgradecommand with 2 optional args:devandprod.- 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
ctrldwill now always use the same hostname. ctrldnow uses the same directory with ctrd binary as home directory on Firewalla.ctrld startcommand 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
Minor Release
This contains new features, some performance improvements and bug fixes.
Added
- PIN protected deactivation.
- Windows Server (2019, 2022) support
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
ctrldand restored whenuninstallcommand is executed on Windows/Darwin. - File
/etc/resolv.confis now watched for changes on all unix platforms.
Fixed
- Fix detecting UniFi UXG products.
- Fix
ctrld uninstallcommand sometimes failing on Windows.
Release v1.3.4
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-dhcp4parser 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.
ctrldon some routers usesdnsmasq: max-cache-ttl=0to 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
ctrldstops 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
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.
ctrldnow 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.
WSAEHOSTUNREACHon 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
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
- Support MAC address-based policies.
- Add a flag to set the upstream type in CD mode.
- Add reload command.
- Add a config option to [enable an upstream to be used for LAN/PTR queries.
- Add a config option to specify how the client ID is generated.
- Add a config option to enable/disable answering queries from WAN clients.
- Add NextDNS mode.
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
ctrldmanually. ctrldwill 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-orgnot to be removed from the command line arguments. - Network policies now function correctly when
ctrldis 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
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/versionto 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-orgis 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
ctrldhome directory created randomly with windows RMM.
Release v1.3.0
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
ctrldfrom running on DD-WRT. - Incorrect reading of base64 config.
- Attempting to write configuration in ephemeral mode.
Release v1.2.1
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
v1.2.0
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
v1.1.4
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