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 query
sends a query to a name server or the system’s default resolver,dnsi lookup
looks up the IP addresses for domain names or the domain names for IP addresses,dnsi help
displays 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 update
Then install packages to allow apt
to use a repository over HTTPS:
sudo apt install \
ca-certificates \
curl \
gnupg \
lsb-release
Add the GPG key from NLnet Labs:
curl -fsSL https://packages.nlnetlabs.nl/aptkey.asc | sudo gpg --dearmor -o /usr/share/keyrings/nlnetlabs-archive-keyring.gpg
Now, 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/null
Update the apt
package index once more:
sudo apt update
You can now install dnsi
with:
sudo apt install dnsi
To 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 update
Then install packages to allow apt
to use a repository over HTTPS:
sudo apt install \
ca-certificates \
curl \
gnupg \
lsb-release
Add the GPG key from NLnet Labs:
curl -fsSL https://packages.nlnetlabs.nl/aptkey.asc | sudo gpg --dearmor -o /usr/share/keyrings/nlnetlabs-archive-keyring.gpg
Now, 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/null
Update the apt
package index once more:
sudo apt update
You can now install dnsi
with:
sudo apt install dnsi
To 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.asc
You can now install dnsi
with:
sudo yum install -y dnsi
dnsi
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 | sh
Alternatively, 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 dnsi
If you want to update to the latest version of dnsi
, it’s recommended
to update Rust itself as well, using:
rustup update
Use the --force
option to overwrite an existing version with the latest
dnsi
release:
cargo install --locked --force dnsi
If 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