static_map
The static map defines options which control the interpretation of the static_host_map.
Example:
static_map:
network: ip4
cadence: 30s
lookup_timeout: 5s
static_map.network
Default: ip4 ReloadableSelect the IP version used to communicate with hosts in the static map. Valid values are ip4, ip6, and ip (for
both.)
In general, this should be left as the default value ip4 to avoid issues communicating with IPv4-only hosts.
Lighthouses learn each node's IP addresses by looking at the source address of incoming packets as well as the self-reported addresses sent by the node. Because most devices are behind a NAT of some sort (e.g. a network router) they cannot self-report their public IPv4 address. By contacting the lighthouse via its IPv4 address, the lighthouse is able to learn the node's public IPv4 address.
It is necessary to set this setting to ip6 (or ip) for IPv6-only hosts.
IPv6 addresses are only used if Nebula's UDP socket can send to them. With an IPv4
listen.host, such as the default 0.0.0.0, IPv6 results are ignored even when this
is set to ip or ip6.
static_map.cadence
Default: 30s ReloadableInterval to re-query DNS for hostnames listed in the static map. Hostnames are resolved in parallel. Starting a handshake with a host whose entry uses a hostname also triggers an immediate re-query, so a moved host is picked up without waiting for the next interval.
static_map.lookup_timeout
Default: 5s ReloadableTimeout for DNS lookup of static hosts.
A lookup that fails or times out keeps the last addresses that resolved successfully and logs
DNS resolution failed for static_map host with the addresses still in use. Only a not found answer (NXDOMAIN) removes
them. On reload, resolved addresses are kept as long as static_map.network is unchanged.