Skip to content

Commit 4f72fda

Browse files
authored
Document reloadable configs (#125)
Closes #19 We didn't have any good listing of which options can be reloaded via a SIGHUP vs those that require a full restart to take effect. This adds a simple badge to indicate which options can be reloaded. AFAICT, `tun.mtu` is only reloadable on linux, but that's the only difference between platforms that I could find.
1 parent 065bd14 commit 4f72fda

9 files changed

+62
-15
lines changed

docs/config/firewall.mdx

+8-2
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,8 @@ firewall:
116116

117117
## firewall.outbound
118118

119+
<Pill className="mb-24">Reloadable</Pill>
120+
119121
It is quite common to allow any outbound traffic to flow from a host. This simply means that the host can use any port
120122
or protocol to attempt to connect to any other host in the overlay network. (Whether or not those other hosts allow that
121123
inbound traffic is up to them.)
@@ -129,12 +131,14 @@ outbound:
129131

130132
## firewall.inbound
131133

134+
<Pill className="mb-24">Reloadable</Pill>
135+
132136
At a minimum, it is recommended to enable ICMP so that `ping` can be used to verify connectivity. Additionally, if
133137
enabling the built-in Nebula SSH server, you may wish to grant access over the Nebula network via firewall rules.
134138

135139
## firewall.default_local_cidr_any
136140

137-
<Pill className="mb-24">Default: True</Pill>
141+
<Pill className="mb-24">Default: True</Pill> <Pill className="mb-24">Reloadable</Pill>
138142

139143
This setting was introduced in Nebula v1.9.0 for backwards compatibility purposes. The default will be changed to
140144
`false` in Nebula v1.10.0 and the config option will be deprecated.
@@ -149,6 +153,8 @@ in the `local_cidr` field.
149153

150154
## firewall.conntrack
151155

156+
<Pill className="mb-24">Reloadable</Pill>
157+
152158
Settings for the Connection Tracker.
153159

154160
```yml
@@ -160,7 +166,7 @@ conntrack:
160166

161167
## outbound_action, inbound_action
162168

163-
<Pill className="mb-24">Default: drop</Pill>
169+
<Pill className="mb-24">Default: drop</Pill> <Pill className="mb-24">Reloadable</Pill>
164170

165171
Action to take when a packet is not allowed by the firewall rules.
166172

docs/config/lighthouse.mdx

+11-1
Original file line numberDiff line numberDiff line change
@@ -118,14 +118,16 @@ lighthouse:
118118

119119
## lighthouse.interval
120120

121-
<Pill className="mb-24">Default: 10</Pill>
121+
<Pill className="mb-24">Default: 10</Pill> <Pill className="mb-24">Reloadable</Pill>
122122

123123
`interval` specifies how often a nebula host should report itself to a lighthouse. By default, hosts report themselves
124124
to lighthouses once every 10 seconds. Use caution when changing this interval, as it may affect host discovery times in
125125
a large nebula network.
126126

127127
## lighthouse.hosts
128128

129+
<Pill className="mb-24">Reloadable</Pill>
130+
129131
:::warning
130132

131133
This should be empty on lighthouse nodes
@@ -143,6 +145,8 @@ lighthouse:
143145

144146
## lighthouse.remote_allow_list
145147

148+
<Pill className="mb-24">Reloadable</Pill>
149+
146150
`remote_allow_list` allows you to control ip ranges that this node will consider when handshaking to another node. By
147151
default, any remote IPs are allowed. You can provide CIDRs here with `true` to allow and `false` to deny. The most
148152
specific CIDR rule applies to each remote. If all rules are "allow", the default will be "deny", and vice-versa. If both
@@ -162,6 +166,8 @@ lighthouse:
162166

163167
## lighthouse.local_allow_list
164168

169+
<Pill className="mb-24">Reloadable</Pill>
170+
165171
`local_allow_list` allows you to filter which local IP addresses we advertise to the lighthouses. This uses the same
166172
logic as `remote_allow_list`, but additionally, you can specify an `interfaces` map of regular expressions to match
167173
against interface names. The regexp must match the entire name. All interface rules must be either true or false (and
@@ -180,6 +186,8 @@ lighthouse:
180186

181187
## lighthouse.advertise_addrs
182188

189+
<Pill className="mb-24">Reloadable</Pill>
190+
183191
`advertise_addrs` are routable addresses that will be included along with discovered addresses to report to the
184192
lighthouse. The format is "ip:port". `port` can be `0`, in which case the actual listening port will be used in its
185193
place, useful if `listen.port` is set to `0`. This option is mainly useful when there are static IP addresses the host
@@ -188,6 +196,8 @@ multiple paths to the internet.)
188196

189197
## lighthouse.calculated_remotes
190198

199+
<Pill className="mb-24">Reloadable</Pill>
200+
191201
:::danger
192202

193203
EXPERIMENTAL: This option may change or disappear in the future. This setting allows nebula to "guess" what the remote

docs/config/logging.mdx

+5-3
Original file line numberDiff line numberDiff line change
@@ -17,24 +17,26 @@ logging:
1717

1818
## logging.level
1919

20-
<Pill className="mb-24">Default: info</Pill>
20+
<Pill className="mb-24">Default: info</Pill> <Pill className="mb-24">Reloadable</Pill>
2121

2222
Controls the verbosity of logs. The options are `panic`, `fatal`, `error`, `warning`, `info`, or `debug`.
2323

2424
## logging.format
2525

26-
<Pill className="mb-24">Default: text</Pill>
26+
<Pill className="mb-24">Default: text</Pill> <Pill className="mb-24">Reloadable</Pill>
2727

2828
Controls the logging format. The options are `json` or `text`
2929

3030
## logging.disable_timestamp
3131

32-
<Pill className="mb-24">Default: False</Pill>
32+
<Pill className="mb-24">Default: False</Pill> <Pill className="mb-24">Reloadable</Pill>
3333

3434
Disables timestamp logging. Useful when output is redirected to logging system that already adds timestamps.
3535

3636
## logging.timestamp_format
3737

38+
<Pill className="mb-24">Reloadable</Pill>
39+
3840
`timestamp_format` is specified in Go time format, see: https://golang.org/pkg/time/#pkg-constants.
3941

4042
The default when `format: json` is set is an [RFC3339 timestamp](https://datatracker.ietf.org/doc/html/rfc3339), e.g.

docs/config/pki.mdx

+13-4
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ pki:
2121
2222
## pki.ca
2323
24-
<Pill className="mb-24">Required</Pill>
24+
<Pill className="mb-24">Required</Pill> <Pill className="mb-24">Reloadable</Pill>
2525
2626
The `ca` is a collection of one or more certificate authorities this host should trust. In the above example,
2727
`/etc/nebula/ca.crt` contains PEM-encoded data for each CA we should trust, concatenated into a single file. The
@@ -39,22 +39,31 @@ pki:
3939

4040
## pki.cert
4141

42-
<Pill className="mb-24">Required</Pill>
42+
<Pill className="mb-24">Required</Pill> <Pill className="mb-24">Reloadable</Pill>
43+
44+
:::note
45+
46+
A new certificate will only take effect after a reload if the IP address has not changed, but all other properties of
47+
the certificate can be changed.
48+
49+
:::
4350

4451
The `cert` is a certificate unique to every host on a Nebula network. The certificate identifies a host’s IP address,
4552
name, and group membership within a Nebula network. The certificate is signed by a certificate authority when created,
4653
which informs other hosts on whether to trust a particular host certificate.
4754

4855
## pki.key
4956

50-
<Pill className="mb-24">Required</Pill>
57+
<Pill className="mb-24">Required</Pill> <Pill className="mb-24">Reloadable</Pill>
5158

5259
The `key` is a private key unique to every host on a Nebula network. It is used in conjunction with the host certificate
5360
to prove a host’s identity to other members of the Nebula network. The private key should never be shared with other
5461
hosts.
5562

5663
## pki.blocklist
5764

65+
<Pill className="mb-24">Reloadable</Pill>
66+
5867
:::note
5968

6069
The blocklist is _not_ distributed via Lighthouses. To ensure access to your entire network is blocked you must
@@ -69,6 +78,6 @@ stolen or compromised.
6978

7079
## pki.disconnect_invalid
7180

72-
<Pill className="mb-24">Default: False</Pill>
81+
<Pill className="mb-24">Default: False</Pill> <Pill className="mb-24">Reloadable</Pill>
7382

7483
`disconnect_invalid` is a toggle to force a client to be disconnected if the certificate is expired or invalid.

docs/config/preferred-ranges.mdx

+4
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,12 @@ sidebar_position: 8
33
description: Configure the priority order of underlay IP addresses to increase performance and reduce latency.
44
---
55

6+
import { Pill } from '@components/Pill/Pill';
7+
68
# preferred_ranges
79

10+
<Pill className="mb-24">Reloadable</Pill>
11+
812
`preferred_ranges` sets the priority order for underlay IP addresses. Two hosts on the same LAN would likely benefit
913
from having their tunnels use the LAN IP addresses rather than the public IP addresses the lighthouse may have learned
1014
for them. `preferred_ranges` accepts a list of [CIDR](https://en.wikipedia.org/wiki/Classless_Inter-Domain_Routing)

docs/config/punchy.mdx

+3-3
Original file line numberDiff line numberDiff line change
@@ -26,21 +26,21 @@ punchy:
2626

2727
## punchy.respond
2828

29-
<Pill className="mb-24">Default: False</Pill>
29+
<Pill className="mb-24">Default: False</Pill> <Pill className="mb-24">Reloadable</Pill>
3030

3131
`respond` means that a node unable to receive handshakes will attempt to initiate a handshake to the host attempting to
3232
establish a tunnel, which can be the case when hole punching fails in one direction. This can be extremely useful if one
3333
node is behind a difficult nat, such as a symmetric NAT.
3434

3535
## punchy.respond_delay
3636

37-
<Pill className="mb-24">Default: 5s</Pill>
37+
<Pill className="mb-24">Default: 5s</Pill> <Pill className="mb-24">Reloadable</Pill>
3838

3939
Delay before attempting punchy.respond. respond must be true to take effect.
4040

4141
## punchy.delay
4242

43-
<Pill className="mb-24">Default: 1s</Pill>
43+
<Pill className="mb-24">Default: 1s</Pill> <Pill className="mb-24">Reloadable</Pill>
4444

4545
`delay` slows down punch responses which can be helpful for conditions where a NAT is unable to handle certain race
4646
conditions. `respond` must be true to take effect. Changing this value while running will not affect any in progress

docs/config/relay.mdx

+6
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@ sidebar_position: 9
33
description: Configure Nebula relays to forward packets between hosts with tricky connectivity issues.
44
---
55

6+
import { Pill } from '@components/Pill/Pill';
7+
68
# relay
79

810
:::note
@@ -36,6 +38,8 @@ their own config.
3638

3739
## relay.relays
3840

41+
<Pill className="mb-24">Reloadable</Pill>
42+
3943
`relays` is a list of Nebula IPs that peers can use to relay packets to this host. IPs in this list must have `am_relay`
4044
set to `true` in their configs, otherwise they will reject relay requests.
4145

@@ -50,6 +54,8 @@ will indicate its supported relays in addition to its known IP addresses.
5054

5155
## relay.am_relay
5256

57+
<Pill className="mb-24">Reloadable</Pill>
58+
5359
Set `am_relay` to true to enable forwarding packets for other hosts. This host will only forward traffic for hosts which
5460
specify it as a relay in their own config file. The default is false.
5561

docs/config/sshd.mdx

+7-1
Original file line numberDiff line numberDiff line change
@@ -30,17 +30,21 @@ See also the [Debugging with Nebula SSH commands](/docs/guides/debug-ssh-command
3030
3131
## sshd.enabled
3232
33-
<Pill className="mb-24">Default: False</Pill>
33+
<Pill className="mb-24">Default: False</Pill> <Pill className="mb-24">Reloadable</Pill>
3434
3535
`enabled` toggles this feature globally.
3636

3737
## sshd.listen
3838

39+
<Pill className="mb-24">Reloadable</Pill>
40+
3941
`listen` is used to specify the host ip and port number for the nebula debug console to listen on, port 22 is not
4042
allowed for your safety.
4143

4244
## sshd.host_key
4345

46+
<Pill className="mb-24">Reloadable</Pill>
47+
4448
`host_key` points to a file containing the ssh host private key to use for the ssh server side of the console. In the
4549
above example, `/path/to/ssh_host_ed25519_key` contains a PEM-encoded SSH host key. The following example shows a host
4650
key inlined as a YAML multiline string.
@@ -70,6 +74,8 @@ You can generate a host key using the `ssh-keygen` command line utility.
7074
7175
## sshd.authorized_users, user, keys
7276
77+
<Pill className="mb-24">Reloadable</Pill>
78+
7379
These options are how you create `users` for the debug ssh daemon. Password authentication for the ssh debug console is
7480
NOT supported.
7581

docs/config/tun.mdx

+5-1
Original file line numberDiff line numberDiff line change
@@ -58,12 +58,14 @@ Default is 500.
5858

5959
## tun.mtu
6060

61-
<Pill className="mb-24">Default: 1300</Pill>
61+
<Pill className="mb-24">Default: 1300</Pill> <Pill className="mb-24">Reloadable: Linux</Pill>
6262

6363
Default MTU for every packet, safe setting is (and the default) 1300 for internet routed packets.
6464

6565
## tun.routes
6666

67+
<Pill className="mb-24">Reloadable</Pill>
68+
6769
Route based MTU overrides. If you have known VPN IP paths that can support larger MTUs you can increase/decrease them
6870
here.
6971

@@ -76,6 +78,8 @@ tun:
7678

7779
## tun.unsafe_routes
7880

81+
<Pill className="mb-24">Reloadable</Pill>
82+
7983
:::warning
8084

8185
The nebula certificate of the `via` node MUST have the `route` defined as a subnet in its certificate or it will refuse

0 commit comments

Comments
 (0)