1 © 2001, Cisco Systems. MPLS-QoS Jay Kumarasamy
Cisco Systems, Inc. Agenda QoS Models Differentiated Model Features Modular QoS CLI (MQC) MPLS QoS Sample Examples
Cisco Systems, Inc. QoS Models Integrated Services (IntServ) Differentiated Services (Diffserv)
Cisco Systems, Inc. Time The QoS Pendulum
Cisco Systems, Inc. Integrated Model Application requests a specific kind of QoS service, through explicit signaling. Resource Reservation Protocol (RSVP) is used by applications to signal their QoS requirements to the router. Complex to use. Difficult to support with a large number of RSVP connections, due to: the amount of state information required for every flow. the amount of control traffic Fine grain, providing strict QoS.
Cisco Systems, Inc. Differentiated Model Qos is provided by differential treatment to each packet or class of packets. No explicit signaling from the application. This model is appropriate for aggregate flows. Coarse grain, not strict QoS (no guarantees).
Cisco Systems, Inc. Differentiated IP Services Guaranteed: Latency and Delivery Best Effort Delivery Guaranteed Delivery Voice , Web Browsing E-Commerce Application Traffic Platinum Class Low Latency Silver Bronze Gold Voice Traffic Classification Traffic Classification Differentiated Model Divide Traffic into Classes
Cisco Systems, Inc. Switching Fabric rx queuetx queue tx hw recv hw Differentiated Model Classification/ Marking policy Drop policy Scheduling policy
Cisco Systems, Inc. Agenda QoS Models Differentiated Model Features Modular QoS CLI (MQC) MPLS QoS Sample Examples
Cisco Systems, Inc. Differential Model Features Classification Marking Policing and Shaping Congestion Avoidance Congestion Management
Cisco Systems, Inc. Differentiated Model Features Classification Most fundamental QoS building block The component of a QoS feature that recognizes and distinguishes between different traffic streams Without classification, all packets are treated the same
Cisco Systems, Inc. Differentiated Model Features Marking VersionLengthLen Layer 3 IPV4 IDOffsetTTLProtoFCSIP-SAIP-DAData ToS 1 Byte IP Precedence DSCP Unused Bits; | Label | EXP |S| TTL |
Cisco Systems, Inc. Differentiated Model Features Policing and Shaping Policing is the QoS component that limits incoming traffic flow to a configured bit rate Shaping is the QoS feature component that regulates outgoing traffic flow to a configured bit rate
Cisco Systems, Inc. Differentiated Model Features Congestion Avoidance Drop Policy Tail Drop Random Early Detection (RED) Weighted Random Early Detection (WRED)
Cisco Systems, Inc. Differentiated Model Features Congestion Management Scheduling Policy FIFO Fair Queuing Weighted Fair Queuing (WFQ) Class Based Weighted Fair Queuing (CBWFQ) Low Latency Queuing (LLQ)
Cisco Systems, Inc. Agenda QoS Models Differentiated Model Features Modular QoS CLI (MQC) MPLS QoS Sample Examples
Cisco Systems, Inc. Modular QoS CLI Modular QoS CLI (MQC) Command syntax introduced in 12.0(5)T Reduces configuration steps and time Uniform CLI across all main Cisco IOS-based platforms Uniform CLI structure for all QoS features
Cisco Systems, Inc. Basic MQC Commands class-map [match-any | match-all] class-name router(config)# 1. Create Class Map - a traffic class ( match access list, input interface, IP Prec, DSCP, protocol (NBAR) src/dst MAC address, mpls exp). policy-map policy-map-name router(config)# 2. Create Policy Map (Service Policy) - Associate a class map with one or more QoS policies (bandwidth, police, queue- limit, random detect, shape, set prec, set DSCP, set mpls exp). service-policy {input | output} policy-map-name router(config-if)# 3. Attach Service Policy - Associate the policy map with an input or output interface.
Cisco Systems, Inc Create Class Map Router(config)# class-map class1 Router(config-cmap)# match ip precedence 5 Router(config-cmap)# exit Router(config)# policy-map policy1 Router(config-pmap)# class class1 Router(config-pmap-c)# set mpls experimental 5 Router(config-pmap-c)# bandwidth 3000 Router(config-pmap-c)# queue-limit 30 Router(config-pmap)# exit Router(config)# interface e1/1 Router(config-if)# service-policy output policy1 Router(config-if)# exit 2. Create Policy Map 3. Attach Service Policy Basic MQC Commands
Cisco Systems, Inc. Agenda QoS Models Differentiated Model Features Modular QoS CLI (MQC) MPLS Quality of Service Sample Examples
Cisco Systems, Inc. Conventional Router Label Edge Routers ATM-LSR Label Switching Router (LSR) Note: End to end service is IP; therefore, IP class of service is what MPLS must support MPLS QoS
Cisco Systems, Inc. ISP Customer MPLS 3) Invoke QoS Policy Action Based on Edge Classification (based on MPLS EXP), e.g. LLQ, CBWFQ, Drop Policy Low Priority via WRED if rate limit exceeded 1) Packet Classification through IP Prec/DSCP 2) Match IP Prec/DSCP; Set MPLS EXP. Rate-limit/Police and apply drop policy Core MPLS QoS
Cisco Systems, Inc. MPLS QoS ‘Differentiated Model’ approach: Set IP precedence or MPLS Exp bit at the edge of the network WRED by MPLS Exp, and WFQ by class in the core Because MPLS is there primarily to transport IP, MPLS’s primary QoS goal is to support existing IP QoS models Because MPLS is there to support very large scale operations, MPLS should also be capable of supporting Diff-Serv in the future
Cisco Systems, Inc. MPLS QoS Copy of IP Precedence into MPLS EXP Mapping of IP Precedence into MPLS EXP Prec: xyz IPv4 Packet MPLS Hdr Prec: xyzMPLS EXP: xyz Non-MPLS Domain MPLS Domain | Label | EXP |S| TTL |
Cisco Systems, Inc. MPLS QoS Diff-Serv : Jargon PHB = Per Hop Behavior The Diff-Serv treatment (scheduling/dropping) applied by a Router to all the packets which are to experience the same Diff-Serv service DSCP = Differentiated Services Code Point The value in the IP Header indicating which PHB is to be applied to the packet BA = Behavior Aggregate The set of all the packets which have the same DSCP (and thus that will receive the same PHB) OA = Ordered Aggregate The set of BAs which have an ordering constraint (“must go into the same queue”) PSC = PHB Scheduling Class The set of PHBs applied to an OA (the set of PHBs using the same queue”)
Cisco Systems, Inc. MPLS QoS Diff-Serv : DSCP DSCP CU EF x x x y y 0 DSCP CU AFxy Class DropPrecedence AF Class = 1, 2, 3, 4 Drop Precedence = 2, 4, 6
Cisco Systems, Inc. MPLS QoS Diff-Serv over MPLS Two methods: E-LSP “Queue” inferred from Label and E XP field “drop priority” inferred from label and EXP field L-LSP “Queue” inferred exclusively from L abel “drop priority” inferred from EXP field, by Francious Le Faucheur, et al
Cisco Systems, Inc. MPLS QoS E-LSP Example E-LSPs can be established by various label binding protocols (LDP or RSVP) Example above illustrates support of EF and AF1 on single E-LSP Note: EF and AF1 packets travel on single LSP (single label) but are enqueued in different queues (different EXP values) Queue is selected based on EXP E-LSP LSR LDP/RSVP EF AF1
Cisco Systems, Inc. MPLS QoS L-LSP Example L-LSPs can be established by various label binding protocols (LDP or RSVP) Example above illustrates support of EF and AF1 on separate L-LSPs EF and AF1 packets travel on separate LSPs and are enqueued in different queues (different label values) Queue is selected based on label, Discard is based on ESP L-LSPs LSR LDP/RSVP
Cisco Systems, Inc. MPLS QoS Edge DiffServ LSR with L-LSP | Label | EXP |S| TTL | IPv4 Packet MPLS Header Non-MPLS Diff-Serv Domain MPLS Diff-Serv Domain DSCP Edge LSR 1) identify incoming packet’s BA looking at incoming DSCP 2) pick the LSP/label which supports the right FEC and the right BA 3) mark the EXP field to reflect the packet’s BA DSCP
Cisco Systems, Inc. MPLS QoS Signaling E-LSPs can be set up with existing (non-DS-aware) signalling LDP, RSVP etc. EXP -> PHB mapping is configured on every router as per Diffserv L-LSPs require signalling extension to bind “queue” to a label New DIFFSERV object/TLV added to RSVP/LDP to signal the “queue” in which to enqueue the label Meaning of EXP bits is well-known (ie standardised for each PSC)
Cisco Systems, Inc. MPLS QoS E-LSP & L-LSP Applicability MPLS over PPP and LAN: both E-LSPs and L-LSPs are applicable MPLS over ATM: only L-LSPs possible (EXP is not seen by ATM LSR)
Cisco Systems, Inc. MPLS QoS On non-ATM LSRs, MPLS-QoS is simple Copy or Map IP precedence to MPLS exp field Exact same mechanism as IP-QoS Net result is end-to-end QoS indistinguishable from non-MPLS (IP) network
Cisco Systems, Inc. MPLS QoS MPLS QoS on ATM-LSRs Two Challenges: No WRED in switches No EXP field in header Solution Modes: ATM Forum PVC Multi VC (LSP)
Cisco Systems, Inc. MPLS QoS ATM Forum PVC Mode Looks like packet interface to MPLS QoS BW and other parameters configured on the PVC Requires significant amount of configuration ATM-LSR PVC
Cisco Systems, Inc. MPLS QoS Multi VC Mode ATM-LSR MPLS LVCs MPLS ATM core provides MPLS QoS at each link Configure each non-ATM LSR to support a number of classes (2-4) Parallel LVCs automatically established Assign weight to each class
Cisco Systems, Inc. MPLS QoS Multi VC Mode Queuing is done through CBWFQ (eg. Premium gets 80% of link, standard gets 20%) Unused bandwidth available to other classes No per-router-pair configuration required, as in ATM Forum PVC
Cisco Systems, Inc. Agenda QoS Models Differentiated Model Features Modular QoS CLI (MQC) MPLS Class of Service Examples
Cisco Systems, Inc. Examples PE 2 Pos 1/0 PE 3 MPLS Network PE 1 PE 4 CE 4 CE 2 PE 5 CE 1 CE 3 Pos 1/1 Pos 5/0 Pos 4/0 Pos 2/0 P 3
Cisco Systems, Inc. Examples ! Matching voice traffic from customer 1 Pe1(config)# class-map match-all cus1_voice Pe1(config-cmap)# match interface POS1/0 Pe1(config-cmap)# match ip precedence 4 Pe1(config-cmap)# end ! Matching voice traffic from customer 2 Pe1(config)# class-map match-all cus2_voice Pe1(config-cmap)# match interface POS1/1 Pe1(config-cmap)# match ip precedence 5 Pe1(config-cmap)# end ! Matching any e2e traffic Pe1(config)# class-map erp Pe1(config-cmap)# match ip precedence 2 Pe1(config-cmap)# end
Cisco Systems, Inc. Examples Pe1(config)# class-map isp_voice Pe1(config-cmap)# match mpls experimental 4 Pe1(config-cmap)# end Pe1(config)# class-map isp_erp Pe1(config-cmap)# match mpls experimental 2 Pe1(config-cmap)# end Pe1(config)# class-map isp_routine Pe1(config-cmap)# match mpls experimental 1 Pe1(config-cmap)# end
Cisco Systems, Inc. Examples ! Input Policy for setting experimental 4, 2, 1 Pe1(config)# policy-map pe1_input Pe1(config-pmap)# class cus1_voice Pe1(config-pmap-c)# set mpls experimental 4 Pe1(config-pmap-c)# exit Pe1(config-pmap)# class cus2_voice Pe1(config-pmap-c)# set mpls experimental 4 Pe1(config-pmap-c)# exit Pe1(config-pmap)# class erp Pe1(config-pmap-c)# set mpls experimental 2 Pe1(config-pmap-c)# exit Pe1(config-pmap)# class class-default Pe1(config-pmap-c)# set mpls experimental 1 Pe1(config-pmap)# exit
Cisco Systems, Inc. Examples ! Output Policy for configuring bandwidth, queue… Pe1(config)# policy-map policy pe1_output Pe1(config-pmap)# class isp_voice Pe1(config-pmap-c)# priority 100 Pe1(config-pmap-c)# exit Pe1(config-pmap)# class isp_erp Pe1(config-pmap-c)# bandwidth 50 Pe1(config-pmap-c)# queue-limit 30 Pe1(config-pmap-c)# exit Pe1(config-pmap)# class class-default Pe1(config-pmap-c)# bandwidth 20 Pe1(config-pmap-c)# queue-limit 100 Pe1(config-pmap-c)# exit Pe1(config-pmap)# exit
Cisco Systems, Inc. Examples Pe1(config)# interface POS1/0 Pe1(config-if)# service-policy input pe1_input Pe1(config)# interface POS1/1 Pe1(config-if)# service-policy input pe1_input Pe1(config)# interface POS2/0 Pe1(config-if)# service-policy output pe1_output
Cisco Systems, Inc. Examples PE 2 Pos 1/0 PE 3 MPLS Network LC-ATM PE 4 CE 4 CE 2 PE 5 CE 1 CE 3 Pos 1/1 Pos 5/0 Pos 4/0 ATM Core PE 1 LSC1
Cisco Systems, Inc. Pe1(config)# ATM1/0 Pe1(config-if)# no ip address Pe1(config-if)# atm clock INTERNAL Pe1(config-if)# no atm ilmi-keepalive Pe1(config-if)# exit Pe1(config)# interface ATM1/0.1 tag-switching Pe1(config-if)# ip unnumbered loopback0 Pe1(config-if)# tag-switching multi-vc Pe1(config-if)# tag-switching atm vpi 2-5 Pe1(config-if)# tag-switching ip ! Sets up 3 LVCs. Pe1(config)# cos-map 1 ! 3 - standard Pe1(config-mpls-cos-map)# class 3 standard ! 2 - premium Pe1(config-mpls-cos-map)# exit ! 1 - standard ! 0 – available Pe1(config)# mpls prefix-map 1 access-list 1 cos-map 1 Examples
Cisco Systems, Inc. Examples ! Matching voice traffic from customer 1 Pe1(config)# class-map match-all cus1_voice Pe1(config-cmap)# match interface POS1/0 Pe1(config-cmap)# match ip precedence 4 Pe1(config-cmap)# end ! Matching voice traffic from customer 2 Pe1(config)# class-map match-all cus2_voice Pe1(config-cmap)# match interface POS1/1 Pe1(config-cmap)# match ip precedence 5 Pe1(config-cmap)# end ! Matching any e2e traffic Pe1(config)# class-map erp Pe1(config-cmap)# match ip precedence 2 Pe1(config-cmap)# end
Cisco Systems, Inc. Examples P! Input Policy for setting experimental 2, 1, 0 e1(config)# policy-map pe1_input Pe1(config-pmap)# class cus1_voice Pe1(config-pmap-c)# set mpls experimental 2 ! Voice for customer 1 Pe1(config-pmap-c)# exit Pe1(config-pmap)# class cus2_voice Pe1(config-pmap-c)# set mpls experimental 2 ! Voice for customer 2 Pe1(config-pmap-c)# exit Pe1(config-pmap)# class erp Pe1(config-pmap-c)# set mpls experimental 1 ! ERP data Pe1(config-pmap-c)# exit Pe1(config-pmap)# class class-default Pe1(config-pmap-c)# set mpls experimental 0 ! All other traffic Pe1(config-pmap)# exit Pe1(config)# class-map isp_voice Pe1(config-cmap)# match mpls experimental 2 Pe1(config-cmap)# end
Cisco Systems, Inc. Examples Pe1(config)# class-map isp_erp Pe1(config-cmap)# match mpls experimental 1 Pe1(config-cmap)# end Pe1(config)# class-map isp_available Pe1(config-cmap)# match mpls experimental 0 Pe1(config-cmap)# end ! Output Policy for configuring bandwidth, queue… Pe1(config)# policy-map policy pe1_output Pe1(config-pmap)# class isp_voice Pe1(config-pmap-c)# priority 100
Cisco Systems, Inc. Examples Pe1(config-pmap-c)# exit Pe1(config-pmap)# class isp_erp Pe1(config-pmap-c)# bandwidth 50 Pe1(config-pmap-c)# queue-limit 30 Pe1(config-pmap-c)# exit Pe1(config-pmap)# class isp_available Pe1(config-pmap-c)# bandwidth 20 Pe1(config-pmap-c)# queue-limit 100 Pe1(config-pmap-c)# exit Pe1(config-pmap)# exit
Cisco Systems, Inc. Examples LSC1 Interface XTagATM11 extended-port ATM3/0 bpx 1.1 tag-switching atm vpi 2-15 tag-switching atm cos available 20 tag-switching atm cos standard 30 tag-switching atm cos premium 50 tag-switching ip Interface XTagATM12 extended-port ATM3/0 bpx 1.2 tag-switching atm vpi 2-15 tag-switching atm cos available 20 tag-switching atm cos standard 30 tag-switching atm cos premium 50 tag-switching ip
Cisco Systems, Inc.