04-10-2024 11:58 PM
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..?
04-11-2024 12:10 AM
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
04-11-2024 12:37 AM
@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
04-12-2024 12:07 AM
I want to prioritize that IP
yes possible - hope you got a chance to read the documents provided with example
04-11-2024 02:48 AM
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.
04-12-2024 04:22 AM
@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..?
04-12-2024 04:56 AM
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.
04-14-2024 11:10 PM - edited 04-14-2024 11:12 PM
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..?
04-15-2024 02:55 AM
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.
04-15-2024 10:24 PM - edited 04-15-2024 11:50 PM
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.
04-16-2024 03:16 AM
"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".
04-16-2024 03:45 AM
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..?
04-16-2024 05:01 PM - edited 04-16-2024 05:06 PM
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%.])
04-18-2024 09:28 PM
@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..?
04-19-2024 03:20 PM
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#/#/#"?
Discover and save your favorite ideas. Come back to expert answers, step-by-step guides, recent topics, and more.
New here? Get started with these tips. How to use Community New member guide