v2.0.0 introduces several major changes for ZDNS.
Highlights include:
- The largest change was a refactor to split ZDNS into a core library and a CLI wrapper that utilizes the library. With this change, other Go tools will be able to interface directly with ZDNS without having to call and parse CLI output.
- Support for DoH and DoT lookups
- Proper
--all-nameservers
support that queries every nameserver at each step of the iteration process - CNAME/DNAME following for all lookups by default
--validate-dnssec
adds support for a full validation of DNSSEC for a given record (thanks to @developStorm for this feature!)
Along with a host of bug fixes, performance improvements, testing enhancements, and smaller features.
What's Changed
- Removed large scan integration test by @phillip-stephens in #372
- Bump github.com/hashicorp/go-version from 1.6.0 to 1.7.0 by @dependabot in #364
- Bump github.com/spf13/viper from 1.17.0 to 1.19.0 by @dependabot in #373
- Add reliable large-scale scanning integration test by @phillip-stephens in #374
- Split ZDNS into a library and CLI tool by @phillip-stephens in #360
- Remove deprecated temporary error by @phillip-stephens in #377
- Fix bug in cachehash that wouldn't update a key-value pair if the key was already in the cache by @phillip-stephens in #376
- Add linters and fix up found issues by @phillip-stephens in #375
- Add style check linter and fix any found style inconsistencies with Go conventions by @phillip-stephens in #379
- Bump dependencies to their most recent version by @phillip-stephens in #382
- Adds a couple linters for checking for common performance improvements + fixes found issues by @phillip-stephens in #380
- Avoid changing the timeouts selected by user, better handling of iteration timeout and normal timeout by @phillip-stephens in #383
- Give ZDNS a version by @phillip-stephens in #384
- allow PTR queries for domain names as well as IP addresses by @matthewluckie in #378
- Fix for GitHub action - set version on release by @phillip-stephens in #387
- Add bug template for issues by @phillip-stephens in #388
- Add integration tests for timestamps and
--nanoseconds
resolution timestamps by @phillip-stephens in #390 - Bump peter-evans/create-pull-request from 5 to 6 by @dependabot in #392
- Bump actions/checkout from 3 to 4 by @dependabot in #393
- Bump github.com/spf13/cobra from 1.8.0 to 1.8.1 by @dependabot in #394
- Add ZDNS library examples by @phillip-stephens in #395
- Split apart CLIConfig validation, fix error where localAddress was not copied to Resolver, and add some unit tests by @phillip-stephens in #389
- Error if a loopback name server is used with a non-loopback local address, or vice versa by @phillip-stephens in #396
- Move large scale scan integration test into a daily/on-demand action by @phillip-stephens in #398
- Fixed out-dated v4 root server B, added V6 addresses by @phillip-stephens in #400
- Fix typo:
ulimit
instead ofunlimit
by @asafhad in #403 - Perform all config validation in Resolver to avoid code duplication/mess by @phillip-stephens in #402
- Moved large scan integration test to manual-trigger only, it's just too flaky for reliable CI by @phillip-stephens in #406
- added context check in iterativeLookup, solves cache contention issue by @phillip-stephens in #407
- Adds a go benchmark wrapper around ZDNS for repeatable A/B tests around performance improvements by @phillip-stephens in #408
- Make test workflow manually trigger-able from Github and update TLSA cert in tests by @phillip-stephens in #409
- Follow CNAMES on all lookups by default by @phillip-stephens in #397
- Fix edge case with --iterative and loopback external nameservers by @phillip-stephens in #405
- Add a CNAME loop test to integration by @phillip-stephens in #399
- Fixed large number of
SERVFAIL
s by @phillip-stephens in #413 - Bump golangci/golangci-lint-action from 6.0.1 to 6.1.0 by @dependabot in #414
- Add ability for user to select root servers for iterative mode by @phillip-stephens in #412
- Add new Concat utility and use it to fix slice.append gotcha by @phillip-stephens in #416
- fix issue when OS' nameserver is loopback with --iterative by @phillip-stephens in #415
- Add support for IPv6 by @phillip-stephens in #410
- Remove ALOOKUP module and associated code by @phillip-stephens in #419
- Multi-thread Python Tests for easier development and add a CNAME loop test by @phillip-stephens in #420
- Revert "Remove ALOOKUP module and associated code (#419)" by @phillip-stephens in #425
- Move ZDNS to using ZFlags instead of Cobra by @phillip-stephens in #427
- Allow domains to be passed in dig-style, and give ZDNS multi-module capability by @phillip-stephens in #428
- Fix
--class
not being respected by CLI by @phillip-stephens in #430 - Added metadata file integration test by @phillip-stephens in #421
- Fixes Seg-Faults if Close is called on a resolver and IPv4/v6 isn't used and update examples/ by @phillip-stephens in #433
- Bump github.com/schollz/progressbar/v3 from 3.14.4 to 3.14.6 by @dependabot in #432
- Fix TLSA record integration test by @phillip-stephens in #434
- Pass domains as NameServers and NameServer struct re-factor by @phillip-stephens in #435
- Allow users to specify name-servers in input regardless of nameservers/local addresses supplied with flags by @phillip-stephens in #437
- Fix linter by @phillip-stephens in #440
- Bump peter-evans/create-pull-request from 6 to 7 by @dependabot in #438
- Fix
--dnssec
and add a test by @phillip-stephens in #442 - Revert README changes made directly to main by @phillip-stephens in #443
- Update README and
--help
with Input Formats by @phillip-stephens in #444 - Add DoH and DoT support by @phillip-stephens in #431
- Bump github.com/schollz/progressbar/v3 from 3.14.6 to 3.15.0 by @dependabot in #446
- Remove MXLookup cache, add concept of caching lookups specific to a nameserver by @phillip-stephens in #447
- Lowers default thread count from 1000 to 100 by @phillip-stephens in #448
- Phillip/449 iterative cache extra queries regression by @phillip-stephens in #452
- Only
makeVerbosePrefix
if we're in at leastDebug
log level by @phillip-stephens in #453 - patch: only exclude the zdns binary in workspace root by @developStorm in #455
- Prevent NONEEDEDGLUE errors and add cache statistics by @phillip-stephens in #456
- Make
--retries
global to a name and try with other name servers in a given layer by @phillip-stephens in #451 - Bump golangci/golangci-lint-action from 6.1.0 to 6.1.1 by @dependabot in #462
- Update TLSA records for integration tests by @phillip-stephens in #464
- refactor: use replace syntax to import zdns/dns by @developStorm in #468
- Avoid double-marshal'ing strings (uint byte arrays) by @phillip-stephens in #471
- Refactor: Allow More Answer Types to Be Cacheable by @developStorm in #465
- build(ci): fix linter errcheck errors by @developStorm in #475
- Print per-second summary statistics detailing a scan, similar to ZMap by @phillip-stephens in #473
- patch: fix TLSA test by @developStorm in #478
- Bump github.com/stretchr/testify from 1.9.0 to 1.10.0 by @dependabot in #479
- Silence ZDNS status updates with
make benchmark
by @phillip-stephens in #480 - Add a proper
--all-nameservers
implementation by @phillip-stephens in #485 - feat: DNSSEC Validation by @developStorm in #470
- Bump zcrypto dep, resolves CVE in go/crypto < v1.31 by @phillip-stephens in #486
- Raise a warning log msg when overriding the user's selected
--local-addr
by @phillip-stephens in #488 - Remove PROPOSED_REFACTOR.md by @phillip-stephens in #490
- Adds all new modules added in new tagged versions of miekg/dns by @phillip-stephens in #459
- Update TLSA Cert for integration test by @phillip-stephens in #492
- Add an auto-generated modules file by @phillip-stephens in #493
- Only warn user of
--local-addr
is provided explicitly by user by @phillip-stephens in #489 - Unify instances of "additionals" -> "additional" when referring to the section as a whole by @phillip-stephens in #487
- Phillip/483 ipv6 bug by @phillip-stephens in #491
- bump zdns version to 2.0.0 by @phillip-stephens in #494
New Contributors
- @matthewluckie made their first contribution in #378
- @asafhad made their first contribution in #403
- @developStorm made their first contribution in #470
Full Changelog: v1.1.0...v2.0.0-RC1