The tunnel
8 answers
Reaching a backend with no public address.
Looking for something specific
The searchable index covers all 326 answers at once and filters as you type.
273 Reach a backend that has no public address
- Fleet, Tunnel. Turn the tunnel on and choose an address range.
10.77.0.0/24is fine unless something on your network already uses it. - Install tunnel support on every load balancer when the page offers to.
- Add a workload, give it a name, and copy the command it shows.
- Run that command on the machine you want to reach.
- Note the tunnel address it gets, add it to a pool with the port the service listens on, and apply.
274 What does the enrollment command actually do?
- Installs WireGuard if the machine does not have it.
- Makes a key pair on the machine and sends only the public half back.
- Writes one network interface called
nfm0. - Adds a route to the load balancers and to nothing else.
- Leaves a small helper command for checking and undoing it.
What it does not do: change the default route, send that machine's own traffic anywhere, or open any inbound port. You can read the script first by leaving the last part off the command.
275 My workload enrolled but the backend is down
Check the Tunnel page first. A workload that has joined shows as on the tunnel. One still waiting has not run the command, or the command failed part way.
If it shows as on the tunnel and the backend is still down, the tunnel is up and the service behind it is not. Check the service is listening, on the port you put in the pool.
276 The tunnel works through one load balancer and not the other
A workload connects to every load balancer and each connection is separate. One working and one not usually means the workload cannot reach one of them: a firewall on the way, or an address family problem such as a load balancer published on IPv6 only while the workload has IPv4 only.
Use Change the setup to publish a name or address the workload can reach. A name with both an A and an AAAA record is the most flexible.
277 Get a fresh enrollment command
Commands expire after two hours. Click Show the command next to the workload for a new one. Asking for a new one retires the old one immediately, so a link that went astray stops working.
278 Remove a workload from the tunnel
- Take the address out of any pool that uses it, and apply. Otherwise the pool points at something that has gone.
- Tunnel page, Remove next to the workload.
- Copy the command shown and run it on the machine.
- Press Remove it here.
It deliberately leaves the WireGuard package installed, because that machine may be using it for something else.
279 Check the tunnel from the workload
sudo nfm-tunnel status
If it reports the tunnel is not up, the interface was never created. The usual reasons are a container whose kernel has no WireGuard, or a firewall that allows outbound traffic generally and drops the tunnel port, which is UDP.
280 Change the tunnel address range
Not once workloads are enrolled on it. Changing it would strand them, so the page refuses. Remove the workloads first if you really need a different range.