2. Installation

2.1. Hardware requirements

Loop is packaged for a set of supported operating system platforms (see Supported platforms). Any machine (real or virtual) with one of these platforms can be used to run Loop.

DNS hardware requirements have traditionally been quite modest. For many installations, servers that have been pensioned off from active duty can perform admirably as DNS servers. For serving a handful of static zones with low traffic, even low-performance machines may be sufficient. If the server's operational duties are larger, then a suitably performant machine can be selected.

Loop's nameserver is multi-threaded, allowing utilization of multiprocessor systems for installations that need it.

The memory of the server has to be large enough to fit the cache and zones loaded off disk. The max-cache-size option of named.conf(5) can be used to limit the amount of memory used by the cache, at the expense of reducing cache hit rates and causing more DNS traffic. It is still good practice to have enough memory to load all zone and cache data into memory --- the best way to determine this for a given installation is to watch the nameserver in operation. After a few weeks the nameserver process should reach a relatively stable size where entries are expiring from the cache as fast as they are being inserted.

We aren't able to recommend specifications in this document as it would be outdated quickly. It is best to profile the usage patterns and prepare a hardware configuration accordingly.

Error

TODO: Add a link to Loop support for help with hardware configuration.

Error

TODO: Add a link to a tuning section.

2.2. Supported platforms

Loop is written to run on POSIX operating systems. The following platforms are supported by Loop version 1.99.15.20260531075356.32922aefed:

  • Red Hat Enterprise Linux 10 (x86_64)

  • Red Hat Enterprise Linux 10 (aarch64)

  • Red Hat Enterprise Linux 9 (x86_64)

  • Red Hat Enterprise Linux 9 (aarch64)

  • Fedora Linux 44 (x86_64)

  • Fedora Linux 44 (aarch64)

  • Fedora Linux 43 (x86_64)

  • Fedora Linux 43 (aarch64)

  • Debian 13 "Trixie" (amd64)

  • Debian 13 "Trixie" (arm64)

  • Debian 13 "Trixie" (riscv64)

  • Debian 12 "Bookworm" (amd64)

  • Debian 12 "Bookworm" (arm64)

  • Ubuntu 26.04 LTS "Resolute Raccoon" (amd64)

  • Ubuntu 26.04 LTS "Resolute Raccoon" (arm64)

  • Ubuntu 26.04 LTS "Resolute Raccoon" (riscv64)

  • Ubuntu 24.04 LTS "Noble Numbat" (amd64)

  • Ubuntu 24.04 LTS "Noble Numbat" (arm64)

  • Ubuntu 24.04 LTS "Noble Numbat" (riscv64)

  • Ubuntu 22.04 LTS "Jammy Jellyfish" (amd64)

  • Ubuntu 22.04 LTS "Jammy Jellyfish" (arm64)

Packages for current versions of FreeBSD will be added in the future.

Note

For information about Loop's version numbering, see Version numbering scheme. For information about Loop's branches and EOL dates, see Version branches.

2.3. RPM platforms

Note

Users of Red Hat Enterprise Linux clones such as Rocky Linux and AlmaLinux can use the Red Hat Enterprise Linux packages of the corresponding version and follow the corresponding installation instructions.

2.3.1. Red Hat Enterprise Linux 10 (x86_64)

To install Loop version 1.99.15.20260531075356.32922aefed on Red Hat Enterprise Linux 10 (x86_64), follow these steps as the root user.

First, install the akira-release RPM package that will add the akira-epel and akira-epel-testing DNF repositories to your system, as well as associated GPG keys used to verify signed RPM packages from these repositories:

# dnf install https://download.banu.com/packages/akira/1.99/epel/10/x86_64/akira-release-1.99.15.20260531075356.32922aefed-1.el10.noarch.rpm

Then, install the loop RPM package that will install the Loop software and documentation:

# dnf install loop

Then, if you wish to run the nameserver, configure named suitably by editing /etc/loop/named.conf, and then run it:

# systemctl enable --now named

2.3.2. Red Hat Enterprise Linux 10 (aarch64)

To install Loop version 1.99.15.20260531075356.32922aefed on Red Hat Enterprise Linux 10 (aarch64), follow these steps as the root user.

First, install the akira-release RPM package that will add the akira-epel and akira-epel-testing DNF repositories to your system, as well as associated GPG keys used to verify signed RPM packages from these repositories:

# dnf install https://download.banu.com/packages/akira/1.99/epel/10/aarch64/akira-release-1.99.15.20260531075356.32922aefed-1.el10.noarch.rpm

Then, install the loop RPM package that will install the Loop software and documentation:

# dnf install loop

Then, if you wish to run the nameserver, configure named suitably by editing /etc/loop/named.conf, and then run it:

# systemctl enable --now named

2.3.3. Red Hat Enterprise Linux 9 (x86_64)

To install Loop version 1.99.15.20260531075356.32922aefed on Red Hat Enterprise Linux 9 (x86_64), follow these steps as the root user.

First, install the akira-release RPM package that will add the akira-epel and akira-epel-testing DNF repositories to your system, as well as associated GPG keys used to verify signed RPM packages from these repositories:

# dnf install https://download.banu.com/packages/akira/1.99/epel/9/x86_64/akira-release-1.99.15.20260531075356.32922aefed-1.el9.noarch.rpm

Then, install the loop RPM package that will install the Loop software and documentation:

# dnf install loop

Then, if you wish to run the nameserver, configure named suitably by editing /etc/loop/named.conf, and then run it:

# systemctl enable --now named

2.3.4. Red Hat Enterprise Linux 9 (aarch64)

To install Loop version 1.99.15.20260531075356.32922aefed on Red Hat Enterprise Linux 9 (aarch64), follow these steps as the root user.

First, install the akira-release RPM package that will add the akira-epel and akira-epel-testing DNF repositories to your system, as well as associated GPG keys used to verify signed RPM packages from these repositories:

# dnf install https://download.banu.com/packages/akira/1.99/epel/9/aarch64/akira-release-1.99.15.20260531075356.32922aefed-1.el9.noarch.rpm

Then, install the loop RPM package that will install the Loop software and documentation:

# dnf install loop

Then, if you wish to run the nameserver, configure named suitably by editing /etc/loop/named.conf, and then run it:

# systemctl enable --now named

2.3.5. Fedora Linux 44 (x86_64)

To install Loop version 1.99.15.20260531075356.32922aefed on Fedora Linux 44 (x86_64), follow these steps as the root user.

First, install the akira-release RPM package that will add the akira-fedora and akira-fedora-testing DNF repositories to your system, as well as associated GPG keys used to verify signed RPM packages from these repositories:

# dnf install https://download.banu.com/packages/akira/1.99/fedora/44/x86_64/akira-release-1.99.15.20260531075356.32922aefed-1.fc44.noarch.rpm

Then, install the loop RPM package that will install the Loop software and documentation:

# dnf install loop

Then, if you wish to run the nameserver, configure named suitably by editing /etc/loop/named.conf, and then run it:

# systemctl enable --now named

2.3.6. Fedora Linux 44 (aarch64)

To install Loop version 1.99.15.20260531075356.32922aefed on Fedora Linux 44 (aarch64), follow these steps as the root user.

First, install the akira-release RPM package that will add the akira-fedora and akira-fedora-testing DNF repositories to your system, as well as associated GPG keys used to verify signed RPM packages from these repositories:

# dnf install https://download.banu.com/packages/akira/1.99/fedora/44/aarch64/akira-release-1.99.15.20260531075356.32922aefed-1.fc44.noarch.rpm

Then, install the loop RPM package that will install the Loop software and documentation:

# dnf install loop

Then, if you wish to run the nameserver, configure named suitably by editing /etc/loop/named.conf, and then run it:

# systemctl enable --now named

2.3.7. Fedora Linux 43 (x86_64)

To install Loop version 1.99.15.20260531075356.32922aefed on Fedora Linux 43 (x86_64), follow these steps as the root user.

First, install the akira-release RPM package that will add the akira-fedora and akira-fedora-testing DNF repositories to your system, as well as associated GPG keys used to verify signed RPM packages from these repositories:

# dnf install https://download.banu.com/packages/akira/1.99/fedora/43/x86_64/akira-release-1.99.15.20260531075356.32922aefed-1.fc43.noarch.rpm

Then, install the loop RPM package that will install the Loop software and documentation:

# dnf install loop

Then, if you wish to run the nameserver, configure named suitably by editing /etc/loop/named.conf, and then run it:

# systemctl enable --now named

2.3.8. Fedora Linux 43 (aarch64)

To install Loop version 1.99.15.20260531075356.32922aefed on Fedora Linux 43 (aarch64), follow these steps as the root user.

First, install the akira-release RPM package that will add the akira-fedora and akira-fedora-testing DNF repositories to your system, as well as associated GPG keys used to verify signed RPM packages from these repositories:

# dnf install https://download.banu.com/packages/akira/1.99/fedora/43/aarch64/akira-release-1.99.15.20260531075356.32922aefed-1.fc43.noarch.rpm

Then, install the loop RPM package that will install the Loop software and documentation:

# dnf install loop

Then, if you wish to run the nameserver, configure named suitably by editing /etc/loop/named.conf, and then run it:

# systemctl enable --now named

2.4. Debian and Ubuntu platforms

2.4.1. Debian 13 "Trixie" (amd64)

To install Loop version 1.99 on Debian 13 "Trixie" (amd64), follow these steps as the root user.

First, copy the OpenPGP key that apt uses to verify the release's deb package checksums into /usr/share/keyrings/:

# curl -o /usr/share/keyrings/akira-archive-keyring.gpg https://download.banu.com/packages/akira/1.99/trixie/13/amd64/akira-archive-keyring-2024-12-10.gpg

Then, add the Akira apt network package repository for your platform:

# echo "deb [signed-by=/usr/share/keyrings/akira-archive-keyring.gpg] https://download.banu.com/packages/akira/1.99/debian/trixie/amd64/ /" > /etc/apt/sources.list.d/akira-trixie-amd64.list

Then, install the loop deb package that will install the Loop software and documentation:

# apt install loop

Then, if you wish to run the nameserver, configure named suitably by editing /etc/loop/named.conf, and then run it:

# systemctl enable --now named

2.4.2. Debian 13 "Trixie" (arm64)

To install Loop version 1.99 on Debian 13 "Trixie" (arm64), follow these steps as the root user.

First, copy the OpenPGP key that apt uses to verify the release's deb package checksums into /usr/share/keyrings/:

# curl -o /usr/share/keyrings/akira-archive-keyring.gpg https://download.banu.com/packages/akira/1.99/trixie/13/arm64/akira-archive-keyring-2024-12-10.gpg

Then, add the Akira apt network package repository for your platform:

# echo "deb [signed-by=/usr/share/keyrings/akira-archive-keyring.gpg] https://download.banu.com/packages/akira/1.99/debian/trixie/arm64/ /" > /etc/apt/sources.list.d/akira-trixie-arm64.list

Then, install the loop deb package that will install the Loop software and documentation:

# apt install loop

Then, if you wish to run the nameserver, configure named suitably by editing /etc/loop/named.conf, and then run it:

# systemctl enable --now named

2.4.3. Debian 13 "Trixie" (riscv64)

To install Loop version 1.99 on Debian 13 "Trixie" (riscv64), follow these steps as the root user.

First, copy the OpenPGP key that apt uses to verify the release's deb package checksums into /usr/share/keyrings/:

# curl -o /usr/share/keyrings/akira-archive-keyring.gpg https://download.banu.com/packages/akira/1.99/trixie/13/riscv64/akira-archive-keyring-2024-12-10.gpg

Then, add the Akira apt network package repository for your platform:

# echo "deb [signed-by=/usr/share/keyrings/akira-archive-keyring.gpg] https://download.banu.com/packages/akira/1.99/debian/trixie/riscv64/ /" > /etc/apt/sources.list.d/akira-trixie-riscv64.list

Then, install the loop deb package that will install the Loop software and documentation:

# apt install loop

Then, if you wish to run the nameserver, configure named suitably by editing /etc/loop/named.conf, and then run it:

# systemctl enable --now named

2.4.4. Debian 12 "Bookworm" (amd64)

To install Loop version 1.99 on Debian 12 "Bookworm" (amd64), follow these steps as the root user.

First, copy the OpenPGP key that apt uses to verify the release's deb package checksums into /usr/share/keyrings/:

# curl -o /usr/share/keyrings/akira-archive-keyring.gpg https://download.banu.com/packages/akira/1.99/bookworm/12/amd64/akira-archive-keyring-2024-12-10.gpg

Then, add the Akira apt network package repository for your platform:

# echo "deb [signed-by=/usr/share/keyrings/akira-archive-keyring.gpg] https://download.banu.com/packages/akira/1.99/debian/bookworm/amd64/ /" > /etc/apt/sources.list.d/akira-bookworm-amd64.list

Then, install the loop deb package that will install the Loop software and documentation:

# apt install loop

Then, if you wish to run the nameserver, configure named suitably by editing /etc/loop/named.conf, and then run it:

# systemctl enable --now named

2.4.5. Debian 12 "Bookworm" (arm64)

To install Loop version 1.99 on Debian 12 "Bookworm" (arm64), follow these steps as the root user.

First, copy the OpenPGP key that apt uses to verify the release's deb package checksums into /usr/share/keyrings/:

# curl -o /usr/share/keyrings/akira-archive-keyring.gpg https://download.banu.com/packages/akira/1.99/bookworm/12/arm64/akira-archive-keyring-2024-12-10.gpg

Then, add the Akira apt network package repository for your platform:

# echo "deb [signed-by=/usr/share/keyrings/akira-archive-keyring.gpg] https://download.banu.com/packages/akira/1.99/debian/bookworm/arm64/ /" > /etc/apt/sources.list.d/akira-bookworm-arm64.list

Then, install the loop deb package that will install the Loop software and documentation:

# apt install loop

Then, if you wish to run the nameserver, configure named suitably by editing /etc/loop/named.conf, and then run it:

# systemctl enable --now named

2.4.6. Ubuntu 26.04 LTS "Resolute Raccoon" (amd64)

To install Loop version 1.99 on Ubuntu 26.04 LTS "Resolute Raccoon" (amd64), follow these steps as the root user.

First, copy the OpenPGP key that apt uses to verify the release's deb package checksums into /usr/share/keyrings/:

# curl -o /usr/share/keyrings/akira-archive-keyring.gpg https://download.banu.com/packages/akira/1.99/resolute/26.04 LTS/amd64/akira-archive-keyring-2024-12-10.gpg

Then, add the Akira apt network package repository for your platform:

# echo "deb [signed-by=/usr/share/keyrings/akira-archive-keyring.gpg] https://download.banu.com/packages/akira/1.99/ubuntu/resolute/amd64/ /" > /etc/apt/sources.list.d/akira-resolute-amd64.list

Then, install the loop deb package that will install the Loop software and documentation:

# apt install loop

Then, if you wish to run the nameserver, configure named suitably by editing /etc/loop/named.conf, and then run it:

# systemctl enable --now named

2.4.7. Ubuntu 26.04 LTS "Resolute Raccoon" (arm64)

To install Loop version 1.99 on Ubuntu 26.04 LTS "Resolute Raccoon" (arm64), follow these steps as the root user.

First, copy the OpenPGP key that apt uses to verify the release's deb package checksums into /usr/share/keyrings/:

# curl -o /usr/share/keyrings/akira-archive-keyring.gpg https://download.banu.com/packages/akira/1.99/resolute/26.04 LTS/arm64/akira-archive-keyring-2024-12-10.gpg

Then, add the Akira apt network package repository for your platform:

# echo "deb [signed-by=/usr/share/keyrings/akira-archive-keyring.gpg] https://download.banu.com/packages/akira/1.99/ubuntu/resolute/arm64/ /" > /etc/apt/sources.list.d/akira-resolute-arm64.list

Then, install the loop deb package that will install the Loop software and documentation:

# apt install loop

Then, if you wish to run the nameserver, configure named suitably by editing /etc/loop/named.conf, and then run it:

# systemctl enable --now named

2.4.8. Ubuntu 26.04 LTS "Resolute Raccoon" (riscv64)

To install Loop version 1.99 on Ubuntu 26.04 LTS "Resolute Raccoon" (riscv64), follow these steps as the root user.

First, copy the OpenPGP key that apt uses to verify the release's deb package checksums into /usr/share/keyrings/:

# curl -o /usr/share/keyrings/akira-archive-keyring.gpg https://download.banu.com/packages/akira/1.99/resolute/26.04 LTS/riscv64/akira-archive-keyring-2024-12-10.gpg

Then, add the Akira apt network package repository for your platform:

# echo "deb [signed-by=/usr/share/keyrings/akira-archive-keyring.gpg] https://download.banu.com/packages/akira/1.99/ubuntu/resolute/riscv64/ /" > /etc/apt/sources.list.d/akira-resolute-riscv64.list

Then, install the loop deb package that will install the Loop software and documentation:

# apt install loop

Then, if you wish to run the nameserver, configure named suitably by editing /etc/loop/named.conf, and then run it:

# systemctl enable --now named

2.4.9. Ubuntu 24.04 LTS "Noble Numbat" (amd64)

To install Loop version 1.99 on Ubuntu 24.04 LTS "Noble Numbat" (amd64), follow these steps as the root user.

First, copy the OpenPGP key that apt uses to verify the release's deb package checksums into /usr/share/keyrings/:

# curl -o /usr/share/keyrings/akira-archive-keyring.gpg https://download.banu.com/packages/akira/1.99/noble/24.04 LTS/amd64/akira-archive-keyring-2024-12-10.gpg

Then, add the Akira apt network package repository for your platform:

# echo "deb [signed-by=/usr/share/keyrings/akira-archive-keyring.gpg] https://download.banu.com/packages/akira/1.99/ubuntu/noble/amd64/ /" > /etc/apt/sources.list.d/akira-noble-amd64.list

Then, install the loop deb package that will install the Loop software and documentation:

# apt install loop

Then, if you wish to run the nameserver, configure named suitably by editing /etc/loop/named.conf, and then run it:

# systemctl enable --now named

2.4.10. Ubuntu 24.04 LTS "Noble Numbat" (arm64)

To install Loop version 1.99 on Ubuntu 24.04 LTS "Noble Numbat" (arm64), follow these steps as the root user.

First, copy the OpenPGP key that apt uses to verify the release's deb package checksums into /usr/share/keyrings/:

# curl -o /usr/share/keyrings/akira-archive-keyring.gpg https://download.banu.com/packages/akira/1.99/noble/24.04 LTS/arm64/akira-archive-keyring-2024-12-10.gpg

Then, add the Akira apt network package repository for your platform:

# echo "deb [signed-by=/usr/share/keyrings/akira-archive-keyring.gpg] https://download.banu.com/packages/akira/1.99/ubuntu/noble/arm64/ /" > /etc/apt/sources.list.d/akira-noble-arm64.list

Then, install the loop deb package that will install the Loop software and documentation:

# apt install loop

Then, if you wish to run the nameserver, configure named suitably by editing /etc/loop/named.conf, and then run it:

# systemctl enable --now named

2.4.11. Ubuntu 24.04 LTS "Noble Numbat" (riscv64)

To install Loop version 1.99 on Ubuntu 24.04 LTS "Noble Numbat" (riscv64), follow these steps as the root user.

First, copy the OpenPGP key that apt uses to verify the release's deb package checksums into /usr/share/keyrings/:

# curl -o /usr/share/keyrings/akira-archive-keyring.gpg https://download.banu.com/packages/akira/1.99/noble/24.04 LTS/riscv64/akira-archive-keyring-2024-12-10.gpg

Then, add the Akira apt network package repository for your platform:

# echo "deb [signed-by=/usr/share/keyrings/akira-archive-keyring.gpg] https://download.banu.com/packages/akira/1.99/ubuntu/noble/riscv64/ /" > /etc/apt/sources.list.d/akira-noble-riscv64.list

Then, install the loop deb package that will install the Loop software and documentation:

# apt install loop

Then, if you wish to run the nameserver, configure named suitably by editing /etc/loop/named.conf, and then run it:

# systemctl enable --now named

2.4.12. Ubuntu 22.04 LTS "Jammy Jellyfish" (amd64)

To install Loop version 1.99 on Ubuntu 22.04 LTS "Jammy Jellyfish" (amd64), follow these steps as the root user.

First, copy the OpenPGP key that apt uses to verify the release's deb package checksums into /usr/share/keyrings/:

# curl -o /usr/share/keyrings/akira-archive-keyring.gpg https://download.banu.com/packages/akira/1.99/jammy/22.04 LTS/amd64/akira-archive-keyring-2024-12-10.gpg

Then, add the Akira apt network package repository for your platform:

# echo "deb [signed-by=/usr/share/keyrings/akira-archive-keyring.gpg] https://download.banu.com/packages/akira/1.99/ubuntu/jammy/amd64/ /" > /etc/apt/sources.list.d/akira-jammy-amd64.list

Then, install the loop deb package that will install the Loop software and documentation:

# apt install loop

Then, if you wish to run the nameserver, configure named suitably by editing /etc/loop/named.conf, and then run it:

# systemctl enable --now named

2.4.13. Ubuntu 22.04 LTS "Jammy Jellyfish" (arm64)

To install Loop version 1.99 on Ubuntu 22.04 LTS "Jammy Jellyfish" (arm64), follow these steps as the root user.

First, copy the OpenPGP key that apt uses to verify the release's deb package checksums into /usr/share/keyrings/:

# curl -o /usr/share/keyrings/akira-archive-keyring.gpg https://download.banu.com/packages/akira/1.99/jammy/22.04 LTS/arm64/akira-archive-keyring-2024-12-10.gpg

Then, add the Akira apt network package repository for your platform:

# echo "deb [signed-by=/usr/share/keyrings/akira-archive-keyring.gpg] https://download.banu.com/packages/akira/1.99/ubuntu/jammy/arm64/ /" > /etc/apt/sources.list.d/akira-jammy-arm64.list

Then, install the loop deb package that will install the Loop software and documentation:

# apt install loop

Then, if you wish to run the nameserver, configure named suitably by editing /etc/loop/named.conf, and then run it:

# systemctl enable --now named

2.5. Problems with SELinux

On some Linux distributions that have SELinux enabled, you may notice errors when running the named service such as:

Aug 10 07:59:06 rpi3 audit[14591]: AVC avc:  denied  { create } for  pid=14591 comm="loop-worker-0" name="tmp-dW3tOeMfdD" scontext=system_u:system_r:named_t:s0 tcontext=system_u:object_r:var_lib_t:s0 tclass=file permissive=0
Aug 10 07:59:06 rpi3 audit[14591]: AVC avc:  denied  { read write open } for  pid=14591 comm="loop-worker-0" path="/var/lib/loop/tmp-dW3tOeMfdD" dev="mmcblk0p3" ino=258270 scontext=system_u:system_r:named_t:s0 tcontext=system_u:object_r:var_lib_t:s0 tclass=file permissive=0
Aug 10 07:59:07 rpi3 audit[14591]: AVC avc:  denied  { rename } for  pid=14591 comm="loop-worker-0" name="tmp-dW3tOeMfdD" dev="mmcblk0p3" ino=258270 scontext=system_u:system_r:named_t:s0 tcontext=system_u:object_r:var_lib_t:s0 tclass=file permissive=0
Aug 10 07:59:07 rpi3 audit[14591]: AVC avc:  denied  { unlink } for  pid=14591 comm="loop-worker-0" name="managed-keys.loop" dev="mmcblk0p3" ino=258227 scontext=system_u:system_r:named_t:s0 tcontext=system_u:object_r:var_lib_t:s0 tclass=file permissive=0

These errors occur because SELinux, when using the targeted policy, runs the program with path /usr/sbin/named confined in the named_t security context. It limits the directories where the named process can write to. This can be verified by running the command:

$ ps axZ | grep named
system_u:system_r:named_t:s0    14591 ?        Ssl    0:01 /usr/sbin/named -u loop

The Loop package doesn't (and shouldn't) do anything to solve this issue automatically as it would be a hack. The SELinux policies for programs such as /usr/sbin/named are installed by a different package called selinux-policy-targeted, and are not handled by the Loop package.

You can workaround this issue by either configuring SELinux to run in permissive mode, or by editing the targeted policy to remove the Loop programs from it.

We will rename named in a future release, or have this issue resolved in the distro packages, upon which this issue should not occur anymore.

2.6. Upgrading

Please read the release notes before upgrading to a newer version of Loop --- see the chapter titled Release notes.