Skip to main content

HTTP Origin-Bound Authentication (HOBA)
draft-ietf-httpauth-hoba-10

The information below is for an old version of the document that is already published as an RFC.
Document Type
This is an older version of an Internet-Draft that was ultimately published as RFC 7486.
Authors Stephen Farrell , Paul E. Hoffman , Michael Thomas
Last updated 2015-10-14 (Latest revision 2015-01-08)
Replaces draft-farrell-httpbis-hoba
RFC stream Internet Engineering Task Force (IETF)
Intended RFC status Experimental
Formats
Reviews
Additional resources Mailing list discussion
Stream WG state Submitted to IESG for Publication
Document shepherd Yoav Nir
Shepherd write-up Show Last changed 2014-12-10
IESG IESG state Became RFC 7486 (Experimental)
Action Holders
(None)
Consensus boilerplate Yes
Telechat date (None)
Responsible AD Kathleen Moriarty
Send notices to (None)
IANA IANA review state Version Changed - Review Needed
IANA action state RFC-Ed-Ack
draft-ietf-httpauth-hoba-10
Internet Engineering Task Force (IETF)                            B. Wen
Request for Comments: 8466                                       Comcast
Category: Standards Track                               G. Fioccola, Ed.
ISSN: 2070-1721                                           Telecom Italia
                                                                  C. Xie
                                                           China Telecom
                                                                L. Jalil
                                                                 Verizon
                                                            October 2018

                         A YANG Data Model for
        Layer 2 Virtual Private Network (L2VPN) Service Delivery

Abstract

   This document defines a YANG data model that can be used to configure
   a Layer 2 provider-provisioned VPN service.  It is up to a management
   system to take this as an input and generate specific configuration
   models to configure the different network elements to deliver the
   service.  How this configuration of network elements is done is out
   of scope for this document.

   The YANG data model defined in this document includes support for
   point-to-point Virtual Private Wire Services (VPWSs) and multipoint
   Virtual Private LAN Services (VPLSs) that use Pseudowires signaled
   using the Label Distribution Protocol (LDP) and the Border Gateway
   Protocol (BGP) as described in RFCs 4761 and 6624.

   The YANG data model defined in this document conforms to the Network
   Management Datastore Architecture defined in RFC 8342.

Status of This Memo

   This is an Internet Standards Track document.

   This document is a product of the Internet Engineering Task Force
   (IETF).  It represents the consensus of the IETF community.  It has
   received public review and has been approved for publication by the
   Internet Engineering Steering Group (IESG).  Further information on
   Internet Standards is available in Section 2 of RFC 7841.

   Information about the current status of this document, any errata,
   and how to provide feedback on it may be obtained at
   https://www.rfc-editor.org/info/rfc8466.

Wen, et al.                  Standards Track                    [Page 1]
RFC 8466               L2VPN Service Model (L2SM)           October 2018

Copyright Notice

   Copyright (c) 2018 IETF Trust and the persons identified as the
   document authors.  All rights reserved.

   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (https://trustee.ietf.org/license-info) in effect on the date of
   publication of this document.  Please review these documents
   carefully, as they describe your rights and restrictions with respect
   to this document.  Code Components extracted from this document must
   include Simplified BSD License text as described in Section 4.e of
   the Trust Legal Provisions and are provided without warranty as
   described in the Simplified BSD License.

Table of Contents

   1.  Introduction  . . . . . . . . . . . . . . . . . . . . . . . .   4
     1.1.  Terminology . . . . . . . . . . . . . . . . . . . . . . .   4
       1.1.1.  Requirements Language . . . . . . . . . . . . . . . .   5
     1.2.  Tree Diagrams . . . . . . . . . . . . . . . . . . . . . .   5
   2.  Definitions . . . . . . . . . . . . . . . . . . . . . . . . .   5
   3.  The Layer 2 VPN Service Model . . . . . . . . . . . . . . . .   7
     3.1.  Layer 2 VPN Service Types . . . . . . . . . . . . . . . .   7
     3.2.  Layer 2 VPN Physical Network Topology . . . . . . . . . .   7
   4.  Service Data Model Usage  . . . . . . . . . . . . . . . . . .   9
   5.  Design of the Data Model  . . . . . . . . . . . . . . . . . .  11
     5.1.  Features and Augmentation . . . . . . . . . . . . . . . .  20
     5.2.  VPN Service Overview  . . . . . . . . . . . . . . . . . .  20
       5.2.1.  VPN Service Type  . . . . . . . . . . . . . . . . . .  21
       5.2.2.  VPN Service Topologies  . . . . . . . . . . . . . . .  22
         5.2.2.1.  Route Target Allocation . . . . . . . . . . . . .  22
         5.2.2.2.  Any-to-Any  . . . . . . . . . . . . . . . . . . .  22
         5.2.2.3.  Hub-and-Spoke . . . . . . . . . . . . . . . . . .  22
         5.2.2.4.  Hub-and-Spoke Disjoint  . . . . . . . . . . . . .  23
       5.2.3.  Cloud Access  . . . . . . . . . . . . . . . . . . . .  24
       5.2.4.  Extranet VPNs . . . . . . . . . . . . . . . . . . . .  27
       5.2.5.  Frame Delivery Service  . . . . . . . . . . . . . . .  28
     5.3.  Site Overview . . . . . . . . . . . . . . . . . . . . . .  30
       5.3.1.  Devices and Locations . . . . . . . . . . . . . . . .  31
       5.3.2.  Site Network Accesses . . . . . . . . . . . . . . . .  32
         5.3.2.1.  Bearer  . . . . . . . . . . . . . . . . . . . . .  33
         5.3.2.2.  Connection  . . . . . . . . . . . . . . . . . . .  33
     5.4.  Site Roles  . . . . . . . . . . . . . . . . . . . . . . .  38

Wen, et al.                  Standards Track                    [Page 2]
RFC 8466               L2VPN Service Model (L2SM)           October 2018

     quot;.well-known/hoba/getchal".  If successful,
   the response MUST contain a fresh (base64url encoded) HOBA challenge
   for this origin in the body of the response.  Whitespace in the
   response MUST be ignored.

7.  Mandatory-to-Implement Algorithms

   RSA-SHA256 MUST be supported.  HOBA implementations MUST use RSA-
   SHA256 if it is provided by the underlying cryptographic libraries.
   RSA-SHA1 MAY be used.  RSA modulus lengths of at least 2048 bits
   SHOULD be used.  RSA indicates the RSASSA-PKCS1-v1_5 algorithm
   defined in Section 8.2 of [RFC3447], and SHA-1 and SHA-256 are
   defined in [SHS].  Keys with moduli shorter than 2048 bits SHOULD

Farrell, et al.           Expires July 12, 2015                [Page 17]
Internet-Draft        HTTP Origin-Bound Auth (HOBA)         January 2015

   only be used in cases where generating 2048-bit (or longer) keys is
   impractical, e.g. on very constrained or old devices.

8.  Security Considerations

   Binding my CPK with someone else's account would be fun and
   profitable so SHOULD be appropriately hard.  In particular URLs or
   other values generated by the server as part of any CPK binding
   process MUST be hard to guess, for whatever level of difficulty is
   chosen by the server.  The server SHOULD NOT allow a random guess to
   reveal whether or not an account exists.

   If key binding was server-selected then a bad actor could bind
   different accounts belonging to the user from the network with
   possible bad consequences, especially if one of the private keys was
   compromised somehow.

   When the max-age parameter is not zero, then a HOBA signature has a
   property that is like a bearer token for the relevant number of
   seconds: it can be replayed for a server-selected duration.
   Similarly, for HOBA-js, signatures might be replayable depending on
   the specific implementation.  The security considerations of
   [RFC6750] therefore apply in any case where the HOBA signature can be
   replayed.  Server administrators can set the max-age to the minimum
   acceptable value in such cases, which would often be expected to be
   just a few seconds.  There seems to be no reason to ever set the max-
   age more than a few minutes; the value ought also decrease over time
   as device capabilities improve.  The administrator will most likely
   want to set the max-age to something that is not too short for the
   slowest signing device that is significant for that site.

8.1.  Privacy considerations

   HOBA does impact to some extent on privacy and could be considered to
   represent a super-cookie to the server, or to any entity on the path
   from UA to HTTP server that can see the HOBA signature.  This is
   because we need to send a key identifier as part of the signature and
   that will not vary for a given key.  For this reason, and others, it
   is strongly RECOMMENDED to only use HOBA over server-authenticated
   TLS and to migrate web sites using HOBA to only use "https" URLs.

Farrell, et al.           Expires July 12, 2015                [Page 18]
Internet-Draft        HTTP Origin-Bound Auth (HOBA)         January 2015

   UAs SHOULD provide users a way to manage their CPKs.  Ideally, there
   would be a way for a user to maintain their HOBA details for a site
   while at the same time deleting other site information such as
   cookies or non-HOBA HTML5 LocalStorage.  However, as this is likely
   to be complex and appropriate user interfaces counter intutitive, we
   expect that UAs that implement HOBA will likely treat HOBA
   information as just some more site data, that would disappear should
   the user choose to "forget" that site.

   Device identifiers are intended to specify classes of device in a way
   that can assist with registration and with presentation to the user
   of information about previous sessions, e.g.  last login time.
   Device identifier types MUST NOT be privacy sensitive, with values
   that would allow tracking a user in unexpected ways.  In particular,
   using an device identifier type that is analogous to the
   International Mobile Equipment Identifier (IMEI) would be a really
   bad idea and is the reason for the MUST NOT above.  In that case
   "mobile phone" could be an acceptable choice.

   If possible, implementations ought encourage use of device identifier
   values that are not personally identifying except for the user
   concerned, for example "Alice's mobile" is likely to be chosen and is
   somewhat identifying but "Alice's phone: UUID 1234-5567-89abc-def0"
   would be a very bad choice.

8.2.  localStorage Security for Javascript

   The use of localStorage (likely with a non-WebCrypto implementation
   of HOBA-js) will undoubtedly be a cause for concern. localStorage
   uses the same-origin model which says that the scheme, domain and
   port define a localStorage instance.  Beyond that, any code executing
   will have access to private keying material.  Of particular concern
   are XSS attacks which could conceivably take the keying material and
   use it to create UAs under the control of an attacker.  But XSS
   attacks are in reality across the board devastating since they can
   and do steal credit card information, passwords, perform illicit
   acts, etc, etc.  It's not clear that we introduce unique threats from
   which clear text passwords don't already suffer.

Farrell, et al.           Expires July 12, 2015                [Page 19]
Internet-Draft        HTTP Origin-Bound Auth (HOBA)         January 2015

   Another source of concern is local access to the keys.  That is, if
   an attacker has access to the UA itself, they could snoop on the key
   through a javascript console, or find the file(s) that implement
   localStorage on the host computer.  Again it's not clear that we are
   worse in this regard because the same attacker could get at browser
   password files, etc too.  One possible mitigation is to encrypt the
   keystore with a password/pin the user supplies.  This may sound
   counter intuitive, but the object here is to keep passwords off of
   servers to mitigate the multiplier effect of a large scale compromise
   [bland] because of shared passwords across sites.

   It's worth noting that HOBA uses asymmetric keys and not passwords
   when evaluating threats.  As various password database leaks have
   shown, the real threat of a password breach is not just to the site
   that was breached, it's all of the sites a user used the same
   password on too.  That is, the collateral damage is severe because
   password reuse is common.  Storing a password in localStorage would
   also have a similar multiplier effect for an attacker, though perhaps
   on a smaller scale than a server-side compromise: one successful
   crack gains the attacker potential access to hundreds if not
   thousands of sites the user visits.  HOBA does not suffer from that
   attack multiplier since each asymmetric key pair is unique per site/
   UA/user.

8.3.  Multiple Accounts on One User Agent

   A shared UA with multiple accounts is possible if the account
   identifier is stored along with the asymmetric key pair binding them
   to one another.  Multiple entries can be kept, one for each account,
   and selected by the current user.  This, of course, is fraught with
   the possibility for abuse, since a server is potentially enrolling
   the device for a long period and the user may not want to have to be
   responsible for the credential for that long.  To alleviate this
   problem, the user could request that the credential be erased from
   the browser.  Similarly, during the enrollment phase, a user could
   request that the key pair only be kept for a certain amount of time,
   or that it not be stored beyond the current browser session.
   However, all such features really ought be part of the operating
   system or platform and not part of a HOBA implementation so those are
   not discussed further.

8.4.  Injective Mapping for HOBA-TBS

   The repeated length fields in the HOBA-TBS structure are present in
   order to ensure that there is no possibility that the catenation of
   different input values can cause confusion that might lead to an
   attack, either against HOBA as specified here, or else an attack
   against some other protocol that re-used this to-be-signed structure.

Farrell, et al.           Expires July 12, 2015                [Page 20]
Internet-Draft        HTTP Origin-Bound Auth (HOBA)         January 2015

   Those fields ensure that the mapping from input fields to the HOBA-
   TBS string is an injective mapping.

9.  IANA Considerations

   IANA is requested to make registrations and create new registries as
   described below.

   For all new registries requested by this document, please place those
   beneath a new "HTTP Origin-Bound Authentication (HOBA) Parameters"
   category.

9.1.  HOBA Authentication Scheme

   Please register a new scheme in the HTTP Authentication Scheme
   Registry registry as follows:

   Authentication Scheme Name: HOBA

   Pointer to specification text: Section 3 of [[ this document ]]

   Notes (optional): The HOBA scheme can be used with either HTTP
   servers or proxies.  When used in response to a 407 Proxy
   Authentication Required indication, the appropriate proxy
   authentication header fields are used instead, as with any other HTTP
   authentication scheme.

9.2.  .well-known URI

   Please register a new .well-known URI in the Well-Known URIs registry
   as described below.

   URI suffix: hoba

   Change controller: IETF

   Specification document(s): Section 6 of [[ this document ]]

   Related information: N/A

9.3.  Algorithm Names

   Please create a new HOBA signature algorithms registry as follows,
   with the specification required rule for updates.  New HOBA signature
   algorithms SHOULD be in use with other IETF standards track protocols
   before being added to this registry.

Farrell, et al.           Expires July 12, 2015                [Page 21]
Internet-Draft        HTTP Origin-Bound Auth (HOBA)         January 2015

   Number       Meaning
   -----------  --------------------------------------------
   0            RSA-SHA256
   1            RSA-SHA1

   RSA is defined in Section 8.2 of [RFC3447], and SHA-1 and SHA-256 are
   defined in [SHS].

   For this registry the number column should contain a small positive
   integer.  Following the ABNF above, the maximum value for this is
   decimal 99.

9.4.  Key Identifier Types

   Please create a new HOBA Key Identifier Types registry as follows,
   with the specification required rule for updates.

   Number       Meaning
   -----------  --------------------------------------------
   0            a hashed public key [RFC6698]
   1            a URI [RFC3986]
   2            an unformatted string, at the user's/UA's whim

   For the number 0, hashed public keys are as done in DANE.  [RFC6698]

   For this registry the number column should contain a small positive
   integer.

9.5.  Device Identifier Types

   Please create a new HOBA Device Identifier Types registry as follows,
   with the specification required rule for updates.

   The designated expert for this registry is to carefully pay attention
   to the notes on this field in Section 8.1, in particular the "MUST
   NOT" stated therein.

   Number       Meaning
   -----------  --------------------------------------------
   0            an unformatted UTF8 string, at the user's/UA's whim

   For this registry the number column should contain a small positive
   integer.

9.6.  Hobareg HTTP Header Field

Farrell, et al.           Expires July 12, 2015                [Page 22]
Internet-Draft        HTTP Origin-Bound Auth (HOBA)         January 2015

   Please register a new identifier in the Permanent Message Header
   Field Names registry as described below.

   Header field name: Hobareg

   Applicable protocol: HTTP (RFC 7230)

   Status: Experimental

   Author/Change controller: IETF

   Specification document(s): Section 6.1.1 of [[ this document ]]

   Related information: N/A

10.  Implementation Status

   [[ Note to RFC editor - please delete this section before
   publication. ]]

   This section records the status of known implementations of the
   protocol defined by this specification at the time of posting of this
   Internet-Draft, and is based on a proposal described in [RFC6982].
   The description of implementations in this section is intended to
   assist the IETF in its decision processes in progressing drafts to
   RFCs.  Please note that the listing of any individual implementation
   here does not imply endorsement by the IETF.  Furthermore, no effort
   has been spent to verify the information presented here that was
   supplied by IETF contributors.  This is not intended as, and must not
   be construed to be, a catalog of available implementations or their
   features.  Readers are advised to note that other implementations may
   exist.

   According to [RFC6982] "this will allow reviewers and working groups
   to assign due consideration to documents that have the benefit of
   running code, by considering the running code as evidence of valuable
   experimentation and feedback that has made the implemented protocols
   more mature.  It is up to the individual working groups to use this
   information as they see fit".

   At the time of writing there are three known implementations.

      One done by Stephen Farrell of HOBA-http and a HOBA-JS variant
      implements the current version of HOBA and is available from
      https://hoba.ie/ which site also includes a demonstration of HOBA.

      There is another implementation by Michael Thomas of a HOBA-JS
      variant.

Farrell, et al.           Expires July 12, 2015                [Page 23]
Internet-Draft        HTTP Origin-Bound Auth (HOBA)         January 2015

      The most recent (Dec 2014) implementation is by Portugal Telecom
      and is available from https://github.com/razevedo/hoba-
      authentication

11.  Acknowledgements

   Thanks to the following for good comments received during the
   preparation of this specification: Richard Barnes, David Black,
   Alissa Cooper, Donald Eastlake, Amos Jeffries, Benjamin Kaduk, Watson
   Ladd, Barry Leiba, Matt Lepinski, Ilari Liusvaara, James Manger,
   Alexey Melnikov, Kathleen Moriarty, Yoav Nir, Mark Nottingham, Julian
   Reschke, Pete Resnick, Michael Richardson, Yaron Sheffer, and Michael
   Sweet.  All errors and stupidities are of course the editors' fault.

12.  References

12.1.  Normative References

   [RFC0020]  Cerf, V., "ASCII format for network interchange", RFC 20,
              October 1969.

   [RFC2119]  Bradner, S., "Key words for use in RFCs to Indicate
              Requirement Levels", BCP 14, RFC 2119, March 1997.

   [RFC3447]  Jonsson, J. and B. Kaliski, "Public-Key Cryptography
              Standards (PKCS) #1: RSA Cryptography Specifications
              Version 2.1", RFC 3447, February 2003.

   [RFC3986]  Berners-Lee, T., Fielding, R., and L. Masinter, "Uniform
              Resource Identifier (URI): Generic Syntax", STD 66, RFC
              3986, January 2005.

   [RFC4648]  Josefsson, S., "The Base16, Base32, and Base64 Data
              Encodings", RFC 4648, October 2006.

   [RFC5234]  Crocker, D. and P. Overell, "Augmented BNF for Syntax
              Specifications: ABNF", STD 68, RFC 5234, January 2008.

   [RFC5246]  Dierks, T. and E. Rescorla, "The Transport Layer Security
              (TLS) Protocol Version 1.2", RFC 5246, August 2008.

   [RFC5785]  Nottingham, M. and E. Hammer-Lahav, "Defining Well-Known
              Uniform Resource Identifiers (URIs)", RFC 5785, April
              2010.

   [RFC6454]  Barth, A., "The Web Origin Concept", RFC 6454, December
              2011.

Farrell, et al.           Expires July 12, 2015                [Page 24]
Internet-Draft        HTTP Origin-Bound Auth (HOBA)         January 2015

   [RFC6698]  Hoffman, P. and J. Schlyter, "The DNS-Based Authentication
              of Named Entities (DANE) Transport Layer Security (TLS)
              Protocol: TLSA", RFC 6698, August 2012.

   [RFC6750]  Jones, M. and D. Hardt, "The OAuth 2.0 Authorization
              Framework: Bearer Token Usage", RFC 6750, October 2012.

   [RFC7231]  Fielding, R. and J. Reschke, "Hypertext Transfer Protocol
              (HTTP/1.1): Semantics and Content", RFC 7231, June 2014.

   [RFC7235]  Fielding, R. and J. Reschke, "Hypertext Transfer Protocol
              (HTTP/1.1): Authentication", RFC 7235, June 2014.

   [SHS]      NIST, , "Secure Hash Standard (SHS), FIPS PUB 180-4", NIST
              Special Publications , March 2012.

12.2.  Informative References

   [MI93]     Mitchell, and Thomas, "Standardising Authentication
              Protocols Based on Public-Key Techniques.", Journal of
              Computer Security 2 (1993): 23-36. , 1993.

   [RFC4086]  Eastlake, D., Schiller, J., and S. Crocker, "Randomness
              Requirements for Security", BCP 106, RFC 4086, June 2005.

   [RFC6265]  Barth, A., "HTTP State Management Mechanism", RFC 6265,
              April 2011.

   [RFC6376]  Crocker, D., Hansen, T., and M. Kucherawy, "DomainKeys
              Identified Mail (DKIM) Signatures", STD 76, RFC 6376,
              September 2011.

   [RFC6982]  Sheffer, Y. and A. Farrel, "Improving Awareness of Running
              Code: The Implementation Status Section", RFC 6982, July
              2013.

   [bland]    Sophos, , "Security Threat Report 2013", January 2013,
              <http://www.sophos.com/en-us/medialibrary/pdfs/other/
              sophossecuritythreatreport2013.pdf>.

   [bonneau]  Bonneau, , "The science of guessing: analyzing an
              anonymized corpus of 70 million passwords.", IEEE
              Symposium on Security and Privacy , 2012.

Appendix A.  Problems with Passwords

   By far the most common mechanism for web authentication is passwords
   that can be remembered by the user, called "human-memorable

Farrell, et al.           Expires July 12, 2015                [Page 25]
Internet-Draft        HTTP Origin-Bound Auth (HOBA)         January 2015

   passwords".  There is plenty of good research on how users typically
   use human-memorable passwords (e.g. see [bonneau]), but some of the
   highlights are that users typically try hard to reuse passwords on as
   many web sites as possible, and that web sites often use either email
   addresses or users' names as the identifier that goes with these
   passwords.

   If an attacker gets access to the database of memorizable passwords,
   that attacker can impersonate any of the users.  Even if the breach
   is discovered, the attacker can still impersonate users until every
   password is changed.  Even if all the passwords are changed or at
   least made unusable, the attacker now possesses a list of likely
   username/password pairs that might exist on other sites.

   Using memorizable passwords on unencrypted channels also poses risks
   to the users.  If a web site uses either the HTTP Basic
   authentication method, or an HTML form that does no cryptographic
   protection of the password in transit, a passive attacker can see the
   password and immediately impersonate the user.  If a hash-based
   authentication scheme such as HTTP Digest authentication is used, a
   passive attacker still has a high chance of being able to determine
   the password using a dictionary of known passwords.

   Note that passwords that are not human-memorable are still subject to
   database attack, though are of course unlikely to be re-used across
   many systems.  Similarly, database attacks of some form or other will
   work against any password based authentication scheme, regardless of
   the crytographic protocol used.  So for example, zero-knowledge or
   PAKE schemes, though making use of elegant cryptographic protocols,
   remain as vulnerable to what is clearly the most common exploit seen
   when it comes to passwords.  HOBA is however not vulnerable to
   database theft.

Appendix B.  Example

   The following values show an example of HOBA-http authentication to
   the origin https://example.com:443.  Carriage-returns have been added
   and need to be removed to validate the example.

   Public Key:

   -----BEGIN PUBLIC KEY-----
   MIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAviE8fMrGIPZN9up94M28
   6o38B99fsz5cUqYHXXJlnHIi6gGKjqLgn3P7n4snUSQswLExrkhSr0TPhRDuPH_t
   fXLKLBbh17ofB7t7shnPKxmyZ69hCLbe7pB1HvaBzTxPC2KOqskDiDBOQ6-JLHQ8
   egXB14W-641RQt0CsC5nXzo92kPCdV4NZ45MW0ws3twCIUDCH0nibIG9SorrBbCl
   DPHQZS5Dk5pgS7P5hrAr634Zn4bzXhUnm7cON2x4rv83oqB3lRqjF4T9exEMyZBS
   L26m5KbK860uSOKywI0xp4ymnHMc6Led5qfEMnJC9PEI90tIMcgdHrmdHC_vpldG

Farrell, et al.           Expires July 12, 2015                [Page 26]
5.5.  Site Belonging to Multiple VPNs . . . . . . . . . . . . .  38
       5.5.1.  Site VPN Flavors  . . . . . . . . . . . . . . . . . .  38
         5.5.1.1.  Single VPN Attachment: site-vpn-flavor-single . .  39
         5.5.1.2.  Multi-VPN Attachment: site-vpn-flavor-multi . . .  39
         5.5.1.3.  NNI: site-vpn-flavor-nni  . . . . . . . . . . . .  40
         5.5.1.4.  E2E: site-vpn-flavor-e2e  . . . . . . . . . . . .  41
       5.5.2.  Attaching a Site to a VPN . . . . . . . . . . . . . .  41
         5.5.2.1.  Referencing a VPN . . . . . . . . . . . . . . . .  41
         5.5.2.2.  VPN Policy  . . . . . . . . . . . . . . . . . . .  43
     5.6.  Deciding Where to Connect the Site  . . . . . . . . . . .  48
       5.6.1.  Constraint: Device  . . . . . . . . . . . . . . . . .  49
       5.6.2.  Constraint/Parameter: Site Location . . . . . . . . .  50
       5.6.3.  Constraint/Parameter: Access Type . . . . . . . . . .  51
       5.6.4.  Constraint: Access Diversity  . . . . . . . . . . . .  52
     5.7.  Route Distinguisher and Network Instance Allocation . . .  53
     5.8.  Site-Network-Access Availability  . . . . . . . . . . . .  54
     5.9.  SVC MTU . . . . . . . . . . . . . . . . . . . . . . . . .  56
     5.10. Service . . . . . . . . . . . . . . . . . . . . . . . . .  56
       5.10.1.  Bandwidth  . . . . . . . . . . . . . . . . . . . . .  56
       5.10.2.  QoS  . . . . . . . . . . . . . . . . . . . . . . . .  57
         5.10.2.1.  QoS Classification . . . . . . . . . . . . . . .  57
         5.10.2.2.  QoS Profile  . . . . . . . . . . . . . . . . . .  58
       5.10.3.  Support for BUM  . . . . . . . . . . . . . . . . . .  59
     5.11. Site Management . . . . . . . . . . . . . . . . . . . . .  60
     5.12. MAC Loop Protection . . . . . . . . . . . . . . . . . . .  61
     5.13. MAC Address Limit . . . . . . . . . . . . . . . . . . . .  61
     5.14. Enhanced VPN Features . . . . . . . . . . . . . . . . . .  62
       5.14.1.  Carriers' Carriers . . . . . . . . . . . . . . . . .  62
     5.15. External ID References  . . . . . . . . . . . . . . . . .  63
     5.16. Defining NNIs and Inter-AS Support  . . . . . . . . . . .  64
       5.16.1.  Defining an NNI with the Option A Flavor . . . . . .  66
       5.16.2.  Defining an NNI with the Option B Flavor . . . . . .  70
       5.16.3.  Defining an NNI with the Option C Flavor . . . . . .  73
     5.17. Applicability of L2SM in Inter-provider and Inter-domain
           Orchestration . . . . . . . . . . . . . . . . . . . . . .  74
   6.  Interaction with Other YANG Modules . . . . . . . . . . . . .  76
   7.  Service Model Usage Example . . . . . . . . . . . . . . . . .  77
   8.  YANG Module . . . . . . . . . . . . . . . . . . . . . . . . .  82
   9.  Security Considerations . . . . . . . . . . . . . . . . . . . 152
   10. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 153
   11. References  . . . . . . . . . . . . . . . . . . . . . . . . . 153
     11.1.  Normative References . . . . . . . . . . . . . . . . . . 153
     11.2.  Informative References . . . . . . . . . . . . . . . . . 155
   Acknowledgements  . . . . . . . . . . . . . . . . . . . . . . . . 157
   Authors' Addresses  . . . . . . . . . . . . . . . . . . . . . . . 158

Wen, et al.                  Standards Track                    [Page 3]
RFC 8466               L2VPN Service Model (L2SM)           October 2018

1.  Introduction

   This document defines a YANG data model for the Layer 2 VPN (L2VPN)
   service.  This model defines service configuration elements that can
   be used in communication protocols between customers and network
   operators.  Those elements can also be used as input to automated
   control and configuration applications and can generate specific
   configuration models to configure the different network elements to
   deliver the service.  How this configuration of network elements is
   done is out of scope for this document.

   Further discussion of the way that services are modeled in YANG and
   the relationship between "customer service models" like the one
   described in this document and configuration models can be found in
   [RFC8309] and [RFC8199].  Sections 4 and 6 also provide more
   information on how this service model could be used and how it fits
   into the overall modeling architecture.

   The YANG data model defined in this document includes support for
   point-to-point Virtual Private Wire Services (VPWSs) and multipoint
   Virtual Private LAN Services (VPLSs) that use Pseudowires signaled
   using the Label Distribution Protocol (LDP) and the Border Gateway
   Protocol (BGP) as described in [RFC4761] and [RFC6624].  It also
   conforms to the Network Management Datastore Architecture (NMDA)
   [RFC8342].

1.1.  Terminology

   The following terms are defined in [RFC6241] and are not redefined
   here:

   o  client

   o  configuration data

   o  server

   o  state data

   The following terms are defined in [RFC7950] and are not redefined
   here:

   o  augment

   o  data model

   o  data node

Wen, et al.                  Standards Track                    [Page 4]
RFC 8466               L2VPN Service Model (L2SM)           October 2018

   The terminology for describing YANG data models is found in
   [RFC7950].

1.1.1.  Requirements Language

   The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
   "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and
   "OPTIONAL" in this document are to be interpreted as described in
   BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all
   capitals, as shown here.

1.2.  Tree Diagrams

   Tree diagrams used in this document follow the notation defined in
   [RFC8340].

2.  Definitions

   This document uses the following terms:

   Service Provider (SP):  The organization (usually a commercial
      undertaking) responsible for operating the network that offers VPN
      services to clients and customers.

   Customer Edge (CE) Device:  Equipment that is dedicated to a
      particular customer and is directly connected to one or more PE
      devices via Attachment Circuits (ACs).  A CE is usually located at
      the customer premises and is usually dedicated to a single VPN,
      although it may support multiple VPNs if each one has separate
      ACs.  The CE devices can be routers, bridges, switches, or hosts.

   Provider Edge (PE) Device:  Equipment managed by the SP that can
      support multiple VPNs for different customers and is directly
      connected to one or more CE devices via ACs.  A PE is usually
      located at an SP Point of Presence (POP) and is managed by the SP.

   Virtual Private LAN Service (VPLS):  A VPLS is a provider service
      that emulates the full functionality of a traditional LAN.  A VPLS
      makes it possible to interconnect several LAN segments over a
      packet switched network (PSN) and makes the remote LAN segments
      behave as one single LAN.

   Virtual Private Wire Service (VPWS):  A VPWS is a point-to-point
      circuit (i.e., link) connecting two CE devices.  The link is
      established as a logical Layer 2 circuit through a PSN.  The CE in
      the customer network is connected to a PE in the provider network
      via an AC: the AC is either a physical or logical circuit.  A VPWS

Wen, et al.                  Standards Track                    [Page 5]
RFC 8466               L2VPN Service Model (L2SM)           October 2018

      differs from a VPLS in that the VPLS is point-to-multipoint while
      the VPWS is point-to-point.  In some implementations, a set of
      VPWSs is used to create a multi-site L2VPN network.

   Pseudowire (PW):  A Pseudowire is an emulation of a native service
      over a PSN.  The native service may be ATM, Frame Relay, Ethernet,
      low-rate Time-Division Multiplexing (TDM), or Synchronous Optical
      Network / Synchronous Digital Hierarchy (SONET/SDH), while the PSN
      may be MPLS, IP (either IPv4 or IPv6), or Layer 2 Tunneling
      Protocol version 3 (L2TPv3).

   MAC-VRF:  A Virtual Routing and Forwarding table for Media Access
      Control (MAC) addresses on a PE.  It is sometimes also referred to
      as a Virtual Switching Instance (VSI).

   UNI:  User-to-Network Interface.  The physical demarcation point
      between the customer's area of responsibility and the provider's
      area of responsibility.

   NNI:  Network-to-Network Interface.  A reference point representing
      the boundary between two networks that are operated as separate
      administrative domains.  The two networks may belong to the same
      provider or to two different providers.

   This document uses the following abbreviations:

   BSS:  Business Support System

   BUM:  Broadcast, Unknown Unicast, or Multicast

   CoS:  Class of Service

   LAG:  Link Aggregation Group

   LLDP:  Link Layer Discovery Protocol

   OAM:  Operations, Administration, and Maintenance

   OSS:  Operations Support System

   PDU:  Protocol Data Unit

   QoS:  Quality of Service

Wen, et al.                  Standards Track                    [Page 6]
RFC 8466               L2VPN Service Model (L2SM)           October 2018

3.  The Layer 2 VPN Service Model

   A Layer 2 VPN (L2VPN) service is a collection of sites that are
   authorized to exchange traffic between each other over a shared
   infrastructure of a common technology.  The L2VPN Service Model
   (L2SM) described in this document provides a common understanding of
   how the corresponding L2VPN service is to be deployed over the shared
   infrastructure.

   This document presents the L2SM using the YANG data modeling language
   [RFC7950] as a formal language that is both human readable and
   parsable by software for use with protocols such as the Network
   Configuration Protocol (NETCONF) [RFC6241] and RESTCONF [RFC8040].

   This service model is limited to VPWS-based VPNs and VPLS-based VPNs
   as described in [RFC4761] and [RFC6624] and to Ethernet VPNs (EVPNs)
   as described in [RFC7432].

3.1.  Layer 2 VPN Service Types

   From a technology perspective, a set of basic L2VPN service types
   include:

   o  Point-to-point VPWSs that use LDP-signaled Pseudowires or
      L2TP-signaled Pseudowires [RFC6074].

   o  Multipoint VPLSs that use LDP-signaled Pseudowires or
      L2TP-signaled Pseudowires [RFC6074].

   o  Multipoint VPLSs that use a BGP control plane as described in
      [RFC4761] and [RFC6624].

   o  IP-only LAN Services (IPLSs) that are a functional subset of VPLS
      services [RFC7436].

   o  BGP MPLS-based EVPN services as described in [RFC7432] and
      [RFC7209].

   o  EVPN VPWSs as specified in [RFC8214].

3.2.  Layer 2 VPN Physical Network Topology

   Figure 1 below depicts a typical SP's physical network topology.
   Most SPs have deployed an IP, MPLS, or Segment Routing (SR)
   multi-service core infrastructure.  Ingress Layer 2 service frames
   will be mapped to either an Ethernet Pseudowire (e.g., Pseudowire
   Emulation Edge to Edge (PWE3)) or a Virtual Extensible Local Area

Wen, et al.                  Standards Track                    [Page 7]
RFC 8466               L2VPN Service Model (L2SM)           October 2018

   Network (VXLAN) PE-to-PE tunnel.  The details of these tunneling
   mechanisms are left to the provider's discretion and are not part of
   the L2SM.

   An L2VPN provides end-to-end Layer 2 connectivity over this
   multi-service core infrastructure between two or more customer
   locations or a collection of sites.  ACs are placed between CE
   devices and PE devices that backhaul Layer 2 service frames from the
   customer over the access network to the provider network or remote
   site.  The demarcation point (i.e., UNI) between the customer and the
   SP can be placed between either (1) customer nodes and the CE device
   or (2) the CE device and the PE device.  The actual bearer connection
   between the CE and the PE will be described in the L2SM.

   The SP may also choose a Internet-Draft        HTTP Origin-Bound Auth (HOBA)         January 2015

   DQIDAQAB
   -----END PUBLIC KEY-----

   Origin: https://example.com:443

   Key Identifier: vesscamS2Kze4FFOg3e2UyCJPhuQ6_3_gzN-k_L6t3w

   Challenge: pUE77w0LylHypHKhBqAiQHuGC751GiOVv4/7pSlo9jc=

   Signature algorithm: RSA-SHA256 ("0")

   Nonce: Pm3yUW-sW5Q

   Signature:

   VD-0LGVBVEVjfq4xEd35FjnOrIqzJ2OQMx5w8E52dgVvxFD6R0ryEsHcD31ykh0i
   4YIzIHXirx7bE4x9yP-9fMBCEwnHJsYwYQhfRpmScwAz-Ih1Hn4yORTb-U66miUz
   q04ZgTHm4jAj45afU20wYpGXY2r3W-FRKc6J6Glv_zI_ROghERalxgXG-QVGZrKP
   tG0V593Yf9IPnFSpLyW6fnxscCMWUA9T-4NjMdypI-Ze4HsC9J06tRTOunQdofr9
   6ZJ2i9LE6uKSUDLCD2oeEeSEvUR--4OGtrgjzYysHZkdVSxAi7OoQBK34EUWg9kI
   S13qQA43m4IMExkbApqrSg

   Authorization Header:

   Authorization: HOBA result="vesscamS2Kze4FFOg3e2UyCJPhuQ6_3_gzN-
   k_L6t3w.pUE77w0LylHypHKhBqAiQHuGC751GiOVv4/7pSlo9jc=.Pm3yUW-sW5Q
   .VD-0LGVBVEVjfq4xEd35FjnOrIqzJ2OQMx5w8E52dgVvxFD6R0ryEsHcD31ykh0
   i4YIzIHXirx7bE4x9yP-9fMBCEwnHJsYwYQhfRpmScwAz-Ih1Hn4yORTb-U66miU
   zq04ZgTHm4jAj45afU20wYpGXY2r3W-FRKc6J6Glv_zI_ROghERalxgXG-QVGZrK
   PtG0V593Yf9IPnFSpLyW6fnxscCMWUA9T-4NjMdypI-Ze4HsC9J06tRTOunQdofr
   96ZJ2i9LE6uKSUDLCD2oeEeSEvUR--4OGtrgjzYysHZkdVSxAi7OoQBK34EUWg9k
   IS13qQA43m4IMExkbApqrSg"

Authors' Addresses

   Stephen Farrell
   Trinity College Dublin
   Dublin  2
   Ireland

   Phone: +353-1-896-2354
   Email: stephen.farrell@cs.tcd.ie

   Paul Hoffman
   VPN Consortium

   Email: paul.hoffman@vpnc.org

Farrell, et al.           Expires July 12, 2015                [Page 27]
Internet-Draft        HTTP Origin-Bound Auth (HOBA)         January 2015

   Michael Thomas
   Phresheez

   Email: mike@phresheez.com

Farrell, et al.           Expires July 12, 2015                [Page 28]