MPLS Tutorial
Contents
Legacy IP Routing Model 차세대 인터넷의 과제 Why MPLS ? MPLS Base LDP, CR-LDP MPLS & ATM Traffic Engineering MPLS와 QoS
안동대학교 차 영욱, ywcha@andong.ac.kr,
2008-10-28 ywcha
MPLS Tutorial
1
“legacy” IP 라우팅 모델(1)
Connectionless
per-packet routing: 라우터는 각 패킷에 대해서 forwarding 결정을 한다. no connection setup latency: short-lived packet service와 longlived packet service에 상관없다. End-to-end forwarding state를 필요로 하지 않는다. Forwarding state 정보를 soft-state로 관리하기 때문에 link failure 에 대해서 새로운 path를 찾는다
• robust, flexible, adaptable
scalable
longest prefix matching address lookup : 따라서 low speed, expensive “soft-state” routing path management
IP 패킷을 forwarding하기위한 state의 관리를 의미 routing path에 대한 resource를 미리 확보하지 않는다.
2008-10-28 ywcha
MPLS Tutorial
2
“legacy” IP routing 모델(2)
IP routing(계속)
single routing view: 하나의 global address에 의해서 routing이 이 루어진다. No QoS routing
best effort service
single class no service guaranteed
2008-10-28 ywcha
MPLS Tutorial
3
“legacy” IP 라우팅 모델(3)
IP over any link layer technology
IP는 link layer technology에는 무관하게 동작한다. IP over Ethernet, IP over Serial Link, IP over Frame Relay, IP over CATV, IP over ATM, etc.
R IP
link layer
R
IP
link layer
IP
link layer
subnet
2008-10-28 ywcha
subnet
MPLS Tutorial
subnet
4
차세대 인터넷의 과제
고속의 패킷 전달, 즉 속도의 문제 해결
해결책으로 L2 스위칭 기술을 사용하거나 혹은 L3에서 고속 패킷 전달 (Terabit router)
차별화된 서비스의 제공, 즉 QoS의 과제
Mission-critical Service도 인터넷을 이용할 수 있도록 multiservice의 제공을 위하여 해결책으로 IP Int-serv, Diff-serv 모델을 만듬
Traffic Engineering 기능을 제공 Reliable 망
망 보호/복구 기능 제공
Secure 망
2008-10-28 ywcha
MPLS Tutorial
5
MPLS (Multiprotocol Label Switching)
MPLS의 출발은 ATM 스위치를 이용하여 IP 패킷을 전달하는 방 안으로 출발하였다. MPLS는 기존의 overlay 모델의 약점을 극복하기 위해서 L3 라우 터와 L2 스위치 간에 peer model로서 접근하였다.
L3 라우터와 L2 스위치에서 동일한 L3 라우팅 프로토콜을 사용
MPLS base
Hop-by-hop or source routing to establish labels Uses label native to the media Multi level label substitution transport
MPLS intended to be “multi-protocol” below as well as above
2008-10-28 ywcha
MPLS Tutorial
6
IP and ATM Integration
IP over ATM VCs
IP over MPLS
• ATM cloud invisible to Layer 3 Routing • Full mesh of VCs within ATM cloud • Many adjacencies between edge routers • Topology change generates many route updates • Routing algorithm made more complex
• ATM network visible to Layer 3 Routing • Singe adjacency possible with edge router • Hierachical network design possible • Reduces route update traffic and power needed to process them
MPLS eliminates the “n-squared” problem of IP over ATM VCs
2008-10-28 ywcha
MPLS Tutorial
7
ROUTE AT EDGE, SWITCH IN CORE
IP
IP
#L1
IP
#L2
IP
#L3
IP
IP Forwarding
2008-10-28 ywcha
LABEL SWITCHING
MPLS Tutorial
IP Forwarding
8
BEST OF BOTH WORLDS
PACKET ROUTING HYBRID
CIRCUIT
SWITCHING
IP
MPLS +IP
MPLS Tutorial
ATM
• MPLS + IP form a middle ground that combines the best of IP and the best of circuit switching technologies.
• ATM and Frame Relay cannot easily come to the middle so IP has!!
2008-10-28 ywcha 9
WHY MPLS ?
Leverage existing ATM hardware Ultra fast forwarding IP Traffic Engineering
Explicit routing, Constraint-based Routing
Virtual Private Networks
Controllable tunneling mechanism
Voice/Video on IP
Delay variation + QoS constraints
2008-10-28 ywcha
MPLS Tutorial
10
MPLS가 꼭 필요한가?
Label switching을 통한 고속의 패킷 전달이라는 목표는? 이것은 이미 이유를 상실했다. 이미 L3 packet routing/forwarding이 충분히 고속으로 이루어질 수 있기 때 문에(경제적으로도)
이미 Terabit router에 OC-48 interface가 제공되고 있으며 조만간 OC-192 interface도 등장할 것이다.
VPN을 위한 IP tunnel의 제공?
한 방편이 될 수 있다.
Traffic engineering 기능의 제공?
결국 MPLS의 당위성을 들라면 TE 기능의 제공이라고 할 수 있다. MPLS의 Explicit Routing 혹은 Constrained-based routing 기능의 제공은 현재 의 IP 라우팅이 갖지 못한 필수적인 기능을 제공해 준다. 이것은 망에서의 load balancing, 망 보호/복구, QoS routing에 사용될 수 있다.
2008-10-28 ywcha
MPLS Tutorial
11
In a nutshell,
MPLS는 “legacy” IP 라우팅 모델을 연결형 방식(connection-oriented mode) 으로 사용할 수 있도록 확장한 것이다.
2008-10-28 ywcha
MPLS Tutorial
12
MPLS Terminology
Label LDP: Label Distribution Protocol LSR(Label Switch Router) : Label switching 기능을 갖는 라우터
LSP(Label Switched Path) : the concatenation of label switching hops FEC(Forwarding Equivalence Class ) : 동일한 label 값을 갖는 IP 패
킷들의 그룹 LER(Label Edge Router) : Useful term not in standards LIB(Label Information Base) : database of information containing label assignment(binding)
2008-10-28 ywcha
MPLS Tutorial
13
Label이란?
Short fixed length identifiers
label value는 사용하기 전에 각 노드 간에 정해져야 한다.
Label의 value는 local 값이다.
즉 두 인접한 노드 간에서만 합의된 값이다.
Label의 교환(swap)은 각 hop마다 발생 application 1 application 2 application 3
a single label
application N
flows
stream
2008-10-28 ywcha
MPLS Tutorial
14
Label Encapsulation
L2
ATM
FR DLCI
Ethernet
PPP
Label VPI VCI
“Shim Label”
“Shim Label” ……. IP | PAYLOAD
There are many examples of label substitution protocols already in existence.
ATM - label is called VPI/VCI and travels with cell. Frame Relay - label is called a DLCI and travels with frame. TDM - label is called a timeslot its implied, like a lane. X25 - a label is an LCN One day perhaps Frequency substitution where label is a light frequency?
2008-10-28 ywcha
MPLS Tutorial
15
MPLS shim header
20 bits
3
1
8
label
Exp s
TTL
IP 패킷
Exp : experimental use S : bottom of stack TTL : time to live
2008-10-28 ywcha
MPLS Tutorial
16
MPLS Encapsulation ATM LSR constrained by the ATM imposed by existing ATM standards cell format
5 Octets
ATM Header Format
Option 1 Option 2 Option 3
VPI
Label
VCI
Label Label
PT
CLP
HEC
Combined Label
ATM VPI
(Tunnel)
AAL 5 PDU Frame (nx48 bytes)
n
•••
1 Network Layer Header and Packet (eg. IP) AAL5 Trailer
ATM SAR ATM Header ATM Payload
Generic Label Encap. (PPP/LAN format)
48 Bytes
48 Bytes
•••
• Top 1 or 2 labels are contained in the VPI/VCI fields of ATM header - one in each or single label in combined field, negotiated by LDP • Further fields in stack are encoded with „shim‟ header in PPP/LAN format - must be at least one, with bottom label distinguished with „explicit NULL‟ • TTL is carried in top label in stack, as a proxy for ATM header (that lacks TTL)
2008-10-28 ywcha
MPLS Tutorial
17
MPLS Encapsulation - Frame Relay
Q.922 Header
Generic Encap. (PPP/LAN Format) n
Layer 3 Header and Packet 1
•••
DLCI
C/ E R A
DLCI
FE BE D E CN CN E A
DLCI Size = 10, 17, 23 Bits
• Current label value carried in DLCI field of Frame Relay header
• Can use either 2 or 4 octet Q.922 Address (10, 17, 23 bytes) • Generic encapsulation contains n labels for stack of depth n - top label contains TTL (which FR header lacks), „explicit NULL‟ label value
2008-10-28 ywcha
MPLS Tutorial
18
MPLS Encapsulation - PPP & LAN Data Links
MPLS „Shim‟ Headers (1-n) n Layer 2 Header (eg. PPP, 802.3)
•••
1
Network Layer Header and Packet (eg. IP)
4 Octets
Label Stack Entry Format
Label
Exp.
S
TTL
Label: Label Value, 20 bits (0-16 reserved) Exp.: Experimental, 3 bits (was Class of Service) S: Bottom of Stack, 1 bit (1 = last entry in label stack) TTL: Time to Live, 8 bits
• Network layer must be inferable from value of bottom label of the stack • TTL must be set to the value of the IP TTL field when packet is first labelled • When last label is popped off stack, MPLS TTL to be copied to IP TTL field • Pushing multiple labels may cause length of frame to exceed layer-2 MTU - LSR must support “Max. IP Datagram Size for Labelling” parameter - any unlabelled datagram greater in size than this parameter is to be fragmented
MPLS on PPP links and LANs uses „Shim‟ Header Inserted Between Layer 2 and Layer 3 Headers
2008-10-28 ywcha
MPLS Tutorial
19
Label의 의미
Label은 virtual circuit 패킷망의 VC 값과 거의 유사하며, 결국 MPLS는 IP의 연결형 모델이라고 할 수 있다.
Label Switching Domain 1
LSR
5
LSR
LSR
3
LSR
label 1
2008-10-28 ywcha
out link 4
label 5
MPLS Tutorial
label
5
out link
2
label
3
20
Label, FEC, LSP, LIB, LSR
Routing table addr-prefix next hop 129.20.0.0/16 180.20.10.1 129.20.100.12 Routing table
addr-prefix next hop 129.20.0.0/16 203.30.107.1
LSR
LSP-i
LSR
180.20.10.1
LSP-i
LSR
203.30.107.1
Label information base(LIB)
Label information base(LIB) label-in FEC label-out 17 129.20.0.0/16 21
label-in FEC label-out 129.20.0.0/16 17
2008-10-28 ywcha
MPLS Tutorial
21
Label Granularity (1)
어떤 종류의 패킷들이 동일한 label 값을 갖는가?
즉 Forward Equivalent Class를 어떻게 결정하는가
MPLS는 다양한 FEC를 허용하고 있다.
가장 쉬운 예로서 라우팅 테이블의 address prefix 값에 따라서 하나의 FEC 가 정의될 수 있다.
이것은 LSP에 따른 차별화된 패킷의 전달, 즉 QoS(혹은 CoS)의 제공과 밀접한 관계를 갖는다.
2008-10-28 ywcha
MPLS Tutorial
22
Label Granularity (2)
Spectrum of label granularities
application flow:
finer grain
- (source, destination, TCP/UDP port) - (ports pair + TOS)
middle flows:
- host pairs: (source, destination address) - network pair: (source, destination address prefix)
coarser grain
2008-10-28 ywcha
same destination network address prefix same egress router ID same next-hop AS number (BGP) same destination AS number (BGP)
MPLS Tutorial
23
Label Stack
다층 구조를 갖는 라우팅을 위해서 label stack을 사용할 수 있다. Inter-domain BGP에서 유용하게 사용될 수 있다.
A LSR
LSR
2008-10-28 ywcha
LSR D
B LSR
1
C
MPLS Tutorial
24
LSP Scalability
LSP의 수를 줄이는 방법으로 multipoint-to-point trees(MPTs)을 사용 할 수 있다.
LSR은 O(n) label을 관리하면 된다. egress LSR에서 하나의 tree를 형성할 수 있다.
LSR LSR
LSR
LSR
LSR
2008-10-28 ywcha
MPLS Tutorial
25
Forwarding Equivalence Classes
LER
LSR LSR
LER
LSP
IP1
IP1 IP1 IP2 #L1 #L1 IP1 IP2 #L2 #L2 IP1 IP2 #L3 #L3
IP2
Packets are destined for different address prefixes, but can be mapped to common path
IP2
• FEC = “A subset of packets that are all treated the same way by a router”
• The concept of FECs provides for a great deal of flexibility and scalability • In conventional routing, a packet is assigned to a FEC at each hop (i.e. L3 lookup), in MPLS it is only done once at the network ingress
2008-10-28 ywcha
MPLS Tutorial
26
LABEL SWITCHED PATH (vanilla)
#14 #216 #99 #311 #311
#963
#311
#963
#14
#612
#462
#99 #311
#5
- A Vanilla LSP is actually part of a tree from every source to that destination (unidirectional). - Vanilla LDP builds that tree using existing IP forwarding tables to route the control messages.
MPLS Tutorial
2008-10-28 ywcha
27
MPLS Label Distribution
Intf Label Dest Intf Label In In Out Out 3 0.50 47.1 1 0.40
3
Intf In 3
Label Dest Intf In Out 0.40 47.1 1
1
Request: 47.1 1
47.1
Intf Dest Intf Label In Out Out 3 47.1 1 0.50
47.3 3
3
2
1 2
Mapping: 0.40 2 47.2
2008-10-28 ywcha
MPLS Tutorial
28
Label Switched Path (LSP)
Intf Label Dest Intf Label In In Out Out 3 0.50 47.1 1 0.40
Intf Dest Intf Label In Out Out 3 47.1 1 0.50
1 47.3 3 2 IP 47.1.1.1 3 1 2 47.2
Intf In 3
Label Dest Intf In Out 0.40 47.1 1
IP 47.1.1.1 1 47.1
3
2
2008-10-28 ywcha
MPLS Tutorial
29
Label은 어떻게 전달되나?
이것은 MPLS signaling의 과제이다. 두 가지 접근 방법이 있다.
하나는 새로운 프로토콜을 만드는 것이다. 또 하나는 기존의 control message에 piggyback 해서 전달하는 방법이다.
Label 전달을 위한 새로운 프로토콜로서 MPLS에서는 Label Distribution Protocol(LDP)을 새로 만들었다.
2008-10-28 ywcha
MPLS Tutorial
30
LDP에서 정의하는 주요 내용
언제 Label을 할당하는가? LDP session은 어떻게 설정하는가? 누가 제일 처음 Label 할당을 시작하는가? Label은 LSR 간에 어떤 순서로 할당되는가? 할당 받은 Label 값을 다 보관할 것인가? Loop detection은? Label과 함께 전달하는 정보는?
2008-10-28 ywcha
MPLS Tutorial
31
언제 Label을 할당하나
Topology driven label assignment
LSP는 라우팅 경로와 함께 미리 설정된다. no setup latency
Flow(or Traffic) driven label assignment
첫번째 패킷이 도착했을 때 할당한다. setup latency
Control driven label assignment(ex, RSVP 메시지) LDP는 Topology driven label 할당을 전제로 하고 있다.
2008-10-28 ywcha
MPLS Tutorial
32
LDP의 동작의 단계
Hello (over UDP)
LDP discovery
LSR
LSR
Hello (over UDP) Open (over TCP)
LDP session 설정
LSR
LSR
Initialization
Label request
Label 할당
2008-10-28 ywcha
LSR
LSR
Label mapping
MPLS Tutorial
33
LDP discovery
LSR이 이웃 LSR(LDP peer)을 찾는 절차 Basic Discovery Mechanism
LDP Hello message를 주기적으로 보낸다. “all routers on this subnet” group multicast address를 사용한다. Well-known LDP discovery port를 사용한다.
Extended Discovery Mechanism
link level에서 직접 연결되지 않은 LSR을 찾을 때 LDP Targeted Hello message를 주기적으로 보낸다. 해당 LSR의 IP 주소를 목적지 주소로 사용한다.
2008-10-28 ywcha
MPLS Tutorial
34
LDP Session 설정
Hello message 교환으로 LDP session을 설정한다.
TCP connection 설정 session parameter를 협상 Initialization message를 교환한다.
LSR
LSR
TCP 연결 설정 Initialization message
Initialization message
LDP session 설정
2008-10-28 ywcha
MPLS Tutorial
35
LSR adjacency와 LDP session의 유지
LSR adjacency 유지
주기적으로 Hello message를 주고 받는다. Hold timer 사용
LDP session의 유지
지속적으로 LDP message를 주고 받는다. 만약 LDP message를 보내지 못한다면 KeepAlive message를 주기 적으로 보낸다. KeepAlive timer 사용
2008-10-28 ywcha
MPLS Tutorial
36
누가 Label을 할당하는가
downstream node
downstream LSR에 의해 label을 할당한다. upstream LSR은 downstream LSR로부터 label을 받을 때 만약 downstream node가 경로 상의 next hop이라면 그 label 값을 LIB에 outgoing label 값으로 기록한다.
downstream node on demand
upstream LSR의 요청이 있을 때 downstream LSR이 할당한다.
2008-10-28 ywcha
MPLS Tutorial
37
Downstream on demand Label Distribution
1
LSR
2
LSR
특정 FEC에 대한 next hop LSR 2를 발견 Label-FEC binding request Label-FEC binding
Downstream unsolicited Label Distribution
LSR
LSR
Label-FEC binding
2008-10-28 ywcha
MPLS Tutorial
38
Label 할당은 누가 처음 시작?
Independent label 할당
임의의 LSR은 Label-FEC binding을 upstream LSR에 알려줄 수 있 다.
Ordered label 할당
Label-FEC binding은 upstream LSR에서부터 downstream LSR로 순차적으로 이루어진다. 결국 Label 할당의 흐름은 egress LSR에서부터 시작하여 ingress LSR로 이루어진다.
2008-10-28 ywcha
MPLS Tutorial
39
INDEPENDENT MODE
#14 #311
#216
#99
#963
#311
#311
D
#963
#14 #612 #5
D D
D
#99
D
D D
#311
D
#462
label 교환을 하는 시간이 절약된다. Egress LSR을 찾는 것과는 상관없이 이루어진다. 각 LSR에서 label granularity의 일관성을 유지하는 어려움이 있다. Loop detection에도 어려움이 있다.
MPLS Tutorial
2008-10-28 ywcha
40
ORDERED MODE
결국 먼저 egress LSR에 까지 도달해야 한다. Explicit routing과 multicast를 위해서 필요하다.
2008-10-28 ywcha
MPLS Tutorial
41
Label retention
LSR은 여러 LSR들로부터 label 값을 받을 것이다. 이 중에서 어 떤 값은 valid next hop이 아닌 LSR로부터 온 것도 있을 것이다. 이것들을 받아 줄 것인가 무시할 것인가? 두 가지 대안
Liberal label retention Conservative label retention
LSR
LSR 10 20 LSR 30
LSR
LSR 10 20 LSR 30
2008-10-28 ywcha
LSR Valid next hop MPLS Tutorial
LSR Valid next hop 42
CONSERVATIVE These labels are RETENTION MODE
released the moment they are received.
#216
D
D
#422
#622
D
D
#462
#963
#14 #612 #5
D
D D
#99
D
D D
#311
valid next hop으로부터 받은 label mapping 만 보관한다.
Next hop이 바뀌면 새로운 next hop에 다시 요청해야 한다. 유지해야 하는 label의 수가 적게 된다.
2008-10-28 ywcha
MPLS Tutorial
43
LIBERAL RETENTION MODE
These labels are kept incase they are needed after a failure.
#216
D
D
#422
#622
D D
#462
#963
#14 #612 #5
D D
D
#99
D
D D
#311
2008-10-28 ywcha
MPLS Tutorial
44
Constrained-based Routing(CR)이란?
“constraint”에 의해서 routing path를 결정하는 것을 말한다. “constraint”가 explicit route(ER)라면 Explicit routing이라 할 수 있으며, “constraint”가 QoS라면 QoS routing, policy라면 policy-based routing이라고 할 수 있다. 즉 ER 혹은 QoS routing을 포괄하는 개념이다. 만약 “constraint”가 현재 IP routing에서 사용하는 hop-byhop(혹은 destination-based routing)이라면 기존 IP routing에 해당한다.
2008-10-28 ywcha
MPLS Tutorial
45
즉,
앞에서 설명한 LDP에서 LSP의 결정은 LSR의 routing table의 정 보에 의해서 이루어졌다. 그러나, 이것을 Explicit Routing(ER)로 확장을 한다면 망의 경계 LSR은 routing table과 함께 다른 기준에 의해서 LSR을 결정해야 할 것이다.
Routing table + explicit route
그리고 여기에 대역을 고려하여 LSP를 결정한다면 +의 기준에 의해서 결정해야 할 것이다.
2008-10-28 ywcha
MPLS Tutorial
46
CR을 위한 signaling protocol은?
IP routing에 의하여 LSP를 결정하는 경우 LDP를 사용하는 것을 앞에서 설명하였다. 그러면 +의 정보를 전달하기 위해서 어떤 signaling protocol을 사용할 것인가? 자연스런 답은 LDP를 확장하는 것이다. 또 하나의 답은 RSVP를 확장하는 것이다. 그래서 CR을 위한 두 가지 signaling protocol이 존재한다.
CR-LDP RSVP-TE
2008-10-28 ywcha
MPLS Tutorial
47
Label Request Message
0 15 31
0
0x0401 Message ID FEC TLV
Message Length
Optional Parameters
Label-FEC binding을 request Optional parameter TLV
Hop Count TLV, Path vector TLV
2008-10-28 ywcha
MPLS Tutorial
48
CR-LDP Label Request Message
0 15 31
0
0x0401 Message ID
Message Length FEC TLV LSPID TLV (CR-LDP, mandatory) ER TLV (CR-LDP, mandatory) Traffic TLV (CR-LDP, optional)
Pinning TLV (CR-LDP, optional) Resource Class TLV (CR-LDP, optional) Preemption TLV (CR-LDP, optional)
2008-10-28 ywcha
MPLS Tutorial
49
ER TLV
0 15 31
0 0
0x0800 ER-Hop TLV 1 . . ER-Hop TLV n
Length
2008-10-28 ywcha
MPLS Tutorial
50
ER-Hop TLV
0 15 31
0 0
L
ER-Hop Type content
Length
ER-Hop Type: content의 type을 지정
0x801: 0x802: 0x803: 0x804: IPv4 Prefix IPv6 Prefix AS number LSPID
L bit
loose/strict ER-Hop을 나타낸다.
2008-10-28 ywcha
MPLS Tutorial
51
Traffic Parameters TLV
0 15 31
0
0x0810 Flags Frequency Peak Data Rate (PDR) Peak Burst Rate (PBS)
Length Reserved
Weight
Committed Data Rate (CDR)
Committed Burst Size (CBS)
Excess Burst Size (EBS)
2008-10-28 ywcha
MPLS Tutorial
52
ER-LSP의 설정
A
LSR
B
LSR
C
LSR
D
LSR
Explicit Route
Label Request message 전송: ER path
Label Request message 처리: ER path
Label Request message 처리: ER path
Label Mapping message 전송
2008-10-28 ywcha
MPLS Tutorial
53
ER LSP - advantages
•Operator has routing flexibility (policy-based, QoS-based)
•Can use routes other than shortest path
•Can compute routes based on constraints in exactly the same manner as ATM based on distributed topology database. (traffic engineering)
2008-10-28 ywcha
MPLS Tutorial
54
MPLS & ATM
Various Modes of Operation
Label-Controlled ATM Tunneling Through ATM Ships in the night with ATM
ATM Merge
VC Merge VP Merge
2008-10-28 ywcha
MPLS Tutorial
55
MPLS & ATM
Several Models for running MPLS on ATM:
1. Label-Controlled ATM: • Use ATM hardware for label switching • Replace ATM Forum SW by IP/MPLS
IP Routing MPLS
ATM HW
2008-10-28 ywcha
MPLS Tutorial
56
Label-Controlled ATM
• Label switching is used to forward network-layer packets
• It combines the fast, simple forwarding technique of ATM with network layer routing and control of the TCP/IP protocol suite
Network Layer Routing (eg. OSPF, BGP4)
Label Switching Router
Switched path topology formed using network layer routing (I.e. TCP/IP technique)
Forwarding Table
Forwarding Table
B 17
• • •
C 05
Port
Label
A
Label IP Packet 17
C D
IP Packet
05
B
Packets forwarded by swapping short, fixed length labels (I.e. ATM technique)
ATM Label Switching 2008-10-28 ywcha
is the combination of L3 routing and L2 ATM switching MPLS Tutorial 57
2. MPLS Over ATM
MPLS
L S R
MPLS
ATM Network
L S R
Two Models
VP VC
Internet Draft:
VCID notification over ATM Link
2008-10-28 ywcha
MPLS Tutorial
58
3. Ships in the Night
L S R
ATM SW
MPLS ATM
L S R
ATM SW
ATM Forum and MPLS control planes both run on the same hardware but are isolated from each other, i.e. they do not interact. This allows a single device to simultaneously operate as both an MPLS LSR and an ATM switch. Important for migrating MPLS into an ATM network
2008-10-28 ywcha
MPLS Tutorial
59
Label과 VPI/VCI
Label과 VPI/VCI는 동일한 semantics를 갖는다.
Option 1의 경우 2개의 label stack으로 사용할 수 있다. Option 2의 경우 label space를 크게 사용할 수 있다. Option 3의 경우 VP tunnel로서 사용할 수 있다. EXP와 TTL 값으로 사용할 필드는 없다.
5 Octets
ATM Header
GFC
VPI Label
VCI
PTI CLP
HEC
Option 1 Option 2
Option 2008-10-28 ywcha 3
Label
Label
VPI
MPLS Tutorial
Label
60
Label Encapsulation
AAL PDU는 적어도 하나의 Generic label을 갖는다. Top label은 TTL 값을 갖는다.
AAL 5 PDU
n
•••
1
Generic label
ATM cell
ATM Header
48 Bytes
IP 패킷
AAL5 trailer
48 Bytes
•••
MPLS Tutorial
2008-10-28 ywcha
61
Ships in the night Requirements
Resource Management
VPI.VCI Space Partitioning Traffic management
• • • • Bandwidth Reservation Admission Control Queuing & Scheduling Shaping/Policing
Processing Capacity
2008-10-28 ywcha
MPLS Tutorial
62
Bandwidth Management
A. Full Sharing MPLS Pool 1 •MPLS •ATM B. Protocol Partition Pool 1 MPLS •50% •ATM Available C. Service Partition MPLS Pool 1 •50% •rt-VBR ATM •COS2 Available
Port Capacity
ATM
Available
Pool 2 ATM •50% •rt-VBR Available
MPLS Pool 2 •50% •nrt-VBR ATM •COS1 Available
2008-10-28 ywcha
• Bandwidth Guarantees MPLS Tutorial • Flexibility
63
VC merge의 문제
Multipoint-to-point의 LSP 구성
scalibility의 문제를 해결하기 위해서 사용 사용해야 될 VC의 수를 줄일 수 있다.
그런데 현재 ATM에서 mpt-to-pt, mpt-to-mpt는 일반적으로 지 원되지 않는다.
즉 non-VC merge ATM LSR
따라서 VC merge의 문제를 해결하여야 한다.
AAL5에서는 MID 필드가 없으므로 merge된 cell이 뒤섞일 경우 원래 의 flow를 구별할 수 없다.
2008-10-28 ywcha
MPLS Tutorial
64
VC merge와 non-VC merge
Input cell streams
1 1 1 2 2 2 3 3
in 1 2 3
out 7 6 9
6 7 9 6 7 9 6 7
Non-VC merging (Nin--Nout) Input cell streams in out 7 7 7 7 7 7 7 7 1 1 1 1 7 AAL5 Cell Interleaving Problem 2 7 2 2 2 7 7 7 7 7 7 7 7 3 7 3 3
No Cell Interleaving
VC merging (Nin-1out)
2008-10-28 ywcha
MPLS Tutorial
65
VC merge 방법
Frame-based VC merge (아래 그림) Cell-based VP merge (다음 페이지 그림)
Reassembly buffers
7
7 7 5
5
4
2008-10-28 ywcha
2
2 2
2
2
2
2
4
Merge
MPLS Tutorial
66
VP-Merge
VCI=1 VCI=2
Option 1: Dynamic VCI Mapping
VPI=1
No Cell Interleaving Problem Since VCI is unique
VCI=1
VCI=2
VPI=2
VCI=3
VPI=3 Option 2: Root Assigned VCI
VCI=3
–merge multiple VPs into one VP –use separate VCIs within VPs to distinguish frames –less efficient use of VPI/VCI space, needs support of SVP
MPLS Tutorial
2008-10-28 ywcha
67
Traffic Engineering
“A major goal of Internet Traffic Engineering is to facilitate efficient and reliable network operations while simultaneously optimizing network resource utilization and performance.”
(RFC 2702 Requirement for Traffic Engineering over MPLS)
그래서
Efficient network를 위해서,
“constraint”를 고려한 경로 설정과 트래픽 할당 load balancing과 congestion 해소 서비스의 질을 높임, 등등
Reliable network를 위해서,
링크/노드 고장 시 이를 검출하고, 대체 경로 설정 트래픽의 rerouting 결국 망 보호/복구
2008-10-28 ywcha
MPLS Tutorial
68
Traffic Engineering
B
Demand
C
A
D
Traffic engineering is the process of mapping traffic demand onto a network
Network Topology
Purpose of traffic engineering: • Maximize utilization of links and nodes throughout the network • Engineer links to achieve required delay, grade-of-service • Spread the network traffic across network links, minimize impact of single failure • Ensure available spare link capacity for re-routing traffic on failure • Meet policy requirements imposed by the network operator Traffic engineering key toMPLS Tutorial cost/performance optimizing 2008-10-28 ywcha
69
Traffic Engineering Alternatives
Current methods of traffic engineering:
Manipulating routing metrics
Use PVCs over an ATM backbone
Difficult to manage
Not scalable
Over-provision bandwidth
Not economical
MPLS provides a new method to do traffic engineering (traffic steering)
Example Network:
Ingress node explicitly routes traffic over uncongested path Congested Node
Chosen by Traffic Eng. (least congestion)
Chosen by routing protocol (least cost)
Potential benefits of MPLS for traffic engineering: - allows explicitly routed paths - no “n-squared” problem - per FEC traffic monitoring - backup paths may be configured
operator control scalable granularity of feedback redundancy/restoration
70
MPLS ywcha MPLS Tutorial 2008-10-28 combines benefits of ATM and IP-layer traffic engineering
MPLS Traffic Engineering Methods
• MPLS can use the source routing capability to steer traffic on desired path
• Operator may manually configure these in each LSR along the desired path - analogous to setting up PVCs in ATM switches
• Ingress LSR may be configured with the path, RSVP used to set up LSP - some vendors have extended RSVP for MPLS path set-up
• Ingress LSR may be configured with the path, LDP used to set up LSP - many vendors believe RSVP not suited
• Ingress LSR may be configured with one or more LSRs along the desired path, hop-by-hop routing may be used to set up the rest of the path - a.k.a loose source routing, less configuration required
• If desired for control, route discovered by hop-by-hop routing can be frozen - a.k.a “route pinning”
• In the future, constraint-based routing will offload traffic engineering tasks from the operator to the network itself
2008-10-28 ywcha
MPLS Tutorial
71
인터넷 QoS 모델
QoS는 서비스에 따른 IP 패킷의 구분과 스케쥴링, 대역의 보장을 요구 한다. 인터넷에서 이러한 QoS의 접근 방법에는 두 가지 모델이 존재한다.
Microflow에 대해서 QoS를 보장 • per-flow 기반의 패킷 구분과 대역 보장 • Integrated Services 모델 aggregated flow에 대해서 QoS(혹은 CoS)를 보장 • Differentiated Services 모델
2008-10-28 ywcha
MPLS Tutorial
72
MPLS와 QoS
MPLS에서 별도의 QoS 모델을 정의하는 것은 아니다. MPLS는 IP routing/forwarding 모델의 보완이다. 따라서 MPLS에서의 QoS 목표는 IP에서 정의된 QoS 모델을 지 원하는 것이다. 그런데 MPLS가 traffic aggregation이 사용되는 망에서 적용될 것이기 때문에 여기에 해당하는 IP QoS 모델은 Differentiated Services 모델이다.
따라서 여기서의 주제는 Diff-Serv over MPLS라고 할 수 있다.
2008-10-28 ywcha
MPLS Tutorial
73
Differentiated Services(Diff-Serv)
트래픽 조절 기능과 같은 복잡한 기능은 모두 망의 경계 라우터에서만 처리하고, 망 내 부 라우터는 아주 간단한 패킷 전달(forwarding) 기능만 수행. 망의 경계 라우터는 서비스 계약에 따라서 패킷의 분류를 수행하여 이를 패킷에 표시 (mark)하고, 망 내부 라우터는 패킷에 표시된 정보에 따라서 단순히 패킷의 전달 기능 만을 담당.
LSR
LSR
LSR
LSR
LSR
LSR
LSR
classification and conditioning
(metering, marking, policing등)
2008-10-28 ywcha
Per Hop Behavior
(scheduling, dropping)
MPLS Tutorial
codepoint
PHB
class
74
Diff-Serv 구성 요소
Service Level Agreement(SLA)
사용자와 DS망의 관리자와 서비스 사용을 위한 협약이 이루어진다. SLA에 의해서 DS망을 통해 전달하고자 하는 패킷 flow의 집합체를 정의하게 된다.
트래픽 조절(Traffic Conditioning)
DS망 경계 라우터는 SLA에 의해 정의된 패킷 흐름에 대해서 marking, metering, shaping, policing 기능을 수행한다.
패킷 전달 기능(Per-Hop Behavior)
내부 라우터는 경계 라우터에 의해 mark된 코드에 의해서 단순히 패킷을 전 달한다. 이러한 패킷 전달 기능을 PHB라고 부른다. 현재 Best Effort 외에 Expedited PHB와 Assured PHB에 대해서 정의되어 있다.
DS codepoints
IPv4의 TOS 필드, IPv6의 Class 필드를 사용 이 필드를 DS byte 그리고 여기에 표시되는 값을 DS codepoints라고 부른 다.
2008-10-28 ywcha
MPLS Tutorial
75
DS codepoints
IPv4 Header
4-bit version 4-bit header length
8-bit type of service (TOS)
16-bit total length (in byte)
2-bit 6-bit DS codepoints CU PHB codepoints Default 000000 class selector xxx000 Expedited 101110 forwarding MPLS Tutorial 2008-10-28 ywcha
Currently Unused
76
PHB와 DS codepoints
Default PHB
best effort 서비스에 해당 codepoint = 000000
Expedited Forwarding
가장 우선 순위가 높은 패킷의 전달로 Premium Service라고도 부른다. Virtual leased line 서비스에 해당한다. Jitter-sensitive 트래픽을 대상으로 한다.
• Rate-controlled traffic (video/voice) • simple priority queuing
가장 비싼 값을 지불하며 보장된 서비스를 제공받는다. Codepoint = 101110
Class Selector
현재 라우터에서 쓰고 있는 IP precedence 필드와의 호환을 위해 정의 codepoints = xxx000
2008-10-28 ywcha
MPLS Tutorial
77
Assured Forwarding
약정된 Traffic profile을 지키는 경우 어느 정도 보장 받음
low loss, timely response를 기대할 수 있다.
그러나 profile을 넘어서 트래픽을 보낼 수도 있다. 라우터는 buffer management에 의한 packet drop을 수행한다. ISP 입장에서 사용 방안
약정을 준수하는 트래픽은 flat rate 약정을 초과하는 트래픽은 usage charging
현재 4개의 패킷 전달 우선 순위와 3개의 패킷 폐기 우선 순위(drop precedence) 로 구분하고 있다. AFxy class
x class : 해당 패킷에 대하여 동일한 큐를 선택 y : 동일 클래스에 대하여 drop precedence 를 나타냄.
Drop procedence Low Medium High 2008-10-28 ywcha
Class 1 001010 001100 001110
Class 2 010010 010100 010110 MPLS Tutorial
Class 3 011010 011100 011110
Class 4 100010 100100 100110
78
Diff-Serv over MPLS의 목표
Diff-Serv에서 정의된 동일한 PHB를 LSR이 수행할 수 있도록 한다.
Diff-Serv의 PHB classes와 drop profiles
EF, AF1, AF2, AF3, AF4, CSs, Default PHBs
Non-MPLS Diffserv domain
LER
MPLS Diffserv domain
2008-10-28 ywcha
MPLS Tutorial
79
MPLS 헤더와 Diff-Serv DSCP
Non-MPLS Diffserv domain LER
MPLS Diffserv domain
IP 패킷
IP 패킷 MPLS Header
DSCP DSCP
DSCP
Label
2008-10-28 ywcha
MPLS Tutorial
EXP S
3
1
TTL
80
20
MPLS 헤더와 Diff-Serv DSCP
DSCP값은 LSR에서는 볼 수 없다. 따라서 DSCP 값은 MPLS 헤더의 값으 로 매핑되어야 한다. Diff-Serv에서는 DSCP에 의해서 패킷의 구분(classification/enqueuing) 과 패킷의 폐기 우선순위(drop priority)가 이루어 진다. 이러한 Diff-Serv의 정보를 MPLS에 전달하는데 두 가지 방법이 정의되어 있다. E-LSP (EXP-inferred PSC LSP)
• Scheduling (queuing)을 위한 PHB class는 EXP 값에 의해 구분된다.
• 8 가지(EXP 3 비트)의 PHB 만 지원.
L-LSP (Label-inferred PSC LSP)
• Scheduling (queuing)을 위한 PHB class는 Label 값에 의해 구분된다. • Drop priority는 EXP 값에 의해서 결정된다.
2008-10-28 ywcha
MPLS Tutorial
81
E-LSP
LSR EF와 AF1
LSR
LSR
EF AF1
MPLS 망을 EF와 AF1의 두 PHB class의 패킷이 전달된다고 할 때 ELSP는 동일한 LSP(즉 같은 label 값)를 통해서 전달된다. 하지만 LSR에서 EXP 값에 의해서 다른 queue에 들어간다.
2008-10-28 ywcha
MPLS Tutorial
82
L-LSP
LSR
LSR
LSR
EF AF1
L-LSP의 경우 EF와 AF1의 두 PHB class의 패킷은 별도의 LSP를 통해 서 전달된다. 즉 다른 label 값을 갖는다. 그리고 LSR에서 별도의 queue에 들어간다. Drop priority는 EXP 값에 의해서 결정된다.
2008-10-28 ywcha
MPLS Tutorial
83
E-LSP와 L-LSP의 적용
MPLS over PPP and LAN
E-LSP와 L-LSP 둘 다 적용된다.
MPLS over ATM/FR
ATM/FR은 forwarding을 위해서는 shim header를 사용하지 않음. ATM과 FR은 EXP값을 정의할 수 없으므로 L-LSP만 사용 가능하다.
2008-10-28 ywcha
MPLS Tutorial
84
Summary of Motivations for MPLS
• Simplified forwarding based on exact match of fixed length label
- initial drive for MPLS was based on existance of cheap, fast ATM switches
• Separation of routing and forwarding in IP networks
- facilitates evolution of routing techniques by fixing the forwarding method - new routing functionality can be deployed without changing the forwarding techniques of every router in the Internet
• Facilitates the integration of ATM and IP
- allows carriers to leverage their large investment of ATM equipment - eliminates the adjacency problem of VC-mesh over ATM
•Enables the use of explicit routing/source routing in IP networks
- can be easily used for such things as traffic management, QoS routing
•Promotes the partitioning of functionality within the network
- move granular processing of packets to edge; restrict core to packet forwarding - assists in maintaining scalability of IP protocols in large networks
•Improved routing scalability through stacking of labels
- removes the need for full routing tables from interior routers in transit domain; only routes to border routers are required
•Applicability to both cell and packet link-layers
- can be deployed on both cell (eg. ATM) and packet (eg. FR, Ethernet) media - common management and techniques simplifies engineering
2008-10-28 ywcha Many drivers exist
MPLS Tutorial for MPLS above and beyond high speed forwarding
85