A PPPoE uplink#
You will end up with a pppoe0 interface running over a physical port, carrying a default
route, and masqueraded. PPPoE is one of the five mechanisms
the Uplinks tab understands, so once it is up it is ranked and
health-checked like any other uplink.
Before you start#
- The operator role and a licence.
- The user name and password from the provider.
- The physical port the modem or ONT is on, with no address of its own. PPPoE runs over the port; the port does not need an IP.
Step 1 — Add the uplink#
Network → High availability → Uplinks → + Add uplink. Choose the interface, then PPPoE as the addressing.
set interfaces pppoe pppoe0 source-interface eth1
set interfaces pppoe pppoe0 authentication username 'user@provider'
set interfaces pppoe pppoe0 authentication password 'the password'
set interfaces pppoe pppoe0 default-route-distance 1
set interfaces pppoe pppoe0 description 'fibre'
set nat source rule 100 outbound-interface name pppoe0
set nat source rule 100 translation address masqueradeThe wizard picks the interface name (pppoe0 by default), the distance and the next free
source-NAT rule number, and shows every line before it stages anything.
The distance is the rank. With no other uplink the wizard suggests 1. With uplinks already present it suggests ten above the highest, so a new one goes behind what you have rather than in front of it — which is what you want while you are testing it.
Step 2 — Leave the masquerade rule ticked#
Unless you already have a source NAT rule that covers this interface. Every uplink needs its own, and the Uplinks tab shows which rule is behind each one — Masquerade behind each uplink.
Step 3 — Make the firewall admit the session#
The installer's ruleset names the physical WAN interface. PPPoE traffic to the router
arrives on pppoe0, not on eth1, so anything that referenced the port needs to reference
the tunnel — in particular the DHCP-client accept rule becomes irrelevant and any rule that
scoped something to the WAN now has the wrong name.
Check the input chain before you commit:
show configuration commands | match 'firewall ipv4 input'Step 4 — Commit with a confirm window#
Check it worked#
The session is up and has an address.
show interfaces pppoe pppoe0
show ip route 0.0.0.0/0The Uplinks tab agrees. It shows the uplink's addressing, its gateway, its rank and role, whether its default route is selected, installed, present or absent, its health, and which NAT rule masquerades behind it. An uplink that is up but shows no default route selected is one whose distance puts it behind something else.
Traffic leaves.
ping -c 3 -I pppoe0 203.0.113.1When it does not come up#
| Symptom | Check |
|---|---|
| No session at all | The physical link. show interfaces ethernet eth1 — if the port is down, nothing above it will work. |
| Session negotiates then drops | Credentials. The journal carries pppd's own messages — the Logs page. |
| Session up, no traffic | The default route. If another uplink has a lower distance it wins; the Uplinks tab says which. |
| Large downloads stall, small ones work | MTU. PPPoE costs eight bytes; the interface panel sets MTU — the interface panel. |
| Provider wants a VLAN tag | Put the pppoe interface's source-interface on the VLAN sub-interface rather than the port. Add a VLAN. |
Undoing it#
delete interfaces pppoe pppoe0
delete nat source rule 100If this was the only uplink, have the replacement staged in the same commit.
See also#
- A second uplink with health-checked failover
- Masquerade behind each uplink
- Uplinks (multi-WAN)
- Interfaces
Checked against ui/src/pages/Wan.tsx ·
agent/wan.go ·
docs/multi-wan.md ·
agent/security.go