| 
 |   | 
Dante Module Documentation   Bandwidth Module
Description
 The Bandwidth module gives control over how much bandwidth the
 clients of the Dante SOCKS server can consume.
  
 The module can be used to limit bandwidth to non-work related web/FTP
 sites, or to prevent FTP-related traffic from impacting too much on
 interactive telnet/ssh traffic.
  
 It can also be used to give more bandwidth to certain clients
 or for traffic to certain sites.
  
 When combined with the Dante bind extension, the module
 can be used to provide bandwidth control for network servers (like
 e.g., web servers) that do not have support for bandwidth control.
Syntax
 The syntax of the bandwidth statement is as follows:
 bandwidth: <bytes> 
 bytes is the maximum bandwidth to use per second, measured in bytes.
Semantics
 The bandwidth statement can be used in both the Dante
 client-rules and socks-rules. See sockd.conf(5) for more
 information about the different rule types.
 Note that a bandwidth limitation set in a client-rule
       is inherited by the socks-rule matching the client.
 The maximum allowed bandwidth set for a rule will be shared
 by all clients matching that rule.  The Dante server will
 attempt to distribute the bandwidth to the matching clients in a
 least-recently used fashion, trying to let all clients get a fair
 share.
Examples
 This section shows several examples of how the bandwidth
 module can be used.
 Limiting web/http bandwidth
  The below rule shows how to limit the bandwidth used for web traffic
  for the clients on the 10.0.0.0/24 network to a total of 10240 bytes
  (10 KiloBytes/second).
pass {
   from: 10.0.0.0/24 to: 0.0.0.0/0 port = http
   command: connect
   bandwidth: 102400
}
  
 Increasing web/http bandwidth
  The next rule, if placed before other bandwidth-limiting rules,
  shows how one can increase the bandwidth used for web traffic by
  the clients on the 10.0.0.0/24 network to a specified host.
  
  In this case, the clients will be able to use 1024000 bytes (one
  MegaByte/second), when getting data from the host
  work.example.com.
pass {
   from: 10.0.0.0/24 to: work.example.com port = http
   command: connect
   bandwidth: 1024000
}
  
 Limiting FTP bandwidth
  The next rule shows how one can limit the bandwidth used for FTP
  data transfers for the clients on the 10.0.0.0/24 network to a total
  of 10240 bytes (10 KiloBytes/second).
  
  This only works for active FTP, since for passive FTP
  there are no fixed port numbers.
pass {
   from: 0.0.0.0/0 port = ftp-data to: 10.0.0.0/24
   command: bindreply
   bandwidth: 10240
}
  
 Limiting bandwidth provided by internal servers to the outside
  The next rule shows how one could use the Dante bind
  extension together with the Bandwidth module to limit the
  amount of data provided by an internal server, in this case, a web
  server called our-webserver.example.com, to a total of 10240
  bytes, or 10 KiloBytes/second.
  
  This requires the webserver to be socksified and the bind extension
  to be enabled on both the socksified client and on the Dante
  server.
pass {
   from: 0.0.0.0/0 to: our-webserver.example.com port = http
   command: bindreply
   bandwidth: 10240
}
  
Special notes
 SIGHUP
  Sending the server a SIGHUP signal forces a reload
  of the configuration file.  It should be noted that this
  does not affect current sessions or limits placed on them.
  
  A reload of the configuration file only affects sessions created after
  the reload.  It will not affect any of the existing sessions.
  
  This means that changing e.g., a pass statement to a block
  statement, does not terminate the session of any existing client.
  Likewise, changing the limits set in a rule does not change the values
  for any existing session.
  
  After a reload of the configuration file, old sessions will continue
  to operate in a separate space, using the old configuration, while new
  sessions will use the new configuration.
 |  |