In the network I'm trying to manage there is a satellite link, the upstream of which is ~ 7 Mbps. In this upstream, I need to allocate 1.5 Mbps of guaranteed bandwidth for one single host, but nothing seems to work properly.

I'm testing upstream bandwidth with iperf3, and maximum avarage bit rate I could get with transmitting data is ~ 600 kbps.

[ ID] Interval           Transfer     Bandwidth
[  5]   0.00-132.38 sec  0.00 Bytes  0.00 bits/sec                  sender
[  5]   0.00-132.38 sec  9.82 MBytes   622 Kbits/sec                receiver

All traffic goes through the gi0 / 0.65 interface

enter image description here

Cisco IOS version

Cisco IOS Software, C2900 Software (C2900-UNIVERSALK9_NPE-M), Version 15.3(3)M3, RELEASE SOFTWARE (fc1)

Policy settings

interface GigabitEthernet0/0.65
 encapsulation dot1Q 65
 ip address
 service-policy output gi0/0.65_return-channel

Policy Map gi0/0.65_return-channel
   Class class-default
     Average Rate Traffic Shaping
     cir 6500000 (bps)
     service-policy Only-host-fixed

Policy Map Only-host-fixed
   Class host-fixed
     priority 1500 (kbps) 9600

Class Map match-all host-fixed (id 1)
   Match access-group name host-fixed

Extended IP access list host-fixed
    10 permit ip host any (40908 matches)

I tried explicit bandwidth command in class, tried bandwidth percent, it just does not work, so lastly I tried priority command.

Here quick picture to illustrate upstream bandwidth.

enter image description here

I am definitely missing something out about QoS configuration.

  • Is this TCP you are testing? – Ron Maupin Apr 22 '20 at 4:40
  • @RonMaupin yes, it's TCP – vudex Apr 22 '20 at 4:48
  • 1
    Can you actually achieve the ~7Mbit/s upstream through that path? Satellite links are usually high latency, and this increases the bandwidth * delay product (a.k.a. "bytes in flight") way beyond (unscaled) TCP receive windows of the end systems. Use switch.ch/network/tools/tcp_throughput or wintelguy.com/wanperf.pl to play with some numbers). Depending on host OS, you might have to make sure that iPerf makes the TCP receive window scale with -w <buffer size>. Alternatively: just send off UDP at the desired rate. – Marc 'netztier' Luethi Apr 22 '20 at 5:08
  • 1
    Also: Please remember that QoS only kicks in once a link/interface (or: your parent shaping class) gets saturated. If you'll want to see these 1.5Mbps guaranteed for that single host, you'll have to have other traffic actually saturating/oversubscribing that link. – Marc 'netztier' Luethi Apr 22 '20 at 5:14
  • 1
    Another tripwire to avoid: (depending on platform) egress (in extenso: queuing) QoS class-maps/policy maps can not always match on the same set of criteria as ingress class-maps/policy-maps do (without having checked: matching on tcp/udp ports with an ACL or on application using NBAR fall in this category). A safe strategy against this is to match and mark traffic upon ingress into the device (by setting DSCP or IP Precence), and to just match on DSCP or Precedence for queuing/shaping on the egress side. – Marc 'netztier' Luethi Apr 22 '20 at 7:33

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Browse other questions tagged or ask your own question.