radmin

title: radmin(8)

text:
# radmin(8)

## NAME
radmin - FreeRADIUS Administration tool

## SYNOPSIS
radmin [-d config_directory] [-D dictionary_directory] [-e command] [-E] [-f socket_file] [-h] [-i input_file] [-n name] [-q]

## DESCRIPTION
FreeRADIUS Server administration tool that connects to the control socket of a running server, and gives a command-line interface to it.

At this time, only a few commands are supported. Please type "help" at the command prompt for detailed information about the supported commands.

## WARNING
The security protections offered by this command are limited to the permissions on the Unix domain socket, and the server configuration. If someone can connect to the Unix domain socket, they have a substantial amount of control over the server.

## OPTIONS
The following command-line options are accepted by the program.

-d config directory

Defaults to /etc/raddb. radmin looks here for the server configuration files to find the "listen" section that defines the control socket filename.

-D dictionary directory

Set main dictionary directory. Defaults to /usr/share/freeradius.

-e command

Run command and exit.

-E

Echo commands as they are being executed.

-f socket_file

Specify the socket filename directly. The radiusd.conf file is not read.

-h

Print usage help information.

-i input_file

Reads input from the specified file. If not specified, stdin is used. This also sets "-q".

-n mname

Read raddb/name.conf instead of raddb/radiusd.conf.

-q

Quiet mode.

## COMMANDS
The commands implemented by the command-line interface are almost completely controlled by the server. There are a few commands interpreted locally by radmin:

reconnect

Reconnect to the server.

quit

Exit from radmin.

exit

Exit from radmin.

The other commands are implemented by the server. Type "help" at the prompt for more information.

## EXAMPLES
debug file /var/log/radius/bob.log

Set debug logs to /var/log/radius/bob.log. There is very little checking of this filename. Rogue administrators may be able use this command to over-write almost any file on the system. If those administrators have write access to "radius.conf", they can do the same thing without radmin, too.

debug condition '(User-Name == "bob")'

Enable debugging output for all requests that match the condition. Any "unlang" condition is valid here. The condition is parsed as a string, so it must be enclosed in single or double quotes. Strings enclosed in double-quotes must have back-slashes and the quotation marks escaped inside of the string. Only one debug condition can be active at a time.

debug condition '((User-Name == "bob") || (Packet-Src-IP-Address == 192.0.2.22))'

A more complex condition that enables debugging output for requests containing User-Name "bob", or requests that originate from source IP address 192.0.2.22.

debug condition

Disable debug conditionals.

## FULL LIST OF COMMANDS
add <command>

do sub-command of add

add client <command>

Add client configuration commands

add client file <filename>

Add new client definition from <filename>

debug <command>

debugging commands

debug condition [condition]

Enable debugging for requests matching [condition]

debug level <number>

Set debug level to <number>. Higher is more debugging.

debug file [filename]

Send all debugging output to [filename]

del <command>

do sub-command of del

del client <command>

Delete client configuration commands

del client ipaddr <ipaddr>

Delete a dynamically created client

hup [module]

sends a HUP signal to the server, or optionally to one module

inject <command>

commands to inject packets into a running server

inject to <ipaddr> <port>

Inject packets to the destination IP and port.

inject from <ipaddr>

Inject packets as if they came from <ipaddr>

inject file <input-file> <output-file>

Inject packet from input-file>, with results sent to <output-file>

reconnect

reconnect to a running server

terminate

terminates the server, and cause it to exit

set <command>

do sub-command of set

set module <command>

set module commands

set module config <module> variable value

set configuration for <module>

set module status [alive|dead]

set the module to be alive or dead (always return "fail")

set home_server <command>

set home server commands

set home_server state <ipaddr> <port> [alive|dead]

set state for given home server

show <command>

do sub-command of show

show client <command>

do sub-command of client

show client config <ipaddr> [udp|tcp]

shows configuration for a given client.

show client list

shows list of global clients

show debug <command>

show debug properties

show debug condition

Shows current debugging condition.

show debug level

Shows current debugging level.

show debug file

Shows current debugging file.

show home_server <command>

do sub-command of home_server

show home_server config <ipaddr> <port>

show configuration for given home server

show home_server list

shows list of home servers

show home_server state <ipaddr> <port>

shows state of given home server

show module <command>

do sub-command of module

show module config <module>

show configuration for given module

show module flags <module>

show other module properties

show module list

shows list of loaded modules

show module methods <module>

show sections where <module> may be used

show uptime

shows time at which server started

show version

Prints version of the running server

show xml <reference>

Prints out configuration as XML

stats <command>

do sub-command of stats

stats client [auth/acct] <ipaddr>

show statistics for given client, or for all clients (auth or acct)

stats home_server [<ipaddr>|auth|acct] <port>

show statistics for given home server (ipaddr and port), or for all home servers (auth or acct)

stats detail <filename>

show statistics for the given detail file

## SEE ALSO
unlang(5), radiusd.conf(5), raddb/sites-available/control-socket

## AUTHOR
Alan DeKok <aland@freeradius.org>


radrelay

package: freeradius

title: radrelay(8)

text:
# radrelay(8)

## NAME
radrelay -- Deprecated command.

## DESCRIPTION
The functions of radrelay have been added to radiusd. One benefit is that one instance of radiusd can read multiple detail files, among others.

The rlm_sql_log module does something similar, but for SQL queries. See it's man page for details.

## REPLICATION FOR BACKUPS
Many sites run multiple radius servers; at least one primary and one backup server. When the primary goes down, most NASes detect that and switch to the backup server.

That will cause your accounting packets to go to the backup server - and some NASes don't even switch back to the primary server when it comes back up.

The result is that accounting records are missed, and/or the administrator must jump through hoops in order to combine the different detail files from multiple servers. It also means that the session database ("radutmp", used for radwho and simultaneous use detection) gets out of sync.

We solve this issue by "relaying" packets from one server to another, so they both have the same set of accounting data.

See raddb/sites-available/buffered-sql for more information.

## BUFFERING FOR HIGH-LOAD SERVERS
If the RADIUS server suddenly receives a many accounting packets, there may be insufficient CPU power to process them all in a timely manner. This problem is especially noticeable when the accounting packets are going to a back-end database.

Similarly, you may have one database that tracks "live" sessions, and another that tracks historical accounting data. In that case, accessing the first database is fast, as it is small. Accessing the second database many be slower, as it may contain multiple gigabytes of data. In addition, writing to the first database in a timely manner is important, while data may be written to the second database with a few minutes delay, without any harm being done.

See raddb/sites-available/copy-to-home-server for more information.

## SEE ALSO
radiusd(8), rlm_sql_log(5)

## AUTHOR
The FreeRADIUS Server Project


radsniff

title: radsniff(8)

text:
# radsniff(8)

## NAME
radsniff - dump radius protocol

## SYNOPSIS
radsniff [-c count] [-d directory] [-F] [-f filter] [-h] [-i interface] [-I filename] [-m] [-p port] [-r requestfilter] [-R responsefilter] [-s secret] [-S] [-w file] [-x]

## DESCRIPTION
radsniff is a simple wrapper around libpcap. It can also print out the contents of RADIUS packets using the FreeRADIUS dictionaries.

## OPTIONS
-c count

Number of packets to capture.

-d directory

Directory where the dictionaries are found.

-F

Filter PCAP file from stdin to stdout. Output file will contain RADIUS packets.

-f filter

PCAP filter. (default is udp port 1812 or 1813)

-h

Print usage help information.

-i interface

Interface to capture.

-I filename

Read packets from filename.

-m

Print packet headers only, not contents.

-p port

Listen for packets on port.

-r attribute-filter

RADIUS attribute request filter.

-R attribute-filter

RADIUS attribute response filter.

-s secret

RADIUS secret.

-S

Sort attributes in the packet. Used to compare server results.

-w file

Write output packets to file.

-x

Print out debugging information.

## SEE ALSO
radiusd(8),pcap(3)

## AUTHORS
Nicolas Baradakis <nicolas.baradakis@cegetel.net>


radsqlrelay

title: radsqlrelay(8)

text:
# radsqlrelay(8)

## NAME
radsqlrelay - relay SQL queries to a central database server

## SYNOPSIS
radsqlrelay [-?] [-d sql_driver] [-b database] [-f file] [-h host] [-u user] [-P port] [-p password] [-1] [-x] file_path

## DESCRIPTION
radsqlrelay tails a SQL logfile and forwards the queries to a database server. Used to replicate accounting records to one (central) database, even if the database has extended downtime.

The SQL logfile is created by the rlm_sql module with the rlm_sql_null driver logging to disk.. The module must be configured in the radiusd server before you can use radsqlrelay.

## OPTIONS
-?

Print usage help information.

-d sql_driver

Driver to use: mysql, pg, oracle.

-b database

Name of the database to use.

-f file

Read password from file, instead of command line.

-h host

Connect to host.

-u user

User for login.

-P port

Port number to use for connection.

-p password

Password to use when connecting to server.

-1

One-shot mode: push the file to database and exit.

-x

Turn on debugging.

file_path

The pathname of the SQL logfile to use.

## NOTES

### Oracle driver
The command "radsqlrelay -d oracle -b db.domain.tld sql-relay" reads the database description stored in $TNS_ADMIN/tnsnames.ora:

```
db.domain.tld =

  (DESCRIPTION =

    (ADDRESS_LIST =

      (ADDRESS = (PROTOCOL = TCP)(HOST = db.domain.tld)(PORT = 1521))

    )

    (CONNECT_DATA =

      (SERVICE_NAME = <DB SID>)

    )

  )
```

## AUTHOR
Nicolas Baradakis <nicolas.baradakis@cegetel.net>


title: rlm_ippool_tool(8)

text:
# rlm_ippool_tool(8)

## NAME
rlm_ippool_tool - dump the contents of the FreeRadius ippool database files

## SYNOPSIS
If an ipaddress is specified then that address is used to limit the actions or output.

rlm_ippool_tool [-a] [-c] [-o] [-v] session-db index-db [ipaddress]

Mark the entry nasIP/nasPort as having ipaddress

rlm_ippool_tool -n session-db index-db ipaddress nasIP nasPort

Update old format database to new.

rlm_ippool_tool -u session-db new-session-db

## DESCRIPTION
rlm_ippool_tool dumps the contents of the FreeRADIUS ippool databases for analyses or for removal of active (stuck?) entries.

Or with the -n argument adds a usage entry to the FreeRADIUS ippool databases.

## OPTIONS
-a

Print all active entries.

-c

Report number of active entries.

-r

Remove active entries.

-v

Verbose report of all entries.

-o

Assume old database format (nas/port pair, not md5 output).

-n

Mark the entry nasIP/nasPort as having ipaddress.

-u

Update old format database to new.

## EXAMPLES
Given the syntax in the FreeRadius radiusd.conf:

```
 ippool myippool {
	range-start = 192.0.2.0
	range-stop = 192.0.2.255
	[...]
	session-db = ${raddbdir}/ip-pool.db
	ip-index = ${raddbdir}/ip-index.db

 }
```

To see the number of active entries in this pool, use:

```
 $ rlm_ippool_tool -c ip-pool.db ip-index.db

 13
```

To see all active entries in this pool, use:

```
 $ rlm_ippool_tool -a ip-pool.db ip-index.db

 192.0.2.5

 192.0.2.82

 192.0.2.244

 192.0.2.57

 192.0.2.120

 192.0.2.27

 [...]
```

To see all information about the active entries in the use, use:

```
 $ rlm_ippool_tool -av ip-pool.db ip-index.db

 NAS:172.16.1.1 port:0x2e8 - ipaddr:192.0.2.5 active:1 cli:0 num:1

 NAS:172.16.1.1 port:0x17c - ipaddr:192.0.2.82 active:1 cli:0 num:1

 NAS:172.16.1.1 port:0x106 - ipaddr:192.0.2.244 active:1 cli:0 num:1

 NAS:172.16.1.1 port:0x157 - ipaddr:192.0.2.57 active:1 cli:0 num:1

 NAS:172.16.1.1 port:0x2d8 - ipaddr:192.0.2.120 active:1 cli:0 num:1

 NAS:172.16.1.1 port:0x162 - ipaddr:192.0.2.27 active:1 cli:0 num:1

 [...]
```

To see only information of one entry, use:

```
 $ rlm_ippool_tool -v ip-pool.db ip-index.db 192.0.2.1

 NAS:172.16.1.1 port:0x90 - ipaddr:192.0.2.1 active:0 cli:0 num:0
```

To add an IP address usage entry, use:

```
 $ rlm_ippool_tool -n ip-pool.db ip-index.db 192.0.0.1 172.16.1.1 0x90

 rlm_ippool_tool: Allocating ip to nas/port: 172.16.1.1/144

 rlm_ippool_tool: num: 1

 rlm_ippool_tool: Allocated ip 192.0.2.1 to client on nas 172.16.1.1,port 144
```

## SEE ALSO
radiusd(8)

## AUTHORS
Currently part of the FreeRADIUS Project (http://www.freeradius.org) Originally by Edwin Groothuis, edwin@mavetju.org (http://www.mavetju.org)

Mailing list details are at http://www.freeradius.org/


package: freeradius-perl-util

title: rlm_sqlippool_tool(8)

text:
# rlm_sqlippool_tool(8)

## NAME
rlm_sqlippool_tool - manage SQL IP pools

## SYNOPSIS
rlm_sqlippool_tool -p pool_name -s range_start -e range_end -t table_name -d -f raddb_dir -i instance [-c capacity] [-x existing_ips_file]

rlm_sqlippool_tool -y pool_defs_yaml_file -t table_name -d -f raddb_dir -i instance [-x existing_ips_file]

## DESCRIPTION
rlm_sqlippool_tool is a tool to manage IP address in SQL IP pools as used by FreeRADIUS. It will either output SQL that can be used to manipulate the database or will interact directly with a database to populate an IP pool table.

The format of the SQL output or the commands operated on the database are based on the default FreeRADIUS ippool schemas. The fields populated are pool_name and framedipaddress. All other fields are left to be populated with their database defaults.

## OPTIONS
-c capacity

Number of IP addreses to populate the pool with. Defaults to 65536, or the maximum number that can be provisioned between the start and end of the range.

-d dialect

SQL dialect to use in producing the output.

-e range_end

End IP address in the pool range. Either IPv4 or IPv6 addresses are allowed.

-f raddb_dir

Directory containing the FreeRADIUS configuration. If this option is specified, then rlm_sqlippool_tool will parse the configuration and attempt to talk directly to the database server specified in the FreeRADIUS configuration.

-i instance

Used in conjuction with -f. Specifies the name of the sql module instance to parse in the FreeRADIUS configuration. Defaults to sql.

-p pool_name

The pool name to populate.

-s range_start

Start IP address in the pool range. Either IPv4 or IPv6 addresses are allowed.

-t table_name

Name of the table in the database to populate.

-x existing_ips_file

A file containing exsiting IP addresses in the pool. Use of this allows for more controlled growth of a sparesly populated pool.

-y pool_defs_yaml_file

A YAML formatted file containing specifications for a number of pools.

## EXAMPLES
To produce MySQL formatted SQL for a pool named local populated with addresses from 10.0.0.1 to 10.0.0.199:

```
$ rlm_sqlippool_tool -p local -s 10.0.0.1 -e 10.0.0.199 \

    -t dhcpippool -d mysql
```

```

```

To do the same but directly interacting with the SQL module configured in the FreeRADIUS configuration under /etc/raddb:

```
$ rlm_sqlippool_tool -p local -s 10.0.0.1 -e 10.0.0.199 \

    -t dhcpippool -f /etc/raddb
```

```

```

To use a YAML file to specify the pool ranges to be populated, outputting PostgreSQL formatted SQL:

```
$ rlm_sqlippool_tool -y pools.yaml -t dhcpippool -d postgresql
```

```

```

## YAML FORMAT
A YAML file to populate multiple pools should be formatted like this:

```
pool_with_a_single_contiguous_range:

  - start:    192.0.2.3

    end:      192.0.2.250
pool_with_a_single_sparse_range:

  - start:    10.10.10.0

    end:      10.10.20.255

    capacity: 200
pool_with_multiple_ranges:

  - start:    10.10.10.1

    end:      10.10.10.253

  - start:    10.10.100.0

    end:      10.10.199.255

    capacity: 1000
v6_pool_with_contiguous_range:

  - start:    '2001:db8:1:2:3:4:5:10'

    end:      '2001:db8:1:2:3:4:5:7f'
v6_pool_with_sparse_range:

  - start:    '2001:db8:1:2::'

    end:      '2001:db8:1:2:ffff:ffff:ffff:ffff'

    capacity: 200
```

```

```

## PREREQUISITES
To output formatted SQL, the Perl Template::Toolkit module is required.

Direct connection to databases is done using Perl DBI. The appropriate Perl DBD driver needs to be installed to enable this functionality.

## SEE ALSO
radiusd.conf(5), raddb/mods-available/sql

## AUTHORS
Nick Porter <nick@portercomputing.co.uk>


frr-bfdd

package: frr

title: frr-bfdd(8)

text:
# frr-bfdd(8)

## NAME
frr-bfdd - a bfd routing engine for use with FRRouting.

## SYNOPSIS
bfdd [-h] [-v]

bfdd [-d|-t|-dt] [-C] [-f config-file] [-i pid-file] [-z zclient-path] [-u user] [-g group] [-A vty-addr] [-P vty-port] [-M module[:options]] [-N pathspace] [--vty_socket vty-path] [--moduledir module-path]

## DESCRIPTION
bfdd is a communication failure detection component that works with the FRRouting routing engine.

## OPTIONS
OPTIONS available for the bfdd command:

### HELP AND VERSION
-h, --help

Print a short description of the daemon's command line options.

-v, --version

Print version and build information for the daemon.

Both of these options inhibit normal operation and will immediately exit.

### PROCESS CONTROL
These options control background operation:

-d, --daemon

Launches the process in background/daemon mode, forking and detaching from the terminal.

The parent process will delay its exit until the daemon/child has finished its initialization and has entered its main loop. This is important for zebra startup because the other daemons will attempt to connect to zebra. A return from zebra -d guarantees its readiness to accept these connections.

-t, --terminal

Opens an interactive VTY session on the terminal, allowing for both state and configuration operations. Note that the terminal starts operating after startup has completed and the configuration file has been loaded. The process will exit when end of file is detected on the terminal. It is possible to daemonize a process started with -t (but without -d) by sending SIGQUIT to the process (normally mapped to a ^keypress.)

The combination of --daemon and --terminal will delay the daemon from going into background until the terminal session ends (by end of file.)

If the process receives SIGINT (e.g. a ^C keypress) in this mode, it will exit instead of daemonizing.

It is safe to suspend (SIGTSTP / ^Z) the terminal session opened by the previous two options; this will only stop the terminal but not the protocol daemon itself (which runs in a separate second process.)

### CONFIGURATION AND PATHS
The following options control configuration and file system locations for frr processes:

-f, --config_file config-file

Specify a configuration file to be used instead of the default /etc/frr/<daemon>.conf file. Note that the daemon will attempt to write to this file if the write file command is issued on its VTY interface or through vtysh.

-C, --dryrun

Load the configuration file and check its validity, then exit.

-i, --pid_file pid-file

Output a pid file to a location other than the default /var/run/frr/<daemon>.pid.

-z, --socket zclient-path

Override the path of the ZAPI socket used to communicate between zebra and the various protocol daemons. The default is /var/run/frr/zserv.api. The value of this option must be the same across all daemons.

-N, --pathspace pathspace

Insert pathspace into all default paths, changing the defaults to: /etc/frr/pathspace/<daemon>.conf /var/run/frr/pathspace/<daemon>.pid /var/run/frr/pathspace/<daemon>.vty /var/run/frr/pathspace/zserv.api

´.´ and ´/´ characters will not be accepted in pathspace, but the empty string will be accepted.

Note that this only changes the respective defaults, it has no effect on the respective path if the -f, -i, -z or --vty_socket options are used.

The purpose of this option is to easily group all file system related bits together for running multiple fully-separate "logical routers" on a system, particularly with Linux network namespaces. Groups of daemons running with distinct pathspace values will be completely unaware of each other and not interact in any way.

This option does not do any system setup (like network namespaces.) This must be done by the user, for example by running:

ip netns exec namespace <daemon> -N namespace

### PROCESS CREDENTIALS
-u, --user user

(default: frr)

-g, --group group

(default: frr) Change the user/group which the daemon will switch to.

-S, --skip_runas

Skip setting the process effective user and group.

Note that there is an additional group, frrvty, which controls group ownership of the VTY sockets. The name of this group cannot currently be changed, and user must be a member of this group.

### VTY SETUP
These following options control the daemon's VTY (interactive command line) interface. The interface is available over TCP, using the telnet protocol, as well as through the vtysh frontend.

-A, --vty_addr vty-addr

Specify an IP/IPv6 address to bind the TCP VTY interface to. It is generally recommended to specify ::1 or 127.0.0.1. For reasons of backwards compatibility, the default is to listen on all interfaces.

-P, --vty_port vty-port

Override the daemon's default TCP VTY port (each daemon has a different default value upwards of 2600, listed below.) Specifying 0 disables the TCP VTY interface. Default ports are::

```
zebra           2601
ripd            2602
ripngd          2603
ospfd           2604
bgpd            2605
ospf6d          2606
isisd           2608
babeld          2609
nhrpd           2610
pimd            2611
ldpd            2612
eigrpd          2613
pbrd            2615
staticd         2616
bfdd            2617
fabricd         2618
vrrpd           2619
```

Port 2607 is used for ospfd's Opaque LSA API.

--vty_socket vty-path

Overrides the directory used for the <daemon>.vty sockets. vtysh connects to these sockets in order to access each daemon's VTY. Default: /var/run/frr[/<pathspace>] NB: Unlike the other options, this option specifies a directory, not a full path.

This option is primarily used by the SNAP packaging system, its semantics may change. It should not be necessary in most other scenarios.

### MODULE LOADING
frr supports optional dynamically loadable modules, although these can only be loaded at startup. The set of available modules may vary across distributions and packages, and modules may be available for installation as separate packages.

-M, --module module[:options]

Load a module named module, optionally passing options to it. If there is a ´/´ character in module, the value is assumed to be a pathname to a module.

If there is no ´/´ character, the module directory (see next option) is searched first for a module named "<daemon>_<module>.so", then for "<module>.so". This allows for a module to exist in variations appropriate for particular daemons, e.g. zebra_snmp and bgp_snmp, with the correct one selected by -M snmp.

The meaning of options is specific to the module being loaded. Most modules currently ignore it.

Modules are loaded in the order as listed on the command line. This is not generally relevant.

--moduledir module-path

Look for modules in the module-path directory instead of the default /usr/lib/frr/modules. (This path is not affected by the -N option.)

The list of loaded modules can be inspected at runtime with the show modules VTY command.

### BFD
The following options controls the BFD daemon auxiliary sockets.

--dplaneaddr <type>:<address>[<:port>]

Configure the distributed BFD data plane listening socket bind address. One would expect the data plane to run in the same machine as FRR, so the suggested configuration would be:

--dplaneaddr unix:/var/run/frr/bfdd_dplane.sock

Or using IPv4:

--dplaneaddr ipv4:127.0.0.1

Or using IPv6:

--dplaneaddr ipv6:[::1]

It is also possible to specify a port (for IPv4/IPv6 only):

--dplaneaddr ipv6:[::1]:50701

(if omitted the default port is 50700).

It is also possible to operate in client mode (instead of listening for connections). To connect to a data plane server append the letter 'c' to the protocol, example:

--dplaneaddr ipv4c:127.0.0.1

## FILES
/usr/lib/frr/bfdd

The default location of the bfdd binary.

/etc/frr/bfdd.conf

The default location of the bfdd config file.

$(PWD)/bfdd.log

If the bfdd process is configured to output logs to a file, then you will find this file in the directory where you started bfdd.

## WARNING
This man page is intended to be a quick reference for command line options. The definitive document is the info file frr 10.2.2 or the documentation available on the project website at https://frrouting.org/.

## DIAGNOSTICS
The daemon may log to standard output, to a VTY, to a log file, or through syslog to the system logs. FRR supports many debugging options, see the Info file, web docs or source for details.

## SEE ALSO
frr-zebra(8), vtysh(1), frr-ripd(8), frr-ripngd(8), frr-ospfd(8), frr-ospf6d(8), frr-bgpd(8), frr-isisd(8), frr-babeld(8), frr-nhrpd(8), frr-pimd(8), frr-pbrd(8), frr-ldpd(8), frr-eigrpd(8), frr-staticd(8), frr-fabricd(8), frr-vrrpd(8), mtracebis(8) https://frrouting.org/

## BUGS
FRR eats bugs for breakfast. If you have food for the maintainers, please email <dev@lists.frrouting.org>.

## COPYRIGHT
2025, FRR


frr-bgpd

title: frr-bgpd(8)

text:
# frr-bgpd(8)

## NAME
frr-bgpd - a BGPv4, BGPv4+, BGPv4- routing engine for use with FRRouting.

## SYNOPSIS
bgpd [-h] [-v]

bgpd [-d|-t|-dt] [-C] [-f config-file] [-i pid-file] [-z zclient-path] [-u user] [-g group] [-A vty-addr] [-P vty-port] [-M module[:options]] [-N pathspace] [--vty_socket vty-path] [--moduledir module-path]

## DESCRIPTION
bgpd is a routing component that works with the FRRouting routing engine.

## OPTIONS
OPTIONS available for the bgpd command:

### HELP AND VERSION
-h, --help

Print a short description of the daemon's command line options.

-v, --version

Print version and build information for the daemon.

Both of these options inhibit normal operation and will immediately exit.

### PROCESS CONTROL
These options control background operation:

-d, --daemon

Launches the process in background/daemon mode, forking and detaching from the terminal.

The parent process will delay its exit until the daemon/child has finished its initialization and has entered its main loop. This is important for zebra startup because the other daemons will attempt to connect to zebra. A return from zebra -d guarantees its readiness to accept these connections.

-t, --terminal

Opens an interactive VTY session on the terminal, allowing for both state and configuration operations. Note that the terminal starts operating after startup has completed and the configuration file has been loaded. The process will exit when end of file is detected on the terminal. It is possible to daemonize a process started with -t (but without -d) by sending SIGQUIT to the process (normally mapped to a ^keypress.)

The combination of --daemon and --terminal will delay the daemon from going into background until the terminal session ends (by end of file.)

If the process receives SIGINT (e.g. a ^C keypress) in this mode, it will exit instead of daemonizing.

It is safe to suspend (SIGTSTP / ^Z) the terminal session opened by the previous two options; this will only stop the terminal but not the protocol daemon itself (which runs in a separate second process.)

### CONFIGURATION AND PATHS
The following options control configuration and file system locations for frr processes:

-f, --config_file config-file

Specify a configuration file to be used instead of the default /etc/frr/<daemon>.conf file. Note that the daemon will attempt to write to this file if the write file command is issued on its VTY interface or through vtysh.

-C, --dryrun

Load the configuration file and check its validity, then exit.

-i, --pid_file pid-file

Output a pid file to a location other than the default /var/run/frr/<daemon>.pid.

-z, --socket zclient-path

Override the path of the ZAPI socket used to communicate between zebra and the various protocol daemons. The default is /var/run/frr/zserv.api. The value of this option must be the same across all daemons.

-N, --pathspace pathspace

Insert pathspace into all default paths, changing the defaults to: /etc/frr/pathspace/<daemon>.conf /var/run/frr/pathspace/<daemon>.pid /var/run/frr/pathspace/<daemon>.vty /var/run/frr/pathspace/zserv.api

´.´ and ´/´ characters will not be accepted in pathspace, but the empty string will be accepted.

Note that this only changes the respective defaults, it has no effect on the respective path if the -f, -i, -z or --vty_socket options are used.

The purpose of this option is to easily group all file system related bits together for running multiple fully-separate "logical routers" on a system, particularly with Linux network namespaces. Groups of daemons running with distinct pathspace values will be completely unaware of each other and not interact in any way.

This option does not do any system setup (like network namespaces.) This must be done by the user, for example by running:

ip netns exec namespace <daemon> -N namespace

### PROCESS CREDENTIALS
-u, --user user

(default: frr)

-g, --group group

(default: frr) Change the user/group which the daemon will switch to.

-S, --skip_runas

Skip setting the process effective user and group.

Note that there is an additional group, frrvty, which controls group ownership of the VTY sockets. The name of this group cannot currently be changed, and user must be a member of this group.

### VTY SETUP
These following options control the daemon's VTY (interactive command line) interface. The interface is available over TCP, using the telnet protocol, as well as through the vtysh frontend.

-A, --vty_addr vty-addr

Specify an IP/IPv6 address to bind the TCP VTY interface to. It is generally recommended to specify ::1 or 127.0.0.1. For reasons of backwards compatibility, the default is to listen on all interfaces.

-P, --vty_port vty-port

Override the daemon's default TCP VTY port (each daemon has a different default value upwards of 2600, listed below.) Specifying 0 disables the TCP VTY interface. Default ports are::

```
zebra           2601
ripd            2602
ripngd          2603
ospfd           2604
bgpd            2605
ospf6d          2606
isisd           2608
babeld          2609
nhrpd           2610
pimd            2611
ldpd            2612
eigrpd          2613
pbrd            2615
staticd         2616
bfdd            2617
fabricd         2618
vrrpd           2619
```

Port 2607 is used for ospfd's Opaque LSA API.

--vty_socket vty-path

Overrides the directory used for the <daemon>.vty sockets. vtysh connects to these sockets in order to access each daemon's VTY. Default: /var/run/frr[/<pathspace>] NB: Unlike the other options, this option specifies a directory, not a full path.

This option is primarily used by the SNAP packaging system, its semantics may change. It should not be necessary in most other scenarios.

### MODULE LOADING
frr supports optional dynamically loadable modules, although these can only be loaded at startup. The set of available modules may vary across distributions and packages, and modules may be available for installation as separate packages.

-M, --module module[:options]

Load a module named module, optionally passing options to it. If there is a ´/´ character in module, the value is assumed to be a pathname to a module.

If there is no ´/´ character, the module directory (see next option) is searched first for a module named "<daemon>_<module>.so", then for "<module>.so". This allows for a module to exist in variations appropriate for particular daemons, e.g. zebra_snmp and bgp_snmp, with the correct one selected by -M snmp.

The meaning of options is specific to the module being loaded. Most modules currently ignore it.

Modules are loaded in the order as listed on the command line. This is not generally relevant.

--moduledir module-path

Look for modules in the module-path directory instead of the default /usr/lib/frr/modules. (This path is not affected by the -N option.)

The list of loaded modules can be inspected at runtime with the show modules VTY command.

-p, --bgp_port <port>

Set the bgp protocol's port number. When port number is 0, that means do not listen bgp port.

-l, --listenon

Specify a specific IP address for bgpd to listen on, rather than its default of 0.0.0.0 / ::. This can be useful to constrain bgpd to an internal address, or to run multiple bgpd processes on one host.

-n, --no_kernel

Do not install learned routes into the linux kernel. This option is useful for a route-reflector environment or if you are running multiple bgp processes in the same namespace. This option is different than the --no_zebra option in that a ZAPI connection is made.

-e, --ecmp

Run BGP with a limited ecmp capability, that is different than what BGP was compiled with. The value specified must be greater than 0 and less than or equal to the MULTIPATH_NUM specified on compilation.

-Z, --no_zebra

Do not communicate with zebra at all. This is different than the --no_kernel option in that we do not even open a ZAPI connection to the zebra process.

-s, --socket_size

When opening tcp connections to our peers, set the socket send buffer size that the kernel will use for the peers socket. This option is only really useful at a very large scale. Experimentation should be done to see if this is helping or not at the scale you are running at.

### LABEL MANAGER
-I, --int_num

Set zclient id. This is required when using Zebra label manager in proxy mode.

## FILES
/usr/lib/frr/bgpd

The default location of the bgpd binary.

/etc/frr/bgpd.conf

The default location of the bgpd config file.

$(PWD)/bgpd.log

If the bgpd process is configured to output logs to a file, then you will find this file in the directory where you started bgpd.

## WARNING
This man page is intended to be a quick reference for command line options. The definitive document is the info file frr 10.2.2 or the documentation available on the project website at https://frrouting.org/.

## DIAGNOSTICS
The daemon may log to standard output, to a VTY, to a log file, or through syslog to the system logs. FRR supports many debugging options, see the Info file, web docs or source for details.

## SEE ALSO
frr-zebra(8), vtysh(1), frr-ripd(8), frr-ripngd(8), frr-ospfd(8), frr-ospf6d(8), frr-bgpd(8), frr-isisd(8), frr-babeld(8), frr-nhrpd(8), frr-pimd(8), frr-pbrd(8), frr-ldpd(8), frr-eigrpd(8), frr-staticd(8), frr-fabricd(8), frr-vrrpd(8), mtracebis(8) https://frrouting.org/

## BUGS
FRR eats bugs for breakfast. If you have food for the maintainers, please email <dev@lists.frrouting.org>.

## COPYRIGHT
2025, FRR


frr-eigrpd

title: frr-eigrpd(8)

text:
# frr-eigrpd(8)

## NAME
frr-eigrpd - an EIGRP routing engine for use with FRRouting.

## SYNOPSIS
eigrpd [-h] [-v]

eigrpd [-d|-t|-dt] [-C] [-f config-file] [-i pid-file] [-z zclient-path] [-u user] [-g group] [-A vty-addr] [-P vty-port] [-M module[:options]] [-N pathspace] [--vty_socket vty-path] [--moduledir module-path]

## DESCRIPTION
eigrpd is a routing component that works with the FRRouting routing engine.

## OPTIONS
OPTIONS available for the eigrpd command:

### HELP AND VERSION
-h, --help

Print a short description of the daemon's command line options.

-v, --version

Print version and build information for the daemon.

Both of these options inhibit normal operation and will immediately exit.

### PROCESS CONTROL
These options control background operation:

-d, --daemon

Launches the process in background/daemon mode, forking and detaching from the terminal.

The parent process will delay its exit until the daemon/child has finished its initialization and has entered its main loop. This is important for zebra startup because the other daemons will attempt to connect to zebra. A return from zebra -d guarantees its readiness to accept these connections.

-t, --terminal

Opens an interactive VTY session on the terminal, allowing for both state and configuration operations. Note that the terminal starts operating after startup has completed and the configuration file has been loaded. The process will exit when end of file is detected on the terminal. It is possible to daemonize a process started with -t (but without -d) by sending SIGQUIT to the process (normally mapped to a ^keypress.)

The combination of --daemon and --terminal will delay the daemon from going into background until the terminal session ends (by end of file.)

If the process receives SIGINT (e.g. a ^C keypress) in this mode, it will exit instead of daemonizing.

It is safe to suspend (SIGTSTP / ^Z) the terminal session opened by the previous two options; this will only stop the terminal but not the protocol daemon itself (which runs in a separate second process.)

### CONFIGURATION AND PATHS
The following options control configuration and file system locations for frr processes:

-f, --config_file config-file

Specify a configuration file to be used instead of the default /etc/frr/<daemon>.conf file. Note that the daemon will attempt to write to this file if the write file command is issued on its VTY interface or through vtysh.

-C, --dryrun

Load the configuration file and check its validity, then exit.

-i, --pid_file pid-file

Output a pid file to a location other than the default /var/run/frr/<daemon>.pid.

-z, --socket zclient-path

Override the path of the ZAPI socket used to communicate between zebra and the various protocol daemons. The default is /var/run/frr/zserv.api. The value of this option must be the same across all daemons.

-N, --pathspace pathspace

Insert pathspace into all default paths, changing the defaults to: /etc/frr/pathspace/<daemon>.conf /var/run/frr/pathspace/<daemon>.pid /var/run/frr/pathspace/<daemon>.vty /var/run/frr/pathspace/zserv.api

´.´ and ´/´ characters will not be accepted in pathspace, but the empty string will be accepted.

Note that this only changes the respective defaults, it has no effect on the respective path if the -f, -i, -z or --vty_socket options are used.

The purpose of this option is to easily group all file system related bits together for running multiple fully-separate "logical routers" on a system, particularly with Linux network namespaces. Groups of daemons running with distinct pathspace values will be completely unaware of each other and not interact in any way.

This option does not do any system setup (like network namespaces.) This must be done by the user, for example by running:

ip netns exec namespace <daemon> -N namespace

### PROCESS CREDENTIALS
-u, --user user

(default: frr)

-g, --group group

(default: frr) Change the user/group which the daemon will switch to.

-S, --skip_runas

Skip setting the process effective user and group.

Note that there is an additional group, frrvty, which controls group ownership of the VTY sockets. The name of this group cannot currently be changed, and user must be a member of this group.

### VTY SETUP
These following options control the daemon's VTY (interactive command line) interface. The interface is available over TCP, using the telnet protocol, as well as through the vtysh frontend.

-A, --vty_addr vty-addr

Specify an IP/IPv6 address to bind the TCP VTY interface to. It is generally recommended to specify ::1 or 127.0.0.1. For reasons of backwards compatibility, the default is to listen on all interfaces.

-P, --vty_port vty-port

Override the daemon's default TCP VTY port (each daemon has a different default value upwards of 2600, listed below.) Specifying 0 disables the TCP VTY interface. Default ports are::

```
zebra           2601
ripd            2602
ripngd          2603
ospfd           2604
bgpd            2605
ospf6d          2606
isisd           2608
babeld          2609
nhrpd           2610
pimd            2611
ldpd            2612
eigrpd          2613
pbrd            2615
staticd         2616
bfdd            2617
fabricd         2618
vrrpd           2619
```

Port 2607 is used for ospfd's Opaque LSA API.

--vty_socket vty-path

Overrides the directory used for the <daemon>.vty sockets. vtysh connects to these sockets in order to access each daemon's VTY. Default: /var/run/frr[/<pathspace>] NB: Unlike the other options, this option specifies a directory, not a full path.

This option is primarily used by the SNAP packaging system, its semantics may change. It should not be necessary in most other scenarios.

### MODULE LOADING
frr supports optional dynamically loadable modules, although these can only be loaded at startup. The set of available modules may vary across distributions and packages, and modules may be available for installation as separate packages.

-M, --module module[:options]

Load a module named module, optionally passing options to it. If there is a ´/´ character in module, the value is assumed to be a pathname to a module.

If there is no ´/´ character, the module directory (see next option) is searched first for a module named "<daemon>_<module>.so", then for "<module>.so". This allows for a module to exist in variations appropriate for particular daemons, e.g. zebra_snmp and bgp_snmp, with the correct one selected by -M snmp.

The meaning of options is specific to the module being loaded. Most modules currently ignore it.

Modules are loaded in the order as listed on the command line. This is not generally relevant.

--moduledir module-path

Look for modules in the module-path directory instead of the default /usr/lib/frr/modules. (This path is not affected by the -N option.)

The list of loaded modules can be inspected at runtime with the show modules VTY command.

## FILES
/usr/lib/frr/eigrpd

The default location of the eigrpd binary.

/etc/frr/eigrpd.conf

The default location of the eigrpd config file.

$(PWD)/eigrpd.log

If the eigrpd process is configured to output logs to a file, then you will find this file in the directory where you started eigrpd.

## WARNING
This man page is intended to be a quick reference for command line options. The definitive document is the info file frr 10.2.2 or the documentation available on the project website at https://frrouting.org/.

## DIAGNOSTICS
The daemon may log to standard output, to a VTY, to a log file, or through syslog to the system logs. FRR supports many debugging options, see the Info file, web docs or source for details.

## SEE ALSO
frr-zebra(8), vtysh(1), frr-ripd(8), frr-ripngd(8), frr-ospfd(8), frr-ospf6d(8), frr-bgpd(8), frr-isisd(8), frr-babeld(8), frr-nhrpd(8), frr-pimd(8), frr-pbrd(8), frr-ldpd(8), frr-eigrpd(8), frr-staticd(8), frr-fabricd(8), frr-vrrpd(8), mtracebis(8) https://frrouting.org/

## BUGS
FRR eats bugs for breakfast. If you have food for the maintainers, please email <dev@lists.frrouting.org>.

## COPYRIGHT
2025, FRR


frr-isisd

title: frr-isisd(8)

text:
# frr-isisd(8)

## NAME
frr-isisd - an IS-IS routing engine for use with FRRouting.

## SYNOPSIS
isisd [-h] [-v]

isisd [-d|-t|-dt] [-C] [-f config-file] [-i pid-file] [-z zclient-path] [-u user] [-g group] [-A vty-addr] [-P vty-port] [-M module[:options]] [-N pathspace] [--vty_socket vty-path] [--moduledir module-path]

## DESCRIPTION
isisd is a routing component that works with the FRRouting routing engine.

## OPTIONS
OPTIONS available for the isisd command:

### HELP AND VERSION
-h, --help

Print a short description of the daemon's command line options.

-v, --version

Print version and build information for the daemon.

Both of these options inhibit normal operation and will immediately exit.

### PROCESS CONTROL
These options control background operation:

-d, --daemon

Launches the process in background/daemon mode, forking and detaching from the terminal.

The parent process will delay its exit until the daemon/child has finished its initialization and has entered its main loop. This is important for zebra startup because the other daemons will attempt to connect to zebra. A return from zebra -d guarantees its readiness to accept these connections.

-t, --terminal

Opens an interactive VTY session on the terminal, allowing for both state and configuration operations. Note that the terminal starts operating after startup has completed and the configuration file has been loaded. The process will exit when end of file is detected on the terminal. It is possible to daemonize a process started with -t (but without -d) by sending SIGQUIT to the process (normally mapped to a ^keypress.)

The combination of --daemon and --terminal will delay the daemon from going into background until the terminal session ends (by end of file.)

If the process receives SIGINT (e.g. a ^C keypress) in this mode, it will exit instead of daemonizing.

It is safe to suspend (SIGTSTP / ^Z) the terminal session opened by the previous two options; this will only stop the terminal but not the protocol daemon itself (which runs in a separate second process.)

### CONFIGURATION AND PATHS
The following options control configuration and file system locations for frr processes:

-f, --config_file config-file

Specify a configuration file to be used instead of the default /etc/frr/<daemon>.conf file. Note that the daemon will attempt to write to this file if the write file command is issued on its VTY interface or through vtysh.

-C, --dryrun

Load the configuration file and check its validity, then exit.

-i, --pid_file pid-file

Output a pid file to a location other than the default /var/run/frr/<daemon>.pid.

-z, --socket zclient-path

Override the path of the ZAPI socket used to communicate between zebra and the various protocol daemons. The default is /var/run/frr/zserv.api. The value of this option must be the same across all daemons.

-N, --pathspace pathspace

Insert pathspace into all default paths, changing the defaults to: /etc/frr/pathspace/<daemon>.conf /var/run/frr/pathspace/<daemon>.pid /var/run/frr/pathspace/<daemon>.vty /var/run/frr/pathspace/zserv.api

´.´ and ´/´ characters will not be accepted in pathspace, but the empty string will be accepted.

Note that this only changes the respective defaults, it has no effect on the respective path if the -f, -i, -z or --vty_socket options are used.

The purpose of this option is to easily group all file system related bits together for running multiple fully-separate "logical routers" on a system, particularly with Linux network namespaces. Groups of daemons running with distinct pathspace values will be completely unaware of each other and not interact in any way.

This option does not do any system setup (like network namespaces.) This must be done by the user, for example by running:

ip netns exec namespace <daemon> -N namespace

### PROCESS CREDENTIALS
-u, --user user

(default: frr)

-g, --group group

(default: frr) Change the user/group which the daemon will switch to.

-S, --skip_runas

Skip setting the process effective user and group.

Note that there is an additional group, frrvty, which controls group ownership of the VTY sockets. The name of this group cannot currently be changed, and user must be a member of this group.

### VTY SETUP
These following options control the daemon's VTY (interactive command line) interface. The interface is available over TCP, using the telnet protocol, as well as through the vtysh frontend.

-A, --vty_addr vty-addr

Specify an IP/IPv6 address to bind the TCP VTY interface to. It is generally recommended to specify ::1 or 127.0.0.1. For reasons of backwards compatibility, the default is to listen on all interfaces.

-P, --vty_port vty-port

Override the daemon's default TCP VTY port (each daemon has a different default value upwards of 2600, listed below.) Specifying 0 disables the TCP VTY interface. Default ports are::

```
zebra           2601
ripd            2602
ripngd          2603
ospfd           2604
bgpd            2605
ospf6d          2606
isisd           2608
babeld          2609
nhrpd           2610
pimd            2611
ldpd            2612
eigrpd          2613
pbrd            2615
staticd         2616
bfdd            2617
fabricd         2618
vrrpd           2619
```

Port 2607 is used for ospfd's Opaque LSA API.

--vty_socket vty-path

Overrides the directory used for the <daemon>.vty sockets. vtysh connects to these sockets in order to access each daemon's VTY. Default: /var/run/frr[/<pathspace>] NB: Unlike the other options, this option specifies a directory, not a full path.

This option is primarily used by the SNAP packaging system, its semantics may change. It should not be necessary in most other scenarios.

### MODULE LOADING
frr supports optional dynamically loadable modules, although these can only be loaded at startup. The set of available modules may vary across distributions and packages, and modules may be available for installation as separate packages.

-M, --module module[:options]

Load a module named module, optionally passing options to it. If there is a ´/´ character in module, the value is assumed to be a pathname to a module.

If there is no ´/´ character, the module directory (see next option) is searched first for a module named "<daemon>_<module>.so", then for "<module>.so". This allows for a module to exist in variations appropriate for particular daemons, e.g. zebra_snmp and bgp_snmp, with the correct one selected by -M snmp.

The meaning of options is specific to the module being loaded. Most modules currently ignore it.

Modules are loaded in the order as listed on the command line. This is not generally relevant.

--moduledir module-path

Look for modules in the module-path directory instead of the default /usr/lib/frr/modules. (This path is not affected by the -N option.)

The list of loaded modules can be inspected at runtime with the show modules VTY command.

## FILES
/usr/lib/frr/isisd

The default location of the isisd binary.

/etc/frr/isisd.conf

The default location of the isisd config file.

$(PWD)/isisd.log

If the isisd process is configured to output logs to a file, then you will find this file in the directory where you started isisd.

## WARNING
This man page is intended to be a quick reference for command line options. The definitive document is the info file frr 10.2.2 or the documentation available on the project website at https://frrouting.org/.

## DIAGNOSTICS
The daemon may log to standard output, to a VTY, to a log file, or through syslog to the system logs. FRR supports many debugging options, see the Info file, web docs or source for details.

## SEE ALSO
frr-zebra(8), vtysh(1), frr-ripd(8), frr-ripngd(8), frr-ospfd(8), frr-ospf6d(8), frr-bgpd(8), frr-isisd(8), frr-babeld(8), frr-nhrpd(8), frr-pimd(8), frr-pbrd(8), frr-ldpd(8), frr-eigrpd(8), frr-staticd(8), frr-fabricd(8), frr-vrrpd(8), mtracebis(8) https://frrouting.org/

## BUGS
FRR eats bugs for breakfast. If you have food for the maintainers, please email <dev@lists.frrouting.org>.

## COPYRIGHT
2025, FRR


frr-ldpd

title: frr-ldpd(8)

text:
# frr-ldpd(8)

## NAME
frr-ldpd - an LDP routing engine for use with FRRouting.

## SYNOPSIS
ldpd [-h] [-v]

ldpd [-d|-t|-dt] [-C] [-f config-file] [-i pid-file] [-z zclient-path] [-u user] [-g group] [-A vty-addr] [-P vty-port] [-M module[:options]] [-N pathspace] [--vty_socket vty-path] [--moduledir module-path]

## DESCRIPTION
ldpd is a routing component that works with the FRRouting routing engine.

## OPTIONS
OPTIONS available for the ldpd command:

### HELP AND VERSION
-h, --help

Print a short description of the daemon's command line options.

-v, --version

Print version and build information for the daemon.

Both of these options inhibit normal operation and will immediately exit.

### PROCESS CONTROL
These options control background operation:

-d, --daemon

Launches the process in background/daemon mode, forking and detaching from the terminal.

The parent process will delay its exit until the daemon/child has finished its initialization and has entered its main loop. This is important for zebra startup because the other daemons will attempt to connect to zebra. A return from zebra -d guarantees its readiness to accept these connections.

-t, --terminal

Opens an interactive VTY session on the terminal, allowing for both state and configuration operations. Note that the terminal starts operating after startup has completed and the configuration file has been loaded. The process will exit when end of file is detected on the terminal. It is possible to daemonize a process started with -t (but without -d) by sending SIGQUIT to the process (normally mapped to a ^keypress.)

The combination of --daemon and --terminal will delay the daemon from going into background until the terminal session ends (by end of file.)

If the process receives SIGINT (e.g. a ^C keypress) in this mode, it will exit instead of daemonizing.

It is safe to suspend (SIGTSTP / ^Z) the terminal session opened by the previous two options; this will only stop the terminal but not the protocol daemon itself (which runs in a separate second process.)

### CONFIGURATION AND PATHS
The following options control configuration and file system locations for frr processes:

-f, --config_file config-file

Specify a configuration file to be used instead of the default /etc/frr/<daemon>.conf file. Note that the daemon will attempt to write to this file if the write file command is issued on its VTY interface or through vtysh.

-C, --dryrun

Load the configuration file and check its validity, then exit.

-i, --pid_file pid-file

Output a pid file to a location other than the default /var/run/frr/<daemon>.pid.

-z, --socket zclient-path

Override the path of the ZAPI socket used to communicate between zebra and the various protocol daemons. The default is /var/run/frr/zserv.api. The value of this option must be the same across all daemons.

-N, --pathspace pathspace

Insert pathspace into all default paths, changing the defaults to: /etc/frr/pathspace/<daemon>.conf /var/run/frr/pathspace/<daemon>.pid /var/run/frr/pathspace/<daemon>.vty /var/run/frr/pathspace/zserv.api

´.´ and ´/´ characters will not be accepted in pathspace, but the empty string will be accepted.

Note that this only changes the respective defaults, it has no effect on the respective path if the -f, -i, -z or --vty_socket options are used.

The purpose of this option is to easily group all file system related bits together for running multiple fully-separate "logical routers" on a system, particularly with Linux network namespaces. Groups of daemons running with distinct pathspace values will be completely unaware of each other and not interact in any way.

This option does not do any system setup (like network namespaces.) This must be done by the user, for example by running:

ip netns exec namespace <daemon> -N namespace

### PROCESS CREDENTIALS
-u, --user user

(default: frr)

-g, --group group

(default: frr) Change the user/group which the daemon will switch to.

-S, --skip_runas

Skip setting the process effective user and group.

Note that there is an additional group, frrvty, which controls group ownership of the VTY sockets. The name of this group cannot currently be changed, and user must be a member of this group.

### VTY SETUP
These following options control the daemon's VTY (interactive command line) interface. The interface is available over TCP, using the telnet protocol, as well as through the vtysh frontend.

-A, --vty_addr vty-addr

Specify an IP/IPv6 address to bind the TCP VTY interface to. It is generally recommended to specify ::1 or 127.0.0.1. For reasons of backwards compatibility, the default is to listen on all interfaces.

-P, --vty_port vty-port

Override the daemon's default TCP VTY port (each daemon has a different default value upwards of 2600, listed below.) Specifying 0 disables the TCP VTY interface. Default ports are::

```
zebra           2601
ripd            2602
ripngd          2603
ospfd           2604
bgpd            2605
ospf6d          2606
isisd           2608
babeld          2609
nhrpd           2610
pimd            2611
ldpd            2612
eigrpd          2613
pbrd            2615
staticd         2616
bfdd            2617
fabricd         2618
vrrpd           2619
```

Port 2607 is used for ospfd's Opaque LSA API.

--vty_socket vty-path

Overrides the directory used for the <daemon>.vty sockets. vtysh connects to these sockets in order to access each daemon's VTY. Default: /var/run/frr[/<pathspace>] NB: Unlike the other options, this option specifies a directory, not a full path.

This option is primarily used by the SNAP packaging system, its semantics may change. It should not be necessary in most other scenarios.

### MODULE LOADING
frr supports optional dynamically loadable modules, although these can only be loaded at startup. The set of available modules may vary across distributions and packages, and modules may be available for installation as separate packages.

-M, --module module[:options]

Load a module named module, optionally passing options to it. If there is a ´/´ character in module, the value is assumed to be a pathname to a module.

If there is no ´/´ character, the module directory (see next option) is searched first for a module named "<daemon>_<module>.so", then for "<module>.so". This allows for a module to exist in variations appropriate for particular daemons, e.g. zebra_snmp and bgp_snmp, with the correct one selected by -M snmp.

The meaning of options is specific to the module being loaded. Most modules currently ignore it.

Modules are loaded in the order as listed on the command line. This is not generally relevant.

--moduledir module-path

Look for modules in the module-path directory instead of the default /usr/lib/frr/modules. (This path is not affected by the -N option.)

The list of loaded modules can be inspected at runtime with the show modules VTY command.

## FILES
/usr/lib/frr/ldpd

The default location of the ldpd binary.

/etc/frr/ldpd.conf

The default location of the ldpd config file.

$(PWD)/ldpd.log

If the ldpd process is configured to output logs to a file, then you will find this file in the directory where you started ldpd.

## WARNING
This man page is intended to be a quick reference for command line options. The definitive document is the info file frr 10.2.2 or the documentation available on the project website at https://frrouting.org/.

## DIAGNOSTICS
The daemon may log to standard output, to a VTY, to a log file, or through syslog to the system logs. FRR supports many debugging options, see the Info file, web docs or source for details.

## SEE ALSO
frr-zebra(8), vtysh(1), frr-ripd(8), frr-ripngd(8), frr-ospfd(8), frr-ospf6d(8), frr-bgpd(8), frr-isisd(8), frr-babeld(8), frr-nhrpd(8), frr-pimd(8), frr-pbrd(8), frr-ldpd(8), frr-eigrpd(8), frr-staticd(8), frr-fabricd(8), frr-vrrpd(8), mtracebis(8) https://frrouting.org/

## BUGS
FRR eats bugs for breakfast. If you have food for the maintainers, please email <dev@lists.frrouting.org>.

## COPYRIGHT
2025, FRR


frr-nhrpd

title: frr-nhrpd(8)

text:
# frr-nhrpd(8)

## NAME
frr-nhrpd - a Next Hop Routing Protocol routing engine for use with FRRouting.

## SYNOPSIS
nhrpd [-h] [-v]

nhrpd [-d|-t|-dt] [-C] [-f config-file] [-i pid-file] [-z zclient-path] [-u user] [-g group] [-A vty-addr] [-P vty-port] [-M module[:options]] [-N pathspace] [--vty_socket vty-path] [--moduledir module-path]

## DESCRIPTION
nhrpd is a routing component that works with the FRRouting routing engine.

## OPTIONS
OPTIONS available for the nhrpd command:

### HELP AND VERSION
-h, --help

Print a short description of the daemon's command line options.

-v, --version

Print version and build information for the daemon.

Both of these options inhibit normal operation and will immediately exit.

### PROCESS CONTROL
These options control background operation:

-d, --daemon

Launches the process in background/daemon mode, forking and detaching from the terminal.

The parent process will delay its exit until the daemon/child has finished its initialization and has entered its main loop. This is important for zebra startup because the other daemons will attempt to connect to zebra. A return from zebra -d guarantees its readiness to accept these connections.

-t, --terminal

Opens an interactive VTY session on the terminal, allowing for both state and configuration operations. Note that the terminal starts operating after startup has completed and the configuration file has been loaded. The process will exit when end of file is detected on the terminal. It is possible to daemonize a process started with -t (but without -d) by sending SIGQUIT to the process (normally mapped to a ^keypress.)

The combination of --daemon and --terminal will delay the daemon from going into background until the terminal session ends (by end of file.)

If the process receives SIGINT (e.g. a ^C keypress) in this mode, it will exit instead of daemonizing.

It is safe to suspend (SIGTSTP / ^Z) the terminal session opened by the previous two options; this will only stop the terminal but not the protocol daemon itself (which runs in a separate second process.)

### CONFIGURATION AND PATHS
The following options control configuration and file system locations for frr processes:

-f, --config_file config-file

Specify a configuration file to be used instead of the default /etc/frr/<daemon>.conf file. Note that the daemon will attempt to write to this file if the write file command is issued on its VTY interface or through vtysh.

-C, --dryrun

Load the configuration file and check its validity, then exit.

-i, --pid_file pid-file

Output a pid file to a location other than the default /var/run/frr/<daemon>.pid.

-z, --socket zclient-path

Override the path of the ZAPI socket used to communicate between zebra and the various protocol daemons. The default is /var/run/frr/zserv.api. The value of this option must be the same across all daemons.

-N, --pathspace pathspace

Insert pathspace into all default paths, changing the defaults to: /etc/frr/pathspace/<daemon>.conf /var/run/frr/pathspace/<daemon>.pid /var/run/frr/pathspace/<daemon>.vty /var/run/frr/pathspace/zserv.api

´.´ and ´/´ characters will not be accepted in pathspace, but the empty string will be accepted.

Note that this only changes the respective defaults, it has no effect on the respective path if the -f, -i, -z or --vty_socket options are used.

The purpose of this option is to easily group all file system related bits together for running multiple fully-separate "logical routers" on a system, particularly with Linux network namespaces. Groups of daemons running with distinct pathspace values will be completely unaware of each other and not interact in any way.

This option does not do any system setup (like network namespaces.) This must be done by the user, for example by running:

ip netns exec namespace <daemon> -N namespace

### PROCESS CREDENTIALS
-u, --user user

(default: frr)

-g, --group group

(default: frr) Change the user/group which the daemon will switch to.

-S, --skip_runas

Skip setting the process effective user and group.

Note that there is an additional group, frrvty, which controls group ownership of the VTY sockets. The name of this group cannot currently be changed, and user must be a member of this group.

### VTY SETUP
These following options control the daemon's VTY (interactive command line) interface. The interface is available over TCP, using the telnet protocol, as well as through the vtysh frontend.

-A, --vty_addr vty-addr

Specify an IP/IPv6 address to bind the TCP VTY interface to. It is generally recommended to specify ::1 or 127.0.0.1. For reasons of backwards compatibility, the default is to listen on all interfaces.

-P, --vty_port vty-port

Override the daemon's default TCP VTY port (each daemon has a different default value upwards of 2600, listed below.) Specifying 0 disables the TCP VTY interface. Default ports are::

```
zebra           2601
ripd            2602
ripngd          2603
ospfd           2604
bgpd            2605
ospf6d          2606
isisd           2608
babeld          2609
nhrpd           2610
pimd            2611
ldpd            2612
eigrpd          2613
pbrd            2615
staticd         2616
bfdd            2617
fabricd         2618
vrrpd           2619
```

Port 2607 is used for ospfd's Opaque LSA API.

--vty_socket vty-path

Overrides the directory used for the <daemon>.vty sockets. vtysh connects to these sockets in order to access each daemon's VTY. Default: /var/run/frr[/<pathspace>] NB: Unlike the other options, this option specifies a directory, not a full path.

This option is primarily used by the SNAP packaging system, its semantics may change. It should not be necessary in most other scenarios.

### MODULE LOADING
frr supports optional dynamically loadable modules, although these can only be loaded at startup. The set of available modules may vary across distributions and packages, and modules may be available for installation as separate packages.

-M, --module module[:options]

Load a module named module, optionally passing options to it. If there is a ´/´ character in module, the value is assumed to be a pathname to a module.

If there is no ´/´ character, the module directory (see next option) is searched first for a module named "<daemon>_<module>.so", then for "<module>.so". This allows for a module to exist in variations appropriate for particular daemons, e.g. zebra_snmp and bgp_snmp, with the correct one selected by -M snmp.

The meaning of options is specific to the module being loaded. Most modules currently ignore it.

Modules are loaded in the order as listed on the command line. This is not generally relevant.

--moduledir module-path

Look for modules in the module-path directory instead of the default /usr/lib/frr/modules. (This path is not affected by the -N option.)

The list of loaded modules can be inspected at runtime with the show modules VTY command.

## FILES
/usr/lib/frr/nhrpd

The default location of the nhrpd binary.

/etc/frr/nhrpd.conf

The default location of the nhrpd config file.

$(PWD)/nhrpd.log

If the nhrpd process is configured to output logs to a file, then you will find this file in the directory where you started nhrpd.

## WARNING
This man page is intended to be a quick reference for command line options. The definitive document is the info file frr 10.2.2 or the documentation available on the project website at https://frrouting.org/.

## DIAGNOSTICS
The daemon may log to standard output, to a VTY, to a log file, or through syslog to the system logs. FRR supports many debugging options, see the Info file, web docs or source for details.

## SEE ALSO
frr-zebra(8), vtysh(1), frr-ripd(8), frr-ripngd(8), frr-ospfd(8), frr-ospf6d(8), frr-bgpd(8), frr-isisd(8), frr-babeld(8), frr-nhrpd(8), frr-pimd(8), frr-pbrd(8), frr-ldpd(8), frr-eigrpd(8), frr-staticd(8), frr-fabricd(8), frr-vrrpd(8), mtracebis(8) https://frrouting.org/

## BUGS
FRR eats bugs for breakfast. If you have food for the maintainers, please email <dev@lists.frrouting.org>.

## COPYRIGHT
2025, FRR


title: frr-ospf6d(8)

text:
# frr-ospf6d(8)

## NAME
frr-ospf6d - an OSPFv3 routing engine for use with FRRouting.

## SYNOPSIS
ospf6d [-h] [-v]

ospf6d [-d|-t|-dt] [-C] [-f config-file] [-i pid-file] [-z zclient-path] [-u user] [-g group] [-A vty-addr] [-P vty-port] [-M module[:options]] [-N pathspace] [--vty_socket vty-path] [--moduledir module-path]

## DESCRIPTION
ospf6d is a routing component that works with the FRRouting routing engine.

## OPTIONS
OPTIONS available for the ospf6d command:

### HELP AND VERSION
-h, --help

Print a short description of the daemon's command line options.

-v, --version

Print version and build information for the daemon.

Both of these options inhibit normal operation and will immediately exit.

### PROCESS CONTROL
These options control background operation:

-d, --daemon

Launches the process in background/daemon mode, forking and detaching from the terminal.

The parent process will delay its exit until the daemon/child has finished its initialization and has entered its main loop. This is important for zebra startup because the other daemons will attempt to connect to zebra. A return from zebra -d guarantees its readiness to accept these connections.

-t, --terminal

Opens an interactive VTY session on the terminal, allowing for both state and configuration operations. Note that the terminal starts operating after startup has completed and the configuration file has been loaded. The process will exit when end of file is detected on the terminal. It is possible to daemonize a process started with -t (but without -d) by sending SIGQUIT to the process (normally mapped to a ^keypress.)

The combination of --daemon and --terminal will delay the daemon from going into background until the terminal session ends (by end of file.)

If the process receives SIGINT (e.g. a ^C keypress) in this mode, it will exit instead of daemonizing.

It is safe to suspend (SIGTSTP / ^Z) the terminal session opened by the previous two options; this will only stop the terminal but not the protocol daemon itself (which runs in a separate second process.)

### CONFIGURATION AND PATHS
The following options control configuration and file system locations for frr processes:

-f, --config_file config-file

Specify a configuration file to be used instead of the default /etc/frr/<daemon>.conf file. Note that the daemon will attempt to write to this file if the write file command is issued on its VTY interface or through vtysh.

-C, --dryrun

Load the configuration file and check its validity, then exit.

-i, --pid_file pid-file

Output a pid file to a location other than the default /var/run/frr/<daemon>.pid.

-z, --socket zclient-path

Override the path of the ZAPI socket used to communicate between zebra and the various protocol daemons. The default is /var/run/frr/zserv.api. The value of this option must be the same across all daemons.

-N, --pathspace pathspace

Insert pathspace into all default paths, changing the defaults to: /etc/frr/pathspace/<daemon>.conf /var/run/frr/pathspace/<daemon>.pid /var/run/frr/pathspace/<daemon>.vty /var/run/frr/pathspace/zserv.api

´.´ and ´/´ characters will not be accepted in pathspace, but the empty string will be accepted.

Note that this only changes the respective defaults, it has no effect on the respective path if the -f, -i, -z or --vty_socket options are used.

The purpose of this option is to easily group all file system related bits together for running multiple fully-separate "logical routers" on a system, particularly with Linux network namespaces. Groups of daemons running with distinct pathspace values will be completely unaware of each other and not interact in any way.

This option does not do any system setup (like network namespaces.) This must be done by the user, for example by running:

ip netns exec namespace <daemon> -N namespace

### PROCESS CREDENTIALS
-u, --user user

(default: frr)

-g, --group group

(default: frr) Change the user/group which the daemon will switch to.

-S, --skip_runas

Skip setting the process effective user and group.

Note that there is an additional group, frrvty, which controls group ownership of the VTY sockets. The name of this group cannot currently be changed, and user must be a member of this group.

### VTY SETUP
These following options control the daemon's VTY (interactive command line) interface. The interface is available over TCP, using the telnet protocol, as well as through the vtysh frontend.

-A, --vty_addr vty-addr

Specify an IP/IPv6 address to bind the TCP VTY interface to. It is generally recommended to specify ::1 or 127.0.0.1. For reasons of backwards compatibility, the default is to listen on all interfaces.

-P, --vty_port vty-port

Override the daemon's default TCP VTY port (each daemon has a different default value upwards of 2600, listed below.) Specifying 0 disables the TCP VTY interface. Default ports are::

```
zebra           2601
ripd            2602
ripngd          2603
ospfd           2604
bgpd            2605
ospf6d          2606
isisd           2608
babeld          2609
nhrpd           2610
pimd            2611
ldpd            2612
eigrpd          2613
pbrd            2615
staticd         2616
bfdd            2617
fabricd         2618
vrrpd           2619
```

Port 2607 is used for ospfd's Opaque LSA API.

--vty_socket vty-path

Overrides the directory used for the <daemon>.vty sockets. vtysh connects to these sockets in order to access each daemon's VTY. Default: /var/run/frr[/<pathspace>] NB: Unlike the other options, this option specifies a directory, not a full path.

This option is primarily used by the SNAP packaging system, its semantics may change. It should not be necessary in most other scenarios.

### MODULE LOADING
frr supports optional dynamically loadable modules, although these can only be loaded at startup. The set of available modules may vary across distributions and packages, and modules may be available for installation as separate packages.

-M, --module module[:options]

Load a module named module, optionally passing options to it. If there is a ´/´ character in module, the value is assumed to be a pathname to a module.

If there is no ´/´ character, the module directory (see next option) is searched first for a module named "<daemon>_<module>.so", then for "<module>.so". This allows for a module to exist in variations appropriate for particular daemons, e.g. zebra_snmp and bgp_snmp, with the correct one selected by -M snmp.

The meaning of options is specific to the module being loaded. Most modules currently ignore it.

Modules are loaded in the order as listed on the command line. This is not generally relevant.

--moduledir module-path

Look for modules in the module-path directory instead of the default /usr/lib/frr/modules. (This path is not affected by the -N option.)

The list of loaded modules can be inspected at runtime with the show modules VTY command.

## FILES
/usr/lib/frr/ospf6d

The default location of the ospf6d binary.

/etc/frr/ospf6d.conf

The default location of the ospf6d config file.

$(PWD)/ospf6d.log

If the ospf6d process is configured to output logs to a file, then you will find this file in the directory where you started ospf6d.

## WARNING
This man page is intended to be a quick reference for command line options. The definitive document is the info file frr 10.2.2 or the documentation available on the project website at https://frrouting.org/.

## DIAGNOSTICS
The daemon may log to standard output, to a VTY, to a log file, or through syslog to the system logs. FRR supports many debugging options, see the Info file, web docs or source for details.

## SEE ALSO
frr-zebra(8), vtysh(1), frr-ripd(8), frr-ripngd(8), frr-ospfd(8), frr-ospf6d(8), frr-bgpd(8), frr-isisd(8), frr-babeld(8), frr-nhrpd(8), frr-pimd(8), frr-pbrd(8), frr-ldpd(8), frr-eigrpd(8), frr-staticd(8), frr-fabricd(8), frr-vrrpd(8), mtracebis(8) https://frrouting.org/

## BUGS
FRR eats bugs for breakfast. If you have food for the maintainers, please email <dev@lists.frrouting.org>.

## COPYRIGHT
2025, FRR


frr-ospfd

title: frr-ospfd(8)

text:
# frr-ospfd(8)

## NAME
frr-ospfd - an OSPFv2 routing engine for use with FRRouting.

## SYNOPSIS
ospfd [-h] [-v]

ospfd [-d|-t|-dt] [-C] [-f config-file] [-i pid-file] [-z zclient-path] [-u user] [-g group] [-A vty-addr] [-P vty-port] [-M module[:options]] [-N pathspace] [--vty_socket vty-path] [--moduledir module-path]

## DESCRIPTION
ospfd is a routing component that works with the FRRouting routing engine.

## OPTIONS
OPTIONS available for the ospfd command:

### HELP AND VERSION
-h, --help

Print a short description of the daemon's command line options.

-v, --version

Print version and build information for the daemon.

Both of these options inhibit normal operation and will immediately exit.

### PROCESS CONTROL
These options control background operation:

-d, --daemon

Launches the process in background/daemon mode, forking and detaching from the terminal.

The parent process will delay its exit until the daemon/child has finished its initialization and has entered its main loop. This is important for zebra startup because the other daemons will attempt to connect to zebra. A return from zebra -d guarantees its readiness to accept these connections.

-t, --terminal

Opens an interactive VTY session on the terminal, allowing for both state and configuration operations. Note that the terminal starts operating after startup has completed and the configuration file has been loaded. The process will exit when end of file is detected on the terminal. It is possible to daemonize a process started with -t (but without -d) by sending SIGQUIT to the process (normally mapped to a ^keypress.)

The combination of --daemon and --terminal will delay the daemon from going into background until the terminal session ends (by end of file.)

If the process receives SIGINT (e.g. a ^C keypress) in this mode, it will exit instead of daemonizing.

It is safe to suspend (SIGTSTP / ^Z) the terminal session opened by the previous two options; this will only stop the terminal but not the protocol daemon itself (which runs in a separate second process.)

### CONFIGURATION AND PATHS
The following options control configuration and file system locations for frr processes:

-f, --config_file config-file

Specify a configuration file to be used instead of the default /etc/frr/<daemon>.conf file. Note that the daemon will attempt to write to this file if the write file command is issued on its VTY interface or through vtysh.

-C, --dryrun

Load the configuration file and check its validity, then exit.

-i, --pid_file pid-file

Output a pid file to a location other than the default /var/run/frr/<daemon>.pid.

-z, --socket zclient-path

Override the path of the ZAPI socket used to communicate between zebra and the various protocol daemons. The default is /var/run/frr/zserv.api. The value of this option must be the same across all daemons.

-N, --pathspace pathspace

Insert pathspace into all default paths, changing the defaults to: /etc/frr/pathspace/<daemon>.conf /var/run/frr/pathspace/<daemon>.pid /var/run/frr/pathspace/<daemon>.vty /var/run/frr/pathspace/zserv.api

´.´ and ´/´ characters will not be accepted in pathspace, but the empty string will be accepted.

Note that this only changes the respective defaults, it has no effect on the respective path if the -f, -i, -z or --vty_socket options are used.

The purpose of this option is to easily group all file system related bits together for running multiple fully-separate "logical routers" on a system, particularly with Linux network namespaces. Groups of daemons running with distinct pathspace values will be completely unaware of each other and not interact in any way.

This option does not do any system setup (like network namespaces.) This must be done by the user, for example by running:

ip netns exec namespace <daemon> -N namespace

### PROCESS CREDENTIALS
-u, --user user

(default: frr)

-g, --group group

(default: frr) Change the user/group which the daemon will switch to.

-S, --skip_runas

Skip setting the process effective user and group.

Note that there is an additional group, frrvty, which controls group ownership of the VTY sockets. The name of this group cannot currently be changed, and user must be a member of this group.

### VTY SETUP
These following options control the daemon's VTY (interactive command line) interface. The interface is available over TCP, using the telnet protocol, as well as through the vtysh frontend.

-A, --vty_addr vty-addr

Specify an IP/IPv6 address to bind the TCP VTY interface to. It is generally recommended to specify ::1 or 127.0.0.1. For reasons of backwards compatibility, the default is to listen on all interfaces.

-P, --vty_port vty-port

Override the daemon's default TCP VTY port (each daemon has a different default value upwards of 2600, listed below.) Specifying 0 disables the TCP VTY interface. Default ports are::

```
zebra           2601
ripd            2602
ripngd          2603
ospfd           2604
bgpd            2605
ospf6d          2606
isisd           2608
babeld          2609
nhrpd           2610
pimd            2611
ldpd            2612
eigrpd          2613
pbrd            2615
staticd         2616
bfdd            2617
fabricd         2618
vrrpd           2619
```

Port 2607 is used for ospfd's Opaque LSA API.

--vty_socket vty-path

Overrides the directory used for the <daemon>.vty sockets. vtysh connects to these sockets in order to access each daemon's VTY. Default: /var/run/frr[/<pathspace>] NB: Unlike the other options, this option specifies a directory, not a full path.

This option is primarily used by the SNAP packaging system, its semantics may change. It should not be necessary in most other scenarios.

### MODULE LOADING
frr supports optional dynamically loadable modules, although these can only be loaded at startup. The set of available modules may vary across distributions and packages, and modules may be available for installation as separate packages.

-M, --module module[:options]

Load a module named module, optionally passing options to it. If there is a ´/´ character in module, the value is assumed to be a pathname to a module.

If there is no ´/´ character, the module directory (see next option) is searched first for a module named "<daemon>_<module>.so", then for "<module>.so". This allows for a module to exist in variations appropriate for particular daemons, e.g. zebra_snmp and bgp_snmp, with the correct one selected by -M snmp.

The meaning of options is specific to the module being loaded. Most modules currently ignore it.

Modules are loaded in the order as listed on the command line. This is not generally relevant.

--moduledir module-path

Look for modules in the module-path directory instead of the default /usr/lib/frr/modules. (This path is not affected by the -N option.)

The list of loaded modules can be inspected at runtime with the show modules VTY command.

-a, --apiserver

Enable the OSPF API server.

## FILES
/usr/lib/frr/ospfd

The default location of the ospfd binary.

/etc/frr/ospfd.conf

The default location of the ospfd config file.

$(PWD)/ospfd.log

If the ospfd process is configured to output logs to a file, then you will find this file in the directory where you started ospfd.

## WARNING
This man page is intended to be a quick reference for command line options. The definitive document is the info file frr 10.2.2 or the documentation available on the project website at https://frrouting.org/.

## DIAGNOSTICS
The daemon may log to standard output, to a VTY, to a log file, or through syslog to the system logs. FRR supports many debugging options, see the Info file, web docs or source for details.

## SEE ALSO
frr-zebra(8), vtysh(1), frr-ripd(8), frr-ripngd(8), frr-ospfd(8), frr-ospf6d(8), frr-bgpd(8), frr-isisd(8), frr-babeld(8), frr-nhrpd(8), frr-pimd(8), frr-pbrd(8), frr-ldpd(8), frr-eigrpd(8), frr-staticd(8), frr-fabricd(8), frr-vrrpd(8), mtracebis(8) https://frrouting.org/

## BUGS
FRR eats bugs for breakfast. If you have food for the maintainers, please email <dev@lists.frrouting.org>.

## COPYRIGHT
2025, FRR


frr-pbrd

title: frr-pbrd(8)

text:
# frr-pbrd(8)

## NAME
frr-pbrd - a PBR routing engine for use with FRRouting.

## SYNOPSIS
pbrd [-h] [-v]

pbrd [-d|-t|-dt] [-C] [-f config-file] [-i pid-file] [-z zclient-path] [-u user] [-g group] [-A vty-addr] [-P vty-port] [-M module[:options]] [-N pathspace] [--vty_socket vty-path] [--moduledir module-path]

## DESCRIPTION
pbrd is a routing component that works with the FRRouting engine.

## OPTIONS
OPTIONS available for the pbrd command:

### HELP AND VERSION
-h, --help

Print a short description of the daemon's command line options.

-v, --version

Print version and build information for the daemon.

Both of these options inhibit normal operation and will immediately exit.

### PROCESS CONTROL
These options control background operation:

-d, --daemon

Launches the process in background/daemon mode, forking and detaching from the terminal.

The parent process will delay its exit until the daemon/child has finished its initialization and has entered its main loop. This is important for zebra startup because the other daemons will attempt to connect to zebra. A return from zebra -d guarantees its readiness to accept these connections.

-t, --terminal

Opens an interactive VTY session on the terminal, allowing for both state and configuration operations. Note that the terminal starts operating after startup has completed and the configuration file has been loaded. The process will exit when end of file is detected on the terminal. It is possible to daemonize a process started with -t (but without -d) by sending SIGQUIT to the process (normally mapped to a ^keypress.)

The combination of --daemon and --terminal will delay the daemon from going into background until the terminal session ends (by end of file.)

If the process receives SIGINT (e.g. a ^C keypress) in this mode, it will exit instead of daemonizing.

It is safe to suspend (SIGTSTP / ^Z) the terminal session opened by the previous two options; this will only stop the terminal but not the protocol daemon itself (which runs in a separate second process.)

### CONFIGURATION AND PATHS
The following options control configuration and file system locations for frr processes:

-f, --config_file config-file

Specify a configuration file to be used instead of the default /etc/frr/<daemon>.conf file. Note that the daemon will attempt to write to this file if the write file command is issued on its VTY interface or through vtysh.

-C, --dryrun

Load the configuration file and check its validity, then exit.

-i, --pid_file pid-file

Output a pid file to a location other than the default /var/run/frr/<daemon>.pid.

-z, --socket zclient-path

Override the path of the ZAPI socket used to communicate between zebra and the various protocol daemons. The default is /var/run/frr/zserv.api. The value of this option must be the same across all daemons.

-N, --pathspace pathspace

Insert pathspace into all default paths, changing the defaults to: /etc/frr/pathspace/<daemon>.conf /var/run/frr/pathspace/<daemon>.pid /var/run/frr/pathspace/<daemon>.vty /var/run/frr/pathspace/zserv.api

´.´ and ´/´ characters will not be accepted in pathspace, but the empty string will be accepted.

Note that this only changes the respective defaults, it has no effect on the respective path if the -f, -i, -z or --vty_socket options are used.

The purpose of this option is to easily group all file system related bits together for running multiple fully-separate "logical routers" on a system, particularly with Linux network namespaces. Groups of daemons running with distinct pathspace values will be completely unaware of each other and not interact in any way.

This option does not do any system setup (like network namespaces.) This must be done by the user, for example by running:

ip netns exec namespace <daemon> -N namespace

### PROCESS CREDENTIALS
-u, --user user

(default: frr)

-g, --group group

(default: frr) Change the user/group which the daemon will switch to.

-S, --skip_runas

Skip setting the process effective user and group.

Note that there is an additional group, frrvty, which controls group ownership of the VTY sockets. The name of this group cannot currently be changed, and user must be a member of this group.

### VTY SETUP
These following options control the daemon's VTY (interactive command line) interface. The interface is available over TCP, using the telnet protocol, as well as through the vtysh frontend.

-A, --vty_addr vty-addr

Specify an IP/IPv6 address to bind the TCP VTY interface to. It is generally recommended to specify ::1 or 127.0.0.1. For reasons of backwards compatibility, the default is to listen on all interfaces.

-P, --vty_port vty-port

Override the daemon's default TCP VTY port (each daemon has a different default value upwards of 2600, listed below.) Specifying 0 disables the TCP VTY interface. Default ports are::

```
zebra           2601
ripd            2602
ripngd          2603
ospfd           2604
bgpd            2605
ospf6d          2606
isisd           2608
babeld          2609
nhrpd           2610
pimd            2611
ldpd            2612
eigrpd          2613
pbrd            2615
staticd         2616
bfdd            2617
fabricd         2618
vrrpd           2619
```

Port 2607 is used for ospfd's Opaque LSA API.

--vty_socket vty-path

Overrides the directory used for the <daemon>.vty sockets. vtysh connects to these sockets in order to access each daemon's VTY. Default: /var/run/frr[/<pathspace>] NB: Unlike the other options, this option specifies a directory, not a full path.

This option is primarily used by the SNAP packaging system, its semantics may change. It should not be necessary in most other scenarios.

### MODULE LOADING
frr supports optional dynamically loadable modules, although these can only be loaded at startup. The set of available modules may vary across distributions and packages, and modules may be available for installation as separate packages.

-M, --module module[:options]

Load a module named module, optionally passing options to it. If there is a ´/´ character in module, the value is assumed to be a pathname to a module.

If there is no ´/´ character, the module directory (see next option) is searched first for a module named "<daemon>_<module>.so", then for "<module>.so". This allows for a module to exist in variations appropriate for particular daemons, e.g. zebra_snmp and bgp_snmp, with the correct one selected by -M snmp.

The meaning of options is specific to the module being loaded. Most modules currently ignore it.

Modules are loaded in the order as listed on the command line. This is not generally relevant.

--moduledir module-path

Look for modules in the module-path directory instead of the default /usr/lib/frr/modules. (This path is not affected by the -N option.)

The list of loaded modules can be inspected at runtime with the show modules VTY command.

## FILES
/usr/lib/frr/pbrd

The default location of the pbrd binary.

/etc/frr/pbrd.conf

The default location of the pbrd config file.

$(PWD)/pbrd.log

If the pbrd process is configured to output logs to a file, then you will find this file in the directory where you started pbrd.

## WARNING
This man page is intended to be a quick reference for command line options. The definitive document is the info file frr 10.2.2 or the documentation available on the project website at https://frrouting.org/.

## DIAGNOSTICS
The daemon may log to standard output, to a VTY, to a log file, or through syslog to the system logs. FRR supports many debugging options, see the Info file, web docs or source for details.

## SEE ALSO
frr-zebra(8), vtysh(1), frr-ripd(8), frr-ripngd(8), frr-ospfd(8), frr-ospf6d(8), frr-bgpd(8), frr-isisd(8), frr-babeld(8), frr-nhrpd(8), frr-pimd(8), frr-pbrd(8), frr-ldpd(8), frr-eigrpd(8), frr-staticd(8), frr-fabricd(8), frr-vrrpd(8), mtracebis(8) https://frrouting.org/

## BUGS
FRR eats bugs for breakfast. If you have food for the maintainers, please email <dev@lists.frrouting.org>.

## COPYRIGHT
2025, FRR