Hi,
  I have run into an interesting problem with setup.

I run Azureus on a FreeBSD box to handle downloading stuff for my
household.

We have only 128/512 DSL so it generally is saturated while torrents are
downloaded.  I want to setup Azureus to be low priority and try to limit
the effect of this problem.

I have setup outgoing ALTQ to give priority to ACKs, general traffic,
and then bittorrent last.  This is working fine.

internal_net="10.17.10.0/24"

altq on $ext_if priq bandwidth 120Kb queue { std_out , low_out ,
high_out , tcp_ack_out , ef_out }

queue low_out           priority 1 priq(red)
queue std_out           priority 2 priq(default)
queue high_out          priority 4
queue tcp_ack_out       priority 5
queue ef_out            priority 6

pass out on $ext_if proto tcp from ($ext_if) to any modulate state flags
S/SA queue ( std_out  , tcp_ack_out )
pass out quick on $ext_if proto udp from ($ext_if) to any port 53 keep
state queue ( high_out )
pass out on $ext_if proto { udp, icmp } from ($ext_if) queue ( std_out )

# Outgoing connections from Azureus always originate from port 51002
pass out on $ext_if proto {udp,tcp} from any to 10.17.10.254 port 51002
queue ( low_out ) keep state

# Incoming connections to Azureus is set to port 50002
pass in on $ext_if proto {udp,tcp} from any to 10.17.10.254 port 50002
queue ( low_out ) keep state


Inbound is a different story.  Given I can only set queues on for
outgoing traffic, I bound azureus to the internal IP of the FreeBSD box
(10.17.10.254).
Traffic is passing perfectly fine, azurues is working.

I have defined my queus as follows:

altq on $int_if cbq bandwidth 100Mb queue { internal , internet }
        queue internal bandwidth 99.5Mb cbq(default)
        queue internet bandwidth 500Kb { general , bittorrent }
                queue general bandwidth 80% cbq(ecn)
                queue bittorrent bandwidth 20% cbq(borrow red)
Basically, all but 500Kb is for internal traffic, then divide the 500Kb
queue into general and bittorrent, with bittorrent borrowing if
available.

pass in  on $int_if from $internal_net to any
pass in  on $int_if proto udp from any to any port $dhcpd_port
pass out on $int_if
pass out quick on $int_if from $internal_net to $internal_net queue
internal
pass out on $int_if from any to $internal_net queue general
pass out on $int_if proto { tcp, udp } from any to 10.17.10.254 port {
50002 , 51002 } queue bittorrent 


I was watching pfctl -s queue -v, and the bittorrent queue was not being
utilized, so I changed my:
pass out on $int_if
  to
pass log-all out quick on $int_if
  traffic going to hosts behing the box were showing in on pflog0, but
no traffic to 10.17.10.254 shows. If I put a log-all on a line that
matches the traffic on the $ext_if interface it shows that in deed
traffic is heading towards 10.17.10.254.  Which means that even though
the internal IP address is bound to the internal interface, the internal
interface never sees traffic for 10.17.10.254 that can be filtered.
Tcpdump does not show this either
Is this true or is there a way perform what I need to do in another way?





Adam Clark
Network Administrator

National Gallery of Victoria
PO Box 7259 St Kilda Road Vic 8004
Telephone: +61 3 8620 2369 
Fax: +61 3 8620 2565
www.ngv.vic.gov.au

Keep informed of the latest NGV exhibitions, special events and programs at The 
Ian Potter Centre: NGV Australia and NGV International by subscribing to [EMAIL 
PROTECTED], the NGV's free e-newsletter.

DISCLAIMER: This email and any files transmitted with it are confidential and 
intended solely for [EMAIL PROTECTED] If you are not the named addressee you 
should not disseminate, copy or alter this email. WARNING: Although National 
Gallery of Victoria has taken reasonable precautions to ensure no viruses are 
present in this email, the organisation cannot accept responsibility for any 
loss or damage arising from the use of this email or attachment.

Reply via email to