MPLS-QoS Jay Kumarasamy jayk@cisco.com © 2001, Cisco Systems. 1 Agenda • • • • • 2001 Cisco Systems, Inc. QoS Models Differentiated Model Features Modular QoS CLI (MQC) MPLS QoS Sample Examples www.cisco.com 2 QoS Models • Integrated Services (IntServ) • Differentiated Services (Diffserv) 2001 Cisco Systems, Inc. www.cisco.com 3 The QoS Pendulum Time No state Aggregated state Best Effort DiffServ Per-flow state IntServ / RSVP 1. The original IP service 2. First efforts at IP QoS 3. Seeking simplicity and scale 4. Bandwidth Optimization & e2e SLAs ((IntServ+DiffServ+ Traffic Engineering)) 2001 Cisco Systems, Inc. www.cisco.com 4 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. 2001 Cisco Systems, Inc. www.cisco.com 5 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). 2001 Cisco Systems, Inc. www.cisco.com 6 Differentiated Model Divide Traffic into Classes Differentiated IP Services Voice Platinum Class Low Latency Gold Guaranteed: Latency and Delivery Silver Guaranteed Delivery Bronze Best Effort Delivery E-Commerce Application Traffic Traffic Classification E-mail, Web Browsing Voice 2001 Cisco Systems, Inc. www.cisco.com 7 Differentiated Model Classification/ Marking policy Drop policy Scheduling policy Switching Fabric rx queue tx queue tx hw recv hw 2001 Cisco Systems, Inc. www.cisco.com 8 Agenda • • • • • 2001 Cisco Systems, Inc. QoS Models Differentiated Model Features Modular QoS CLI (MQC) MPLS QoS Sample Examples www.cisco.com 9 Differential Model Features 2001 Cisco Systems, Inc. • Classification • Marking • Policing and Shaping • Congestion Avoidance • Congestion Management www.cisco.com 10 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 2001 Cisco Systems, Inc. www.cisco.com 11 Differentiated Model Features Marking Layer 3 IPV4 Version ToS Length 1 Byte Len ID Offset TTL Proto FCS IP-SA IP-DA Data 7 6 5 4 IP Precedence 3 2 1 0 Unused Bits; DSCP 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Label | EXP |S| TTL | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 2001 Cisco Systems, Inc. www.cisco.com 12 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 2001 Cisco Systems, Inc. www.cisco.com 13 Differentiated Model Features Congestion Avoidance Drop Policy • Tail Drop • Random Early Detection (RED) • Weighted Random Early Detection (WRED) 2001 Cisco Systems, Inc. www.cisco.com 14 Differentiated Model Features Congestion Management Scheduling Policy • FIFO • Fair Queuing • Weighted Fair Queuing (WFQ) • Class Based Weighted Fair Queuing (CBWFQ) • Low Latency Queuing (LLQ) 2001 Cisco Systems, Inc. www.cisco.com 15 Agenda • • • • • 2001 Cisco Systems, Inc. QoS Models Differentiated Model Features Modular QoS CLI (MQC) MPLS QoS Sample Examples www.cisco.com 16 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 2001 Cisco Systems, Inc. www.cisco.com 17 Basic MQC Commands router(config)# class-map [match-any | match-all] class-name • 1. Create Class Map - a traffic class ( match access list, input interface, IP Prec, DSCP, protocol (NBAR) src/dst MAC address, mpls exp). router(config)# policy-map policy-map-name • 2. Create Policy Map (Service Policy) - Associate a class map with one or more QoS policies (bandwidth, police, queuelimit, random detect, shape, set prec, set DSCP, set mpls exp). router(config-if)# service-policy {input | output} policy-map-name • 3. Attach Service Policy - Associate the policy map with an input or output interface. 2001 Cisco Systems, Inc. www.cisco.com 18 Basic MQC Commands • 1. Create Class Map Router(config)# class-map class1 Router(config-cmap)# match ip precedence 5 Router(config-cmap)# exit • 2. Create Policy Map 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 • 3. Attach Service Policy Router(config)# interface e1/1 Router(config-if)# service-policy output policy1 Router(config-if)# exit 2001 Cisco Systems, Inc. www.cisco.com 19 Agenda • • • • • 2001 Cisco Systems, Inc. QoS Models Differentiated Model Features Modular QoS CLI (MQC) MPLS Quality of Service Sample Examples www.cisco.com 20 MPLS QoS ATM-LSR Conventional Router Label Edge Routers Label Switching Router (LSR) • Note: End to end service is IP; therefore, IP class of service is what MPLS must support 2001 Cisco Systems, Inc. www.cisco.com 21 MPLS QoS ISP Customer 2) Match IP Prec/DSCP; Set MPLS EXP. Rate-limit/Police and apply drop policy MPLS Core 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 2001 Cisco Systems, Inc. www.cisco.com 22 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 2001 Cisco Systems, Inc. www.cisco.com 23 MPLS QoS 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Label | EXP |S| TTL | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ • Copy of IP Precedence into MPLS EXP • Mapping of IP Precedence into MPLS EXP MPLS Domain Non-MPLS Domain IPv4 Packet MPLS MPLS EXP: xyz Prec: xyz 2001 Cisco Systems, Inc. Hdr www.cisco.com Prec: xyz 24 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”) 2001 Cisco Systems, Inc. www.cisco.com 25 MPLS QoS Diff-Serv : DSCP DSCP EF 1 0 1 1 1 0 CU DSCP AFxy x x x y y 0 CU Drop Class Precedence AF Class = 1, 2, 3, 4 2001 Cisco Systems, Inc. Drop Precedence = 2, 4, 6 www.cisco.com 26 MPLS QoS Diff-Serv over MPLS • Two methods: E-LSP “Queue” inferred from Label and EXP field “drop priority” inferred from label and EXP field L-LSP “Queue” inferred exclusively from Label “drop priority” inferred from EXP field <draft-ietf-mpls-diff-ext-03.txt>, by Francious Le Faucheur, et al 2001 Cisco Systems, Inc. www.cisco.com 27 MPLS QoS E-LSP Example LDP/RSVP LSR LDP/RSVP E-LSP AF1 EF • 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 2001 Cisco Systems, Inc. www.cisco.com 28 MPLS QoS L-LSP Example LDP/RSVP LDP/RSVP LSR L-LSPs • 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 2001 Cisco Systems, Inc. www.cisco.com 29 MPLS QoS Edge DiffServ LSR with L-LSP Non-MPLS Diff-Serv Domain IPv4 Packet MPLS Diff-Serv Domain Edge LSR MPLS Header DSCP DSCP 0 1 2 3 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 2 3 4 5 6 7 8 9 0 1 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Label | EXP |S| TTL | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ 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 2001 Cisco Systems, Inc. www.cisco.com 30 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) 2001 Cisco Systems, Inc. www.cisco.com 31 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) 2001 Cisco Systems, Inc. www.cisco.com 32 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 2001 Cisco Systems, Inc. www.cisco.com 33 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) 2001 Cisco Systems, Inc. www.cisco.com 34 MPLS QoS ATM Forum PVC Mode ATM-LSR PVC • Looks like packet interface to MPLS QoS • BW and other parameters configured on the PVC • Requires significant amount of configuration 2001 Cisco Systems, Inc. www.cisco.com 35 MPLS QoS Multi VC Mode MPLS LVCs ATM-LSR • 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 2001 Cisco Systems, Inc. www.cisco.com 36 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 2001 Cisco Systems, Inc. www.cisco.com 37 Agenda • • • • • 2001 Cisco Systems, Inc. QoS Models Differentiated Model Features Modular QoS CLI (MQC) MPLS Class of Service Examples www.cisco.com 38 Examples MPLS Network PE 2 PE 3 CE 1 CE 4 P3 PE 4 PE 1 CE 2 CE 3 PE 5 2001 Cisco Systems, Inc. www.cisco.com 39 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 2001 Cisco Systems, Inc. www.cisco.com 40 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 2001 Cisco Systems, Inc. www.cisco.com 41 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 2001 Cisco Systems, Inc. www.cisco.com 42 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 2001 Cisco Systems, Inc. www.cisco.com 43 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 2001 Cisco Systems, Inc. www.cisco.com 44 Examples MPLS Network PE 2 PE 3 CE 1 LSC1 PE 1 LC-ATM CE 4 PE 4 ATM Core CE 2 CE 3 PE 5 2001 Cisco Systems, Inc. www.cisco.com 45 Examples 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 Pe1(config-mpls-cos-map)# class 3 standard Pe1(config-mpls-cos-map)# exit ! 3 - standard ! 2 - premium ! 1 - standard ! 0 – available Pe1(config)# mpls prefix-map 1 access-list 1 cos-map 1 2001 Cisco Systems, Inc. www.cisco.com 46 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 2001 Cisco Systems, Inc. www.cisco.com 47 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 Pe1(config-pmap-c)# exit Pe1(config-pmap)# class cus2_voice Pe1(config-pmap-c)# set mpls experimental 2 Pe1(config-pmap-c)# exit Pe1(config-pmap)# class erp Pe1(config-pmap-c)# set mpls experimental 1 Pe1(config-pmap-c)# exit Pe1(config-pmap)# class class-default Pe1(config-pmap-c)# set mpls experimental 0 Pe1(config-pmap)# exit ! Voice for customer 1 ! Voice for customer 2 ! ERP data ! All other traffic Pe1(config)# class-map isp_voice Pe1(config-cmap)# match mpls experimental 2 Pe1(config-cmap)# end 2001 Cisco Systems, Inc. www.cisco.com 48 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 2001 Cisco Systems, Inc. www.cisco.com 49 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 2001 Cisco Systems, Inc. www.cisco.com 50 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 2001 Cisco Systems, Inc. www.cisco.com 51 Thank You! 2001 Cisco Systems, Inc. www.cisco.com 52