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

# NAME

`relayd` — relay daemon

# SYNOPSIS

`relayd` | [`-dnv`] [`-D` macro=value] [`-f` file]

# DESCRIPTION

`relayd` is a daemon to relay and dynamically redirect incoming connections to a target host. Its main purposes are to run as a load-balancer, application layer gateway, or transparent proxy. The daemon is able to monitor groups of hosts for availability, which is determined by checking for a specific service common to a host group. When availability is confirmed, layer 3 and/or layer 7 forwarding services are set up by `relayd`.

Layer 3 redirection happens at the packet level; to configure it, `relayd` communicates with pf(4). To allow `relayd` to properly set up pf(4) rules, the following line is required in the filter section of pf.conf(5):

    anchor "relayd/*"

Layer 7 relaying happens at the application level and is handled by `relayd` itself. Various application level filtering and protocol-specific load-balancing options are available for relays.

`relayd` works in terms of the following entities: relays, protocols, redirections, and tables. A relay represents a layer 7 load-balancing instance. Each instance translates to a listening TCP or UDP port. A protocol defines which actions, if any, are taken on the packet payload as data crosses a relay. A redirection represents a layer 3 load-balancing instance. Each instance translates to a pf(4) rdr-to rule being added. A table represents a group of hosts which can be checked for availability using the same method. Each table contains at least one host. If a table is used in a layer 3 load-balancing instance, it will be mapped to a pf(4) table containing only those hosts which are up.

All these entities can be configured in relayd.conf(5), and relayctl(8) can be used to alter or report on the status of each entity.

The options are as follows:

`-D` macro=value
  Define macro to be set to value on the command line. Overrides the definition of macro in the configuration file.
`-d`
  Do not daemonize. If this option is specified, `relayd` will run in the foreground and log to stderr.
`-f` file
  Specify an alternative configuration file. The default is /etc/relayd.conf.
`-n`
  Configtest mode. Only check the configuration file for validity.
`-v`
  Produce more verbose output.

# FILES

/etc/relayd.conf
  Default configuration file.
/var/run/relayd.sock
  UNIX-domain socket used for communication with relayctl(8).

# SEE ALSO

relayd.conf(5), relayctl(8)

# HISTORY

The `relayd` program, formerly known as `hoststated`, first appeared in OpenBSD 4.1. It was renamed to `relayd` in OpenBSD 4.3.

# AUTHORS

The `relayd` program was written by Pierre-Yves Ritschard <pyr@openbsd.org> and Reyk Floeter <reyk@openbsd.org>.

July 27, 2015 | Debian