Skip to main content

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 Reloadable

Select the IP version used to communicate with hosts in the static map. Valid values are ip4, ip6, and ip (for both.)

warning

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 Reloadable

Interval 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 Reloadable

Timeout 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.