cancel
Showing results for 
Search instead for 
Did you mean: 
cancel
585
Views
1
Helpful
17
Replies

QOS for a Destination-ip in Cisco IOSXE

titusroz03
Level 1
Level 1

Hi All,

We have a URL which resolves to particular public ip and performance of that website is slow than expected from our office . We have a P2P link from office to DataCentre and from DataCentre it exits to internet. We observed the performance was comparatively better from Data center connected machine and open Internet rather than office network.

 

I need some knowledge on how we can prioritize through QOS on the P2P link towards DC,already we have QOS for EF,AP and VC traffic .Along with this I need the URL traffic should also be prioritized.Can anyone help me with this..? 

17 Replies 17

balaji.bandi
Hall of Fame
Hall of Fame

Depends on what model and what IOS XE code running on the device, you looking to do end to end ?

are you looking only that IP to be prioritize or all http/https  traffic ?

You can reserve certain percentage bandwidth for that and remain for other traffic ?

some example  here - check and deploy and monitor (make sure you understand before deploying, wrong marking has different outcomes.)

https://www.ciscolive.com/c/dam/r/ciscolive/emea/docs/2020/pdf/BRKCRS-2501.pdf

 

BB

***** Rate All Helpful Responses *****

How to Ask The Cisco Community for Help

@balaji.bandi It is a P2P network in which we use eigrp as the routing protocol,I will need to apply the service-policy on the eigrp uplink interface.

I want to prioritize that IP than other Http/https traffic, is that reserving the percentage bandwith is only option for this..Is there any chance

 

I want to prioritize that IP 

yes  possible - hope you got a chance to read the documents provided with example

 

 

BB

***** Rate All Helpful Responses *****

How to Ask The Cisco Community for Help

Joseph W. Doherty
Hall of Fame
Hall of Fame

Can anyone help you prioritize traffic under IOSXE?  Very likely the answer is yes.

However, the 64 bit question is - will it solve your performance issue?  For that question there's insufficient information.

@Joseph W. Doherty My requirement is to prioritize a certain public ip and make it front in que all times comparing to other traffic. I am exploring to do this through bandwith percentage allocation for that IP using AcL..Or there any specific options..?

Yes, again, that's possible.

You would identify the IP(s) using an ACL, as you suppose.

Reference that ACL within a class-map.

Reference that class-map, as a class within a CBWFQ policy.

Invoke that policy as an out service policy.

Since you didn't post how you're actually doing your existing QoS, cannot be more specific, but possibly you already have an active CBWFQ out policy.

Again, though, from the information you've posted, also cannot say doing what you want will improve performance of that traffic.

 

titusroz03
Level 1
Level 1

@Joseph W. Doherty 

Below is the policy MAP called in OUT direction

 

policy-map XXXX
class CM_EF
bandwidth percent 20
class CM_VC
bandwidth percent 30
class CM_NC
bandwidth percent 5
class CM_AF
bandwidth percent 20
class class-default
random-detect

 

Building configuration...

Current configuration : 314 bytes
!
interface GigabitEthernet1/0/1
service-policy output XXXX
end

Bandwith of the link is 1 Gig, do you think if I capture the ACL class map under this policy map with bandwidth percentage of 1 will work to dedicate 10 Mbps for the destinations in ACL..?Is there any way to prioritize this ACL or bring it in front que in the class default traffic itself..?

Insufficient information to comment whether 10 Mbps will improve your special web traffic performance.  Easy enough to try it.  It would also provide you information you don't currently have.

"Is there any way to prioritize this ACL or bring it in front que in the class default traffic itself..?"

Not since Cisco's CBWFQ HQF.

Two questions:

Both sides of this WAN link have an out QoS policy?

The WAN link is full gig, not just ports running at gig?

BTW, it's unusual not to use LLQ for EF traffic.

This is a P2P link and the other end connects to Data Centre core switch. QOS is not applied on EGRESS of the other end. Do we need to apply for improving the performance...?

This P2P link itself is one Gig including the interface. Could also provide suggestion for including LLQ as well.

 

"QOS is not applied on EGRESS of the other end. Do we need to apply for improving the performance...?"

Need?  Improve performance?  Insufficient information to say.  However as almost all traffic is bidirectional, it should be considered.  Further, "down" traffic is often of a heavier volume.

"Could also provide suggestion for including LLQ as well."

Replace "bandwidth" keyword with "priority".

 

titusroz03
Level 1
Level 1

@Joseph W. Doherty 

Thanks for your suggestion so far. So far I've started in clean slate to classify the traffic according to the protocol and build up class maps and policies based.

Capturing MS Traffic through protocol

class-map match-all CM_TEAMS_VOICE
match protocol ms-teams-audio
class-map match-all CM_TEAMS_VIDEO
match protocol ms-teams-video
class-map match-all CM_TEAMS_MEDIA
match protocol ms-teams-media
class-map match-all CM_TEAMS_APP-SHARING
match protocol ms-teams-app-sharing

Classify traffic through Ip prrecedence

class-map match-any CM_EF
description Expedited Forwarding
match ip precedence 5
class-map match-any CM_VC
description Video Class Traffic
match precedence 4
class-map match-any CM_AF
description Assured Forwarding
match ip precedence 2 3
class-map match-any CM_NC
description Network Control
match ip precedence 6 7

Setting QOS on the ports

policy-map POL_CLASS
class CM_TEAMS_VOICE
set qos-group 7
class CM_TEAMS_VIDEO
set qos-group 6
class CM_TEAMS_MEDIA
set qos-group 6
class CM_TEAMS_APP-SHARING
set qos-group 2
class CM_EF
set qos-group 7
class CM_VC
set qos-group 6
class CM_NC
set qos-group 5
class CM_AF
set qos-group 2
class class-default
set qos-group 0

Classify QOS group
class-map match-all CM_QOS-G7
match qos-group 7
class-map match-all CM_QOS-G6
match qos-group 6
class-map match-all CM_QOS-G5
match qos-group 5
class-map match-all CM_QOS-G2
match qos-group 2
class-map match-all CM_QOS-G0
match qos-group 0

Build out policy based on above QOS group class maps
policy-map OUT
class CM_QOS-G7
bandwidth percent 20
PRIORITY percent 10
set dscp ef
class CM_QOS-G6
bandwidth percent 20
set dscp af41
class CM_QOS-G5
bandwidth percent 20
class CM_QOS-G2
bandwidth percent 20
class CM_QOS-G0
bandwidth percent 20

 

int gi1/0/2

service policy input POL_CLASS

service policy output OUT

I have planned to apply this only on WAN uplinks and also need your ideas if we can apply this in User connected ports as well to improve the Teams audio and video performance..?

An impressive set of policies, using QoS groups the way you have.  Mind you, personally I would write a similar policy in a more condensed manner (I show how, below) and would approach an actual policy differently, but again, I don't believe I've seen anyone else use QoS groups as well.  Just curious, did you find this approach documented somewhere or did you figure it out yourself?

Anyway, you could obtain similar using something like:

 

 

class-map match-any CM_QOS-G7
 match ip precedence 5
 match protocol ms-teams-audio
class-map match-any CM_QOS-G6
 match precedence 4
 match protocol ms-teams-video
 match protocol ms-teams-media
class-map match-any CM_QOS-G5
 match precedence 6 7
class-map match-any CM_QOS-G2
 match precedence 2
 match protocol ms-teams-app-sharing

policy-map OUT
 class CM_QOS-G7
  PRIORITY percent 20
  set dscp ef
 class CM_QOS-G6
  bandwidth percent 20
  set dscp af41
 class CM_QOS-G5
  bandwidth percent 20
 class CM_QOS-G2
  bandwidth percent 20
 class class-default
  bandwidth percent 20

 

 

Again, nothing wrong, in principal, with what you did.  The above is just a way to use only an out policy and less class maps.

If you do use both an input and output policy, remember, the input policy would be on the LAN interface(s) and the output policy on the WAN interface.

This:

 

 

class CM_QOS-G7
bandwidth percent 20
PRIORITY percent 10

 

 

is incorrect. You use either the bandwidth or the priority keyword.

 

 

Router(config-pmap-c)#?
  bandwidth       Bandwidth
  exit            Exit from class action configuration mode
  fair-queue      Enable Flow-based Fair Queuing in this class
  no              Negate or set default values of a command
  priority        Strict Scheduling Priority for this Class
  queue-limit     Queue Max Threshold for Tail Drop
  random-detect   Enable Random Early Detection as drop policy
  service-policy  Configure Flow Next
  set             Set QoS values
  shape           Traffic Shaping

 

 

"I have planned to apply this only on WAN uplinks and also need your ideas if we can apply this in User connected ports as well to improve the Teams audio and video performance..?"

Well, firstly QoS books recommend using QoS configs, end-to-end, and the best reason for doing so is you don't overlook configuring QoS where it's truly needed.  However, if QoS isn't truly needed, then you also don't need to configure it.  As (sorry, but again) there's insufficient information to say whether your user interfaces need QoS configurations.

That said, if all your traffic is to/from the WAN gig link, and there's no branch host-to-host traffic, and your hosts are also gig interfaces, they could not become congested.

Also keep in mind, Cisco QoS features vary by platforms, Cisco switches, almost always, are much less QoS capable than Cisco routers.  For example, features like protocol matching, in the past, usually not supported on Cisco switches.  I.e.  possibly you couldn't have exactly the same policy.

Also BTW, Cisco routers' QoS often support (what I consider to be) a very powerful QoS feature, fair-queue.  This policy class feature attempts to provide every flow, within a class, the same ratio of bandwidth, which, is actually what you appear to be doing between your classes (if each has a 20% allocation - although LLQ's 20% is not exactly the same "equal").

In my, not so humble, opinion, FQ does so well, when the platforms supports it, I generally suggest the following policy-map:

 

 

policy-map GeneralPurpose
 class real-time
  priority percent 35
 class Foreground
  bandwidth remaining percent 81
  fair-queue
 class Background
  bandwidth remaining percent 1
  fair-queue
 class class-default
  bandwidth remaining percent 9
  fair-queue

 

 

In such a policy, traffic like VoIP or video conferencing go into the real-time class, mostly everything else goes into class-default.  If there's something that really, really (really) needs prioritization I direct it to the Foreground class.  If there something that's a bandwidth hog, but will happily run with whatever bandwidth it gets, I'll drop that into the Background class.  (BTW the way, to understand bandwidth allocations is they determine ratios when all classes want that much bandwidth or more, but it's not reserved otherwise.  So, for example, a flow in the Background class could obtain 100% of link bandwidth, when it's otherwise unused, but can be pushed down to a tiny bandwidth allocation when other traffic wants bandwidth.  However, it won't be totally starved of bandwidth.  [In usage, what you might observe is such Background flows causing a link to run at 100% utilization, yet all other traffic acts as if the link is almost 100% bandwidth available.  For example if you ping across such a QoS configured link, assuming your pings are also in the default class, and there's no traffic in real-time or Foreground classes, ping times might be almost identical for link usage 1% or 100%.])

titusroz03
Level 1
Level 1

@Joseph W. Doherty Thanks for your ideas ,it was really impressive and helpful.

Have applied the below policy map in OUT direction but I couldn't see the packets count increased but instead the total bytes output get increases. At the same time policy towards ingress which captures the match protocols increases.

Input policy-For capturing the protocol traffic through NBAR


Service-policy input: Prod-QoS-Q4-2022_Policy & marking.

Class-map:AudioQOS (match-any)
465973 packets
Match: protocol ms-teams-audio
Match: protocol ringcentral-audio
Match: protocol cisco-jabber-audio
Match: protocol wifi-calling
Match: protocol webex-audio
QoS Set
dscp ef

Class-map:Video_QoS (match-any)
750489 packets
Match: protocol ringcentral-video
Match: protocol ms-teams-video
Match: protocol ms-lync-video
Match: protocol cisco-jabber-video
Match: protocol webex-video
QoS Set
dscp af41

Class-map: Media_QoS
48197 packets
Match: protocol webex-media
Match: protocol webex-app-sharing
Match: protocol ms-teams-media
Match: protocol ms-teams-app-sharing
QoS Set
dscp af21

Class-map: class-default (match-any)
19851931 packets
Match: any

 

Output policy- Capture the marked traffic and Apply bandwith percentage


Service-policy output: HK_OUT_QOS

Class-map: CM_EF (match-any)
0 packets
Match: ip precedence 5
Match: ip dscp ef (46)
Queueing

(total drops) 0
(bytes output) 169567386575
bandwidth 20% (200000 kbps)

Class-map: CM_VC (match-any)
0 packets
Match: precedence 4
Match: ip dscp af41 (34)
Queueing

(total drops) 0
(bytes output) 432862687548
bandwidth 30% (300000 kbps)

Class-map: CM_NC (match-any)
0 packets
Match: ip precedence 6 7
Queueing

(total drops) 0
(bytes output) 0
bandwidth 5% (50000 kbps)

Class-map: CM_AF (match-any)
0 packets
Match: ip precedence 2 3
Match: ip dscp af21 (18)
Queueing

(total drops) 0
(bytes output) 24835247062
bandwidth 20% (200000 kbps)

Class-map: class-default (match-any)
0 packets
Match: any


(total drops) 2733557606
(bytes output) 21938056495717

How can I ensure if my policy is working correctly..?

BTW, when you match with IPPrec, it matches the DSCP having the same first 3 bits.  So, for example, IPPrec 5 will also match DSCP EF, IPPrec 4 will also match CS4, AF41, AF42 and AF43, etc.  I.e. You don't need to also match the DSCP values IPPrec covers.

(total drops) 2733557606

Hmm, that might not be too good.

Your posted reply is everything shown for a "sh policy-map interface g#/#/#"?

Review Cisco Networking products for a $25 gift card