Wheelhouse docs

A BGP session#

You will end up with a BGP process holding one session with one neighbour. FRR does the routing; Wheelhouse drives it through the router's configuration tree, which means the session is a diff you review and a commit you can roll back.

Before you start#

  • The operator role and a licence.
  • Your local AS number and the neighbour's, agreed with whoever is on the other end.
  • The neighbour's address, reachable on a connected interface or through a static route.
  • A router-id. Conventionally a loopback address — a dummy interface is the tidy way to have one that never goes down.

Step 1 — Configure it#

Network → BGP / OSPF → Configure BGP.

set protocols bgp system-as 65001
set protocols bgp parameters router-id 192.0.2.1
set protocols bgp neighbor 192.0.2.2 remote-as 65002

The panel writes the router-id only when you give one, and the neighbour only when both it and its remote AS are filled in.

Step 2 — Add what the session actually needs#

A neighbour with only a remote AS establishes a session and exchanges nothing useful on most designs. What comes next depends entirely on the peering, and it is not in the panel:

an example — check every line against what your peer expects
set protocols bgp address-family ipv4-unicast network 198.51.100.0/24
set protocols bgp neighbor 192.0.2.2 address-family ipv4-unicast soft-reconfiguration inbound
set protocols bgp neighbor 192.0.2.2 password 'the agreed secret'
set protocols bgp neighbor 192.0.2.2 description 'transit'

Step 3 — Let the session through the firewall#

BGP is TCP 179 to the router itself, so it needs an input rule.

set firewall ipv4 input filter rule 90 action accept
set firewall ipv4 input filter rule 90 description 'bgp from the peer'
set firewall ipv4 input filter rule 90 protocol tcp
set firewall ipv4 input filter rule 90 destination port 179
set firewall ipv4 input filter rule 90 source address 192.0.2.2

Scope it to the peer's address. A default-drop ruleset.

Check it worked#

The session is established. From the console:

bash
show ip bgp summary
show ip bgp neighbors 192.0.2.2

The routes arrived, and were installed.

bash
show ip bgp
show ip route bgp

A prefix in show ip bgp and not in show ip route is a prefix that lost to something with a better distance. The Static routes page shows the same distinction for the kernel table.

The page reads it back. The BGP / OSPF page reports whether FRR is configured and renders the configuration as commands, which is the fastest way to check that what is on the router is what you meant to put there.

Undoing it#

delete protocols bgp

The page's delete stages exactly that for the whole protocol. To drop one neighbour:

delete protocols bgp neighbor 192.0.2.2

See also#


Checked against ui/src/pages/Routing.tsx · agent/main.go · ui/src/pages/Firewall.tsx

Updated 2026-09-02 bgp routing frr