Sign inSign up

cplieger/docker-radvd

By cplieger

•Updated 2 days ago

Advertise IPv6 prefixes from a radvd container with checked reloads and keepalived failover

Image
Networking
1

10K+

cplieger/docker-radvd repository overview

⁠docker-radvd

docker-radvd runs radvd⁠, the Linux IPv6 router advertisement daemon, in a container, so the hosts on your LAN configure their IPv6 addresses with SLAAC. You write the radvd.conf. The image does not generate one from settings.

⁠What it does

docker-radvd gives the IPv6 hosts on your network their prefix, default route and DNS servers from a radvd.conf you control.

  • Sends router advertisements with radvd built from a pinned release.
  • Checks a changed radvd.conf before an in-place reload, so a malformed edit leaves the last good config running.
  • Runs radvd's worker as an unprivileged user once its socket is open.
  • Reports config errors in docker logs, with four Loki alert rules ready to load.
  • Pairs with keepalived so only the node holding a shared address advertises.

⁠Who it is for

docker-radvd is built for admins who already write radvd configurations and want radvd in a container, on one node or on two nodes with keepalived for failover.

You need a Linux host with Docker on the LAN segment, on amd64 or arm64. The container uses host networking and the NET_RAW capability.

Three other options suit other setups:

  • Consider your distribution's radvd package to run radvd on the host itself.
  • Consider dnsmasq⁠ if it already serves DNS or DHCP on your LAN. Its router advertisement subsystem gives IPv6 hosts basic autoconfiguration.
  • Consider CoreRAD⁠ if you want an advertisement daemon with Prometheus metrics and a sample Grafana dashboard.

docker-radvd is free software under the Apache-2.0 license. radvd is under a BSD-style license.

⁠Pull

docker pull cplieger/docker-radvd:latest

Also published to ghcr.io/cplieger/docker-radvd with identical images and tags. Release versions are tagged vX.Y.Z alongside latest.

⁠Quick start

# Example compose for docker-radvd. See docs/configuration.md and docs/hardening.md for all configuration options and hardening.
services:
  radvd:
    image: ghcr.io/cplieger/docker-radvd:latest
    container_name: radvd
    restart: unless-stopped

    # Advertisements go out on a real LAN interface, so radvd needs host networking.
    # If this host is the default router, set net.ipv6.conf.all.forwarding=1 on the host first.
    network_mode: host
    cap_add:
      - NET_RAW  # required for the raw ICMPv6 socket radvd sends advertisements on

    # Put your radvd.conf in ./radvd before the first start, or radvd exits.
    volumes:
      - "./radvd:/etc/radvd:ro"

⁠Documentation

⁠License

Apache-2.0. See LICENSE⁠.

The image carries the license text of every bundled component under /usr/share/licenses/. The image packages radvd⁠, which carries a BSD-style permissive license.

Tag summary

Content type

Image

Digest

sha256:b246178aa…

Size

6.2 MB

Last updated

2 days ago

docker pull cplieger/docker-radvd