I have the following setup:
|
| (67.95.100.16 - fxp4)
| (67.95.100.17 - fxp4)
----------------
| EXTERNAL |
| FIREWALL |
----------------
| (192.168.10.2 - fxp1)
(192.168.10.1) |
---------------- |
| WWW/FTP | |
| SERVER |--------+
----------------
The 67.95.100.17 IP address belongs to 'EXTERNAL FIREWALL' on fxp4.
The 67.95.100.16 IP address is an alias on fxp4 to redirect www/ftp
traffic to an internal server. I'd like to limit bandwidth to
67.95.100.16 depending on the protocol used.
Traffic navigates to 'WWW/FTP SERVER' via a rdr rule for the ftp
traffic (reverse ftp-proxy):
rdr pass log on fxp4 proto tcp from any to 67.95.100.16 \
port = http -> 192.168.10.1
rdr pass log on fxp4 proto tcp from any to 67.95.100.16 \
port = ftp -> 127.0.0.1 port 8022
The reverse ftp-proxy is running as:
# /usr/sbin/ftp-proxy -R 192.168.10.1 -p 8022
I created a queue to limit traffic on the internal interface
connecting 'EXTERNAL FIREWALL' to 'WWW/FTP SERVER':
altq on fxp1 cbq bandwidth 1.5Mb queue \
{ queue_std, queue_ftp, queue_http }
queue queue_std bandwidth 1.48Mb cbq(default)
queue queue_ftp bandwidth 10Kb
queue queue_http bandwidth 10Kb cbq(red)
And, the rules allowing traffic to 'WWW/FTP SERVER':
pass in log on fxp1 proto { tcp, udp } from any to any \
port = domain keep state
pass out log on fxp1 proto tcp from any to any \
port = http keep state queue queue_http
pass out log on fxp1 proto tcp from any to any \
port = ftp keep state queue queue_ftp
pass out log on fxp1 inet proto icmp all \
icmp-type $icmp_types keep state queue queue_std
>From an external server, I attempted to download a file with curl
using ftp and www from 'WWW/FTP SERVER' server. Curl reports that
downloading via ftp shows no bandwidth limiting. As for www, the
bandwidth seems limited to ~30Kb/s. Why isn't my 10Kb bandwidth being
honoured?
--
albert chin ([EMAIL PROTECTED])