BGPLGD(8) | System Manager's Manual | BGPLGD(8)

# NAME

`bgplgd` — a bgpctl FastCGI server

# SYNOPSIS

`bgplgd` | [`-d`] [`-p` path] [`-S` socket] [`-s` socket] [`-U` user] [`-V`]

# DESCRIPTION

`bgplgd` is a server which implements the FastCGI Protocol to execute bgpctl(8) commands. `bgplgd` is a simple server that implements a simple web API to query bgpd(8).

`bgplgd` opens a socket at /var/www/run/bgplgd.sock, owned by www:www, with permissions 0660. It will then drop privileges to user "_bgplgd", unveil(2) the bgpctl(8) binary and restrict itself with pledge(2).

The options are as follows:

`-d`
  Do not daemonize. If this option is specified, `bgplgd` will run in the foreground and log to stderr.
`-p` path
  Use path instead of bgpctl(8) to query bgpd(8).
`-S` socket
  Use socket instead of the default /var/run/bgpd.rsock to communicate with bgpd(8).
`-s` socket
  Create and bind to alternative local socket at socket.
`-U` user
  Change the owner of /var/www/run/bgplgd.sock to user and its primary group instead of the default www:www.
`-V`
  Show the version and exit.

`bgplgd` provides the following API endpoints. Unless further specified the endpoints do not take any parameters:

/interfaces
  Show the interface states.
/memory
  Show RIB memory statistics.
/metrics
  Output various statistics in OpenMetrics format.
/neighbors
  Show detailed neighbors information. The output can be limited with the following parameters:

  `neighbor`=peer
    Show information for a specific neighbor. peer may be the neighbor's address or description.
  `group`=name
    Show only entries from the specified peer group.
/nexthops
  Show the list of BGP nexthops and the result of their validity check.
/rib
/rib/in
/rib/out
  Show routes from the bgpd(8) Routing Information Base. For /rib/in the Adj-RIB-In will be queried and for /rib/out the Adj-RIB-out. The following parameters can be used to filter the output:

  `neighbor`=peer
    Show information for a specific neighbor. peer may be the neighbor's address or description.
  `group`=name
    Show only entries from the specified peer group.
  `as`=number
    Show only entries with the specified source AS number.
  `community`=string
  `ext-community`=string
  `large-community`=string
    Show only entries that match the specified community.
  `af`=(`ipv4` | `ipv6` | `vpnv4` | `vpnv6`)
    Show only entries that match the specified address family.
  `rib`=name
    Show only entries from the RIB with name name. Can only be used with the /rib endpoint.
  `ovs`=(`valid` | `not-found` | `invalid`)
    Show only prefixes that match the specified Origin Validation State.
  `avs`=(`valid` | `invalid` | `unknown`)
    Show only prefixes that match the specified ASPA Validation State.
  `best`=1
    Show only selected routes.
  `error`=1
    Show only prefixes which are marked invalid and were treated as withdrawn.
  `filtered`=1
    Show only prefixes which are marked filtered by the input filter.
  `invalid`=1
    Show only prefixes which are not eligible.
  `leaked`=1
    Show only prefixes where a route leak was detected.
  `prefix`=addr
    Show only entries that match prefix either as the best matching route or show the entry for this CIDR prefix.
  `all`=1
    Show all entries in the specified prefix range.
  `or-shorter`=1
    Show all entries covering and including the specified prefix.
/rtr
  Show a list of all RTR sessions.
/sets
  Show a list summarizing all roa-set, as-set, prefix-set, and origin-set tables.
/summary
  Show a list of all neighbors, including information about the session state and message counters.

# EXAMPLES

Add the following to /etc/bgpd.conf to have bgpd(8) open a second, restricted, control socket:

`socket "/var/run/bgpd.rsock" restricted`

An example setup in httpd(8) is:

            location "/bgplgd/*" {
                    fastcgi socket "/run/bgplgd.sock"
                    request strip 1
            }

# SEE ALSO

bgpctl(8), bgpd(8), httpd(8)

# HISTORY

The `bgplgd` server first appeared in OpenBSD 7.2.

# AUTHORS

Claudio Jeker <claudio@openbsd.org>

July 13, 2025 | Debian