meshnamed
Configure IEEE 802.11s mesh network interfaces
TLDR
Start a local meshname DNS server
Convert an IPv6 address into a meshname
Convert a meshname to an IPv6 address
SYNOPSIS
meshnamed [-c config_file] [-p pid_file] [-g group] [-u user] [-d] [-v]
PARAMETERS
-c config_file
Specifies the path to the JSON configuration file. By default, it looks for /etc/meshnamed/config.json
.
-p pid_file
Sets the path for the PID file, which stores the process ID of the daemon. The default is /run/meshnamed.pid
.
-g group
Specifies the group name to which the daemon will drop privileges after startup. Defaults to nogroup
.
-u user
Specifies the user name to which the daemon will drop privileges after startup. Defaults to nobody
.
-d
Enables debug mode. When this option is used, meshnamed
will not daemonize and will log debug messages to standard error (stderr
).
-v
Displays the version information of the meshnamed
utility and then exits.
DESCRIPTION
meshnamed
is a lightweight, specialized DNS resolver designed primarily for mesh networks, such as those used by the Freifunk project. Its core function is to provide name resolution services within a mesh-VPN environment. Unlike general-purpose DNS servers like BIND, meshnamed
is configured to resolve specific hostnames to IP addresses that are part of the mesh network's addressing scheme. It typically runs as a daemon, listening for DNS queries (usually on UDP port 53) and responding with configured mesh IPs for known names, while potentially forwarding other queries to an upstream resolver. This makes it crucial for services and devices within a mesh network to locate each other by name rather than just IP address.
CAVEATS
meshnamed
is a highly specialized DNS resolver intended for specific use cases within mesh networking environments (e.g., Freifunk). It is not a general-purpose DNS server replacement for services like BIND or dnsmasq. Its functionality is heavily dependent on its JSON configuration file, which defines the specific hostname-to-IP mappings for the mesh network. Without proper configuration, it will not function as expected for resolving mesh-specific names. It might not be available in standard distribution repositories and often needs to be installed from community-maintained packages or compiled from source.
CONFIGURATION FILE
meshnamed
's operation is primarily driven by its JSON configuration file (defaulting to /etc/meshnamed/config.json
). This file defines the specific hostname-to-IP mappings for the mesh network, allowing it to resolve names that are internal to the mesh. It also specifies upstream DNS servers for forwarding queries for non-mesh-related names. Without a correctly structured and populated configuration, meshnamed
will not be able to perform its intended resolution tasks within the mesh.
DAEMONIZATION
By default, meshnamed
runs as a background daemon, making it suitable for continuous operation on a server or router within the mesh network. The -d
(debug) option prevents daemonization, which is useful for troubleshooting and testing purposes as it keeps the process in the foreground and outputs logs to stderr
.
HISTORY
meshnamed
emerged from community-driven mesh networking projects, most notably Freifunk. It was developed to address the specific need for name resolution within dynamically evolving mesh network topologies where traditional DNS setups might be cumbersome or ineffective. Its development aligns with the open-source ethos of these projects, providing a dedicated, lightweight solution for internal mesh network services to discover each other via DNS names. It is typically part of utility packages like freifunk-lachs
or mesh-vpn-dns
.
SEE ALSO
named(8), dnsmasq(8), resolvconf(8), nsswitch.conf(5)