330 likes | 660 Views
MPLS LDP draft-ietf-mpls-ldp-06.txt. Contents. 1. LDP Overview 1.1 LDP Peers 1.2 LDP Message Exchange 1.3 LDP Message Structure 1.4 LDP Error Handling 1.5 LDP Extensibility and Future Compatibility. Contents. 2. LDP Operation 2.1 FECs
E N D
Contents • 1. LDP Overview • 1.1 LDP Peers • 1.2 LDP Message Exchange • 1.3 LDP Message Structure • 1.4 LDP Error Handling • 1.5 LDP Extensibility and Future Compatibility MPLS LDP
Contents • 2. LDP Operation • 2.1 FECs • 2.2 Label Spaces, Identifiers, Sessions and Transport • 2.3 LDP Sessions between non-Directly connected LSRS • 2.4 LDP Discovery • 2.5 Establishing and Maintaining LDP Sessions • 2.6 Label Distribution and Management • 2.7 LDP Identifiers and Next Hop Addresses • 2.8 Loop Detection • 2.9 Label Distribution for Explicitly Routed LSPs MPLS LDP
1. LDP Overview • Label Distribution Protocol • The set of procedures and messages by which label switched routers(LSR) establish Label Switched Path(LSPs) through a network by mapping network-layer routing information directly to data-link layer switched paths MPLS LDP
1. LDP Overview • 1.1 LDP Peers • Two LSRs which LDP to exchange label/FEC mapping informaion MPLS LDP
1. LDP Overview • 1.2 LDP Message Exchange • Discovery Message • To announce and maintain the presence of an LSR in a network • Hello Message • Session Message • To establish, maintain, and terminate sessions between LDP peers • Initialization, KeepAlive Message • Advertisement Message • To create, change, and delete label mappings for FECs • Label Mapping, Label request, Label withdraw, Label release • Notification Message • To provide advisory information and to signal error information • Notification Message(Error, Advisory) MPLS LDP
1. LDP Overview • 1.2 LDP Message Exchange • Hello message를 주기적으로 보냄으로써 네트웍에서 자기 LSR의 존재를 알림 • group multicast address(주위의 모든 라우터)의 LDP port로 LDP 패킷을 전송 • Hello message를 통해 알게된 LSR과 session establish -> LDP initialization over TCP • exchange advertisement message • Label mapping이 필요한 LSR이 이웃 LSR에게 요청하면 이웃 LSR은 label mapping을 한 후 그 mapping 정보를 advertise • Session, advertisement, notification – over TCP • Discovery – over UDP MPLS LDP
1. LDP Overview • 1.3 LDP Message Structure • Type-Length-Value(TVL) encoding scheme • 1.4 LDP Error Handling • LDP Error는 notification message에 의해 LDP peer에 signal됨 • Error notification • To signal fatal errors • 만약 LSR이 peer로부터 error notification을 받으면 TCP connection을 닫음으로써 LDP session을 종료하고 session에서 일어났던 모든 label mapping을 discard한다 • Advisory notification • To pass an LSR information about the LDP session or the status of some previous message received from the peer MPLS LDP
1. LDP Overview • 1.5 LDP Extensibility and Future Compatibility • Future functionality will utilize new messages and object types • Desirable to employ such new messages and TLVs within a network using older implementations that do not recognize them (compatible) MPLS LDP
2. LDP Operation • 2.1 FECs • The set of IP packets which may be mapped to that LSR • Type of FEC element • Address Prefix • Address prefix of any length from 0 to a full address • Host Address • A full host address MPLS LDP
2. LDP Operation • 2.1 FECs • 패킷을 LSP에 매핑하는 procedure rule • 패킷의 destination addr와 동일한 Host Adress FEC element를 가진 LSP로 매핑 (multiple LSP-> 하나 선택) • Matching prefix가 가장 긴 prefix에 매핑 MPLS LDP
2. LDP Operation • 2.2 Label Spaces, Identifiers, Sessions and Transport • Label Spaces • Per interface label space • Use interface resource for label • Per platform label space • Share the same label • LDP Identifiers • Six octet, to identify an LSR label space • <IP Addr> : <Label Space id> • Ex: 171.32.27.28:0, 192.0.3.5:2 MPLS LDP
2. LDP Operation • 2.2 Label Spaces, Identifiers, Sessions and Transport • LDP Session • Exist between LSRs to support label exchange between them • LDP Transport • Use TCP as a reliable transport for sessions MPLS LDP
2. LDP Operation • 2.3 LDP Sessions between non-Directly Connected LSRs • Desirable in some situation • Ex: Traffic engineering application • Intermediate LSR이 하나 이상 있는 LSRa와 LSRb간 Traffic matching criteria를 전송 • Packet label stack 사용 MPLS LDP
2. LDP Operation • 2.4 LDP Discovery • Mechanism that enables an LSRs to discover potential LDP peers • Two variants of the discovery mechanism • Basic discovery mechanism • To discover LSR neighbors that are directly connected at the link level • 주기적으로 group multicast address의 well-known LDP discovery port에 LDP Link Hello message를 보냄 • LDP Link Hello carries the LDP identifiers • “Hello adjacency” : LDP peer reachable at the link level and label space MPLS LDP
2. LDP Operation • 2.4 LDP Discovery • Extended discovery mechanism • To locate LSRs that are not directly connected at the link level • 주기적으로 specific IP address의 well-known LDP discovery port에 LDP Link Hello message를 보냄 • LDP Link Hello carries the LDP identifiers • “Hello adjacency” : LDP peer reachable at the network level and label space • Basic과 다른 점 • “all routers”가 아닌 specific IP addr • Basic: symetric, Extended: asysmetric (targeted LSR decides whether to respond or ignore) MPLS LDP
MPLS Node ‘A’ MPLS Node ‘B’ MPLS Node ‘C’ Basic Neighbor Discovery Procedure Link Hello Message Link Hello Message Symmetric Extended Neighbor Discovery Procedure Targeted Hello Message Targeted Hello Message Asymmetric Targeted Hello Message MPLS LDP
2. LDP Operation • 2.5 Establishing and Maintaining LDP Sessions • LDP Session Establishment • The exchange of LDP Discovery Hellos between two LSRs triggers LDP session establishment • Two progress of Session establishment • Transport connection establishment • Session Initialization MPLS LDP
2. LDP Operation • 2.5 Establishing and Maintaining LDP Sessions • LSR1:a와 LSR2:b label space 교환을 가정 • Transport Connection Establishment • 1. LSR1 opens TCP connections for a new LDP session with LSR2 • Hello message 안 Optional parameter의 Transport address, UDP의 source IP addr • 2. Address LSR1과 LSR2를 unsigned integer로 비교하여 큰 쪽이 active role(<-> passive role) • Active한 LSR이 LDP TCP connection 설정 MPLS LDP
2. LDP Operation • 2.5 Establishing and Maintaining LDP Sessions • Session Initialization • After TCP connection, Negotiate session parameters by exchanging LDP initialization messages • Active한 LSR이 passive LSR에게 initialization message를 조냄 • Passive LSR은 initialization message를 받은 후 label space를 match( Initialization과 Hello adjacency의 LDP identifier) MPLS LDP
2. LDP Operation • 2.5 Establishing and Maintaining LDP Sessions • When LSR1 plays the passive role • Matching 되면 session에 대한 local label space를 specify하고 session parameter가 적절한지 검사하고 적절하다면 자신의 parameter로 initialization message를 reply하고 LSR2의 parameter를 받아들인다는 신호로 KeepAlive messag를 보낸다. • Matching이 안된다면 Session Rejected/No Hello Error Notification message를 보내고 TCP 연결을 닫음 • LSR1이 KeepAlive message를 받으면 session은 opertional • Error message를 받으면 LSR2 가 reject 및 tcp 연결을 종료함 MPLS LDP
2. LDP Operation • 2.5 Establishing and Maintaining LDP Sessions • When LSR1 plays the active role • LSR1이 initialization message를 보내고 Error notification message를 받는다면 LSR2는 session reject & tcp connection close • LSR2로부터 받은 Initialization message의 parameter가 적절한가 보고 적절하면 KeepAlive message를 reply. 적절하지 않다면 Error Notification message를 보내고 tcp connection close • Initializatin msg와 KeepAlive msg 받을 때 LSR1의 관점에선 session은 operational MPLS LDP
MPLS Node ‘A’ (210.126.10.254) MPLS Node ‘B’ (210.126.9.254) MPLS Node ‘C’ (210.126.8.254) Determine Active or Passive Passive role for ‘A’ Active role for ‘B’ Passive role for ‘B’ Active role for ‘C’ Transport Connection Established Initialization Message Initialization Message Initialization Message Initialization Message KeepAlive Message KeepAlive Message KeepAlive Message KeepAlive Message LDP Session Established LDP Session Established MPLS LDP
NON EXISTENT INITIALIZED OPENREC OPENSENT OPERATIONAL Session Initialization State Transition Diagram Rx Any other msg or Timeout / Tx NAK msg Rx any LDP msg except Init msg or Timeout Session connection established (Passive Role) Rx Acceptable Init msg / Tx Init msg and KeepAlive msg (Active Role) Tx Init msg Rx Any other msg or Timeout Tx NAK msg Rx Acceptable Init msg / Tx KeepAlive msg Rx KeepAlive msg Rx Shutdown msg or Timeout / Tx Shutdown msg All other LDP msg MPLS LDP
2. LDP Operation • Maintaining Hello Adjacencies • Use the regular receipt of LDP discovery Hellos to indicate a peer’s intent to use the label space identified by the Hello • LSR maintains Hold Timer • Hello msg를 받을 때 restart • If timer expires, LSR deletes the Hello adjacency • 더 이상 label switching을 하지 않거나 peer가 fail된 경우 • 모든 Hello adjacency를 지우고 LDP session를 종료하고 tcp connection을 close MPLS LDP
2. LDP Operation • Maintaining LDP sessions • Use the regular receipt of LDP PDUs on the session transport connection to monitor the integrity of the session • LSR maintains KeepAlive timer for each peer session • LDP PDU를 받을 때마다 timer reset • If timer expires, LSR terminates LDP session by closing the the transport connection • Transport connection이 나쁘거나 peer가 fail된 경우 • LDP session이 설정된 이후 매 KeepAlive time period에 KeepAlive msg를 보냄 MPLS LDP
2. LDP Operation • 2.6 Label Distribution and Management • Label Distribution Control Mode • Independent • Each LSR advertises label mappings to its neighbors at anytime it desires • Ordered • An LSR may initiate the transmission of a label mapping only for which it has a label mapping for the FEC next hop, or for which the LSR is the egress MPLS LDP
Independent Label Distribution Control Mode Recognize New FEC Recognize New FEC Recognize New FEC Recognize New FEC MPLS Node ‘A’ MPLS Node ‘B’ MPLS Node ‘C’ Request for binding Request for binding Label-FEC binding Label-FEC binding Ordered Label Distribution Control Mode Request for binding Request for binding Label-FEC binding Label-FEC binding MPLS LDP
2. LDP Operation • Label Retention Mode • Conservative • 패킷을 forwarding하는 Next hop에 대한 advertised label만 retain • 매핑된 Label만 allocate하고 maintain하면 됨 • Next hop이 바뀐다면 새로운 label이 패킷이 전송되기 전에 할당되어야 한다 • Liberal • Peer에서 받은 모든 label mapping을 retain • Label이 미리 있기 때문에 route change에 신속히 대처 • Unneeded label mapping을 distribute하고 maintain해야 한다 MPLS LDP
2. LDP Operation • Label Advertisement Mode • Downstream Unsolicited • Distribute label bindings to LSRs that have not explicitly requested them • Downstream on Demand • distribute a FEC label binding in response to an explicite request from other LSR MPLS LDP
2. LDP Operation • 2.7 LDP Identifiers and Next Hop Addresses • Label Information Base(LIB) • LIB entry for an address prefix associates a collection of (LDP identifier, label) pairs with prefix • Prefix에 대한 next hop이 바뀔때 • LIB에서 new next hop에 대한 label을 retrieve • To map the next hop address for the prefix to LDP identifier • LDP peer에서 prefix에 대한 label을 retrieve • To map LDP identifier to the peer’s addresses to check whether any are a next hop for the prefix • To enable LSRs to map between a peer LDP identifier and the peer’s addresses, LSRs advertrise their addresses using LDP Address and Widraw Address messages MPLS LDP
2. LDP Operation • 2.8 Loop Detection • Use of Path Vector and Hop Count TLVs • Carried by Label Request and Label Mapping msgs) • Path Vector TLV • Message가 지나왔던 LSR의 list • 각 LSR은 unique한 ID를 가지며 message가 지나갈 경우자신의 ID를 추가 • Message를 받은 LSR은 path vector list를 열어보고 자신의 ID가 있으면 loop detect • Maximum allowable path vector length를 지원, 넘으면 loop MPLS LDP
2. LDP Operation • Hop Count TLV • LSR의 count • Hop count가 maximum value에 도달하면 loop • loop가 발견되면 label 사용을 중지하고 label mapping message를 drop하고 Loop Detected Notification message를 Label mapping message의 source로 전송한다 • 2.9 Label Distributi on for Explicitly Routed LSPs • MPLS support for traffic engineering uses explicitly routed LSPs • CR-LDP: explicitly routed LSP를 설정하기 위한 LDP 확장 MPLS LDP