l1vpn WG                                         Hamid Ould-Brahim
                                                                 Don Fedyk
        Internet Draft                                              Nortel
        Expiration Date: September 2006
                                                             Yakov Rekhter
                                                          Juniper Networks
     
                                                                March 2006
     
     
                       BGP-based Auto-Discovery for L1VPNs
     
                draft-ouldbrahim-l1vpn-bgp-auto-discovery-01.txt
     
     
     Status of this Memo
     
        By submitting this Internet-Draft, each author represents
        that any applicable patent or other IPR claims of which he
        or she is aware have been or will be disclosed, and any of which
        he or she becomes aware will be disclosed, in accordance with
        Section 6 of BCP 79.
     
        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.
     
     Abstract
     
        The purpose of this draft is to define a BGP-based auto-
        discovery mechanism for layer-1 VPNs. The auto-discovery
        mechanism for l1vpns allows the provider network devices to
        dynamically discover the set of PEs having ports attached to
        CEs member of the same VPN. That information is necessary for
        completing the signaling phase. One main objective of l1vpn
        auto-discovery mechanism is to support "single-end
        provisioning" model, where addition of a new port to a given
        l1vpn would involve configuration changes only on the PE that
        has this port and on the CE that is connected to the PE via
        this port.
     
     Ould-Brahim, Rekhter             March 2006            [Page 1]


        draft-ouldbrahim-l1vpn-bgp-auto-discovery-01.txt  September 2006
     
     
     1. Introduction
     
     
        The purpose of this draft is to define a BGP-based auto-
        discovery mechanism for layer-1 VPNs. The auto-discovery
        mechanism for l1vpns allows the provider network devices to
        dynamically discover the set of PEs having ports attached to
        CEs member of the same VPN. That information is necessary for
        completing the signaling phase. One main objective of l1vpn
        auto-discovery mechanism is to support "single-end
        provisioning" model, where addition of a new port to a given
        l1vpn would involve configuration changes only on the PE that
        has this port and on the CE that is connected to the PE via
        this port.
     
        The auto-discovery mechanism proceeds by having a PE advertises
        to other PEs, at a minimum, its own IP address and the list of
        <private address, provider address> tuples local to that PE.
        Once that information is received, the remote PEs will identify
        the list of VPN members they have in common with the
        advertising PE, and use the information carried within the
        discovery mechanism to perform address resolution during
        signaling phase.
     
                       PE                        PE
                    +---------+             +--------------+
        +--------+  | +------+|             | +----------+ | +--------+
        |  VPN-A |  | |VPN-A ||             | |  VPN-A   | | |  VPN-A |
        |   CE1  |--| |PIT   ||  BGP route  | |  PIT     | |-|   CE2  |
        +--------+  | |      ||<----------->| |          | | +--------+
                    | +------+| Distribution| +----------+ |
                    |         |             |              |
        +--------+  | +------+|             | +----------+ | +--------+
        | VPN-B  |  | |VPN-B ||  --------   | |   VPN-B  | | |  VPN-B |
        |  CE1   |--| |PIT  ||-(   GMPLS )--| |   PIT    | |-|   CE2  |
        +--------+  | |      || (Backbone ) | |          | | +--------+
                    | +------+|  ---------  | +----------+ |
                    |         |             |              |
        +--------+  | +-----+ |             | +----------+ | +--------+
        | VPN-C  |  | |VPN-C| |             | |   VPN-C  | | |  VPN-C |
        |  CE1   |--| |PIT  | |             | |   PIT    | |-|   CE2  |
        +--------+  | |     | |             | |          | | +--------+
                    | +-----+ |             | +----------+ |
                    +---------+             +--------------+
     
                    Figure 1 BGP auto-discovery for l1vpn
     
     
     
     
        This version of the draft focuses on describing an auto-
        discovery mechanism for the basic mode only. Details for the
     Ould-Brahim et al.            March 2006                      [Page 2]


        draft-ouldbrahim-l1vpn-bgp-auto-discovery-01.txt  September 2006
     
        enhanced mode will be described in future revised version of
        this draft.
     
     2. Procedures
     
        In the context of l1vpns, a CE is connected to a PE via one or
        more ports, where each port may consists of one or more
        channels or sub-channels. Each port on a CE that connects the
        CE to a PE has an identifier that is unique within that l1vpn
        (but need not be unique across several l1vpn). We refer to this
        identifier as the customer port identifier (CPI). Each port on
        a PE has as well an identifier that is unique within that
        provider network. We refer to this identifier as the provider
        port identifier (PPI). Note that IP addresses used for CPIs,
        PPIs could be either IPv4 or IPv6 addresses.
     
        A PE maintains for each l1vpn configured on that PE a port
        information tables (PIT) associated with each l1vpn that has at
        least one port configured on a PE. A PIT contains a list of
        <CPI, PPI> tuples for all the ports within its l1vpn. Note that
        a PIT may as well hold routing information (for example when
        CPIs are learnt using a routing protocol).
     
     
        A PIT on a given PE is populated from two sources: the
        information related to the CEs’ ports attached to the ports on
        that PE (this information could be optionally received from the
        CEs), and the information received from other PEs through the
        auto-discovery mechanism. We’ll refer to the former as the
        "local" information, and to the latter as the "remote"
        information.
     
        Propagation of local information to other PEs is accomplished
        by using BGP multiprotocol extensions as specified in [BGP-VPN-
        AUTODISCOVERY]. To restrict the flow of this information to
        only the PITs within a given l1vpn, we use BGP route filtering
        based on the Route Target Extended Community [BGP-COMM], as
        follows.
     
        Each PIT on a PE is configured with one or more Route Target
        Communities, called "export Route Targets", that are used for
        tagging the local information when it is exported into
        provider’s BGP. The granularity of such tagging could be as
        fine as a single <CPI, PPI> pair. In addition, each PIT on a PE
        is configured with one or more Route Target Communities, called
        "import Route Targets", that restrict the set of routes that
        could be imported from provider’s BGP into the PIT to only the
        routes that have at least of these Communities.
     
        When a service provider adds a new l1vpn port to a particular
        PE, this port is associated at provisioning time with a PIT on
        that PE, and this PIT is associated (again at provisioning
        time) with that l1vpn.
     
     Ould-Brahim et al.            March 2006                      [Page 3]


        draft-ouldbrahim-l1vpn-bgp-auto-discovery-01.txt  September 2006
     
        Note that since the protocol used to populate a PIT with remote
        information is BGP, since BGP works across multiple routing
        domains, it follows that the mechanisms described in this
        document could support l1vpns that span multiple routing
        domains.
     
     3. Carrying l1vpn information in BGP
     
        The <CPI, PPI> mapping is carried using the Multiprotocol
        Extensions BGP [RFC2858]. [RFC2858] defines the format of two
        BGP attributes, MP_REACH_NLRI and MP_UNREACH_NLRI that can be
        used to announce and withdraw the announcement of reachability
        information. We introduce a new a new subsequent address family
        identifier (to be assigned by the IANA), and also a new NLRI
        format for carrying the CPI and PPI information.
     
        One or more <PPI, CPI> tuples could be carried in the above
        mentioned BGP attributes.
     
        The format of encoding a single <PPI, CPI> tuple is shown in
        Figure 2 below:
     
             +---------------------------------------+
             |     Length (1 octet)                  |
             +---------------------------------------+
             |     PPI Length (1 octet)              |
             +---------------------------------------+
             |     PPI (variable)                    |
             +---------------------------------------+
             |     CPI AFI (2 octets)                |
             +---------------------------------------+
             |     CPI (length)                      |
             +---------------------------------------+
             |     CPI (variable)                    |
             +---------------------------------------+
     
             Figure 2: NLRI BGP encoding
     
          The use and meaning of these fields are as follows:
     
              Length:
     
                 A one octet field whose value indicates the length of
             the  <PPI, CPI> Information tuple in octets.
     
     
              PPI Length:
     
                A one octet field whose value indicates the length of
                of the PPI field
     
              PPI field:
     
                A variable length field that contains the value of
     Ould-Brahim et al.            March 2006                      [Page 4]


       draft-ouldbrahim-l1vpn-bgp-auto-discovery-01.txt  September 2006
     
                the PPI (either an address or <port index,
                address> tuple
     
              CPI AFI field:
     
                A two octets field whose value indicates address
                family of the CPI.
     
              CPI Length:
     
                A once octet field whose value indicates the
                length of the CPI field.
     
              CPI (variable):
     
                A variable length field that contains the CPI
                value (either an address or <port index, address>
                tuple.
     
     
     4. Security Considerations
     
        TBD.
     
     
     5. References
     
     
        [BGP-VPN-AUTODISCOVERY] Ould-Brahim, H.,  Rosen, E., Rekhter,
           Y., "Using BGP as an Auto-Discovery Mechanism for Layer-3
           and Layer-2 VPNs",  draft-ietf-l3vpn-bgpvpn-auto-05.txt,
           work in progress
     
        [GVPN] Ould-Brahim, H., Rekhter, Y., et al., "Generalized VPNs
           using BGP and GMPLS toolkit", work in progress, August 2005.
     
        [BGP-COMM] Ramachandra, Tappan, et al., "BGP Extended
           Communities Attribute",  draft-ietf-idr-bgp-ext-communities-
           08.txt, August 2005, work in progress.
     
        [BGP-MP] Bates, Chandra, Katz, and Rekhter, "Multiprotocol
           Extensions for BGP4", February 1998, RFC 2283.
        [L1VPN-FRMK] Tomonori Takeda, et al., " Framework and
        Requirements for Layer 1 Virtual Private Networks", draft-ietf-
        l1vpn-framework-00.txt, August 2005, work in progress.
     
     
     6. Author's Addresses
     
     
        Hamid Ould-Brahim
        Nortel
        P O Box 3511 Station C
     Ould-Brahim et al.            March 2006                      [Page 5]


        draft-ouldbrahim-l1vpn-bgp-autodiscovery-01.txt    October 2005
     
        Ottawa ON K1Y 4H7 Canada
        Phone: +1 (613) 765 3418
        Email: hbrahim@nortel.com
     
        Yakov Rekhter
        Juniper Networks
        1194 N. Mathilda Avenue
        Sunnyvale, CA 94089
        Email: yakov@juniper.net
     
     
        Don Fedyk
        Nortel
        600 Technology Park
        Billerica, Massachusetts
        01821 U.S.A
        Phone: +1 (978) 288 3041
        Email: dwfedyk@nortel.com
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     
     Ould-Brahim et al.            March 2006                      [Page 6]


         draft-ouldbrahim-l1vpn-bgp-autodiscovery-01.txt    October 2005
     
     
        Intellectual Property Statement
     
           The IETF takes no position regarding the validity or scope
           of and Intellectual Property Rights or other rights that
           might be claimed to pertain to the implementation or use of
           the technology described in this document or the extent to
           which any license under such rights might or might not be
           available; nor does it represent that it has made any
           independent effort to identify any such rights.  Information
           on the procedures with respect to rights in RFC documents
           can be found in BCP 78 and BCP 79.
     
           Copies of IPR disclosures made to the IETF Secretariat and
           any assurances of licenses to be made available, or the
           result of an attempt made to obtain a general license or
           permission for the use of such proprietary rights by
           implementers or users of this specification can be obtained
           from the IETF on-line IPR repository at
           http://www.ietf.org/ipr.
     
           The IETF invites any interested party to bring to its
           attention any copyrights, patents or patent applications, or
           other proprietary rights that may cover technology that may
           be required to implement this standard.  Please address the
           information to the IETF at ietf-ipr@ietf.org.
     
        Disclaimer of Validity
     
           This document and the information contained herein are
           provided on an "AS IS" basis and THE CONTRIBUTOR, THE
           ORGANIZATION HE/SHE REPRESENTS OR IS SPONSORED BY (IF ANY),
           THE INTERNET SOCIETY AND THE INTERNET ENGINEERING TASK FORCE
           DISCLAIM 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.
     
     
        Copyright Statement
     
           Copyright (C) The Internet Society (2006).  This document is
           subject to the rights, licenses and restrictions contained
           in BCP 78, and except as set forth therein, the authors
           retain all their rights.
     
     
     
     
     
     
     Ould-Brahim et al.            March 2006                      [Page 7]