QoS and bandwidth control

Hi guys

I have the following setup in our rack:
Two 100 Mbps uplinks => connected to two RB1100 Routers => connected to two 24 port GBit Switches => connected to several client servers.

Uplink 1      Uplink 2
          |             |
      ----------    ----------
     | Router 1 |  | Router 2 |
      ---------- \/ ----------
          |      /\     |
   --------------   --------------
  | GBit Switch1 |=| GBit Switch2 |
   --------------   --------------
    | | | ... |      | | | ... |
   Clients           Clients

What I want to achieve is, that a clients server has a CIR of 10Mbps, but can burst up to 100Mbps for outgoing/incoming traffic (routed traffic) and burst up to 1Gbps for internal traffic (same subnet, just switched traffic).

Questions:

  • Would you realize such a bandwidth management on the Switches or on the Routers?
  • Is ROS capable of doing such a thing?
  • Has anybody implemented such a setup and would like to earn some money? :wink:

I’m looking forward to hearing your opinions.

Cheers,
gartoffel

Would you realize such a bandwidth management on the Switches or on the Routers?

Depends on the switches, but probably on the routers.

Is ROS capable of doing such a thing?

Yes.
http://wiki.mikrotik.com/wiki/Manual:Queue
You would want to mark packets based on source and destination address to determine routed traffic from network local traffic, and have different queues for the two. ‘limit-at’ is the CIR, ‘max-limit’ is the maximum the queue can burst to. The manual also mentions PCQ - if you can live without bursts PCQ can make it very simple to guarantee CIR per client dynamically.
If you do need bursts you’d probably be OK given how you seem to have fairly static servers. The rough guide: You’d build a queue tree for internal and external traffic. The internal traffic is set to 1Gbps and in turn has child queues for each server that has limit-at set to 10Mbps, and a max-limit of 1Gbps that the child can borrow from its parent. All children have the same priority (unless you’d like to make some servers more important). The child queues fire based on packet marks you set in the firewall mangle facility, each server is marked separately. The external queue works the same way with different limits.

Hi fewi

Thanks for answering so quickly and for your detailed explanation.

Well, I’ll have to cable a new rack in a few weeks time, so I’m pretty free to choose the new hardware there. But in the current setup we use Netgear Smart (managed) GBit Switches. The new managed ones have L2-L4 QoS, so that might be interesting as well…
Any recommendations?

I already had a look both at PCQ and Queues in general. What I don’t get with PCQ is: Can I define a “client” as a server having several IP adresses or is a “client” always a single IP address? It not stated very clearly in the manual. Background of this question: We have several clients that have multiple IP adresses and they should not be favoured just because of that.

And the other problem with PCQ is, that it does seem to keep connections open and clients traffic limited, even if the pipe is empty. CIR and CBS is responding much quicker. Or am I mistaken here?

Cheers,
gartoffel

For switches I’m mostly familiar with Cisco. They can do this.

I already had a look both at PCQ and Queues in general. What I don’t get with PCQ is: Can I define a “client” as a server having several IP adresses or is a “client” always a single IP address? It not stated very clearly in the manual. Background of this question: We have several clients that have multiple IP adresses and they should not be favoured just because of that.

While PCQ isn’t necessarily by IP (look at the different classifiers in the manual), you cannot have it apply to an arbitrary group of IPs, so PCQ is not an option for you.

OK, humour me: What are we talking about? A Catalyst 2960 or something bigger? It’s all a question of the available budget and Netgear provides very good quality for the price you pay.

So If I understand correctly even Queues are not what I’m looking for. Or do I just add a leaf to the queuetree with all the IPs of ONE specific customer and then he can burst that leaf?

Maybe it’s easier to just buy a Cisco. At least I’m familiar with IOS :slight_smile:

Cheers,
gartoffel

Yes, you would mark the packets from/to all the IPs of a specific customer with the same packet marks. The leaf of the tree would police all packets with that packet mark, and thus all traffic from that customer regardless of source/destination IP of a particular packet. It wouldn’t care about IPs, just about those marks, and you have full control over what marks you set.
Queue trees would definitely work for you

Never used 2960s, but 3560s and 3750s can do quite a bit of QoS work. I actually think it’s easier in RouterOS, though.

OK great, I’ll look into it. Thanks!

Well, the 35xx are definitely too expensive for our company, so I’ll just stick to the plan and continue to use Netgear.

Hmm, I used IOS during my last job, so you get used to it (and you can do per-port QoS and don’t have to focus on IPs or Mac-Adresses).
Anyways, I’ll do some tests with ROS and see how the performance will look like. MikroTik should really present some stronger hardware in the future: The RB1100 is at it’s limit already with VRRP, Firewall and GBit Bonding… :slight_smile:

Cheers,
gartoffel