Submitted by keith on

Software Development

A key part of DNS-OARC's mission is to develop, maintain and host various software tools for DNS data collection, measurement and analysis. You can find a list of these tools below, with their source code and development management at OARC's site on Github.

Many of these tools have been developed in-house over time by OARC and its contributors. Others have been developed externally, and either donated to OARC by the original owner, or in some cases OARC has taken custodianship for the community of DNS tools which have become 'orphaned' from their original developers.

In keeping with OARC's nonprofit status and public benefit mission, all of the software for our tools is made available under open-source licenses - see below for OARC's open-source licensing policy.

Main Projects

These are the main projects that we do active development on:

  • dsc - DNS Statistics Collector (DSC) is a tool used for collecting and exploring statistics from busy DNS servers
  • dsc-datatool - Tool for converting, exporting, merging and transforming DSC data
  • dnscap - dnscap is a network capture utility designed specifically for DNS traffic
  • dnsperf - DNS Performance Testing Tools
  • packetq - A tool that provides a basic SQL-frontend to PCAP-files
  • dnsjit - Engine for capturing, parsing and replaying DNS
LIBRARIES

We also have a few libraries that we have developed and are used in our main projects:

  • tinyframe - Minimalistic Frame Streams library
  • dnswire - library for DNS encapsulations, for example DNSTAP
HELPERS

These tools are used to develop and test our software and you're free to see if they can help you also:

  • bad-packets - Collection of "bad" packets in PCAPs that can be used for testing software
  • dumdumd - High performance UDP/TCP/DoT/DoH DNS "server" that... just drops/reflects everything you send to it
MAINTENANCE ONLY

The following projects have been put in "maintenance only" and will not receive any further active development but we do still handle reported issues and/or funded feature requests:

  • dnsmeter - Tool for testing performance of nameservers
  • drool - drool is a tool to replay DNS traffic
  • ripeatlas - Go bindings for RIPE Atlas API
DISCONTINUED

These projects have been discontinued and will not receive any future updates or bug fixes, you are encouraged to stop using them.

  • dsp - DNS Statistics Presenter (DSP) can be used to display statistics collected by DSC
  • p5-Net-GetDNS - Perl bindings for getdns, a modern asynchronous DNS API

Funding Development

OARC also develops new tools as the need or opportunity for these arises. Funding for this development can come collectively from OARC's Members as part of its wider mission, from external 3rd-party grants, or can be done under contract in response to the custom needs of a specific requirement.

OARC can develop new, or enhance features of existing, tools via a custom for-hire development contract. We can accept such work from either OARC Members, or other parties (subject to available resources). OARC Members will receive priority for such work, and at a discounted rate depending on their Membership tier.

OARC also has various potential tool projects we would like to develop, subject to available funding. A list of these projects can be found on each software projects page on GitHub, see links below.

If you are interested in having OARC do custom tool development work, please contact us at admin@dns-oarc.net, and we'll be happy to discuss your requirements. We'd also welcome patches to, contributions, or donations of relevant tool code.

Support

If you are looking for support of existing OARC tools, we have a Mattermost channel for general support for all software at OARC Software and we recommend you post questions or requests for help there in the first instance. For specific bug reports, we recommend raising these on the project's Github site.

OARC's Open-Source Software Licensing Policy

  • For publicly available software we use GNU General Public Licenses such as AGPL/GPL/LGPL depending on the software's function: a service, tool or library.
  • For funded development we recommend using GNU General Public Licenses but it is up to the funding party to decide.
  • Software for which the source-code is Members-only, or services that we run both publicly and Members only, we use the Mozilla Public License (MPL) version 2.0.