L2TPext Working Group V. Jain Internet-Draft Pipal Systems Expires: September 2002 R. Penno S. McGeown Nortel Networks Ly Loi TahoeNetworks Marc Eaton-Brown FrontRunner Solutions April, 2002 L2TP Tunnel Switching draft-ietf-l2tpext-tunnel-switching-02.txt Status of this Memo This document is an Internet-Draft and is in full conformance with all provisions of Section 10 of RFC2026. Internet-Drafts are working documents of the Internet Engineering Task Force (IETF), its areas, and its working groups. Note that other groups may also distribute working documents as Internet- Drafts. Internet-Drafts are draft documents valid for a maximum of six months and may be updated, replaced, or obsoleted by other documents at any time. It is inappropriate to use Internet- Drafts as reference material or to cite them other than as 'work in progress.' The list of current Internet-Drafts can be accessed at http://www.ietf.org/ietf/1id-abstracts.txt The list of Internet-Draft Shadow Directories can be accessed at http://www.ietf.org/shadow.html. Copyright Notice Copyright (C) The Internet Society (2000). All Rights Reserved. Abstract L2TP "Tunnel Switching" or "Multihop" is the process of forwarding an L2TP tunneled data link from the logical termination point of one L2TP session onto another at an L2TP-aware intervening node. This action has the affect of directing a session, or groups of sessions, based on L2TP or tunneled data link characterisics. Penno, et al. [Page 1] Internet-Draft draft-ietf-l2tpext-switching-02.txt February, 2002 This document will provide some examples of where this technique might be useful in various network environments, offer guidelines to Tunnel Switch implementors, and define associated tunnel switching nomenclature, and provide protocol extensions to help facilitate tunnel switching. Specification of Requirements The keywords MUST, MUST NOT, REQUIRED, SHALL, SHALL NOT, SHOULD, SHOULD NOT, RECOMMENDED, MAY, and OPTIONAL, when they appear in this document, are to be interpreted as described in RFC 2119 [3]. Table of Contents 1. What is L2TP Tunnel Switching. . . . . . . . . . . . . . . 3 2. Tunnel Switching Nomenclature . . . . . . . . . . . . . . .3 3. Advantages of L2TP Tunnel Switching. . . . . . . . . . . . 4 4. Disadvantages of Tunnel Switching. . . . . . . . . . . . . 5 5. Extensions to enhance tunnel switching support. . . . . . .6 6. References . . . . . . . . . . . . . . . . . . . . . . . .11 7. Acknowledgments. . . . . . . . . . . . . . . . . . . . . .11 8. Author's Addresses. . . . . . . . . . . . . . . . . . . . 11 Full Copyright Statement. . . . . . . . . . . . . . . . . 12 Penno, et al. [Page 2] Internet-Draft draft-ietf-l2tpext-switching-02.txt February, 2002 1. What is L2TP Tunnel Switching L2TP tunneling allows processing of layer2 packets to be divorced from the termination of layer2 circuit. L2TP tunnel switching facilitates moving the termination of a layer2 session further to another LNS potentially unknown to the first LAC. It does so by re- tunneling the layer2 session over another L2TP tunnel to a different LNS. The knowledge of whether to switch a layer2 session to another L2TP tunnel can be static or dynamic (for example when a PPP session is established). _______ _______ _______ _______ _______ | L2 | | | | | | | | | User | | LAC A | | LNS A | LAC B | | LNS B | |_______| |_______| |_______|_______| |_______| |------ L2- ------| |---- L2/L2TP ----| |-- L2 --| |------ L2/L2TP -------| |------- tunnel switching ------| The figure above presents a typical tunnel switching scenario. The user opens a layer2 (for example PPP) session to LAC A, which puts the layer2 session into a L2TP tunnel that terminates on LNS A. If LNS A decides to further tunnel the layer2 session, it puts the layer2 session on another L2TP tunnel originating on LAC B and terminating on LNS B. LNS A and LAC B reside on the same device. The process of getting the layer2 session terminating on LNS A and further tunneling it to another LNS, in the example above LNS B, is called tunnel switching. 2. Tunnel Switching Nomenclature Ingress Tunnel Aggregator (ITA): These devices are represented by the first layer of LACs, represented in the picture by LAC A. This is the node which terminates layer2 circuits and initiates the first L2TP tunnel. Penno, et al. [Page 3] Internet-Draft draft-ietf-l2tpext-switching-02.txt February, 2002 Tunnel Switching Aggregator (TSA): These are the devices that act as LNS as well as LAC for a particular layer2 session therefore it typically re-tunnels a layer2 session to another LNS. The TSA is composed of two parts: the TSA-LAC and the TSA-LNS. Egress Tunnel Aggregator (ETA): These are devices that terminate the layer2 session. They are represented in the picture by LNS B. 3. Advantages of L2TP Tunnel Switching * Often, the administrative domain of a LAC, an ILEC or CLEC, is not the same as that of an LNS, which is typically an ISP terminating subscriber's Layer2 connection. In such situations, a multi tier deployment with tunnel switching helps the LEC (ILEC or CLEC) mask its internal network architecture from the ISPs. In particular, it eases the configuration across different administrative domains. For example, for every new ITA added in the system, ISP doesn't need to reconfigure its LNSs - for them the LACs are always same (TSAs). * L2TP tunnel switching divorces the location of "decision-maker" LNS. Certain deployments do not have decision-making capabilities on the LAC. For example PC based LACs might not have mechanisms to be Configured with policies a service provider wants to adopt; On the other hand, it might not be desirable to expose such policies to every customer LAC CPE. The decision to choose the right LNS, for load balancing or other administrative purposes when multiple LNSs are available might not always be best achieved by the first LAC. Not all LACs should be expected to exhibit such rich functionality, features and flexibility. * L2TP tunnel switching allows using a common L2TP tunnel on the LAC for sessions that are actually destined to different LNSs. This enables wholesaling of layer2 sessions destined to any LNS that go over a few tunnels. * L2TP tunnel switching may be used to reduce the number of tunnels in a fully meshed environment. An advantage here may be reflected in a lesser number of LAC to LNS relationships one has to manage by providing an aggregate point for configuration, network management, and provisioning. This could be of particular concern when tunnels cross administrative boundaries. An analysis of the this point is given from three different perspectives: Entire System, ITA, and ETA. * Entire System In a traditional deployment, the total number of L2TP sessions between N LACs (ITA) and M LNSs (ETA) is N*M, assuming there is at least one layer2 session from every LAC that needs to be terminated on each LNS. With tunnel switching, this number can be reduced to (#ETA + #ITA) * (#TSA). Penno, et al. [Page 4] Internet-Draft draft-ietf-l2tpext-switching-02.txt February, 2002 Of course the advantage on the reduction of tunnels in the system only holds when the (#TSA)is less than the number of LNS1s (see picture below). * ITA From the first layer of LACs point of view, the reduction in the number of tunnels holds whenever ITA*TSA < TSA*ETA, which is true for most deployments. * ETA On the other hand, the advantage on the reduction of tunnels from the last LNS (LNS2) point of view in comparison with LNS1 is considerable, since the M*(#TSA) is usually much less than M*N. ____ ______ ______ ______ ______ | PC | | LAC1 |__________| LNS1 | LAC2 |______________| LNS2 | |____| |______|\ ___|______|______| |______| \ / \__/ ___/\ ____ ______ / \ ______ ______ ______ | PC | | LAC1 |_______\__| LNS1 | LAC2 |______________| LNS2 | |____| |______| |______|______| |______| . . . . . . . . / \ . . ____ ______ / \ ______ ______ ______ | PC | | LAC1 |/ \_| LNS1 | LAC2 |______________| LNS2 | |____| |______| |______|______| |______| 4. Disadvantages of L2TP tunnel switching: * Focal point of failure: As TSA aggregates more and more tunnels, it becomes a focal point for failure, in comparison with ITAs having tunnels connected to ETAs directly. * Increased Signaling: Subscriber's might be authenticated/LCP negotiated multiple times, because each TSA might have its own criteria to determine if a subscriber should be authenticated or if LCP parameters negotiated (proxy-LCP) are appropriate. Penno, et al. [Page 5] Internet-Draft draft-ietf-l2tpext-switching-02.txt February, 2002 * Session limit within an L2TP tunnel: Bundling sessions within a single L2TP tunnel makes one deployment more likely to hit the 65k limit inherent of the L2TP protocol faster than if you have unique tunnels. Care should be taken while deploying L2TP tunnel switching to not exceed this limit due to aggregation of various sessions in limited number of tunnels. * When an TSA <-> ETA tunnel collapses for one reason or another (link failure, etc), the initial ITA<->TSA link continues to function normally, even though there is nowhere for the layer2 traffic to go once it gets to this TSA point. This causes a major disruption of service impact, as several subscribers who were knocked off the network will not be able to get back on the network. This creates a "black hole" condition, which directs all new sessions to the TSA, which has no path to the ETA. All new session attempts for this ETA fail. In section 5 we propose a solution to this problem * Session source tracing. A session which passes through a TSA loses much of its source destination information from an L2TP perspective. Thus, if there is a problem with a given session at an LNS, it becomes more difficult to trace the session back to the original LAC from which it began. In section 5 we propose a solution to this problem * L2TP parameters lost in TSA transit. RFC2661 does not specify how exactly to propagate information arriving in L2TP AVPs from one session or control connection to another at a TSA. Thus, there may be inconsistency in what information is propagated, omitted, or replaced at each TSA. In section XA we discuss how information gets propagated through a tunnel switch. 5. Extensions to enhance tunnel switching support In this section we present new AVPs that can enhance tunnel switching support beyond what is usually deployed today and solve some of the problems mentioned on the previous section. These extensions are only applicable for L2TP tunnel switching. 5.1 Tunnel Set Dependency A new object L2TP Dependency should be defined to maintain a relationship between the ITA to TSA tunnels and the TSA to ETA tunnels. Penno, et al. [Page 6] Internet-Draft draft-ietf-l2tpext-switching-02.txt February, 2002 This object can be utilized by ITA to route away L2TP sessions from failures in the TSA to ETA connection. Information about failures between TSA and ETA should be provided to the ITA through a new set of AVPs defined below. 5.2 Tunnel Dependency Load AVP (All Control Messages) The Tunnel Dependency Load AVP, Attribute Type XS, indicates the capacity to carry L2TP sessions from TSA to ETA for certain "service profile" (e.g., a ISP or Domain Name) The Attribute Value field for this AVP has the following format: 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Number of Services Profiles | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | SPN Length | Service Profile Name ... (arbitrary length) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Maximum Load | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Current Load | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The Number of Services Profiles indicates the number of occurrences of the tuple (Service Profile Name, Maximum Load, Current Load). The Service Profile Name is up to 256 bytes long, but MUST be at least 1 octet. This name should be as broadly unique as possible, because the tunnels between ITA to TSA can contain sessions for different service profiles. The Maximum Load indicates the Maximum reference capacity for a service profile. It could be the number of maximum tunnels supported by the system at a point in time, maximum amount of bandwidth, or some other metric that reflects ratio The Current Load indicated the current capacity of the system, it could be the number of active tunnels at a point in time, amount of utilized bandwidth, or some other metric that reflects a meaningful ratio. This AVP MAY be hidden (the H-bit can be either 0 or 1). The M-bit for this AVP MUST be set to 0. Penno, et al. [Page 7] Internet-Draft draft-ietf-l2tpext-switching-02.txt February, 2002 5.3 Loop Prevention AVP The Loop Prevention AVP, Attribute Type TBD, can be used to detect the existence of loops in the TSA network. 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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Number of Nodes | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | HN Length | HostName ... (arbitrary length) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IP address of the Node | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ The Number of Nodes indicates the occurrences of the tuple (Host Name, IP Address). Each tuple identifies a node in the tunnel- switched-path. The Hostname MUST be the same as that used on the Hostname AVP when the tunnel was established. The IP address field represents the IP address which was used to establish the tunnel. This AVP is updated by LAC when a new tunnel is being established. It adds (Hostname, IP address) tuple to the existing AVP and increments Number of Nodes. 5.4 CDN Messages and L2TP Tunnel Switching The Call-Disconnect-Notify (CDN) message is an L2TP control message sent either by the LAC or LNS to request disconnection of a specific call within the L2TP tunnel. Its purpose is to inform the peer of the disconnection and the reason why it occurred. As an indication to its use, an Incoming-Call-Request message is generated by the LAC when the subscriber's call is detected. The LAC selects a Session ID and sends the Incoming-Call-Request to the LNS; it then waits for a response from the LNS - keeping the subscribers call waiting. It is at this point that the LNS may decline to accept the call Penno, et al. [Page 8] Internet-Draft draft-ietf-l2tpext-switching-02.txt February, 2002 It is also understood that if the call is terminated before the LNS accepts it, a Call-Disconnect-Notify is sent by the Calling LAC to indicate this condition, and is understood to be catered for within current L2TP implementation. Any CDN messages originating from the LAC are therefore omitted from the scope of this proposal, however the Calling LAC must interpret the CDN messages received from the LNS correctly, and must take the appropriate steps to ensure that the intention of the CDN messages are carried out as expected. In the case where an L2TP Tunnel Switch has successfully extended the Control Connection to the ETA, and it returns general CDN messages during session establishment, any such messages may be passed transparently through to the ITA or may be interpreted by the TSA; such scenarios are included. The following is proposed with regards of tunnel switching and CDN messages: o To define the circumstances that warrants the ETA to send general protocol CDN messages to the LAC over and above all other signaling mechanisms defined in RFC2661. o To include decisions that may be undertaken by an TSA. o To include assurances that multiple TSA peering is supported. 5.5 Scenarios for generating CDN messages The proposed causes and recommended LNS generated CDN messages for each scenario are documented here. 5.5.1 LNS specific CDN Message Here the TSA-LNS or Peering LNS cannot accept another Session and signals to the downstream LAC. o The TSA-LNS or Peering LNS reaches a pre-determined threshold, this may be administrative or it may be a system function. As a result, CDN Code-7 is generated by the LNS and passed to the downstream LAC. The downstream LAC should change the state of the upstream peer to 'busy' and apply an administrative hold-down. Thereafter the TSA-LAC or ITA should try all possible LNS peers - if there are no available LNS peers the CDN Code should be passed to the downstream LAC by the TSA-LNS only. The Calling LAC may choose to clear the call. Penno, et al. [Page 9] Internet-Draft draft-ietf-l2tpext-switching-02.txt February, 2002 5.5.2 TSA-LAC specific CDN Message This scenario only affects the TSA-LAC, which cannot establish another session due to it reaching the aggregate session limit. o If the TSA-LAC exceeds max-sessions then it may signal to the TSA-LNS to generate a CDN Code-4 for the downstream LAC. The downstream LAC should change the state of the upstream peer to 'busy' and apply an administrative hold-down. Thereafter the TSA-LAC or Calling LAC should try all possible LNS peers - if there are no available LNS peers the CDN Code should be passed to the downstream LAC by the TSA-LNS only. The Calling LAC may choose to clear the call. 5.5.3 Calling LAC Control Connection failures If there is a problem for the LAC to establish an L2TP tunnel, because the Control Connection to the LNS is down, then a general CDN message may or may not be appropriate depending upon the LAC type. Three scenarios are mentioned here. o The Calling LAC cannot establish a Control Connection with the Peering LNS. If the Calling LAC cannot continue with a session because there is no Control Channel then it should try another L2TP peer. The Calling LAC should record the unavailability of the Peering LNS and mark it as unavailable for a period of time that is determined by the Administrator. o The TSA-LAC cannot establish a Control Connection with the upstream LNS If the TSA-LAC cannot continue with a session because there is no Control Channel then a CDN Code-1 message may be generated by the TSA-LNS to signal to the upstream LAC to try another L2TP peer. The TSA-LAC should change the state of the upstream peer to 'dead' and apply an administrative hold-down. Thereafter the TSA-LAC should try all possible LNS peers - if there are no available LNS peers the CDN Code should be passed to the downstream LAC by the TSA-LNS only. o Calling LAC receives CDN Code-1 If the Calling LAC receives CDN Code-1, then it should try another L2TP peer. The Calling LAC should record the unavailability of the upstream LNS and mark it as unavailable for a period of time that is determined by the Administrator. The Calling LAC will thereafter clear the call. Penno, et al. [Page 10] Internet-Draft draft-ietf-l2tpext-switching-02.txt February, 2002 5.5.4 LNS Session Failure Unable to accept the incoming call the peer LNS may return the correct CDN message defined above or it may be unaware of these requirements. The following are therefore best provided by implementation since there are a number of options that may be selected. * The Administrator may choose to interpret all CDN messages generated by the upstream LNS. This is typically because the LNS employs the CDN Codes defined above (and may be implemented as the default option). * The Administrator may choose to ignore the CDN messages generated by the upstream LNS, and by so doing may alert the downstream LAC to mark it as unavailable for a period of time. This is typically due to the upstream LNS being unaware of the CDN Codes defined above. * The Administrator may choose to relay any CDN messages generated by the upstream LNS transparently through to the downstream LAC. This caters for the scenario where the TSA is not interpreting the CDN Codes correctly or the topology does not lend itself to the TSA intercepting CDN messages. 6. References [RFC 2661] W. Townsley, A. Valencia, A. Rubens, G. Pall, G. Zorn, B. Palter, "Layer 2 Tunnel Protocol (L2TP)", RFC2661, August 1999. [RFC 1661] Simpson, W., "The Point-to-Point Protocol (PPP)", STD 51, RFC 1661, July 1994. [RFC 2119] Bradner, S., "Key words for use in RFCs to Indicate Requirement Levels", BCP 14, RFC 2119, March 1997. 7. Acknowledgments Thanks to W. Mark Townsley for his valuable comments 8. Author's Addresses Vipin Jain Pipal Systems 2903 Bunker Hill Lane, Santa Clara CA 95054 Phone: 408-970-4700 Email: vipin@pipalsys.com Penno, et al. [Page 11] Internet-Draft draft-ietf-l2tpext-switching-02.txt February, 2002 Reinaldo Penno Nortel Networks, Inc. 2305 Mission College Boulevard Building SC9 Santa Clara, CA 95054 Email: rpenno@nortelnetworks.com Ly Loi Tahoe Networks, Inc. 3052 Orchard Drive San Jose, CA 95134 Phone: +1 408.944.8630 Email: lll@tahoenetworks.com Marc Eaton-Brown FrontRunner Solutions, Ltd. 131 Finsbury Pavement Moorgate London EC2A 1NT Phone: +44 7989 498337 Email: mebrown@frontrunner.eu.com Full Copyright Statement Copyright (C) The Internet Society (2000). All Rights Reserved. This document and translations of it may be copied and furnished to others, and derivative works that comment on or otherwise explain it or assist in its implementation may be prepared, copied, published and distributed, in whole or in part, without restriction of any kind, provided that the above copyright notice and this paragraph are included on all such copies and derivative works. However, this document itself may not be modified in any way, such as by removing the copyright notice or references to the Internet Society or other Internet organizations, except as needed for the purpose of developing Internet standards in which case the procedures for copyrights defined in the Internet Standards process must be followed, or as required to translate it into languages other than English. The limited permissions granted above are perpetual and will not be revoked by the Internet Society or its successors or assigns. Penno, et al. [Page 12] Internet-Draft draft-ietf-l2tpext-switching-02.txt February, 2002 This document and the information contained herein is provided on an "AS IS" basis and THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE DISCLAIMS ALL WARRANTIES, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTY THAT THE USE OF THE INFORMATION HEREIN WILL NOT INFRINGE ANY RIGHTS OR ANY IMPLIED WARRANTIES OF MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Acknowledgement Funding for the RFC editor function is currently provided by the Internet Society.