360 likes | 403 Views
Dive into the world of MPLS and DiffServ to explore QoS in IP domains, traffic engineering concepts, bandwidth allocation models, and the interplay between MPLS and DiffServ for dynamic QoS. Learn about mapping PHB information, overprovisioning, scaling well in backbone networks, and the challenges and solutions in achieving quality of service in modern networks.
E N D
Lecture 5. MPLS/DiffServ D. Moltchanov, TUT, Spring 2010
Outline • QoS in IP domains • Why MPLS/DiffServ? • Mapping of PHB info • Traffic engineering concepts • Bandwidth allocation models
QoS in IP networks: which approach? • Overprovisioning!... Where? • IntServ model:is not supported • DiffServ model • Scales well in backbone • QoS for aggregated traffic patterns • MPLS model • Resource reservation along the path • Scales well in backbone • Source routing • …. does not provide QoS! • MPLS + DiffServ • May complement each other • Dynamic QoS may finally become reality • Independent technologies
Problem ofMPLS • MPLS only network • Notraffic policing unit • We may not get any guarantees
Problem ofDiffServ • How to get rid of SPF routing? • No protocols for establishing reservation in routers on demand • No mechanisms to get rid of hop-by-fop forwarding • All the traffic here goes A-C-D or B-C-D
MLPS andDiffServ functionalities • What we have to have to provide QoS 1. Scheduling, queuing, etc.:class of service 2. Bandwidth provisioning for each class DiffServMPLSMPLS and DiffServ 1: yes 1: no 1: yes 2: no* 2: yes** 2: yes SLA: yes SLA: no SLA: yes CAC: yes CAC: no CAC: yes *there is no tool to signal DiffServ configuration to routers ** main route and backup routes + fast reroute of TE • Interoperation ofDiffServandMPLS • IETF RFC 3270, 2002 • MPLS Support of Differentiated Services
Interoperation of MLPS andDiffServ • How? Are there any problem? • DiffServ is L3,MPLS is L2… • How to exchange information between them? • How to assign PHB to LSP? • How to engineer the traffic? • How to isolate the traffic? • MPLS/DiffServ node must • Detect PHB of incoming packet • Detect PHB of outgoing packet • Handle packet according to MPLS label and DiffServ • MPLS engines handling packets • Vital: somehow encapsulate DiffServ info in MPLS header!
How to map DiffServ info into MPLS label? • LSR:switching based onMPLS header • LSRdoes not read IP header – does not knowDSCP • Why? This is initial philosophy of MPLS • We need to map betweenPHBtoMPLS header somehow • IETF RFC 3270 • Use EXP field in MPLS header • There are only 3 bits there • Differentiated Services Codepoint (DSCP):6bits • Problem:How to encode 6 bitsusing 3 bits only? • To method have been proposed inIETF 3270
DiffServ/MPLS mapping:E-LSP • Method 1: E-LSP • DiffServ network with less than 8 PHBs • In EXP filed we set PHB • One-to-one EXP-PHB mapping • LSP withEXP setis calledE-LSP • EXP-inferred LSP • There is no strict rules how to map • E-LSP determines PHB schedulerand dropping priority • PHB scheduler:how to treat packets with the same PHB • Example:
DiffServ/MPLS mapping:L-LSP • Method 2: L-LSP • What else we can use in MPLS header?Label field only! • IETF RFC 3270:useLabel field for • DetectPHB scheduler • Implicitly determines PHB • EXP field identifies the dropping probability • EXP/PSC-PHB mapping • This LSP is called L-LSP (Label-inferred LSP) • Scheduler information:carried byCR-LDPor RSVP-TE • label –> scheduler -> PHB • ifEF PHB is concernedLabel field is simply used! • Number of priorities can be more than 8
DiffServ/MPLS mapping • Example of L-LSP E-LSPL-LSP Defined byEXP onlyDefined byLabel and/or EXP Up to 8 PHBsUnlimited number of PHBs* Label:path onlyLabel:pathandscheduler Signaling is not neededSignaling required * Number of LSP is limited by DiffServ (64)
Example of mapping: E-LSP и L-LSP • E-LSP:up to 8 differentPHB • L-LSP: PHBswith different dropping probabilities
TE inDiffServ/MPLS • Some problems cannot be solved using • DiffServ only • MPLS only • What can we do: • UseDiffServ/MPLS • UseMPLS-TE designed for DiffServ/MPLS • MPLS/DiffServ-aware Traffic Engineering • New standards for DiffServ/MPLS-TE • IETF RFC 3564, 2003 • IETF RFC 4125, 2005 • IETF RFC 4127, 2005 • IETF RFC 4128, 2005
TE inDiffServ/MPLS: CTx • Reserve bandwidth for each class • RFC 3564: concept of“class type”, CT for short • Bandwidth reservation, traffic admission • RFC 3564 does not define how to map traffic toCT • We can come up with our own solutions • There are 8CTs with 8 priorities • CT0 – CT7 : CT0 – Best Effort • Priorities: preemption • LSP supportingCTis calledDiffServ-TE LSP • Example: • Two traffic classes:VoIPand data • Two network services:BEfor dataandEFforVoIP • Task:guarantees forVoIP
TE inDiffServ/MPLS: example • Providing guarantees toVoIP • CT0 for data + separate queue • CT1 for VoIP + separate queue • At each node organize separate queues • Define mappingPHB –> LSP –> CTx, x=0,1
TE inDiffServ/MPLS: TE • How to computeLSPs? • MPLS-TE • CSPF based on available bandwidth, link attributes • Then,SPF to find shortest path • ForDiffServ/MPLS-TE • We have to take into accountCTx • TED:avaiable bandwidth for eachCT +priorities, attributes, etc. • New changesfor IGPare required (OSPF, IS-IS) • Ideal case: support 64 values (8 CTx * 8 priorities) • IETF:only 8 values • 8 TEclasses (TE0-TE7) out ofpossible 64 • Define CT • Define priority
TE inDiffServ/MPLS: TE-CT mapping • ChoosingTEclasses for a network (at most 8) • IGPhave to carry info about available bandwidth perTE • MessageUnreserved Bandwidth • Earlier forMPLS-TE (underserved bandwidth forMPLS-TE) • СSPFuses this information
TE inDiffServ/MPLS: signaling • Signaling forDiffServ/MPLS-TE • MessageRSVP PATH • CT carries it in Classtype (CT) object • IdentifiesCT out of which bandwidth is reserved • Smooth transition toDiffServ/MPLS • CTobject is inRSVP PATHforCT1-CT7 only • If not defined then -CT0 (best effort) • A node that does not supportDiffServ/MPLS • Does not handle the message • Does not setup LSP • Return PATH ERR • If error is returned another attempt without CT object is made • After LSP successfully set • Available bandwidth for each TE=(CTx,priority) is recomputed • IGPbroadcasts this information
Example • Broadcasting info about available bandiwidth • For eachTE (CTx,priority) • TEDatAis filling
Example • А:computesLSPbased onCSPF • Available bandwidth for thisTE (CTx,priority) • Administrative groups • ClassicIGP metrics • ThenSPFwithout constraints
Example • IfRSVP PATH – RSVP RESVwas successful • LSP has been set • Recompute and distribute info about available bandwidth • NodesC, D • TEDatAis filling
Example • IfC doesnot supportDiffServ/MPLS-TE • LSPis not set • RSVP PATH-ERRreturned toA
Example • Upon reception ofRSVP PATH-ERR • А may try to set up LSP once again • In this caseRSVP PATH does notcontain CTobject
Traffic engineering inDiffServ/MPLS • Bandwidth distribution between CTx • Measured in percents • Percent of available bandwidth assigned to CTx • It is calledBandwidth Constraint, BC • How BCandCT are related to each other • Bandwidth constraint model • There are twoBCs currently defined • Maximum Allocation Model, MAM • Russians Dolls Model, RDM
Мaximum allocation model (MAM) • EachBCis assigned a single CT • Available bandwidth is strictly (somehow) divided between CTx • Advantages: • Isolated traffic of CTs well • Shortcomings: • Free bandwidth in CTx cannot be used by traffic of CTy
MAM: problem of full isolation • Example • All links are 10Mbps • Data traffic A-D: 10 Mbps • Reservations at all links: CT1 - 1Mbps; CT0 - 9Mbps • +: data traffic cannot use shortest path viaG even if it is free • -: VoIP traffic always use shortest path
Russian dolls model (RDM) • What RDM does? • Tries to decrease the level of isolation • Allows dynamically share available bandwidth between CTx • According to RDM: • CT0: Best effort • CT7:Strict guarantees • The level of bandwidth sharing is different • BC7: fixed available bandwidth forCT7 only • BC0:all available bandwidth of the link, shared between allCTx • Example of RDM: • BC6: can be used by CT7 and CT6 traffic • BC5:can be used byCT7, CT6, CT5 traffic • BC4:can be used byCT7, CT6, CT5, CT4 traffic
Russian dolls model (RDM) • Example of RDM • Advantages • Shares available bandwidth • The network is more dynamic • Shortcomings • Traffic is not well isolated • The level of isolation is different for CTx
RDM example • Example • Two CT (CT0-data, CT1-VoIP), all links are 10Mbps • Data traffic: A-D 9Mbps • BC1 = CT1 = 1Mbps; BC0 = CT0 + CT1 = 10 Mbps • If there is noVoIP traffic, this path can be used for data
RDM example • Example • Data traffic: A-D 10Mbps • If there is noVoIP traffic, this path can be used for data • All the bandwidth is used at C-G-D path
RDM example • VoIP traffic: A-D 1Mbps • using priority we intercept and take over this path forVoIP
Bandwidth constraints (BC) models • Propertiesof BC model • Different model at different links can be used • IGP ‘Bandwidth constraint’distributes • Type ofBC model • Available bandwidth for each TE=(CTx, priority) • Compare MAMandRDM MAM RDM OneBCto oneCT OneBCtoone/few СЕ Full traffic isolationWeak isolation Interception is not neededInterception is needed Not effective bandwidth usage Effective bandwidth usage
ImplementingDiffServ/MPLS-TE • Define bandwidth constraints mode • MAMor/and RDM for each link • Available bandwidth forBCat each link • Set these parameters in interior nodes • DefineTE=(CTx, priority) • Do we actually need priorities within a single CT? • ChooseIGP with DiffServ/MPLS-TE • IS-ISor OSPF • SetDiffServparameters in network nodes • Check traffic conformance to specifications • Define class mapping DiffServ/MPLS • E-LSP (if no more than 8 PHBs) • L-LSP (of more than 8 PHBs) • Define packet marking at ingress nodes
Transition:MPLS-TE ->DiffServ/MPLS-TE • Stage 1: • Define CTxand priorities • LSPwithoutCT object in RSVP-PATHcorresponds toCT0 • Stage 2: • Mapping (CTx,priority) ->TE class • Unreserved Bandwidth TLV carries info for eachTE • New and old nodes • Earlier (MPLS-TE)for each link • Old nodes:must interpret as(CT0,i) for alli • New nodes:TEi, i=0,1,…,7 • Define either MAM of RDM for each link • (CTx,j)should correspond to a certainTEi and be assigned to BCi • Stage 3: • Check whether all this stuff is working…