Setting bandwidth for multiple internal subnets + few more PF
questions
Max Laier
max at love2party.net
Fri Mar 16 12:59:16 UTC 2007
[ Could you get your mailer to line wrap, please? ]
On Thursday 15 March 2007 11:08, Aleš Krajník wrote:
> I have a problem with PF and I would appreciate any help. I spent few
> hours googling around but found no solution.
>
> We have a FreeBSD 6.1 router with 4 internal subnets on 4 interfaces
> (em1, fxp0, fxp1, xl0), 1 connection to the Internet (em0) - 10Mbps
> both directions, full duplex. What we need is to shape traffic so em1 +
> fxp1 , fxp0 and xl0 uses equally 33% of traffic, in both incoming and
> outgoing directions from the Internet (incoming direction is more
> important for us as we don't have almost any servers inside our network
> except for HTTP for development purpose so mostly we download data from
> the Internet). Traffic between local subnets should stay unlimited.
>
> That should not be problem - we could just set 3.33Mbps on each
> interface for packets arriving from the Internet. What we cannot solve
> is how to set that each interface could borrow bandwidth from other
> interfaces (= from parent stream) if they are not fully utilised?
>
> If I set ALTQ on the external interface, I can control only outgoing
> traffic to the Internet (I made that work successfully). If I set ALTQ
> on any of the internal interfaces I cannot set it to borrow from each
> other. Setting ALTQ on multiple interfaces is not supported AFAIK. Is
> there any solution? Can that be solved with packet tagging?
Controlling *incoming* traffic is not really supported or possible for
that matter. You can't controll what others send you. Of course you
can - as you seem to be doing - limit the *outgoing* traffic on the
internal interface(s). Due to the way ALTQ works, however, it is not
possible to share bandwidth over several interfaces. ALTQ directly hooks
into the queueing at the interface. What you would need are two distinct
boxes or a virtual interface through which you tunnel all traffic from
the internet to you LANs - but I'm not sure that is (easily) possible.
You might want to look into using ipfw + dummynet, which works differently
and might be able to solve this particular problem. I'm also open to pf
+ dummynet integration, but don't have time to work on that, at the
moment.
> Another thing I do not completely understand is setting ALTQ rules on
> interfaces. I just want to make it clear to myself. If I set ALTQ on an
> interface, it means that packets are being dropped on the chosen
> interface? If I set queue on an interface, it means that packets are
> added to that queue if and only if the rule is evaluated on the chosen
> interface? For example if I would have rules "queue Q on em0 ..." and
> "pass in on em1 ... queue Q", what would that do?
Internally, queue names are resolved to a number, which is tagged to the
packet. If you have a queue named "foo" on em0 and em1, both these
queues will have the same number. It does not matter where you tag the
packet. On rule evaluation it is only assigned the number for the queue
name. As it hits an ALTQ enabled interface the queueing decides which
queue this number corresponds to.
So in your scenario, if you call the queues on the internal interfaces the
same - say "INET_IN" - you can assign incoming traffic to them with one
single rule on the outside interface.
> My last question - I read TCP ACK packets prioritizing can increase
> incoming throughput. Does that make sense on fast internet connections
> like is ours or is it useful only for e.g. dial-up connections? I would
> use following ALTQ settings:
>
> ALTQ on $lan_ex bandwidth 10Mb cbq { queue_std, queue_ack }
> queue queue_std on $lan_ex bandwidth 99% cbq(default)
> queue queue_ack on $lan_ex bandwidth 1%
>
> ... and create a TCP/ACK rule on $lan_ex with queue_ack
This doesn't prioritize ACKs. You might want to read Daniel's excellent
article about it: http://www.benzedrine.cx/ackpri.html As he points out,
it's most useful on asymmetric links when you really saturate the uplink.
--
/"\ Best regards, | mlaier at freebsd.org
\ / Max Laier | ICQ #67774661
X http://pf4freebsd.love2party.net/ | mlaier at EFnet
/ \ ASCII Ribbon Campaign | Against HTML Mail and News
-------------- next part --------------
A non-text attachment was scrubbed...
Name: not available
Type: application/pgp-signature
Size: 187 bytes
Desc: not available
Url : http://lists.freebsd.org/pipermail/freebsd-pf/attachments/20070316/588ec053/attachment.pgp
More information about the freebsd-pf
mailing list