Sambar Server Documentation

Bandwidth and Usage Throttling
Pro Server Only


Overview
The Sambar Server supports several throttling mechanisms intended to reduce the load on your server and bandwidth generated according to polices (see below) that decide when to refuse requests. The Sambar Server can track and throttle incoming connections by IP address or by authenticated remote user. The following are the policy configuration options:

  • Concurrent Requests
    config.ini parameter(s)
    Throttle IPs = #
    This policy imposes a limit on the number of concurrent requests at any one time. This can be used to limit the effectiveness of some denial of service (DOS) attacks; a typical browser will open up 10 or more simultaneous connections to a server (depending on the number of images present) whereas a DOS attack might attempt 100 simultaneous connections. This feature results in minimal performance impact. Set this field to zero (0) to allow unlimited connections from a given IP address.
    Use of Throttle IPs has the following issues:
    • Because browsers regularly make multiple connections to a server to retrieve web pages, this setting should typically not be set below ten (depending on the number of images/frames on your pages) which may lessen the usefulness of this feature.
    • Use can adversely affect connections that come in via proxies such as AOL members as they all appear to be the same client.
    • A local router has a similar issue to the AOL proxy problem because all clients appear to be coming from 192.168.0.1.
    • IE as of 5.5 will open tens of connections to fetch all the content on a page depending on whether keep-alive is disabled, how long/short the timeout is, and whether access is across a WAN. Making matters worse is the TCP/IP stack on windows does a poor job of alerting the server as to connection close events resulting in a delay in cleaning up sockets.
  • Connections by IP address
    config.ini parameter(s)
    Throttle IP Size = #
    Throttle IP Requests = #
    Throttle IP SMTP = #messages
    Throttle IP Period = cron
    Impose a limit on the number of network requests (connections per-IP) per period, which when exceeded results in subsequent requests being denied with a failure message. If the Requests count is specified (i.e. non-zero), IP request throttling is enabled. Requests from an IP address are tracked for a short period of time and subject to the policy specified. The period of time that a client IP address is tracked depends on the Size of the IP address list, which is ordered most recent request to oldest. Every time a new IP address connects, the oldest entry in the list is lost and reassigned to the new client IP address. Every time an existing entry makes a request, it is moved to the top of the list.
  • Bandwidth by IP address
    config.ini parameter(s)
    Throttle IP Size = #
    Throttle IP I/O = #mb
    Throttle IP Period = cron
    Don't Throttle IPs = ip address(s)
    Impose a limit on the volume (mbytes sent and received) per period, which when exceeded results in subsequent requests being denied with a failure message. If the I/O volume is specified (i.e. non-zero), IP bandwidth throttling is enabled. Requests from an IP address are tracked for a short period of time and subject to the policy specified. The period of time that a client IP address is tracked depends on the Size of the IP address list, which is ordered most recent request to oldest. Every time a new IP address connects, the oldest entry in the list is lost and reassigned to the new client IP address. Every time an existing entry makes a request, it is moved to the top of the list.
  • Bandwidth by Authenticated User
    config.ini parameter(s)
    Throttle User Input = #mb
    Throttle User Output = #mb
    Throttle User SMTP = #messages
    Throttle User Period = cron
    Impose a limit on the volume (mbytes sent and/or received) per period, which when exceeded results in subsequent requests being denied with a failure message. If either the Send or Recieve volumes are specified (i.e. non-zero), user throttling is enabled.
  • Bandwidth by Virtual Host
    config.ini parameter(s)
    Throttle VHOST Input = #mb
    Throttle VHOST Output = #mb
    Throttle VHOST Period = cron
    Impose a limit on the volume (mbytes sent and/or received) per period, which when exceeded results in subsequent requests being denied with a failure message. If either the Send or Recieve volumes are specified (i.e. non-zero), virtual host throttling is enabled.
  • Simultaneous Logins
    config.ini parameter(s)
    Maximum Simultaneous Logins = #
    Impose a limit on the the maximum number of simultaneous logins for a single user. The default value zero (0) indicates an unlimited number of simultaneous users are permitted. If a user does not logout and attempts to reconnect with the limit set to one (1), the user will have to wait until the timeout duration is reached.
  • Invalid HTTP Requests
    config.ini parameter(s)
    Monitor Invalid Requests = true | false
    Maximum Invalid Requests = #
    Invalid Request Wait = #sec
    Monitor invalid HTTP requests and freeze subsequent requests for the Invalid Request Wait seconds from the IP addresses of hosts that exceed the Maximum Invalid Requests. Enabling this feature imposes a performance penalty on the server and increases the memory requirements by several mega bytes; it can prevent some types of server attacks as well as some DOS attacks. Note: All tracking is performed via IP address. This can adversely affect large groups of users that come from hosts behind a proxy such as AOL.
  • Invalid HTTP Logins
    config.ini parameter(s)
    Monitor Invalid Logins = true | false
    Maximum Invalid Logins = #
    Invalid Login Wait = #sec
    Monitor invalid HTTP login attempts and deny subsequent login attempts for the Invalid Login Wait seconds from the IP addresses of hosts that exceed the Maximum Invalid Logins. Enabling this feature imposes a performance penalty on the server and increases the memory requirements by several mega bytes; it can prevent some types of server attacks as well as some DOS attacks. Note: All tracking is performed via IP address. This can adversely affect large groups of users that come from hosts behind a proxy such as AOL.

© 2004 Sambar Technologies. All rights reserved. Terms of Use.