Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 20 Sep 2006 11:16:19 -0400
From:      Bill Moran <wmoran@collaborativefusion.com>
To:        Odhiambo Washington <wash@wananchi.com>
Cc:        freebsd-questions@freebsd.org
Subject:   Re: Dummynet in an IPFilter setup
Message-ID:  <20060920111619.de01afb3.wmoran@collaborativefusion.com>
In-Reply-To: <20060920150511.GB20244@ns2.wananchi.com>
References:  <20060920150511.GB20244@ns2.wananchi.com>

next in thread | previous in thread | raw e-mail | index | archive | help
In response to Odhiambo Washington <wash@wananchi.com>:

[snip]

> The scenario:
> 
> I am running a FreeBSD 5.x box with IPFilter/IPNAT. The box has two 
> interfaces at the moment, external interface connected to the hostile
> Internet and internal interface connected to a switch for the LAN.
> 
> The ISP gives 256Kbit/s on the external interface. Out of this, I
> need to dedicate/guarantee 128Kbit/s to just one machine.
> 
> A streaming server has been introduced on the LAN, and it is considered
> a VIP host as far as bandwidth allocation is concerned.
> The problem is that p2p is also officially allowed on the LAN. I hate
> it but it is allowed. Period. No argument about it.
> 
> I need to guarantee 128Kbit/s of the available bandwidth to the 
> streaming host (server, if you can call it).
> 
> 
> My thinking/plan:
> 
> 1. Add one more NIC to the FreeBSD box (it's also the router, 
>   firewall, _everything_ server) and put this on a separate IP block.
>   To this NIC I will connect the VIP host, which needs the guaranteed
>   bandwidth. I will therefore NAT traffic to/from it.
> 
> 2. Restrict the current LAN hosts to 128Kbit/s via ipfw pipe. To me, 
>    this means that:
>    (a) They cannot go beyond 128Kbit/s
>    (b) The VIP box will go above 128K/bit's in case the throttled
>        LAN is not using all of the 128Kbit/s
> 
> I need to control bandwidth on the external interface only, not on the
> LAN (internal interfaces).
> 
> Is this rightful thinking or sheer imagination which is not practical?

Seems reasonable.  See below ...

> My problem:
> 
> 
> Most important is being dumb when it comes to IPFW and hence the pipes
> and all that pertains to it.
> 
> Here is my ipfw configuration, in black and white (firewall_type="OPEN")
> 
> 
>         # Outside interface network and netmask and ip
>         oif="bfe0"
>         iif="xl0"
>         onet="62.8.68.0"
>         omask="255.255.255.252"
>         oip="62.8.68.22"
> 
>         # Inside interface network and netmask and ip
>         iif="xl0"
>         inet="10.0.0.0"
>         imask="255.255.255.0"
>         iip="10.0.0.2"
> 
>         ipfw pipe 1 config bw 128Kbit/s
> 
>         # Allow any traffic to or from my own net.
>         ${fwcmd} add pass all from ${iip} to ${inet}:${imask}
>         ${fwcmd} add pass all from ${inet}:${imask} to ${iip}
> 
>         # Throttle now
>         ipfw add pipe 1 tcp from $${inet}:${imask} to any out via ${oif} state
                                   ^^

Is this direct cut/paste?  If so, you've got a sticky $ key.

>         ${fwcmd} add 65000 pass all from any to any
> 
> 
> With this configuration, it seems like even LAN->LAN communication is 
> being restricted to 128Kbit/s. I am not sure why, as simple as it looks!
> Can someone tell me why that is happening?
> 
> Now, supposing the 3rd NIC was on 10.0.1.0/24 network, and there is no
> bandwidth limitation configuration, is it not true that I will have 
> achieved my goal?
> 
> I'll simply give the FreeBSD box 10.0.1.1 and the VIP box 10.0.1.2 and
> have a static route for the VIP box, with NAT for any connections 
> to/from it.
> 
> 
> I'll really appreciate any help/advise towards a perfect configuration
> for the firewall, and how I can get this to work.
> 
> Thanks in advance.


-- 
Bill Moran
Collaborative Fusion Inc.



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?20060920111619.de01afb3.wmoran>