| At a Glance | |
|---|---|---|
| Catalog | System | |
| Category | Gateways | |
| User volumes | yes | |
| Min. memory | 64M | |
| OS | Linux | |
| Constraints | no | |
| Questions/Comments | Ask Forum | |
ip_addr) is running on only one of the nodes and is automatically transferred to the other INSSLR appliance in case of failure. At any given moment, only one of the INSSLR appliance is active. When running in failover mode INSSLR can be configured to run in several modes: fover_local_ip property.
| Resource | Minimum | Maximum | Default |
|---|---|---|---|
| CPU | 0.05 | 4 | 0.05 |
| Memory | 64M | 2G | 64M |
| Bandwidth | 1 Mbps | 1 Gbps | 1 Mbps |
fover_mode is not none), the minimum recommended memory is 96M.
Note2: the amount of memory given to INSSLR does not affect its throughput. Use more memory only to support more concurrent requests that have been forwarded to a back end server, pending a response, if the back-end servers hold up requests for excessively long times.
| name | dir | prot. | description |
|---|---|---|---|
ctl | in | HTTP | Receive notifications that will force the appliance to become primary/backup. This terminal accepts connections only if fover_mode is not none. A valid http request looks like /?action=<active|passive|kill|status>. active/passive will make the appliance become active or passive. Note that this action may not succeed (if the other node is not active and failover cant be completed) and no error will be returned. It is up to the calling application to check the status of the appliance by making a /?action=status request. status returns the current state of the appliance (active/passive). kill does a forced shutdown of the appliance which will make the other node takeover (if it is running). |
http | out | HTTP | HTTPS and/or HTTP requests received on the configured external IP address are directed to the output http as plain HTTP requests on the standard HTTP port 80. In addition to the client-supplied HTTP headers, the forwarded requests also contain the following informational headers:
|
aux | out | any | Output for other protocols, if configured - see the l3_accept_* properties. |
nfy | out | http | Sends notifications whenever a failover occurs. See also fover_nfy_prefix. This terminal may be left unconnected. |
mon | out | cce | Sends performance and resource usage statistics. |
| name | type | description |
|---|---|---|
ip_addr | IP addr | external IP address of the gateway. This property has no default value and must be set. |
netmask | IP addr | Netmask. This property has no default value and must be set. Default: (empty) |
gateway | IP addr | Default gateway for outgoing traffic. Default: (empty) |
l7_accept | enum | This specifies what kinds of HTTP traffic to accept for forwarding to the http terminal. Valid values: https, http, both , none. If set to none all traffic will be redirected only according to the l3_accept_* properties. Default: both. |
l3_accept_proto | enum | Specifies which protocols will be forwarded to the aux terminal. Valid values: none, tcp, udp, raw, all. If set to tcp or udp, the l3_accept_port property may be used to specify the port. If set to raw the l3_accept_port property specifies the protocol number. If set to all all incoming traffic on the external interface is forwarded to the aux terminal. Note that the l7_accept property takes precedence over this one - if you set l7_accept to value different from none all http(s) will be forwarded to the http terminal, the rest of the traffic will go to aux as specified by this property. Default: none. |
l3_accept_port | string | A comma (or space) separated list of protocols to accept and route at the protocol specified by l3_accept_proto to the aux terminal; Protocols in the list may be specified either as port numbers or as standard protocol names (e.g., ftp, smtp etc. when specifying tcp/udp ports or gre, tcp, etc. when using raw protocols). Port ranges can also be specified (1024:10000, 0:1024). If left empty all ports of the specified protocol will be forwarded. Note: If you set l3_accept_proto to raw you must specify this property which in this case specifies the protocol number (more than one raw protocols may be specified but no proto range (e.g. 20:30) is allowed) Default: all |
allowed_hosts | String | List of hosts and/or subnets allowed to connect. Separate multiple entries with spaces or commas. Supported format example: 192.168.1.2 192.168.1.0/24 192.168.2.0/255.255.255.0. Default: 0.0.0.0/0 (all allowed) |
cert_file | string | File name (relative to the data volume root) of the server certificate that this gateway instance should present to the client. Note that a valid certificate must be present on the configured data volume (see Volumes below) at the location specified by this property if you set l7_accept to https or both, otherwise SSL will fail to start. Default: server.pem |
webdav | enum | Allow WebDAV requests to go through. Valid values: off - reject WebDAV requests; on - allow WebDAV requests; Default: off |
timeout | int | Specify how many second Pound will wait for output from the backend server. If the backend server does not send output for timeout seconds, the connection is closed. Default: 300 |
fover_mode | String | Failover mode. Possible values are none (no failover), symmetric and assymetric. When set to none INSSLR acts just like an INSSL appliance and does not provide failover capabilities. When set to symmetric, INSSLR will run in symmetric failover mode (you need two INSSLR appliances, both running in symmetric failover mode). When set to asymmetric, INSSLR will run in asymmetric failover mode (you need two INSSLR appliances, both running in asymmetric failover mode). fover_mode set to the same value. |
fover_local_ip | IP addr | Local IP address to be used in failover mode for communicating with the other INSSLR appliance. This can be any available IP, including any reserved private address (as defined by rfc1918). This address is used only for monitoring the status of the other INSLLR appliance. fover_remote_ip property on the other INSSLR appliance. fover_mode to none. Default: (empty) |
fover_remote_ip | IP addr | Remote IP address of the other INSSLR appliance used in failover mode. fover_local_ip property on the other INSSLR appliance. fover_mode to none. Default: (empty) |
fover_netmask | IP addr | Netmask for fover_local_ip. fover_mode to none. Default: (empty) |
fover_nfy_prefix | String | Url prefix that will be requested whenever a failover occurs. The requested URL will be http://nfy/fover_nfy_prefixfover_mode=fover_mode&state=<start|stop>&ip_addr=ip_addr&fover_local_ip=fover_local_ip&fover_remote_ip=fover_remote_ip&fover_netmask=fover_netmask and it will go through thenfy terminal. Default: ? |
| name | description |
|---|---|
key | A read-only data volume (placeholder) containing, as a minimum, the SSL server signing key. The file should be in PEM format. Unless the cert_file property is modified to specify a different name, the certificate should be located in the root directory of the key volume, named server.pem. |
fover_mode is not none), INSSLR triggers notifications whenever it becomes active/passive. This is done on startup of the active node or whenever a failover occurs (each node send a notification that it became active/passive).
INSSLR send two notifications:
nfy terminal. It is up to the receiving end to take some action based on the notification. The requested URL is: http://nfy/fover_nfy_prefixfover_mode=fover_mode&state=<start|stop>&ip_addr=ip_addr&fover_local_ip=fover_local_ip&fover_remote_ip=fover_remote_ip&fover_netmask=fover_netmask
. You can use thefover_nfy_prefix to change the location of the remote script that is called or/and add additional parameters. Examples for fover_nfy_prefix values: /path/to/script.php?, /path/to/script.php?username=user&password=pass&.
fover_nfy_prefix different than the default make sure it ends with ? if fover_nfy_prefix is just the path the the script or & if fover_nfy_prefix includes additional parameters.
cert_file property.
openssl genrsa -out privkey.pem 2048
openssl genrsa -des3 -out privkey.pem 2048
openssl req -new -key privkey.pem -out server.csr
openssl req -new -x509 -key privkey.pem -out server.crt -days 1095
cat privkey.pem server.crt > server.pem
openssl rsa -in key_with_pass.pem -out privkey.pem
cat privkey.pem server.csr > server.pem
cat privkey.pem server.csr sf_issuing.crt > server.pem
| Property | Value | Notes |
|---|---|---|
l7_accept | http/https/both | Specifies what l7 protocol will be used. NOTE: if https or both is specified, the key volume should contain the ssl certificate as specified by the cert_file property |
| Property | Value | Notes |
|---|---|---|
l7_accept | http/https/both | Specifies what l7 protocol will be used. NOTE: if https or both is specified, the key volume should contain the ssl certificate as specified by the cert_file property |
l3_accept_proto | tcp | Redirect tcp ports 25,110,143 to aux terminal. |
l3_accept_port | 25,110,143 | Redirect tcp ports 25,110,143 to aux terminal. |
| Property | Value | Notes |
|---|---|---|
l7_accept | http/https/both | Specifies what l7 protocol will be used. NOTE: if https or both is specified, the key volume should contain the ssl certificate as specified by the cert_file property |
l3_accept_proto | all | Redirect to aux terminal all IP (except icmp) traffic that is not passed to the http terminal. |
user - input gateway for user requests
web - web server displaying maintenance message
| Property | Value | Notes |
|---|---|---|
ip_addr | 1.2.3.4 | Public IP address of the application, must be the same for the primary and backup application. |
netmask | 255.255.255.0 | Netmask for the public IP address of the application, must be the same for the primary and backup application. |
gateway | 1.2.3.254 | Gateway for the public IP address of the application, must be the same for the primary and backup application. |
fover_mode | asymmetric | Run in asymmetric mode as we want to use the backup application only when the primary is down. |
fover_local_ip | 192.168.100.1 | Private IP address to be used for communication between INSSLR appliances in the two applications. The local IP address is lower than the remote so this appliance will be primary and will as long as it is running |
fover_remote_ip | 192.168.100.2 | Remote IP address to be used for communication between INSSLR appliances in the two applications. |
fover_netmask | 255.255.255.0 | Netmask for fover_local_ip. |
| Property | Value | Notes |
|---|---|---|
ip_addr | 1.2.3.4 | Public IP address of the application, must be the same for the primary and backup application. |
netmask | 255.255.255.0 | Netmask for the public IP address of the application, must be the same for the primary and backup application. |
gateway | 1.2.3.254 | Gateway for the public IP address of the application, must be the same for the primary and backup application. |
fover_mode | asymmetric | Run in asymmetric mode as we want to use the backup application only when the primary is down. |
fover_local_ip | 192.168.100.2 | Private IP address to be used for communication between INSSLR appliances in the two applications. |
fover_remote_ip | 192.168.100.1 | Remote IP address to be used for communication between INSSLR appliances in the two applications. |
fover_netmask | 255.255.255.0 | Netmask for fover_local_ip. |
in1
| Property | Value | Notes |
|---|---|---|
ip_addr | 1.2.3.4 | Public IP address of the application, must be the same for the primary and backup application. |
netmask | 255.255.255.0 | Netmask for the public IP address of the application, must be the same for the primary and backup application. |
gateway | 1.2.3.254 | Gateway for the public IP address of the application, must be the same for the primary and backup application. |
fover_mode | symmetric | Run in symmetric mode. |
fover_local_ip | 192.168.100.1 | Private IP address to be used for communication between INSSLR appliances in the two applications. |
fover_remote_ip | 192.168.100.2 | Remote IP address to be used for communication between INSSLR appliances in the two applications. |
fover_netmask | 255.255.255.0 | Netmask for fover_local_ip. |
in2
| Property | Value | Notes |
|---|---|---|
ip_addr | 1.2.3.4 | Public IP address of the application, must be the same for the primary and backup application. |
netmask | 255.255.255.0 | Netmask for the public IP address of the application, must be the same for the primary and backup application. |
gateway | 1.2.3.254 | Gateway for the public IP address of the application, must be the same for the primary and backup application. |
fover_mode | symmetric | Run in symmetric mode. |
fover_local_ip | 192.168.100.2 | Private IP address to be used for communication between INSSLR appliances in the two applications. |
fover_remote_ip | 192.168.100.1 | Remote IP address to be used for communication between INSSLR appliances in the two applications. |
fover_netmask | 255.255.255.0 | Netmask for fover_local_ip. |
db1
| Property name | Value | Notes |
|---|---|---|
auto_create | 1 | Create the database if the volumes are empty. |
server_id | 1 | Master server 1, this should be different on the remote application |
rpl_mode | master_and_slave | master and slave |
db2
| Property name | Value | Notes |
|---|---|---|
auto_create | 1 | Create the database if the volumes are empty. |
server_id | 2 | Master server 1, this should be different on the remote application |
rpl_mode | master_and_slave | master and slave |
in1 - redundant input gateway for user requests
admin - input gateway for log files access
sw - redirect port 8080 from admin to ui on db
repl_in - input for the remote application to connect to the db appliance in order to replicate the database
web_lb - web load-balancer for user requests
web1, web2 - web servers with active content (e.g., CGI scripts)
db - MYSQLR configured to be both a master and a slave at the same time
content - storage for database error log files, web content and web logs
logs - storage for database error log files
repl_out - output gateway for the db appliance to connect to the remote application in order to replicate the database
mon - MON appliance
in1 gateway. The gateway forwards the requests to the web_lb load balancer, which directs the request to one of the web servers web1 and web2. The web servers access the db database. The db appliance connects to the remote application (which is an identical copy, the only difference being the server_id of db and the network setup) in order to replicate the database. The remote application connects to the db appliance via the repl_in gateway which is configured to allow connection only from the repl_out gateway of the remote application. The db appliances in the two applications are running in master-master setup so they always have identical data.
Example property configuration (properties that are not listed should be left to their default values):
Web access to db is available via admin gateway on port 8080.
in1
| Property | Value | Notes |
|---|---|---|
ip_addr | 1.2.3.4 | Public IP address of the application, must be the same for both applications. |
netmask | 255.255.255.0 | Netmask for the public IP address of the application, must be the same for both applications. |
gateway | 1.2.3.254 | Gateway for the public IP address of the application, must be the same for both applications. |
fover_mode | symmetric | Run in symmetric mode. |
fover_local_ip | 192.168.100.1 | Private IP address to be used for communication between INSSLR appliances in the two applications. Change this to 192.168.100.2 on the remote application. |
fover_remote_ip | 192.168.100.2 | Remote IP address to be used for communication between INSSLR appliances in the two applications. Change this to 192.168.100.1 on the remote application. |
fover_netmask | 255.255.255.0 | Netmask for fover_local_ip. |
db
| Property name | Value | Notes |
|---|---|---|
auto_create | 1 | Create the database if the volumes are empty. |
error_log_filename | db.error | Name of error log file that is to be stored on the logs data volume. |
error_log_level | error | Error logging level |
server_id | 1 | Master server 1, this should be different on the second application |
rpl_mode | master_and_slave | master and slave |