dnsi is a command line tool to investigate various aspects of the
Domain Name System (DNS). It is developed as part of the
domain project and has our
long-term commitment.
dnsi is currently in an early state and will expand over the coming
months. Please don't hesitate to contribute by opening a pull-request,
or submit a feature request by opening a
GitHub issue, or by reaching
out via Mastodon or
email.
The tool contains a number of commands. Currently, these are:
dnsi querysends a query to a name server or the system’s default resolver,dnsi lookuplooks up the IP addresses for domain names or the domain names for IP addresses,dnsi helpdisplays the man page for any command.
There are many options for each command. To learn more about them, you
can use --help for a complete overview, or -h for a summary, e.g.
dnsi query --help.
Getting started with dnsi is really easy by installing a binary package
for either Debian and Ubuntu or for Red Hat Enterprise Linux (RHEL) and
compatible systems such as Rocky Linux.
You can also build dnsi from the source code using Cargo, Rust's build
system and package manager. Refer to the building section to
get started.
To install the dnsi package, you need the 64-bit version of one of these
Debian versions:
- Debian Bookworm 12
- Debian Bullseye 11
Packages for the amd64 and x86_64 architectures are available for
all listed versions. In addition, we offer armhf architecture
packages for Debian/Raspbian Bullseye, and arm64 for Buster.
First update the apt package index:
sudo apt updateThen install packages to allow apt to use a repository over HTTPS:
sudo apt install \
ca-certificates \
curl \
gnupg \
lsb-releaseAdd the GPG key from NLnet Labs:
curl -fsSL https://packages.nlnetlabs.nl/aptkey.asc | sudo gpg --dearmor -o /usr/share/keyrings/nlnetlabs-archive-keyring.gpgNow, use the following command to set up the main repository:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/nlnetlabs-archive-keyring.gpg] https://packages.nlnetlabs.nl/linux/debian \
$(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/nlnetlabs.list > /dev/nullUpdate the apt package index once more:
sudo apt updateYou can now install dnsi with:
sudo apt install dnsiTo install a dnsi package, you need the 64-bit version of one of these
Ubuntu versions:
- Ubuntu Jammy 22.04 (LTS)
- Ubuntu Focal 20.04 (LTS)
Packages are available for the amd64/x86_64 architecture only.
First update the apt package index:
sudo apt updateThen install packages to allow apt to use a repository over HTTPS:
sudo apt install \
ca-certificates \
curl \
gnupg \
lsb-releaseAdd the GPG key from NLnet Labs:
curl -fsSL https://packages.nlnetlabs.nl/aptkey.asc | sudo gpg --dearmor -o /usr/share/keyrings/nlnetlabs-archive-keyring.gpgNow, use the following command to set up the main repository:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/nlnetlabs-archive-keyring.gpg] https://packages.nlnetlabs.nl/linux/ubuntu \
$(lsb_release -cs) main" | sudo tee /etc/apt/sources.list.d/nlnetlabs.list > /dev/nullUpdate the apt package index once more:
sudo apt updateYou can now install dnsi with:
sudo apt install dnsiTo install the dnsi package, you need Red Hat Enterprise Linux (RHEL)
8 or 9, or compatible operating system such as Rocky Linux. Packages are
available for the amd64/x86_64 architecture only.
First create a file named /etc/yum.repos.d/nlnetlabs.repo, enter this
configuration and save it:
[nlnetlabs]
name=NLnet Labs
baseurl=https://packages.nlnetlabs.nl/linux/centos/$releasever/main/$basearch
enabled=1
Add the GPG key from NLnet Labs:
sudo rpm --import https://packages.nlnetlabs.nl/aptkey.ascYou can now install dnsi with:
sudo yum install -y dnsidnsi is written in Rust. The Rust compiler runs on, and compiles to, a
great number of platforms, though not all of them are equally supported. The
official Rust Platform
Support page
provides an overview of the various support levels.
While some system distributions include Rust as system packages, dnsi
relies on a relatively new version of Rust, currently 1.78 or newer.
We therefore suggest to use the canonical Rust installation via a tool called
rustup.
Assuming you already have curl installed, you can install rustup and Rust
by simply entering:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | shAlternatively, visit the Rust website for other installation methods. Also refer to this page for notes
on updating Rust, and configuring the PATH environment variable.
After successfully installing Rust, installing dnsi is as simple as
entering:
cargo install --locked dnsiIf you want to update to the latest version of dnsi, it’s recommended
to update Rust itself as well, using:
rustup updateUse the --force option to overwrite an existing version with the latest
dnsi release:
cargo install --locked --force dnsiIf you want to install a specific version of dnsi using Cargo, explicitly
use the --version option. If needed, use the --force option to
overwrite an existing version:
cargo install --locked --force dnsi --version 0.1.0