Bandwidth guarantee per IP or interface with limiter



  • Hi everybody,

    It's been a few month that I used pfSense as a Firewall, and now I want to try the Traffic Shaper.
    I'd like to separate the bandwidth of my Internet access between 2 LAN, but I don't want to limit the bandwidth of each LAN, I prefer to give a minimum guaranteed.
    For example, I got 2 LAN (A & B) and a bandwidth of 100Mbits, LAN A have to always have 10Mbits but can use more if LAN B doesn't need his share (90Mbits).

    I see here : Traffic Shaping Guide and in these post too that I should use the limiter option.

    But, I'm stuck here, I successfully configure a maximum limit on LAN A, but I don't understand how to do the Bandwidth Guarantees with the limiters.

    Could you help me?

    Thank you.



  • I have the same issue.

    I'm trying to guarantee bandwidth on some interfaces where is configured a speed limit.

    If somebody has been able to set this behaviour , please let we know how.

    Regards
    Marco



  • In this post, they said that M0n0wall can do that…

    I'm beginning to look into new solutions (MasterShapper, Proprietary products,...).



  • Okay, it may be not possible to do this with PfSense. So I ended up to create a transparent bridge with traffic shapping with OpenBSD following this how-to
    Building a transparent traffic-shaping bridge on Cardus.com.

    I'll post my configuration later when it will be fully tested.



  • I haven't test it yet, but I think it's okay and I hope it would help some other people.
    It was my first time with OpenBSD and pf so maybe there are some errors…

    Define the interface aliases

    wan_if="em0" # External WAN-facing interface
    lan_if="em1" # Internal LAN-facing interface

    Enable ALTQ on the external interface, assign the root queue and

    ultimate bandwidth limit

    Using CBQ scheduler et creating the queue

    altq on $wan_if cbq bandwidth 100Mb queue { A_out, B_out, C_out, D_out }

    Define interface queue with the bandwidht, scheduler and borrow option

    queue A_out bandwidth 65Mb cbq (default borrow red)
    queue B_out bandwidth 15Mb cbq (borrow red)
    queue B_out bandwidth 15Mb cbq (borrow red)
    queue D_out bandwidth 5Mb cbq (borrow red)

    Same on LAN

    altq on $lan_if cbq bandwidth 100Mb queue { A_in, B_in, C_in, D_in }

    queue A_in bandwidth 65Mb cbq (default borrow red)
    queue B_in bandwidth 15Mb cbq (borrow red)
    queue C_in bandwidth 15Mb cbq (borrow red)
    queue D_in bandwidth 5Mb cbq (borrow red)

    IP adresses

    A_IP = "192.168.1.1"
    B_IP = "192.168.1.2"
    C_IP = "192.168.1.3"
    D_IP = "192.168.1.4"

    and the queue on interface

    pass in on $wan_if all

    pass out on $wan_if to $A_IP queue A_out
    pass out on $wan_if to $B_IP queue B_out
    pass out on $wan_if to $C_IP queue C_out
    pass out on $wan_if to $D_IP queue D_out

    pass in on $lan_if all

    pass out on $lan_if to $A_IP queue A_in
    pass out on $lan_if to $B_IP queue B_in
    pass out on $lan_if to $C_IP queue C_in
    pass out on $lan_if to $D_IP queue D_in


Log in to reply