DragonFly On-Line Manual Pages
PENCTL(1) DragonFly General Commands Manual PENCTL(1)
NAME
penctl - control a running pen load balancer
SYNOPSIS
penctl host:port|/path/to/socket command
EXAMPLE
penctl lbhost:8888 roundrobin
Turns off client tracking on the load balancer running on lbhost.
penctl /var/run/pen/tmp/ctrl status
Prints status information in html format.
DESCRIPTION
Penctl connects to the optional control socket on a pen load balancer.
It reads commands from the command line, performs minimal syntax
checking and sends them to pen. Replies, if any, are printed on stdout.
The program can also be used through the cgi script penctl.cgi, which
allows pen to be controlled from any web browser.
OPTIONS
host:port
Specifies a control port where the load balancer listens for
commands.
COMMANDS
abort_on_error
Call abort() when a fatal error is encountered. This will create
a core file which allows further troubleshooting. Disabled by
default.
no abort_on_error
Exit normally on fatal error with an error code which indicates
failure.
acl N permit|deny sourceip4 [mask]
Adds an entry to access list N, where N is a number from 0 to 9.
The source and mask addresses are in the usual dotted quad
notation. If mask is omitted, it defaults to 255.255.255.255.
acl N permit|deny sourceip6[/length]
If the source address contains the character ':', the address is
interpreted as IPv6. Unlike IPv4 access entries, a length is
used to indicate the mask. If length is omitted, it defaults to
128.
acl N permit|deny country NN
If the source address is the special word "country", a two-
letter country code can be used to restrict access to the load
balancer. For this to work, pen must be built with geoip
support.
no acl N
Deletes all entries from access list N. The resulting access
list permits all traffic.
ascii Communication dumps in ascii format (cf option -a).
no ascii
Communication dumps in hex format.
blacklist
Return current blacklist time in seconds.
blacklist T
Set the blacklist time in seconds.
block Do not make sockets nonblocking. This is obsolete as of 0.26.0
and does nothing.
no block
Make sockets nonblocking.
client_acl N
Check connecting clients against access list N (default 0).
clients_max [N]
With argument, increase the maximum number of known clients.
Returns max number of clients.
close N
Close connection N
connection N
Display some basic information about connection N.
conn_max [N]
With argument, increase the max number of simultaneous
connections. Returns max number.
control
Return address and port where pen listens for control
connections.
control_acl N
Check accesses to the control port against access list N
(default 0).
debug Return current debug level.
debug N
Set debug level to N.
delayed_forward
Always wait for the next round of the main loop before
forwarding data. Normally pen tries to do that immediately. This
is obsolete as of 0.26.0 and does nothing.
no delayed_forward
Try to forward data immediately, to avoid the overhead of
copying it to a temporary buffer and waiting for the next main
loop round.
dsr_if IF
Use IF as the interface for Direct Server Return.
dummy Act as a dummy web server with very limited functionality but
high performance. Only useful for testing. Disabled by default.
no dummy
Do not act as a dummy web server.
epoll Use epoll for event management (Linux). This is the default on
Linux.
exit Exit. Only available if pen was started with the -X option.
hash Use a hash on the client IP address for initial server
selection.
no hash
Do not use a hash.
http Add X-Forwarded-For headers to http requests.
no http
Do not add X-Forwarded-For headers.
idle_timeout N
Close connections that have been inactive for N seconds. Default
0 = never close.
idlers [N]
Create N reliable idle connections to the backend servers.
Without argument, display the current/requested number of
reliable idlers.
include FILE
Read commands from file.
kqueue Use kqueue for event management (FreeBSD, NetBSD, OpenBSD).
This is the default on the systems that have it.
listen Return local address and port pen listens to for incoming client
connections.
listen [address:]:port
Close the listening socket and reopen using specified address
(optional) and port.
log Show where pen is logging, if anywhere.
log FILE
Log to FILE.
mode Write a summary of the current mode of operation. The listed
modes are block, delayed_forward, hash, roundrobin, stubborn.
no log Turn off logging.
pending_max N
Max allowed number of pending nonblocking connections. Default
100, minimum 1.
pid Return the process id of the running daemon.
poll Use poll for event management.
prio Use the priority based algorithm.
no prio
Do not use the priority based algorithm.
recent [N]
Shows which clients have connected in the last N seconds
(default 300).
roundrobin
Use round-robin server selection without client tracking
no roundrobin
select Use select for event management.
server N [ acl A | address A | port P | max M | hard H | blacklist T |
weight W | prio P ]
Change acl, address, port, weight, priority and/or max
connections for server N, or blacklist it for T seconds.
servers
List address, port, weight, priority and max number of
simultaneous connections for each remote server.
socket N
Show to which connection socket N belongs.
ssl_ciphers CIPHERS
Choose list of available SSL ciphers, specified in the format
described in https://www.openssl.org/docs/apps/ciphers.html.
ssl_client_renegotiation_interval S
Allowing the client to request renegotiation is a potential
denial of service vector. This command specifies the minimum
number of seconds the client has to wait between requests for
renegotiation requests. Default 3600 = effectively disabled.
ssl_ocsp_response FILENAME
Specifies the location of a file containing a pre-fetched OCSP
response. The file must be refreshed regularly by a cron job or
similar and the ssl_ocsp_response command repeated to make Pen
re-read the file..
ssl_option OPTION
Manipulate SSL options. The available options are no_sslv2,
no_sslv3, no_tlsv1, no_tlsv1.1, no_tlsv1.2,
cipher_server_preference. Use the command multiple times to
specify multiple options.
ssl_sni_path PATH
This command enables the Server Name Indication TLS extension by
specifying a directory where domain.key, domain.crt and
domain.ca files can be found.
status Print status information in html format.
stubborn
If the initial server selection is unavailable, close the client
connection without trying another
no stubborn
tarpit_acl [N]
Used in DSR mode. If N is an existing access list, Pen will
reply to ARP requests for IP addresses that match the access
list, and reply with SYN+ACK to TCP SYN requests to these
addresses. The result is that someone trying to scan a network
will be slowed down by a large number of false positives.
tcp_fastclose up|down|both|off
Close both sockets to upstream and downstream if one of them
closes theirs. Default = off.
tcp_nodelay
Set TCP_NODELAY on sockets, effectively turning off the Nagle
algorithm.
no tcp_nodelay
Do not set TCP_NODELAY on sockets. This is the default.
timeout
Return current connect timeout in seconds.
timeout N
Set connect timeout to N seconds.
tracking N
Set tracking time, i.e. how long clients will be remembered. The
default 0 will never expire clients based on time.
transparent
On compatible platforms, use the client's address as source
address in the connection to the backend server.
no transparent
Use Pen's address as source address in the connection to the
backend server.
web_stats
Return file name of html status reports, if any.
web_stats FILE
Set the name of html status reports.
no web_stats
Do not generate html status reports.
weight Use weight for server selection.
no weight
Do not use weight for server selection.
write [FILE]
Write the current configuration into a file which can be used to
start pen. If FILE is omitted, the configuration is written into
pen's original configuration file.
SEE ALSO
pen(1)
AUTHOR
Copyright (C) 2002-2015 Ulric Eriksson, <ulric@siag.nu>.
LOCAL PENCTL(1)