Monday, July 30, 2018

Implementing basic VoIP QoS policy on Catalyst/IOS

I'm super interested in QoS, but I'm not in a place to deep-dive into it just yet. I'm looking for a basic VoIP QoS policy I can roll out, then expand on later if needed.

We are rolling out VoIP across a 100% Cisco LAN with minimum 1Gbps connectivity to all switches. Congestion is very rare, but a few interfaces show nonzero output drops, and in keeping with best practices and vendor recommendations, I'm looking at rolling out QoS along with our deployment.

The network is mostly 3560/3750-era Catalyst switches, but some 3650/3850/Nexus gear too. We are rolling out mostly Mitel IP420g phones, but a few IP480s as well.

So far I've read:

I'm looking for the most basic QoS configuration that achieves this result (from page 42 of the Mitel guide):

Mitel recommends the following values for QoS traffic marking:

  • RTP Traffic – Expedited Forwarding or PHB-EF, that is, DSCP 46 or 184 (ToS (dec) value set on the Call Control Options page in Mitel Connect Director)
  • Signaling Traffic – Class Selector 3 or PHB-CS3, that is, DSCP 24 or 96 (ToS (dec) value set on the Call Control Options page in Connect Director)

All sites use PRIs exclusively for incoming/outgoing calls, so no VoIP traffic will leave our AS. QoS only applies within the managed LAN/WAN. All WAN sites use Comcast EPL or dark fiber for connectivity.

So far, here's what I've deduced, mostly from the Cisco Live slide deck:

! Global config mls qos mls qos map cos-dscp 0 8 16 24 32 46 48 56 ! policy-map MARKING-POLICY class VOICE set dscp ef class MULTIMEDIA-CONFERENCING set dscp af41 class CALL-SIGNALING set dscp cs3 class TRANSACTIONAL-DATA set dscp af21 class BULK-DATA set dscp af11 class SCAVENGER set dscp cs1 class DEFAULT set dscp default ! mls qos srr-queue input priority-queue 2 bandwidth 30 mls qos srr-queue input bandwidth 70 30 mls qos srr-queue input buffers 90 10 mls qos srr-queue input threshold 1 80 90 mls qos srr-queue input cos-map queue 1 threshold 1 0 1 2 mls qos srr-queue input cos-map queue 1 threshold 2 3 mls qos srr-queue input cos-map queue 1 threshold 3 6 7 mls qos srr-queue input cos-map queue 2 threshold 1 4 5 mls qos srr-queue input dscp-map queue 1 threshold 1 0 8 10 12 14 mls qos srr-queue input dscp-map queue 1 threshold 1 16 18 20 22 mls qos srr-queue input dscp-map queue 1 threshold 2 24 mls qos srr-queue input dscp-map queue 1 threshold 3 48 56 mls qos srr-queue input dscp-map queue 2 threshold 3 32 40 46 ! mls qos queue-set output 1 buffers 15 30 35 20 mls qos queue-set output 1 threshold 1 100 100 100 100 mls qos queue-set output 1 threshold 2 80 90 100 400 mls qos queue-set output 1 threshold 3 100 100 100 400 mls qos queue-set output 1 threshold 4 60 100 100 400 mls qos srr-queue output cos-map queue 1 threshold 3 4 5 mls qos srr-queue output cos-map queue 2 threshold 1 2 mls qos srr-queue output cos-map queue 2 threshold 2 3 mls qos srr-queue output cos-map queue 2 threshold 3 6 7 mls qos srr-queue output cos-map queue 3 threshold 3 0 mls qos srr-queue output cos-map queue 4 threshold 3 1 mls qos srr-queue output dscp-map queue 1 threshold 3 32 40 46 mls qos srr-queue output dscp-map queue 2 threshold 1 16 18 20 22 mls qos srr-queue output dscp-map queue 2 threshold 1 26 28 30 34 36 38 mls qos srr-queue output dscp-map queue 2 threshold 2 24 mls qos srr-queue output dscp-map queue 2 threshold 3 48 56 mls qos srr-queue output dscp-map queue 3 threshold 3 0 mls qos srr-queue output dscp-map queue 4 threshold 1 8 mls qos srr-queue output dscp-map queue 4 threshold 2 10 12 14 ! ! Per-interface: queue-set 1 service-policy input MARKING-POLICY srr-queue bandwidth share 1 30 35 5 priority-queue out ! For trunks/uplinks mls qos trust dscp ! 

Questions:

  1. The config above doesn't include class-maps. I assume marking traffic via L3/L4 characteristics is probably the most robust way of ensuring proper marking. The Mitel guide says Mitel gear doesn't mark its own traffic in all cases. Can anyone share an example of good VoIP class-maps?
  2. I've heard AutoQoS might be a good option, but I'm pretty averse to "automatic" solutions. Can anyone expand on the pros/cons of it?
  3. The config above is for a general-purpose QoS policy, not just for VoIP. I wonder if there's any way to simplify it without unduly limiting QoS options in the future?

Thanks in advance!



No comments:

Post a Comment