Bandwidth priority when to/from a certain host.

I think my problem is relatively simple. I tried using different scripts I found on the net for this but I couldn't get anything to work. The best I got was limiting the entire interface traffic (no good).

My external device: eth0
Internal device: eth1

Instead of limiting traffic, I want to reserve it. I can't use cbq, or any of the fancy modules like layer 7, or CONNMARK. I need to do this using basically only "iptables" for marking packets and "tc" for shaping.

I want to make sure ANY kind of traffic for a certain external host (say, 201.202.203.204) has priority over other traffic. ANY and ALL traffic on ANY ports and protocols to OR from the 201.202.203.204 should be allowed ALL the bandwidth it needs. That's it. I think I just need 2 classes right? One for the High priority IP 201.202.203.204, and one for the remaining Internet traffic. I wanna keep it simple.
tjbrazaAsked:
Who is Participating?
 
crovaxyConnect With a Mentor Commented:
You can use HTB or HFSC to create the two classes. HTB is quite simple to configure:
Create a root class where 'rate' is your link BW, then create two subclasses: One for that IP where 'rate' should be the amount of BW you want to grant and 'ceil' should be the max bandwith permitted by the root class. The second subclass should be the default class, where 'rate' should be the rest of BW and 'ceil' the max BW permitted by the root class.

The qdiscs can be sfq for the first subclass and esfq for the default class.

Mark the packets of the connections from 201.202.203.204 and filter them with tc filters. You can also use the iptables CLASSIFY, if you don't want to use tc filters.

If you want to shape inbound traffic, take a look at IMQ devices.

A useful link: www.lartc.org
0
All Courses

From novice to tech pro — start learning today.