This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

QoS: Limiting Outbound HTTP Traffic

Hello all,

ASG 7.306

I've created a traffic selector (Internal Networks -> HTTP -> Any)
I've created a bandwidth pool using the traffic selector (64Kbps reserved, 256Kbps limit)
I've enabled and set the downlink and uplink speeds on the public interface

Transparent proxying is turned on.

Issue: irrespective of the reserved or limit put in place, HTTP traffic still runs at upto 10Mbps (our to internet link speed). How can I limit throughput?

What am I doing wrong?

TIA,

James


This thread was automatically locked due to age.
Parents Reply Children
  • Thanks for you replies. I just want to throttle all HTTP traffic (upload and download) to/from the web. So the external interface is the way to go? I'll give it a shot.
  • I gave the revised shaping a go using the public IP ... but no dice. No shaping. Or does it just not work?
  • James, this works fine but it's kinda tricky as far as I'm concerned.  Sometimes the problem is not what you think it is.  That's why I asked, "What problem does this cause? And, is this an upload from inside your network, or a download from outside?"

    Cheers - Bob
  • What I want to achieve is to put a bandwidth cap on all HTTP traffic going to/from internet. So if I'm downloading a CentOS5 ISO from a local Australian mirror and I've capped to 4Mbps - then the file should download at no more than 4Mbps - not at 10Mbps. If I'm uploading a large file using Filezilla then it's capped to no more than 4Mbps.

    I've tested it for a few hours now with various permutations and can categorically say it doesn't work as advertised. One for Astaro support?
  • James, I think you're as stubborn as I am!  Maybe? ... "What problem does this cause? And, is this an upload from inside your network, or a download from outside?" [;)]

    Cheers - Bob
  • Bob, I think he means both ways[;)] In other words he wants to throttle incoming as well as outgoing http traffic.

    James the problem is that the qos is only configurable for outgoing traffic ie. the traffic that looks like its going out to astaro. That is why most people only apply it to external interface. But the same applies to internal interface because all your LAN traffic incoming to your local network is outgoing on LAN interface for astaro. 

    So for regular http traffic outbound turn on qos for external interface, define a traffic selector ANY--HTTP--ANY, call it httptraffic. Create a bandwidth pool for external UP name it httpqos, define bandwidth at 4096 and specify upper limit to 4096 (this is what does the actual throttling). This will essentially throttle your http upload to 4096.

    Now turn on qos for your LAN network and use the same selector with the same settings, just apply on LAN UP. This will throttle your download speed.

    The problem you are having is that you have http proxy turned on. So you will have to throttle that traffic coming in to your network. Create a service definition http proxy reverse source port 8080 destination 1:65535. Now add this to your LAN qos rule by creating a new selector http proxy traffic,
    ANY...HTTP proxy reverse ... ANY

    Hope this made some sense. QoS is one area where astaro's documentation needs a lot of improvement.
  • Billybob, I don't disagree with you.  Your post makes me wonder if Astaro shouldn't change the configuration from a description of the proposed solution to a description of the problem...

    Cheers - Bob
  • Well the problem is that QoS wasn't really designed for throttling purposes (don't quote me on that). But down the line some smart people figured that hey they can throttle different services using the same mechanism. I mostly use it at home for my ppoe connection to keep p2p apps choking my uplink pipe.

    I don't think astaro's qos is designed for throttling. Its basic function is to make sure a service gets a certain amount of specified bandwidth.Where you take it from there is up to your imagination. But probably would be a great idea if you could just have built in rules where you could just say drop Bob's web surfing to only 56kbps after certain quota is reached. Talking about quotas, has anybody added that to the feature request yet[:D]
  • As in why do I want to shape? We have multiple protocols that pass through the ASG cluster:

    FTP/S to Gene6 in DMZ
    HTTP to Apache in DMZ
    VPN to branch offices
    Numerous protocols NAT'd outbound

    My problem is that HTTP/HTTPS is killing our link, stalling our VPN and generally making life difficult for people accessing our FTP and HTTP servers. I'm seeing upto 1.5M URLs being proxied a day.

    I have setup QoS rules to guarantee bandwidth to the DMZ services. However, I just want to cap HTTP/S downloads by users behind our firewall. A "cannot exceed" limit if you like. I can do this easily at a switch level but would prefer to do this at the firewall.

    Setting a QoS bandwidth pool that covers HTTP/HTTPS from our primary public IP to any with a guaranteed 1024Kbps and a maximum 4096Kbps _should_ to my mind throttle HTTP/S traffic to 4Mbps. But it doesn't. Either I'm deranged, don't understand the functionality or it just doesn't work.

    This is what I do on our Brocade switches to cap an interface at 10Mbps:

    interface e 1/10
     rate-limit input access-group 105 policy-map DRD_STUDIOS         
      Fwd:        10701725055             Drop:  0 bytes
      Re-mark:    0                       Total: 10701725055 bytes
     rate-limit output access-group 105 policy-map DRD_STUDIOS
      Fwd:        48706933292             Drop:  189448716 bytes
      Re-mark:    0                       Total: 48896382008 bytes

    policy-map DRD_STUDIOS
      cir 10237008 cbs 10240000
  • Either I'm deranged, don't understand the functionality or it just doesn't work.

    Is that a multiple-guess question, or can I answer all-of-the-above? [;)]

    You're right that thinking about Astaro QoS like Cisco or Brocade will cause you to make the wrong decisions about what to do.

    If I understand your situation, the only solution is to limit the HTTP traffic at the switch between the Astaro and the internal network.  As techuser said, the problem is that you can't make explicit QoS rules on the Astaro Internal interface for traffic that goes via the HTTP proxy.

    My guess is that the problem is that inbound requests from the Internet are being buried by the downloads by your internal users.  If that's the case, you don't need to limit them to 4 out of 10MB; I guess that a limit to 9.5MB would leave more bandwidth than necessary to handle the requests.

    There's a chance that you could use Astaro QoS.  Make a traffic selector 'Internal (Network) -> HTTP -> Any' on the External interface, and limit the traffic to 128KB, maybe only 64KB.  The idea is to limit the volume of packets leaving the Astaro, to limit the volume of requests.

    With the new WAN uplink balancing capability, you might get more throughput in both directions at a lower expense with a combination of two or three inexpensive connections.

    Cheers - Bob