| rfc9437.original | rfc9437.txt | |||
|---|---|---|---|---|
| LISP Working Group A. Rodriguez-Natal | Internet Engineering Task Force (IETF) A. Rodriguez-Natal | |||
| Internet-Draft Cisco | Request for Comments: 9437 Cisco | |||
| Intended status: Standards Track V. Ermagan | Category: Standards Track V. Ermagan | |||
| Expires: 1 September 2023 Google | ISSN: 2070-1721 Google | |||
| A. Cabellos | A. Cabellos | |||
| UPC/BarcelonaTech | UPC/BarcelonaTech | |||
| S. Barkai | S. Barkai | |||
| Nexar | Nexar | |||
| M. Boucadair | M. Boucadair | |||
| Orange | Orange | |||
| 28 February 2023 | July 2023 | |||
| Publish/Subscribe Functionality for the Locator/ID Separation Protocol | Publish/Subscribe Functionality for the Locator/ID Separation Protocol | |||
| (LISP) | (LISP) | |||
| draft-ietf-lisp-pubsub-15 | ||||
| Abstract | Abstract | |||
| This document specifies an extension to the request/reply based | This document specifies an extension to the Locator/ID Separation | |||
| Locator/ID Separation Protocol (LISP) control plane to enable | Protocol (LISP) control plane to enable Publish/Subscribe (PubSub) | |||
| Publish/Subscribe (PubSub) operation. | operation. | |||
| Status of This Memo | Status of This Memo | |||
| This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
| provisions of BCP 78 and BCP 79. | ||||
| Internet-Drafts are working documents of the Internet Engineering | ||||
| Task Force (IETF). Note that other groups may also distribute | ||||
| working documents as Internet-Drafts. The list of current Internet- | ||||
| Drafts is at https://datatracker.ietf.org/drafts/current/. | ||||
| Internet-Drafts are draft documents valid for a maximum of six months | This document is a product of the Internet Engineering Task Force | |||
| and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
| time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
| material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
| Internet Standards is available in Section 2 of RFC 7841. | ||||
| This Internet-Draft will expire on 1 September 2023. | 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/rfc9437. | ||||
| Copyright Notice | Copyright Notice | |||
| Copyright (c) 2023 IETF Trust and the persons identified as the | Copyright (c) 2023 IETF Trust and the persons identified as the | |||
| document authors. All rights reserved. | document authors. All rights reserved. | |||
| This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
| Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
| license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
| publication of this document. Please review these documents | ||||
| Please review these documents carefully, as they describe your rights | carefully, as they describe your rights and restrictions with respect | |||
| and restrictions with respect to this document. Code Components | to this document. Code Components extracted from this document must | |||
| extracted from this document must include Revised BSD License text as | include Revised BSD License text as described in Section 4.e of the | |||
| described in Section 4.e of the Trust Legal Provisions and are | Trust Legal Provisions and are provided without warranty as described | |||
| provided without warranty as described in the Revised BSD License. | in the Revised BSD License. | |||
| Table of Contents | Table of Contents | |||
| 1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
| 1.1. Scope of Applicability . . . . . . . . . . . . . . . . . 4 | 1.1. Scope of Applicability | |||
| 2. Terminology and Requirements Notation . . . . . . . . . . . . 4 | 2. Terminology and Requirements Notation | |||
| 3. Deployment Requirements . . . . . . . . . . . . . . . . . . . 4 | 3. Deployment Requirements | |||
| 4. Map-Request PubSub Additions . . . . . . . . . . . . . . . . 5 | 4. Map-Request PubSub Additions | |||
| 5. Mapping Request Subscribe Procedures . . . . . . . . . . . . 6 | 5. Mapping Request Subscribe Procedures | |||
| 6. Mapping Notification Publish Procedures . . . . . . . . . . . 11 | 6. Mapping Notification Publish Procedures | |||
| 7. Security Considerations . . . . . . . . . . . . . . . . . . . 12 | 7. Security Considerations | |||
| 7.1. Security Association between ITR and Map-Server . . . . . 12 | 7.1. Security Association between ITR and Map-Server | |||
| 7.2. DDoS Attack Mitigation . . . . . . . . . . . . . . . . . 13 | 7.2. DDoS Attack Mitigation | |||
| 8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 14 | 8. IANA Considerations | |||
| 9. References . . . . . . . . . . . . . . . . . . . . . . . . . 15 | 9. References | |||
| 9.1. Normative References . . . . . . . . . . . . . . . . . . 15 | 9.1. Normative References | |||
| 9.2. Informative References . . . . . . . . . . . . . . . . . 15 | 9.2. Informative References | |||
| Appendix A. Sample PubSub Deployment Experiences . . . . . . . . 17 | Appendix A. Sample PubSub Deployment Experiences | |||
| A.1. PubSub as a Monitoring Tool . . . . . . . . . . . . . . . 17 | A.1. PubSub as a Monitoring Tool | |||
| A.2. Mitigating Negative Map-Cache Entries . . . . . . . . . . 17 | A.2. Mitigating Negative Map-Cache Entries | |||
| A.3. Improved Mobility Latency . . . . . . . . . . . . . . . . 18 | A.3. Improved Mobility Latency | |||
| A.4. Enhanced Reachability with Dynamic Redistribution of | A.4. Enhanced Reachability with Dynamic Redistribution of | |||
| Prefixes . . . . . . . . . . . . . . . . . . . . . . . . 18 | Prefixes | |||
| A.5. Better Serviceability . . . . . . . . . . . . . . . . . . 19 | A.5. Better Serviceability | |||
| Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . . . 19 | Acknowledgments | |||
| Contributors . . . . . . . . . . . . . . . . . . . . . . . . . . 20 | Contributors | |||
| Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 21 | Authors' Addresses | |||
| 1. Introduction | 1. Introduction | |||
| The Locator/ID Separation Protocol (LISP) [RFC9300] [RFC9301] splits | The Locator/ID Separation Protocol (LISP) [RFC9300] [RFC9301] splits | |||
| IP addresses into two different namespaces: Endpoint Identifiers | IP addresses into two different namespaces: Endpoint Identifiers | |||
| (EIDs) and Routing Locators (RLOCs). LISP uses a map and encapsulate | (EIDs) and Routing Locators (RLOCs). LISP uses a map and encapsulate | |||
| (a.k.a., map-and-encap) approach that relies on (1) a Mapping System | (a.k.a., map-and-encap) approach that relies on (1) a Mapping System | |||
| (basically a distributed database) that stores and disseminates EID- | (basically a distributed database) that stores and disseminates EID- | |||
| RLOC mappings and on (2) LISP tunnel routers (xTRs) that encapsulate | RLOC mappings and on (2) LISP Tunnel Routers (xTRs) that encapsulate | |||
| and decapsulate data packets based on the content of those mappings. | and decapsulate data packets based on the content of those mappings. | |||
| Ingress Tunnel Routers (ITRs) / Re-encapsulating Tunnel Routers | Ingress Tunnel Routers (ITRs), Re-encapsulating Tunnel Routers | |||
| (RTRs) / Proxy Ingress Tunnel Routers (PITRs) pull EID-to-RLOC | (RTRs), and Proxy Ingress Tunnel Routers (PITRs) pull EID-to-RLOC | |||
| mapping information from the Mapping System by means of an explicit | mapping information from the Mapping System by means of an explicit | |||
| request message. Section 6.1 of [RFC9301] indicates how Egress | request message. Section 6.1 of [RFC9301] indicates how Egress | |||
| Tunnel Routers (ETRs) can tell ITRs/RTRs/PITRs about mapping changes. | Tunnel Routers (ETRs) can tell ITRs/RTRs/PITRs about mapping changes. | |||
| This document presents a Publish/Subscribe (PubSub) extension in | This document presents a Publish/Subscribe (PubSub) extension in | |||
| which the Mapping System can notify ITRs/RTRs/PITRs about mapping | which the Mapping System can notify ITRs/RTRs/PITRs about mapping | |||
| changes. When this mechanism is used, mapping changes can be | changes. When this mechanism is used, mapping changes can be | |||
| notified faster and can be managed in the Mapping System versus the | notified faster and can be managed in the Mapping System versus the | |||
| LISP sites. | LISP sites. | |||
| In general, when an ITR/RTR/PITR wants to be notified for mapping | In general, when an ITR/RTR/PITR wants to be notified for mapping | |||
| changes for a given EID-Prefix, the following main steps occur: | changes for a given EID-Prefix, the following main steps occur: | |||
| (1) The ITR/RTR/PITR builds a Map-Request for that EID-Prefix with | 1. The ITR/RTR/PITR builds a Map-Request for that EID-Prefix with | |||
| the Notification-Requested bit (N-bit) set and which also | the Notification-Requested bit (N-bit) set and that also includes | |||
| includes its xTR-ID and Site-ID. | its xTR-ID and Site-ID. | |||
| (2) The Map-Request is forwarded to one of the Map-Servers that the | 2. The Map-Request is forwarded to one of the Map-Servers that the | |||
| EID-Prefix is registered to. | EID-Prefix is registered to. | |||
| (3) The Map-Server creates subscription state for the ITR/RTR/PITR | 3. The Map-Server creates subscription state for the ITR/RTR/PITR on | |||
| on the EID-Prefix. | the EID-Prefix. | |||
| (4) The Map-Server sends a Map-Notify to the ITR/RTR/PITR to confirm | 4. The Map-Server sends a Map-Notify to the ITR/RTR/PITR to confirm | |||
| that the subscription has been created and then waits for an | that the subscription has been created and then waits for an | |||
| acknowledgement of the notification. | acknowledgement of the notification. | |||
| (5) The ITR/RTR/PITR sends back a Map-Notify-Ack to acknowledge the | 5. The ITR/RTR/PITR sends back a Map-Notify-Ack to acknowledge the | |||
| successful receipt of the Map-Notify. | successful receipt of the Map-Notify. | |||
| (6) When there is a change in the mapping of the EID-Prefix, the | 6. When there is a change in the mapping of the EID-Prefix, the Map- | |||
| Map-Server sends a Map-Notify message to each ITR/RTR/PITR in | Server sends a Map-Notify message to each ITR/RTR/PITR in the | |||
| the subscription list. | subscription list. | |||
| (7) Each ITR/RTR/PITR sends a Map-Notify-Ack to acknowledge the | 7. Each ITR/RTR/PITR sends a Map-Notify-Ack to acknowledge the | |||
| received Map-Notify. | received Map-Notify. | |||
| This operation is repeated for all EID-Prefixes for which ITRs/RTRs/ | This operation is repeated for all EID-Prefixes for which ITRs/RTRs/ | |||
| PITRs want to be notified. An ITR/RTR/PITR can set the N-bit for | PITRs want to be notified. An ITR/RTR/PITR can set the N-bit for | |||
| several EID-Prefixes within a single Map-Request. Please note that | several EID-Prefixes within a single Map-Request. Please note that | |||
| the steps above illustrate only the simplest scenario and that | the steps above illustrate only the simplest scenario and that | |||
| details for this and other scenarios are described later in the | details for this and other scenarios are described later in the | |||
| document. | document. | |||
| The reader may refer to [I-D.boucadair-lisp-pubsub-flow-examples] for | The reader may refer to [FLOW-EXAMPLES] for sample flows to | |||
| sample flows to illustrate the use of the PubSub specification. | illustrate the use of the PubSub specification. | |||
| 1.1. Scope of Applicability | 1.1. Scope of Applicability | |||
| The PubSub procedure specified in this document is intended to be | The PubSub procedure specified in this document is intended for use | |||
| used in contexts with controlled access to the Map-Server. How a | in contexts with controlled access to the Map-Server. How a | |||
| deployment controls access to a Map-Server is deployment specific, | deployment controls access to a Map-Server is deployment specific and | |||
| and therefore out of the scope of this document. However, the Map- | therefore out of the scope of this document. However, the Map- | |||
| Resolvers and Map-Servers need to be configured with the required | Resolvers and Map-Servers need to be configured with the required | |||
| information to at least ensure the following: | information to ensure at least the following: | |||
| (1) Map-Resolvers MUST verify that an xTR is allowed to (1) set the | 1. Map-Resolvers MUST verify that an xTR is allowed to (1) set the | |||
| N-bit to 1 and (2) use the xTR-ID, Site-ID, and ITR-RLOCs | N-bit to 1 and (2) use the xTR-ID, Site-ID, and ITR-RLOCs | |||
| included in a Map-Request. | included in a Map-Request. | |||
| (2) Map-Servers MUST only accept subscription requests from Map- | 2. Map-Servers MUST only accept subscription requests from Map- | |||
| Resolvers that verify Map-Requests as previously described. | Resolvers that verify Map-Requests as previously described. | |||
| 2. Terminology and Requirements Notation | 2. Terminology and Requirements Notation | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
| 14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
| capitals, as shown here. | capitals, as shown here. | |||
| The document uses the terms defined in Section 3 of [RFC9300]. | The document uses the terms defined in Section 3 of [RFC9300]. | |||
| 3. Deployment Requirements | 3. Deployment Requirements | |||
| In addition to the general assumptions and expectations that | In addition to the general assumptions and expectations that | |||
| [RFC9301] makes for LISP deployments, this document makes the | [RFC9301] makes for LISP deployments, this document imposes the | |||
| following deployment requirements: | following deployment requirements: | |||
| (1) A unique 128-bit xTR-ID (plus a 64-bit Site-ID) identifier is | 1. A unique 128-bit xTR-ID (plus a 64-bit Site-ID) identifier is | |||
| assigned to each xTR. | assigned to each xTR. | |||
| (2) Map-Servers are configured to proxy Map-Replying (i.e., they are | 2. Map-Servers are configured to proxy Map-Replying (i.e., they are | |||
| solicited to generate and send Map-Reply messages) for the | solicited to generate and send Map-Reply messages) for the | |||
| mappings they are serving. | mappings they are serving. | |||
| (3) A security association (e.g., a PubSubKey) is required between | 3. A security association (e.g., a PubSubKey) is required between | |||
| the ITRs and the Map-Servers (see Section 7.1). | the ITRs and the Map-Servers (see Section 7.1). | |||
| If a requirement is not met, a subscription cannot be established, | If a requirement is not met, a subscription cannot be established, | |||
| and the network will continue operating without this enhancement. | and the network will continue operating without this enhancement. | |||
| The configuration of xTR-IDs and Site-IDs is out of the scope of this | The configuration of xTR-IDs and Site-IDs is out of the scope of this | |||
| document. The reader may refer to [I-D.ietf-lisp-yang] for an | document. The reader may refer to [LISP-YANG] for an example of how | |||
| example of how these identifiers can be provisioned to LISP nodes. | these identifiers can be provisioned to LISP nodes. | |||
| 4. Map-Request PubSub Additions | 4. Map-Request PubSub Additions | |||
| Figure 1 shows the format of the updated Map-Request to support the | Figure 1 shows the format of the updated Map-Request to support the | |||
| PubSub functionality. In particular, this document associates a | PubSub functionality. In particular, this document associates a | |||
| meaning with one of the reserved bits (see Section 8). | meaning with one of the reserved bits (see Section 8). | |||
| 0 1 2 3 | 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 | 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| skipping to change at page 5, line 52 ¶ | skipping to change at line 232 ¶ | |||
| | | | | | | |||
| + Site-ID + | + Site-ID + | |||
| | | | | | | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Figure 1: Map-Request with I-bit, N-bit, xTR-ID, and Site-ID | Figure 1: Map-Request with I-bit, N-bit, xTR-ID, and Site-ID | |||
| The following is added to the Map-Request message defined in | The following is added to the Map-Request message defined in | |||
| Section 5.2 of [RFC9301]: | Section 5.2 of [RFC9301]: | |||
| xTR-ID bit (I-bit): This bit is set to 1 to indicate that 128-bit | xTR-ID bit (I-bit): This bit is set to 1 to indicate that 128-bit | |||
| xTR-ID and 64-bit Site-ID fields are present in the Map-Request | xTR-ID and 64-bit Site-ID fields are present in the Map-Request | |||
| message. For PubSub operation, an xTR MUST be configured with an | message. For PubSub operation, an xTR MUST be configured with an | |||
| xTR-ID and Site-ID, and it MUST set the I-bit to 1 and include its | xTR-ID and Site-ID, and it MUST set the I-bit to 1 and include its | |||
| xTR-ID and Site-ID in the Map-Request messages it generates. If | xTR-ID and Site-ID in the Map-Request messages it generates. If | |||
| the I-bit is set, but the Site-ID and/or xTR-ID are not included, | the I-bit is set but the Site-ID and/or xTR-ID are not included, a | |||
| a receiver can detect the error because, after processing that | receiver can detect the error because, after processing that last | |||
| last EID-record, there are no bytes left from processing the | EID-Record, there are no bytes left from processing the message. | |||
| message. In this case, the receiver SHOULD log a malformed Map- | In this case, the receiver SHOULD log a malformed Map-Request and | |||
| Request and MUST drop the message. | MUST drop the message. | |||
| Notification-Requested bit (N-bit): The N-bit of an EID-Record is | Notification-Requested bit (N-bit): The N-bit of an EID-Record is | |||
| set to 1 to specify that the xTR wants to be notified of updates | set to 1 to specify that the xTR wants to be notified of updates | |||
| for that EID-Prefix. | for that EID-Prefix. | |||
| xTR-ID field: If the I-bit is set, this field is added to the Map- | xTR-ID field: If the I-bit is set, this field is added to the Map- | |||
| Request message as shown in Figure 1, starting right after the | Request message as shown in Figure 1, starting right after the | |||
| final Record in the message (or the Map-Reply Record, if present). | final Record in the message (or the Map-Reply Record, if present). | |||
| The xTR-ID is specified in Section 5.6 of [RFC9301]. | The xTR-ID is specified in Section 5.6 of [RFC9301]. | |||
| Site-ID field: If the I-bit is set, this field is added to the | Site-ID field: If the I-bit is set, this field is added to the Map- | |||
| Map-Request message as shown in Figure 1, following the xTR-ID | Request message as shown in Figure 1, following the xTR-ID field. | |||
| field. The Site-ID is defined in Section 5.6 of [RFC9301]. | The Site-ID is defined in Section 5.6 of [RFC9301]. | |||
| 5. Mapping Request Subscribe Procedures | 5. Mapping Request Subscribe Procedures | |||
| The xTR subscribes for changes, to a given EID-Prefix, by sending a | The xTR subscribes for changes to a given EID-Prefix by sending a | |||
| Map-Request to the Mapping System with the N-bit set on the EID- | Map-Request to the Mapping System with the N-bit set on the EID- | |||
| Record. The xTR builds a Map-Request according to Section 5.3 of | Record. The xTR builds a Map-Request according to Section 5.3 of | |||
| [RFC9301] but also does the following: | [RFC9301] and also does the following: | |||
| (1) The xTR MUST set the I-bit to 1 and append its xTR-ID and Site- | 1. The xTR MUST set the I-bit to 1 and append its xTR-ID and Site-ID | |||
| ID to the Map-Request. | to the Map-Request. | |||
| (2) The xTR MUST set the N-bit to 1 for the EID-Record to which the | 2. The xTR MUST set the N-bit to 1 for the EID-Record to which the | |||
| xTR wants to subscribe. | xTR wants to subscribe. | |||
| (3) If the xTR has a nonce associated with the EID-Prefix, it MUST | 3. If the xTR has a nonce associated with the EID-Prefix, it MUST | |||
| use this nonce increased by one in the Map-Request. Otherwise, | use this nonce increased by one in the Map-Request. Otherwise, | |||
| it generates a nonce following Section 5.2 of [RFC9301]. It is | it generates a nonce as described in Section 5.2 of [RFC9301]. | |||
| RECOMMENDED that the xTR uses persistent storage to keep nonce | It is RECOMMENDED that the xTR use persistent storage to keep | |||
| state. If the xTR does not have persistent storage and does not | nonce state. If the xTR does not have persistent storage and | |||
| have a nonce associated with the EID-Prefix, it MUST reset the | does not have a nonce associated with the EID-Prefix, it MUST | |||
| nonce by using the procedure described in Section 7.1 to | reset the nonce by using the procedure described in Section 7.1 | |||
| successfully create a new security association with the Map- | to successfully create a new security association with the Map- | |||
| Server. | Server. | |||
| The Map-Request is forwarded to the appropriate Map-Server through | The Map-Request is forwarded to the appropriate Map-Server through | |||
| the Mapping System. This document does not assume that a Map-Server | the Mapping System. This document does not assume that a Map-Server | |||
| is pre-assigned to handle the subscription state for a given xTR. | is pre-assigned to handle the subscription state for a given xTR. | |||
| The Map-Server that receives the Map-Request will be the Map-Server | The Map-Server that receives the Map-Request will be the Map-Server | |||
| responsible for notifying that specific xTR about future mapping | responsible for notifying that specific xTR about future mapping | |||
| changes for the subscribed mapping records. | changes for the subscribed mapping records. | |||
| Upon receipt of the Map-Request, the Map-Server processes it as | Upon receipt of the Map-Request, the Map-Server processes it as | |||
| described in Section 8.3 of [RFC9301]. In addition, unless the xTR | described in Section 8.3 of [RFC9301]. In addition, unless the xTR | |||
| skipping to change at page 7, line 27 ¶ | skipping to change at line 301 ¶ | |||
| with the xTR-ID (and EID-Prefix, when applicable). Otherwise, the | with the xTR-ID (and EID-Prefix, when applicable). Otherwise, the | |||
| Map-Server MUST silently drop the Map-Request message and SHOULD log | Map-Server MUST silently drop the Map-Request message and SHOULD log | |||
| the event to record that a replay attack could have occurred. | the event to record that a replay attack could have occurred. | |||
| Furthermore, upon processing, for the EID-Record that has the N-bit | Furthermore, upon processing, for the EID-Record that has the N-bit | |||
| set to 1, the Map-Server proceeds to add the xTR-ID contained in the | set to 1, the Map-Server proceeds to add the xTR-ID contained in the | |||
| Map-Request to the list of xTRs that have requested to be subscribed | Map-Request to the list of xTRs that have requested to be subscribed | |||
| to that EID-Prefix. | to that EID-Prefix. | |||
| If an xTR-ID is successfully added to the list of subscribers for an | If an xTR-ID is successfully added to the list of subscribers for an | |||
| EID-Prefix, the Map-Server MUST extract the nonce and ITR-RLOCs | EID-Prefix, the Map-Server MUST extract the nonce and ITR-RLOCs | |||
| present in the Map-Request, and store the association between the | present in the Map-Request and store the association between the EID- | |||
| EID-Prefix, xTR-ID, ITR-RLOCs, and nonce. Any already present state | Prefix, xTR-ID, ITR-RLOCs, and nonce. Any state that is already | |||
| regarding ITR-RLOCs and/or nonce for the same xTR-ID MUST be | present regarding ITR-RLOCs and/or nonce for the same xTR-ID MUST be | |||
| overwritten. When the LISP deployment has a single Map-Server, the | overwritten. When the LISP deployment has a single Map-Server, the | |||
| Map-Server can be configured to keep a single nonce per xTR-ID for | Map-Server can be configured to keep a single nonce per xTR-ID for | |||
| all EID-Prefixes (when used, this option MUST be enabled at the Map- | all EID-Prefixes (when used, this option MUST be enabled at the Map- | |||
| Server and all xTRs). | Server and all xTRs). | |||
| If the xTR-ID is added to the list, the Map-Server MUST send a Map- | If the xTR-ID is added to the list, the Map-Server MUST send a Map- | |||
| Notify message back to the xTR to acknowledge the successful | Notify message back to the xTR to acknowledge the successful | |||
| subscription. The Map-Server builds the Map-Notify according to | subscription. The Map-Server builds the Map-Notify according to | |||
| Sections 5.5 and 5.7 of [RFC9301] with the following considerations: | Sections 5.5 and 5.7 of [RFC9301] with the following considerations: | |||
| (1) The Map-Server MUST use the nonce from the Map-Request as the | 1. The Map-Server MUST use the nonce from the Map-Request as the | |||
| nonce for the Map-Notify. | nonce for the Map-Notify. | |||
| (2) The Map-Server MUST use its security association with the xTR | 2. The Map-Server MUST use its security association with the xTR | |||
| (Section 7.1) to sign the authentication data of the Map-Notify. | (Section 7.1) to sign the authentication data of the Map-Notify. | |||
| The xTR MUST use the security association to verify the received | The xTR MUST use the security association to verify the received | |||
| authentication data. | authentication data. | |||
| (3) The Map-Server MUST send the Map-Notify to one of the ITR-RLOCs | 3. The Map-Server MUST send the Map-Notify to one of the ITR-RLOCs | |||
| received in the Map-Request (which one is implementation | received in the Map-Request (which one is implementation | |||
| specific). | specific). | |||
| As a reminder, the initial transmission and retransmission of Map- | As a reminder, the initial transmission and retransmission of Map- | |||
| Notify messages by a Map-Server follow the procedure specified in | Notify messages by a Map-Server follow the procedure specified in | |||
| Section 5.7 of [RFC9301]. Some state changes may trigger an overload | Section 5.7 of [RFC9301]. Some state changes may trigger an overload | |||
| that would impact, e.g., the outbound capacity of a Map-Server. A | that would impact, e.g., the outbound capacity of a Map-Server. A | |||
| similar problem may be experienced when a large number of state | similar problem may be experienced when a large number of state | |||
| entries are simultaneously updated. To prevent such phenomena, Map- | entries are simultaneously updated. To prevent such phenomena, Map- | |||
| Servers SHOULD be configured with policies to control the maximum | Servers SHOULD be configured with policies to control the maximum | |||
| number of subscriptions and also the pace of Map-Notify messages. | number of subscriptions and also the pace of Map-Notify messages. | |||
| For example, the Map-Server may be instructed to limit the resources | For example, the Map-Server may be instructed to limit the resources | |||
| skipping to change at page 8, line 25 ¶ | skipping to change at line 346 ¶ | |||
| fraction (e.g., less than 10%) of its overall processing and | fraction (e.g., less than 10%) of its overall processing and | |||
| forwarding capacity. The exact details to characterize such policies | forwarding capacity. The exact details to characterize such policies | |||
| are deployment and implementation specific. Likewise, this document | are deployment and implementation specific. Likewise, this document | |||
| does not specify which notifications take precedence when these | does not specify which notifications take precedence when these | |||
| policies are enforced. | policies are enforced. | |||
| When the xTR receives a Map-Notify with a nonce that matches one in | When the xTR receives a Map-Notify with a nonce that matches one in | |||
| the list of outstanding Map-Request messages sent with an N-bit set, | the list of outstanding Map-Request messages sent with an N-bit set, | |||
| it knows that the Map-Notify is to acknowledge a successful | it knows that the Map-Notify is to acknowledge a successful | |||
| subscription. The xTR processes this Map-Notify, as described in | subscription. The xTR processes this Map-Notify, as described in | |||
| Section 5.7 of [RFC9301], and MUST use the Map-Notify to populate its | Section 5.7 of [RFC9301] and MUST use the Map-Notify to populate its | |||
| Map-Cache with the returned EID-Prefix and RLOC-set. As a reminder, | Map-Cache with the returned EID-Prefix and RLOC-set. As a reminder, | |||
| following Section 5.7 of [RFC9301], the xTR has to send a Map-Notify- | following Section 5.7 of [RFC9301], the xTR has to send a Map-Notify- | |||
| Ack back to the Map-Server. If the Map-Server does not receive the | Ack back to the Map-Server. If the Map-Server does not receive the | |||
| Map-Notify-Ack after exhausting the Map-Notify retransmissions | Map-Notify-Ack after exhausting the Map-Notify retransmissions | |||
| described in Section 5.7 of [RFC9301], the Map-Server can remove the | described in Section 5.7 of [RFC9301], the Map-Server can remove the | |||
| subscription state. If the Map-Server removes the subscription | subscription state. If the Map-Server removes the subscription | |||
| state, and absent explicit policy, it SHOULD notify the xTR by | state, and absent explicit policy, it SHOULD notify the xTR by | |||
| sending a single Map-Notify with the same nonce but with Loc-Count = | sending a single Map-Notify with the same nonce but with Loc-Count = | |||
| 0 (and Loc-AFI = 0), and ACT bits set to 5 "Drop/Auth-Failure". It | 0 (and Loc-AFI = 0) and ACT bits set to 5 "Drop/Auth-Failure". It is | |||
| is OPTIONAL for the xTR to update its map-cache entry for the EID- | OPTIONAL for the xTR to update its Map-Cache entry for the EID-Prefix | |||
| Prefix (if any) based on this Map-Notify. This message is | (if any) based on this Map-Notify. This message is specifically | |||
| specifically useful for cases where Map-Notifies are successfully | useful for cases where Map-Notifies are successfully received by an | |||
| received by an xTR but the corresponding Map-Notify-Acks were lost | xTR, but the corresponding Map-Notify-Acks are lost when forwarded to | |||
| when forwarded to the Map-Server. xTR implementations can use this | the Map-Server. xTR implementations can use this signal to try to | |||
| signal to try to reinstall their subscription state instead of | reinstall their subscription state instead of maintaining stale | |||
| maintaining stale mappings. | mappings. | |||
| The subscription of an xTR-ID may fail for a number of reasons. For | The subscription of an xTR-ID may fail for a number of reasons. For | |||
| example, it fails because of local configuration policies (such as | example, it fails because of local configuration policies (such as | |||
| accept and drop lists of subscribers), because the Map-Server has | accept and drop lists of subscribers), because the Map-Server has | |||
| exhausted the resources to dedicate to the subscription of that EID- | exhausted the resources to dedicate to the subscription of that EID- | |||
| Prefix (e.g., the number of subscribers excess the capacity of the | Prefix (e.g., the number of subscribers excess the capacity of the | |||
| Map-Server), or because the xTR tried but was not successful in | Map-Server), or because the xTR was not successful tried but was not | |||
| establishing a new security association (Section 7.1). | successful in establishing a new security association (Section 7.1). | |||
| If the subscription request fails, the Map-Server sends a Map-Reply | If the subscription request fails, the Map-Server sends a Map-Reply | |||
| to the originator of the Map-Request, as described in Section 8.3 of | to the originator of the Map-Request, as described in Section 8.3 of | |||
| [RFC9301], with the following considerations: | [RFC9301], with the following considerations: | |||
| * If the subscription request fails due to policy (e.g. for | * If the subscription request fails due to policy (e.g., for | |||
| explicitly configured subscriptions, as described later in this | explicitly configured subscriptions, as described later in this | |||
| section) the Map-Server MUST respond to the Map-Request with a | section), the Map-Server MUST respond to the Map-Request with a | |||
| Negative Map-Reply (Loc-Count = 0 and Loc-AFI = 0) with ACT bits | Negative Map-Reply (Loc-Count = 0 and Loc-AFI = 0) with ACT bits | |||
| set to 4 "Drop/Policy-Denied". | set to 4 "Drop/Policy-Denied". | |||
| * If the subscription request fails due to authentication (e.g. when | * If the subscription request fails due to authentication (e.g., | |||
| a new security associationg is being established, as described in | when a new security association is being established, as described | |||
| Section 7.1), the Map-Server MUST respond to the Map-Request with | in Section 7.1), the Map-Server MUST respond to the Map-Request | |||
| a Negative Map-Reply (Loc-Count = 0 and Loc-AFI = 0) with ACT bits | with a Negative Map-Reply (Loc-Count = 0 and Loc-AFI = 0) with ACT | |||
| set to 5 "Drop/Auth-Failure". | bits set to 5 "Drop/Auth-Failure". | |||
| * If the subscription request fails due to any other reason, the | * If the subscription request fails due to any other reason, the | |||
| Map-Server MUST follow Section 8.3 of [RFC9301] with no changes. | Map-Server MUST follow Section 8.3 of [RFC9301] with no changes. | |||
| The xTR processes any (Negative) Map-Reply as specified in | The xTR processes any Map-Reply or Negative Map-Reply as specified in | |||
| Section 8.1 of [RFC9301], with the following considerations: if the | Section 8.1 of [RFC9301], with the following considerations: if the | |||
| xTR receives a Negative Map-Reply with ACT bits set to 4 "Drop/ | xTR receives a Negative Map-Reply with ACT bits set to 4 "Drop/ | |||
| Policy-Denied" or 5 "Drop/Auth-Failure" as a response to a | Policy-Denied" or 5 "Drop/Auth-Failure" as a response to a | |||
| subscription request, it is OPTIONAL for the xTR to update its map- | subscription request, it is OPTIONAL for the xTR to update its Map- | |||
| cache entry for the EID-Prefix (if any) based on this Negative Map- | Cache entry for the EID-Prefix (if any). If the subscription request | |||
| Reply. If the subscription request fails (for whichever reason), it | fails (for whichever reason), it is up to the implementation of the | |||
| is up to the implementation of the xTR to try to subscribe again. | xTR to try to subscribe again. | |||
| If the Map-Server receives a subscription request for an EID-Prefix | If the Map-Server receives a subscription request for an EID-Prefix | |||
| not present in the mapping database, it SHOULD follow the same logic | not present in the mapping database, it SHOULD follow the same logic | |||
| described in Section 8.4 of [RFC9301] and create a temporary | described in Section 8.4 of [RFC9301] and create a temporary | |||
| subscription state for the xTR-ID to the least-specific prefix that | subscription state for the xTR-ID to the least specific prefix that | |||
| both matches the original query and does not match any EID-Prefix | both matches the original query and does not match any EID-Prefix | |||
| known to exist in the LISP-capable infrastructure. Alternatively, | known to exist in the LISP-capable infrastructure. Alternatively, | |||
| the Map-Server can instead determine that such a subscription request | the Map-Server can determine that such a subscription request fails | |||
| fails, and send a Negative Map-Reply following Section 8.3 of | and send a Negative Map-Reply following Section 8.3 of [RFC9301]. In | |||
| [RFC9301]. In both cases, the TTL of the temporary subscription | both cases, the TTL of the temporary subscription state or the | |||
| state or the Negative Map-Reply SHOULD be configurable, with a value | Negative Map-Reply SHOULD be configurable, with a value of 15 minutes | |||
| of 15-minutes being RECOMMENDED. | being RECOMMENDED. | |||
| The subscription state can also be created explicitly by | The subscription state can also be created explicitly by | |||
| configuration at the Map-Server (possible when a pre-shared security | configuration at the Map-Server (possible when a pre-shared security | |||
| association exists, see Section 7) using a variety of means that are | association exists, see Section 7) using a variety of means that are | |||
| out of scope. If at the time the explicit subscription is configured | outside the scope of this document. If there is no nonce that can be | |||
| there is no nonce that can be used for the explicit subscription | used for the explicit subscription state at the time the explicit | |||
| state (e.g., from a different subscription already established with | subscription is configured (e.g., from a different subscription | |||
| the same xTR when a single nonce is kept per xTR-ID), then both the | already established with the same xTR when a single nonce is kept per | |||
| xTR and Map-Server MUST be configured with the initial nonce to use. | xTR-ID), then both the xTR and Map-Server MUST be configured with the | |||
| initial nonce. RECOMMENDED to have a configuration option to enable | ||||
| It is RECOMMENDED to have a configuration option to enable (or | (or disable) the xTR to accept publication information for EID- | |||
| disable) the xTR to accept publication information for EID-Prefixes | Prefixes that the xTR did not explicitly subscribe to. By default, | |||
| the xTR did not explicitly subscribe to. By default, the xTR is | the xTR is allowed to modify explicitly configured subscription state | |||
| allowed to modify explicitly configured subscription state following | following the procedures described in this section; however, this MAY | |||
| the procedures described in this section, however this MAY be | be disabled at the Map-Server via configuration. If the Map-Server | |||
| disabled at the Map-Server via configuration. If the Map-Server is | is instructed to not allow xTRs to modify explicitly configured | |||
| instructed to not allow xTRs to modify explicitly configured | ||||
| subscriptions, and an xTR tries to do so, this triggers a Negative | subscriptions, and an xTR tries to do so, this triggers a Negative | |||
| Map-Reply with ACT bits set to 4 "Drop/Policy-Denied" as described | Map-Reply with ACT bits set to 4 "Drop/Policy-Denied" as described | |||
| earlier in this section. | earlier in this section. | |||
| The following specifies the procedure to remove a subscription: If a | The following specifies the procedure to remove a subscription: | |||
| valid Map-Request with the N-bit set to 1 only has one ITR-RLOC with | ||||
| AFI = 0 (i.e., Unknown Address), the Map-Server MUST remove the | * If a valid Map-Request with the N-bit set to 1 only has one ITR- | |||
| subscription state for that xTR-ID (unless this is disabled via | RLOC with AFI = 0 (i.e., Unknown Address), the Map-Server MUST | |||
| configuration, see previous paragraph). If the subscription state is | remove the subscription state for that xTR-ID (unless this is | |||
| removed, the Map-Server MUST send a Map-Notify to the source RLOC of | disabled via configuration, see previous paragraph). | |||
| the Map-Request. If the subscription removal fails due to | ||||
| configuration, this triggers a Negative Map-Reply with with ACT bits | * If the subscription state is removed, the Map-Server MUST send a | |||
| set to 4 "Drop/Policy-Denied" as described earlier in this section; | Map-Notify to the source RLOC of the Map-Request. | |||
| the Map-Server sends the Negative Map-Reply to the source RLOC of the | ||||
| Map-Request in this case. Removing subscription state at the Map- | * If the subscription removal fails due to configuration, this | |||
| Server can lead to replay attacks. To soften this, the Map-Server | triggers a Negative Map-Reply with ACT bits set to 4 "Drop/Policy- | |||
| SHOULD keep the last nonce seen per xTR-ID (and EID-Prefix, when | Denied" as described earlier in this section; the Map-Server sends | |||
| applicable). If the Map-Server does not keep last nonces seen, then | the Negative Map-Reply to the source RLOC of the Map-Request in | |||
| the Map-Server MUST require the xTRs to subscribe using the procedure | this case. | |||
| described in Section 7.1 to create a new security association with | ||||
| the Map-Server. | * Removing subscription state at the Map-Server can lead to replay | |||
| attacks. To soften this, the Map-Server SHOULD keep the last | ||||
| nonce seen per xTR-ID (and EID-Prefix, when applicable). | ||||
| * If the Map-Server does not keep the last nonces seen, then the | ||||
| Map-Server MUST require the xTRs to subscribe using the procedure | ||||
| described in Section 7.1 to create a new security association with | ||||
| the Map-Server. | ||||
| If the Map-Server receives a Map-Request asking to remove a | If the Map-Server receives a Map-Request asking to remove a | |||
| subscription for an EID-Prefix without subscription state for that | subscription for an EID-Prefix without subscription state for that | |||
| xTR-ID, but covered by a less-specific EID-Prefix for which | xTR-ID and the EID-Prefix is covered by a less-specific EID-Prefix | |||
| subscription state exists for the xTR-ID, the Map-Server SHOULD stop | for which subscription state exists for the xTR-ID, the Map-Server | |||
| publishing updates about this more-specific EID-Prefix to that xTR, | SHOULD stop publishing updates about this more-specific EID-Prefix to | |||
| until the xTR subscribes to the more-specific EID-Prefix. The same | that xTR until the xTR subscribes to the more-specific EID-Prefix. | |||
| considerations regarding authentication, integrity protection, and | The same considerations regarding authentication, integrity | |||
| nonce checks described in this section and Section 7 for Map-Requests | protection, and nonce checks, which are described in this section and | |||
| used to update subscription state, apply for Map-Requests used to | Section 7 for Map-Requests used to update subscription state, apply | |||
| remove subscription state. | for Map-Requests used to remove subscription state. | |||
| When an EID-Prefix is removed from the Map-Server (either when | When an EID-Prefix is removed from the Map-Server (either when | |||
| explicitly withdrawn or when its TTL expires), the Map-Server | explicitly withdrawn or when its TTL expires), the Map-Server | |||
| notifies its subscribers (if any) via a Map-Notify with TTL equal 0. | notifies its subscribers (if any) via a Map-Notify with TTL equal to | |||
| 0. | ||||
| 6. Mapping Notification Publish Procedures | 6. Mapping Notification Publish Procedures | |||
| The publish procedure is implemented via Map-Notify messages that the | The publish procedure is implemented via Map-Notify messages that the | |||
| Map-Server sends to xTRs. The xTRs acknowledge the reception of Map- | Map-Server sends to xTRs. The xTRs acknowledge the receipt of Map- | |||
| Notifies via sending Map-Notify-Ack messages back to the Map-Server. | Notifies by sending Map-Notify-Ack messages back to the Map-Server. | |||
| The complete mechanism works as follows: | The complete mechanism works as follows: | |||
| When a mapping stored in a Map-Server is updated (e.g., via a Map- | When a mapping stored in a Map-Server is updated (e.g., via a Map- | |||
| Register from an ETR), the Map-Server MUST notify the subscribers of | Register from an ETR), the Map-Server MUST notify the subscribers of | |||
| that mapping via sending Map-Notify messages with the most updated | that mapping via sending Map-Notify messages with the most up to date | |||
| mapping information. If subscription state in the Map-Server exists | mapping information. If subscription state in the Map-Server exists | |||
| for a less-specific EID-Prefix and a more-specific EID-Prefix is | for a less-specific EID-Prefix and a more-specific EID-Prefix is | |||
| updated, then the Map-Notify is sent with the more-specific EID- | updated, then the Map-Notify is sent with the more-specific EID- | |||
| Prefix mapping to the subscribers of the less-specific EID-Prefix | Prefix mapping to the subscribers of the less-specific EID-Prefix | |||
| mapping. The Map-Notify message sent to each of the subscribers as a | mapping. The Map-Notify message sent to each of the subscribers as a | |||
| result of an update event follows the encoding and logic defined in | result of an update event follows the encoding and logic defined in | |||
| Section 5.7 of [RFC9301] for Map-Notify, except for the following: | Section 5.7 of [RFC9301] for Map-Notify, except for the following: | |||
| (1) The Map-Notify MUST be sent to one of the ITR-RLOCs associated | 1. The Map-Notify MUST be sent to one of the ITR-RLOCs associated | |||
| with the xTR-ID of the subscriber (which one is implementation | with the xTR-ID of the subscriber (which one is implementation | |||
| specific). | specific). | |||
| (2) The Map-Server increments the nonce by one every time it sends a | 2. The Map-Server increments the nonce by one every time it sends a | |||
| Map-Notify as publication to an xTR-ID for a particular EID- | Map-Notify as publication to an xTR-ID for a particular EID- | |||
| Prefix. | Prefix. | |||
| (3) The Map-Server MUST use its security association with the xTR to | 3. The Map-Server MUST use its security association with the xTR to | |||
| compute the authentication data of the Map-Notify. | compute the authentication data of the Map-Notify. | |||
| When the xTR receives a Map-Notify with an EID not local to the xTR, | When the xTR receives a Map-Notify with an EID that is not local to | |||
| the xTR knows that the Map-Notify has been received to update an | the xTR, the xTR knows that the Map-Notify is to update an entry on | |||
| entry on its Map-Cache. The xTR MUST keep track of the last nonce | its Map-Cache. The xTR MUST keep track of the last nonce seen in a | |||
| seen in a Map-Notify received as a publication from the Map-Server | Map-Notify received as a publication from the Map-Server for the EID- | |||
| for the EID-Prefix. When the LISP deployment has a single Map- | Prefix. When the LISP deployment has a single Map-Server, the xTR | |||
| Server, the xTR can be configured to keep track of a single nonce for | can be configured to keep track of a single nonce for all EID- | |||
| all EID-Prefix (when used, this option MUST be enabled at the Map- | Prefixes (when used, this option MUST be enabled at the Map-Server | |||
| Server and all xTRs). If a Map-Notify received as a publication has | and all xTRs). If a Map-Notify that is received as a publication has | |||
| a nonce value that is not greater than the saved nonce, the xTR drops | a nonce value that is not greater than the saved nonce, the xTR drops | |||
| the Map-Notify message and logs the fact a replay attack could have | the Map-Notify message and logs the fact a replay attack could have | |||
| occurred. The same considerations discussed in Section 5.6 of | occurred. The same considerations discussed in Section 5.6 of | |||
| [RFC9301] regarding Map-Register nonces apply here for Map-Notify | [RFC9301] regarding Map-Register nonces apply here for Map-Notify | |||
| nonces. | nonces. | |||
| The xTR processes the received Map-Notify as specified in Section 5.7 | The xTR processes the received Map-Notify as specified in Section 5.7 | |||
| of [RFC9301], with the following considerations: The xTR MUST use its | of [RFC9301], with the following considerations: | |||
| security association with the Map-Server (Section 7.1) to validate | ||||
| the authentication data on the Map-Notify. The xTR MUST use the | * The xTR MUST use its security association with the Map-Server | |||
| mapping information carried in the Map-Notify to update its internal | (Section 7.1) to validate the authentication data on the Map- | |||
| Map-Cache. If after following Section 5.7 of [RFC9301] regarding | Notify. | |||
| retransmission of Map-Notify messages, the Map-Server has not | ||||
| received back the Map-Notify-Ack, it can try to send the Map-Notify | * The xTR MUST use the mapping information carried in the Map-Notify | |||
| to a different ITR-RLOC for that xTR-ID. If the Map-Server tries all | to update its internal Map-Cache. | |||
| the ITR-RLOCs without receiving a response, it may stop trying to | ||||
| send the Map-Notify. | * If after following Section 5.7 of [RFC9301] regarding | |||
| retransmission of Map-Notify messages, the Map-Server has not | ||||
| received the Map-Notify-Ack, it can try sending the Map-Notify to | ||||
| a different ITR-RLOC for that xTR-ID. | ||||
| * If the Map-Server tries all the ITR-RLOCs without receiving a | ||||
| response, it may stop trying to send the Map-Notify. | ||||
| 7. Security Considerations | 7. Security Considerations | |||
| Generic security considerations related to LISP control messages are | Generic security considerations related to LISP control messages are | |||
| discussed in Section 9 of [RFC9301]. | discussed in Section 9 of [RFC9301]. | |||
| In the particular case of PubSub, cache poisoning via malicious Map- | In the particular case of PubSub, cache poisoning via malicious Map- | |||
| Notify messages is avoided by the use of nonce and the security | Notify messages is avoided by the use of nonce and the security | |||
| association between the ITRs and the Map-Servers. | association between the ITRs and the Map-Servers. | |||
| skipping to change at page 12, line 32 ¶ | skipping to change at line 554 ¶ | |||
| messages (e.g., to prevent xTR-ID hijacking). | messages (e.g., to prevent xTR-ID hijacking). | |||
| 7.1. Security Association between ITR and Map-Server | 7.1. Security Association between ITR and Map-Server | |||
| Since Map-Notifies from the Map-Server to the ITR need to be | Since Map-Notifies from the Map-Server to the ITR need to be | |||
| authenticated, there is a need for a soft-state or hard-state | authenticated, there is a need for a soft-state or hard-state | |||
| security association (e.g., a PubSubKey) between the ITRs and the | security association (e.g., a PubSubKey) between the ITRs and the | |||
| Map-Servers. For some controlled deployments, it might be possible | Map-Servers. For some controlled deployments, it might be possible | |||
| to have a shared PubSubKey (or set of keys) between the ITRs and the | to have a shared PubSubKey (or set of keys) between the ITRs and the | |||
| Map-Servers. However, if pre-shared keys are not used in the | Map-Servers. However, if pre-shared keys are not used in the | |||
| deployment, LISP-SEC [RFC9303] can be used as follows to create a | deployment, LISP Security (LISP-SEC) [RFC9303] can be used as follows | |||
| security association between the ITR and the Map-Server. | to create a security association between the ITR and the Map-Server. | |||
| First, when the ITR is sending a Map-Request with the N-bit set | First, when the ITR is sending a Map-Request with the N-bit set as | |||
| following Section 5, the ITR also performs the steps described in | described in Section 5, the ITR also performs the steps described in | |||
| Section 6.4 of [RFC9303]. The ITR can then generate a PubSubKey by | Section 6.4 of [RFC9303]. The ITR can then generate a PubSubKey by | |||
| deriving a key from the One-Time Key (OTK) and Map-Request's nonce as | deriving a key from the One-Time Key (OTK) and Map-Request's nonce as | |||
| follows: PubSubKey = KDF(OTK + nonce), where KDF is the Key | follows: PubSubKey = KDF(OTK + nonce), where KDF is the Key | |||
| Derivation Function indicated by the OTK Wrapping ID. If OTK | Derivation Function indicated by the OTK Wrapping ID. If the OTK | |||
| Wrapping ID equals NULL-KEY-WRAP-128, then the PubSubKey is the OTK. | Wrapping ID equals NULL-KEY-WRAP-128, then the PubSubKey is the OTK. | |||
| Note that as opposed to the pre-shared PubSubKey, this generated | Note that, as opposed to the pre-shared PubSubKey, this generated | |||
| PubSubKey is different per EID-Prefix to which an ITR subscribes | PubSubKey is different per EID-Prefix to which an ITR subscribes | |||
| (since the ITR will use a different OTK per Map-Request). | (since the ITR will use a different OTK per Map-Request). | |||
| When the Map-Server receives the Map-Request it follows the procedure | When the Map-Server receives the Map-Request, it follows the | |||
| specified in Section 5 with the following considerations: The Map- | procedure specified in Section 5 with the following considerations: | |||
| Server MUST verify that the OTK has not been used before. If the | the Map-Server MUST verify that the OTK has not been used before. If | |||
| Map-Server verifies the OTK and cannot determine that the OTK has not | the Map-Server verifies the OTK and cannot determine that the OTK has | |||
| been used before, the subscription request fails due to | not been used before, the subscription request fails due to | |||
| authentication and this triggers a Negative Map-Reply with ACT bits | authentication, which triggers a Negative Map-Reply with ACT bits set | |||
| set to 5 "Drop/Auth-Failure", as described in Section 5. The xTR | to 5 "Drop/Auth-Failure", as described in Section 5. The xTR might | |||
| might try again with a different OTK upon reception of this Negative | try again with a different OTK upon receipt of this Negative Map- | |||
| Map-Reply. Note that a Map-Server implementation might decide to not | Reply. Note that a Map-Server implementation may decide not to keep | |||
| keep full past OTKs and instead use some form of hash. In that case, | track of all past OTKs and instead use some form of hash. In that | |||
| hash collisions are handled as if the OTK has been reused. Such an | case, hash collisions are handled as if the OTK has been reused. | |||
| implementation needs to balance the hash length with the rate of | Such an implementation needs to balance the hash length with the rate | |||
| collisions expected for the particular deployment; this is | of collisions expected for the particular deployment; this is | |||
| implementation specific. If the Map-Server has to reply with a Map- | implementation specific. If the Map-Server has to reply with a Map- | |||
| Reply for any other reason (e.g., if PubSub is not supported or a | Reply for any other reason (e.g., if PubSub is not supported or a | |||
| subscription is not accepted), then it follows normal LISP-SEC | subscription is not accepted), then it follows the normal LISP-SEC | |||
| procedure described in Section 5.7 of [RFC9303]. No PubSubKey, | procedure described in Section 5.7 of [RFC9303]. No PubSubKey, | |||
| security association, or subscription state is created when the Map- | security association, or subscription state is created when the Map- | |||
| Server responds with any Map-Reply message. | Server responds with any Map-Reply message. | |||
| Otherwise, if the Map-Server has to reply with a Map-Notify (e.g., | Otherwise, if the Map-Server has to reply with a Map-Notify (e.g., | |||
| due to subscription accepted) to a received Map-Request, the | due to the subscription being accepted) to a received Map-Request, | |||
| following extra steps take place: | the following extra steps take place: | |||
| * The Map-Server extracts the OTK and OTK Wrapping ID from the LISP- | * The Map-Server extracts the OTK and the OTK Wrapping ID from the | |||
| SEC ECM Authentication Data. | LISP-SEC Encapsulated Control Message (ECM) Authentication Data. | |||
| * The Map-Server generates a PubSubKey by deriving a key from the | * The Map-Server generates a PubSubKey by deriving a key from the | |||
| OTK as described before for the ITR. This is the same PubSubKey | OTK, as described before for the ITR. This is the same PubSubKey | |||
| derived at the ITR which is used to establish a security | derived at the ITR that is used to establish a security | |||
| association between the ITR and the Map-Server. | association between the ITR and the Map-Server. | |||
| * The PubSubKey can now be used to sign and authenticate any Map- | * The PubSubKey can now be used to sign and authenticate any Map- | |||
| Notify between the Map-Server and the ITR for the subscribed EID- | Notify between the Map-Server and the ITR for the subscribed EID- | |||
| Prefix. This includes the Map-Notify sent as a confirmation to | Prefix. This includes the Map-Notify sent as a confirmation to | |||
| the subscription. When the ITR wants to update the security | the subscription. When the ITR wants to update the security | |||
| association for that Map-Server and EID-Prefix, it once again | association for that Map-Server and EID-Prefix, it once again | |||
| follows the procedure described in this section. | follows the procedure described in this section. | |||
| Note that if the Map-Server replies with a Map-Notify, none of the | Note that if the Map-Server replies with a Map-Notify, none of the | |||
| regular LISP-SEC steps regarding Map-Reply described in Section 5.7 | regular LISP-SEC steps regarding Map-Reply described in Section 5.7 | |||
| of [RFC9303] occur. | of [RFC9303] occur. | |||
| 7.2. DDoS Attack Mitigation | 7.2. DDoS Attack Mitigation | |||
| If PubSub is deployed under the scope of applicability defined in | If PubSub is deployed under the scope of applicability defined in | |||
| Section 1.1 only known nodes can participate on the PubSub | Section 1.1, only known nodes can participate on the PubSub | |||
| deployment. DDoS attacks based on replayed messages by unknown nodes | deployment. DDoS attacks based on replayed messages by unknown nodes | |||
| are avoided by the use of nonce and the security association between | are avoided by the use of nonce and the security association between | |||
| the ITRs and the Map-Servers. Misbehaving known nodes may send | the ITRs and the Map-Servers. Misbehaving known nodes may send | |||
| massive subscription requests which may lead to exhausting the | massive subscription requests, which may lead to exhausting the | |||
| resources of a Map-Server. Furthermore, frequently changing the | resources of a Map-Server. Furthermore, frequently changing the | |||
| state of a subscription may also be considered as an attack vector. | state of a subscription may also be considered as an attack vector. | |||
| To mitigate such issues, Section 5.3 of [RFC9301] discusses rate- | To mitigate such issues, Section 5.3 of [RFC9301] discusses rate- | |||
| limiting Map-Requests and Section 5.7 of [RFC9301] discusses rate- | limiting Map-Requests, and Section 5.7 of [RFC9301] discusses rate- | |||
| limiting Map-Notifies. Note that when the Map-Notify rate-limit | limiting Map-Notifies. Note that when the Map-Notify rate-limit | |||
| threshold is met for a particular xTR-ID, the Map-Server will discard | threshold is met for a particular xTR-ID, the Map-Server will discard | |||
| additional subscription requests from that xTR-ID and will fall back | additional subscription requests from that xTR-ID and will fall back | |||
| to [RFC9301] behavior when receiving a Map-Request from that xTR-ID | to the behavior described in [RFC9301] when receiving a Map-Request | |||
| (i.e., the Map-Server will send a Map-Reply). | from that xTR-ID (i.e., the Map-Server will send a Map-Reply). | |||
| 8. IANA Considerations | 8. IANA Considerations | |||
| This document requests IANA to assign a new bit from the "LISP | IANA has assigned the following new bit from the "LISP Control Plane | |||
| Control Plane Header Bits: Map-Request" sub-registry under the | Header Bits: Map-Request" registry within the "Locator/ID Separation | |||
| "Locator/ID Separation Protocol (LISP) Parameters" registry available | Protocol (LISP) Parameters" group of registries [IANA-LISP]: | |||
| at [IANA-LISP]. The suggested position of this bit in the Map- | ||||
| Request message can be found in Figure 1. | ||||
| +======+===============+==========+=============+===============+ | +===========+===============+==========+=============+===========+ | |||
| | Spec | IANA Name | Bit | Description | Reference | | | Spec Name | IANA Name | Bit | Description | Reference | | |||
| | Name | | Position | | | | | | | Position | | | | |||
| +======+===============+==========+=============+===============+ | +===========+===============+==========+=============+===========+ | |||
| | I | Map-Request-I | 11 | xTR-ID Bit | This-Document | | | I | Map-Request-I | 11 | xTR-ID Bit | RFC 9437 | | |||
| +------+---------------+----------+-------------+---------------+ | +-----------+---------------+----------+-------------+-----------+ | |||
| Table 1: Additions to the Map-Request Header Bits Sub-Registry | Table 1: Addition to the Map-Request Header Bits Registry | |||
| This document also requests the creation of a new sub-registry | IANA has also created a new registry entitled "LISP Control Plane | |||
| entitled "LISP Control Plane Header Bits: Map-Request-Record" under | Header Bits: Map-Request-Record" within the "Locator/ID Separation | |||
| the "Locator/ID Separation Protocol (LISP) Parameters" registry | Protocol (LISP) Parameters" group of registries [IANA-LISP]. | |||
| available at [IANA-LISP]. | ||||
| The initial content of this sub-registry is shown in Table 2: | The initial content of this registry is shown in Table 2. | |||
| +====+=============+========+========================+=============+ | +====+===============+========+========================+===========+ | |||
| |Spec|IANA Name |Bit | Description |Reference | | |Spec| IANA Name |Bit | Description | Reference | | |||
| |Name| |Position| | | | |Name| |Position| | | | |||
| +====+=============+========+========================+=============+ | +====+===============+========+========================+===========+ | |||
| |N |Map-Request-N|1 | Notification-Requested |This-Document| | |N | Map-Request-N |1 | Notification-Requested | RFC 9437 | | |||
| | | | | Bit | | | | | | | Bit | | | |||
| +----+-------------+--------+------------------------+-------------+ | +----+---------------+--------+------------------------+-----------+ | |||
| Table 2: Initial Content of LISP Control Plane Header Bits: Map- | Table 2: Initial Content of LISP Control Plane Header Bits: Map- | |||
| Request-Record Sub-Registry | Request-Record Registry | |||
| The remaining bits (i.e., Bit positions 2-8) are Unassigned. | The remaining bits (i.e., bit positions 2-8) are Unassigned. | |||
| The policy for allocating new bits from this sub-registry is | The policy for allocating new bits in this registry is "Specification | |||
| Specification Required (Section 4.6 of [RFC8126]). | Required" (Section 4.6 of [RFC8126]). | |||
| Review requests are evaluated on the advice of one or more designated | Allocation requests are evaluated on the advice of one or more | |||
| experts. Criteria that should be applied by the designated experts | designated experts. Designated experts should consider whether the | |||
| include determining whether the proposed registration duplicates | proposed registration duplicates existing entries and whether the | |||
| existing entries and whether the registration description is | registration description is sufficiently detailed and fits the | |||
| sufficiently detailed and fits the purpose of this registry. These | purpose of this registry. These criteria are to be considered in | |||
| criteria are considered in addition to those already provided in | addition to those provided in Section 4.6 of [RFC8126] (e.g., the | |||
| Section 4.6 of [RFC8126] (e.g., the proposed registration must be | proposed registration "must be documented in a permanent and readily | |||
| documented in a permanent and readily available public | available public specification"). The designated experts will either | |||
| specification). The designated experts will either approve or deny | approve or deny the registration request, and communicate their | |||
| the registration request, communicating this decision to IANA. | decision to IANA. Denials should include an explanation and, if | |||
| Denials should include an explanation and, if applicable, suggestions | applicable, suggestions as to how to make the request successful. | |||
| as to how to make the request successful. | ||||
| 9. References | 9. References | |||
| 9.1. Normative References | 9.1. Normative References | |||
| [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
| Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
| DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
| <https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
| skipping to change at page 16, line 5 ¶ | skipping to change at line 713 ¶ | |||
| Plane", RFC 9301, DOI 10.17487/RFC9301, October 2022, | Plane", RFC 9301, DOI 10.17487/RFC9301, October 2022, | |||
| <https://www.rfc-editor.org/info/rfc9301>. | <https://www.rfc-editor.org/info/rfc9301>. | |||
| [RFC9303] Maino, F., Ermagan, V., Cabellos, A., and D. Saucez, | [RFC9303] Maino, F., Ermagan, V., Cabellos, A., and D. Saucez, | |||
| "Locator/ID Separation Protocol Security (LISP-SEC)", | "Locator/ID Separation Protocol Security (LISP-SEC)", | |||
| RFC 9303, DOI 10.17487/RFC9303, October 2022, | RFC 9303, DOI 10.17487/RFC9303, October 2022, | |||
| <https://www.rfc-editor.org/info/rfc9303>. | <https://www.rfc-editor.org/info/rfc9303>. | |||
| 9.2. Informative References | 9.2. Informative References | |||
| [I-D.boucadair-lisp-pubsub-flow-examples] | [EID-MOBILITY] | |||
| Portoles, M., Ashtaputre, V., Maino, F., Moreno, V., and | ||||
| D. Farinacci, "LISP L2/L3 EID Mobility Using a Unified | ||||
| Control Plane", Work in Progress, Internet-Draft, draft- | ||||
| ietf-lisp-eid-mobility-11, 10 January 2023, | ||||
| <https://datatracker.ietf.org/doc/html/draft-ietf-lisp- | ||||
| eid-mobility-11>. | ||||
| [FLOW-EXAMPLES] | ||||
| Boucadair, M., "LISP PubSub Flow Examples", Work in | Boucadair, M., "LISP PubSub Flow Examples", Work in | |||
| Progress, Internet-Draft, draft-boucadair-lisp-pubsub- | Progress, Internet-Draft, draft-boucadair-lisp-pubsub- | |||
| flow-examples-03, 10 February 2023, | flow-examples-03, 10 February 2023, | |||
| <https://datatracker.ietf.org/doc/html/draft-boucadair- | <https://datatracker.ietf.org/doc/html/draft-boucadair- | |||
| lisp-pubsub-flow-examples-03>. | lisp-pubsub-flow-examples-03>. | |||
| [I-D.haindl-lisp-gb-atn] | [GB-ATN] Haindl, B., Lindner, M., Moreno, V., Portoles, M., Maino, | |||
| Haindl, B., Lindner, M., Moreno, V., Portoles-Comeras, M., | F., and B. Venkatachalapathy, "Ground-Based LISP for the | |||
| Maino, F., and B. Venkatachalapathy, "Ground-Based LISP | Aeronautical Telecommunications Network", Work in | |||
| for the Aeronautical Telecommunications Network", Work in | Progress, Internet-Draft, draft-haindl-lisp-gb-atn-09, 27 | |||
| Progress, Internet-Draft, draft-haindl-lisp-gb-atn-08, 23 | March 2023, <https://datatracker.ietf.org/doc/html/draft- | |||
| September 2022, <https://datatracker.ietf.org/doc/html/ | haindl-lisp-gb-atn-09>. | |||
| draft-haindl-lisp-gb-atn-08>. | ||||
| [I-D.ietf-lisp-eid-mobility] | [IANA-LISP] | |||
| Portoles-Comeras, M., Ashtaputre, V., Maino, F., Moreno, | IANA, "Locator/ID Separation Protocol (LISP) Parameters", | |||
| V., and D. Farinacci, "LISP L2/L3 EID Mobility Using a | <https://www.iana.org/assignments/lisp-parameters/>. | |||
| Unified Control Plane", Work in Progress, Internet-Draft, | ||||
| draft-ietf-lisp-eid-mobility-11, 10 January 2023, | ||||
| <https://datatracker.ietf.org/doc/html/draft-ietf-lisp- | ||||
| eid-mobility-11>. | ||||
| [I-D.ietf-lisp-yang] | [LISP-YANG] | |||
| Ermagan, V., Rodriguez-Natal, A., Coras, F., Moberg, C., | Ermagan, V., Rodriguez-Natal, A., Coras, F., Moberg, C., | |||
| Rahman, R., Cabellos-Aparicio, A., and F. Maino, "LISP | Rahman, R., Cabellos, A., and F. Maino, "LISP YANG Model", | |||
| YANG Model", Work in Progress, Internet-Draft, draft-ietf- | Work in Progress, Internet-Draft, draft-ietf-lisp-yang-19, | |||
| lisp-yang-18, 29 August 2022, | 2 March 2023, <https://datatracker.ietf.org/doc/html/ | |||
| <https://datatracker.ietf.org/doc/html/draft-ietf-lisp- | draft-ietf-lisp-yang-19>. | |||
| yang-18>. | ||||
| [I-D.moreno-lisp-uberlay] | [RFC6835] Farinacci, D. and D. Meyer, "The Locator/ID Separation | |||
| Moreno, V., Farinacci, D., Rodriguez-Natal, A., Portoles- | Protocol Internet Groper (LIG)", RFC 6835, | |||
| DOI 10.17487/RFC6835, January 2013, | ||||
| <https://www.rfc-editor.org/info/rfc6835>. | ||||
| [UBERLAY] Moreno, V., Farinacci, D., Rodriguez-Natal, A., Portoles- | ||||
| Comeras, M., Maino, F., and S. Hooda, "Uberlay | Comeras, M., Maino, F., and S. Hooda, "Uberlay | |||
| Interconnection of Multiple LISP overlays", Work in | Interconnection of Multiple LISP overlays", Work in | |||
| Progress, Internet-Draft, draft-moreno-lisp-uberlay-06, 28 | Progress, Internet-Draft, draft-moreno-lisp-uberlay-06, 28 | |||
| September 2022, <https://datatracker.ietf.org/doc/html/ | September 2022, <https://datatracker.ietf.org/doc/html/ | |||
| draft-moreno-lisp-uberlay-06>. | draft-moreno-lisp-uberlay-06>. | |||
| [IANA-LISP] | ||||
| IANA, "Locator/ID Separation Protocol (LISP) Parameters", | ||||
| <https://www.iana.org/assignments/lisp-parameters/lisp- | ||||
| parameters.xhtml>. | ||||
| [RFC6835] Farinacci, D. and D. Meyer, "The Locator/ID Separation | ||||
| Protocol Internet Groper (LIG)", RFC 6835, | ||||
| DOI 10.17487/RFC6835, January 2013, | ||||
| <https://www.rfc-editor.org/info/rfc6835>. | ||||
| Appendix A. Sample PubSub Deployment Experiences | Appendix A. Sample PubSub Deployment Experiences | |||
| Some LISP production networks have been running different forms of | Some LISP production networks have been running different forms of | |||
| PubSub for some time. The following subsections provide an inventory | PubSub for some time. The following subsections provide an inventory | |||
| of some experience lessons from these deployments. | of some experience lessons from these deployments. | |||
| A.1. PubSub as a Monitoring Tool | A.1. PubSub as a Monitoring Tool | |||
| Some LISP deployments are using PubSub as a way to monitor EID- | Some LISP deployments are using PubSub as a way to monitor EID- | |||
| Prefixes (particularly, EID-to-RLOC mappings). To that aim, some | Prefixes (particularly, EID-to-RLOC mappings). To that aim, some | |||
| LISP implementations have extended the LISP Internet Groper (lig) | LISP implementations have extended the LISP Internet Groper ('lig') | |||
| [RFC6835] tool to use PubSub. Such an extension is meant to support | [RFC6835] tool to use PubSub. Such an extension is meant to support | |||
| an interactive mode with lig, and request subscription for the EID of | an interactive mode with 'lig' and to request subscription for the | |||
| interest. If there are RLOC changes, the Map-Server sends a | EID of interest. If there are RLOC changes, the Map-Server sends a | |||
| notification and then the lig client displays that change to the | notification, and then the 'lig' client displays that change to the | |||
| user. | user. | |||
| A.2. Mitigating Negative Map-Cache Entries | A.2. Mitigating Negative Map-Cache Entries | |||
| Section 8.1 of [RFC9301] suggests two TTL values for Negative Map- | Section 8.1 of [RFC9301] suggests two TTL values for Negative Map- | |||
| Replies: either 15-minute (if the EID-Prefix does not exist) or | Replies: either a 15-minute TTL (if the EID-Prefix does not exist) or | |||
| 1-minute (if the prefix exists but has not been registered). While | a 1-minute TTL (if the prefix exists but has not been registered). | |||
| these values are based on the original operational experience of the | While these values are based on the original operational experience | |||
| LISP protocol designers, negative cache entries have two unintended | of the LISP protocol designers, negative cache entries have two | |||
| effects that were observed in production. | unintended effects that were observed in production. | |||
| First, if the xTR keeps receiving traffic for a negative EID | First, if the xTR keeps receiving traffic for a negative EID | |||
| destination (i.e., an EID-Prefix with no RLOCs associated with it), | destination (i.e., an EID-Prefix with no RLOCs associated with it), | |||
| it will try to resolve the destination again once the cached state | it will try to resolve the destination again once the cached state | |||
| expires, even if the state has not changed in the Map-Server. It was | expires, even if the state has not changed in the Map-Server. It was | |||
| observed in production that this is happening often in networks that | observed in production that this is happening often in networks that | |||
| have a significant amount of traffic addressed for outside of the | have a significant amount of traffic addressed for outside of the | |||
| LISP network. This might result on excessive resolution signaling to | LISP network. This might result in excessive resolution signaling to | |||
| keep retrieving the same state due to the cache expiring. PubSub is | keep retrieving the same state due to the cache expiring. PubSub is | |||
| used to relax TTL values and cache negative mapping entries for | used to relax TTL values and cache negative mapping entries for | |||
| longer periods of time, avoiding unnecessary refreshes of these | longer periods of time, avoiding unnecessary refreshes of these | |||
| forwarding entries, and drastically reducing signaling in these | forwarding entries and drastically reducing signaling in these | |||
| scenarios. In general, a TTL-based schema is a “polling mechanism” | scenarios. In general, a TTL-based schema is a "polling mechanism" | |||
| that leads to more signaling where PubSub provides an "event | that leads to more signaling where PubSub provides an "event- | |||
| triggered mechanism" at the cost of state. | triggered mechanism" at the cost of state. | |||
| Second, if the state does indeed change in the Map-Server, updates | Second, if the state does indeed change in the Map-Server, updates | |||
| based on TTL timeouts might prevent the cached state at the xTR from | based on TTL timeouts might prevent the cached state at the xTR from | |||
| being updated until the TTL expires. This behavior was observed | being updated until the TTL expires. This behavior was observed | |||
| during configuration (or reconfiguration) periods on the network, | during configuration (or reconfiguration) periods on the network, | |||
| where no-longer-negative EID-Prefixes do not receive the traffic yet | where EID-Prefixes that are no longer negative do not receive the | |||
| due to stale Map-Cache entries present in the network. With the | traffic yet, due to stale Map-Cache entries present in the network. | |||
| activation of PubSub, stale caches can be updated as soon as the | With the activation of PubSub, stale caches can be updated as soon as | |||
| state changes. | the state changes. | |||
| A.3. Improved Mobility Latency | A.3. Improved Mobility Latency | |||
| An improved convergence time was observed on the presence of mobility | An improved convergence time was observed on the presence of mobility | |||
| events on LISP networks running PubSub as compared with running LISP | events on LISP networks running PubSub as compared with running LISP | |||
| [RFC9301]. As described in Section 4.1.2.1 of | [RFC9301]. As described in Section 4.1.2.1 of [EID-MOBILITY], LISP | |||
| [I-D.ietf-lisp-eid-mobility], LISP can rely on data-driven Solicit- | can rely on data-driven Solicit-Map-Requests (SMRs) to ensure | |||
| Map-Requests (SMRs) to ensure eventual network converge. Generally, | eventual network convergence. Generally, PubSub offers faster | |||
| PubSub offers faster convergence due to (1) no need to wait for a | convergence due to (1) no need to wait for a data-triggered event and | |||
| data triggered event and (2) less signaling as compared with the SMR- | (2) less signaling as compared with the SMR-based flow. Note that | |||
| based flow. Note that when a Map-Server running PubSub has to update | when a Map-Server running PubSub has to update a large number of | |||
| a large number of subscribers at once (i.e., when a popular mapping | subscribers at once (i.e., when a popular mapping is updated), SMR- | |||
| is updated) SMR based convergence may be faster for a small subset of | based convergence may be faster for a small subset of the subscribers | |||
| the subscribers (those receiving PubSub updates last). Deployment | (those receiving PubSub updates last). Deployment experience reveals | |||
| experience reveals that data-driven SMRs and PubSub mechanisms | that data-driven SMRs and PubSub mechanisms complement each other and | |||
| complement each other and provide a fast and resilient network | provide a fast and resilient network infrastructure in the presence | |||
| infrastructure in the presence of mobility events. | of mobility events. | |||
| Furthermore, experience showed that not all LISP entities on the | Furthermore, experience showed that not all LISP entities on the | |||
| network need to implement PubSub for the network to get the benefits. | network need to implement PubSub for the network to get the benefits. | |||
| In scenarios with significant traffic coming from outside of the LISP | In scenarios with significant traffic coming from outside of the LISP | |||
| network, the experience showed that enabling PubSub in the border | network, the experience showed that enabling PubSub in the border | |||
| routers significantly improves mobility latency overall. Even if | routers significantly improves mobility latency overall. Even if | |||
| edge xTRs do not implement PubSub, and traffic is exchanged between | edge xTRs do not implement PubSub, and traffic is exchanged between | |||
| EID-Prefixes at the edge, xTRs still converge based on data-driven | EID-Prefixes at the edge, xTRs still converge based on data-driven | |||
| events and SMR-triggered updates. | events and SMR-triggered updates. | |||
| A.4. Enhanced Reachability with Dynamic Redistribution of Prefixes | A.4. Enhanced Reachability with Dynamic Redistribution of Prefixes | |||
| There is a need to interconnect LISP networks with other networks | There is a need to interconnect LISP networks with other networks | |||
| that might or might not run LISP. Some of those scenarios are | that might or might not run LISP. Some of those scenarios are | |||
| similar to the ones described in [I-D.haindl-lisp-gb-atn] and | similar to the ones described in [GB-ATN] and [UBERLAY]. When | |||
| [I-D.moreno-lisp-uberlay]. When connecting LISP to other networks, | connecting LISP to other networks, the experience revealed that in | |||
| the experience revealed that in many deployments the point of | many deployments the point of interaction with the other domains is | |||
| interaction with the other domains is not the Mapping System but | not the Mapping System but rather the border router of the LISP site. | |||
| rather the border router of the LISP site. For those cases the | For those cases, the border router needs to be aware of the LISP | |||
| border router needs to be aware of the LISP prefixes to redistribute | prefixes to redistribute them to the other networks. Over the years, | |||
| them to the other networks. Over the years different solutions have | different solutions have been used. | |||
| been used. | ||||
| First, Map-Servers were collocated with the border routers, but this | First, Map-Servers were collocated with the border routers, but this | |||
| was hard to scale since border routers scale at a different pace than | was hard to scale since border routers scale at a different pace than | |||
| Map-Servers. Second, decoupled Map-Servers and border routers were | Map-Servers. Second, decoupled Map-Servers and border routers were | |||
| used with static configuration of LISP entries on the border, which | used with static configuration of LISP entries on the border, which | |||
| was problematic when modifications were made. Third, a routing | was problematic when modifications were made. Third, a routing | |||
| protocol (e.g., BGP) can be used to redistributed LISP prefixes from | protocol (e.g., BGP) can be used to redistribute LISP prefixes from | |||
| the Map-Servers to a border router, but this comes with some | the Map-Servers to a border router, but this comes with some | |||
| implications, particularly the Map-Servers needs to implement an | implications; in particular, the Map-Servers need to implement an | |||
| additional protocol which consumes resources and needs to be properly | additional protocol, which consumes resources and needs to be | |||
| configured. Therefore, once PubSub was available, deployments | properly configured. Therefore, once PubSub was available, | |||
| started to adapt it to enable border routers to dynamically learn the | deployments started to adapt it to enable border routers to | |||
| prefixes they need to redistribute without the need of extra | dynamically learn the prefixes they need to redistribute without a | |||
| protocols or extra configuration on the network. | need for extra protocols or extra configuration on the network. | |||
| In other words, PubSub can be used to discover EID-Prefixes so they | In other words, PubSub can be used to discover EID-Prefixes so they | |||
| can be imported into other routing domains that do not use LISP. | can be imported into other routing domains that do not use LISP. | |||
| Similarly, PubSub can also be used to discover when EID-Prefixes need | Similarly, PubSub can also be used to discover when EID-Prefixes need | |||
| to be withdrawn from other routing domains. That is, in a typical | to be withdrawn from other routing domains. That is, in a typical | |||
| deployment, a border router will withdraw an EID-Prefix it has been | deployment, a border router will withdraw an EID-Prefix that it has | |||
| announcing to external routing domains, if it receives a notification | been announcing to external routing domains if it receives a | |||
| that the RLOC-set for that EID-Prefix is now empty. | notification that the RLOC-set for that EID-Prefix is now empty. | |||
| A.5. Better Serviceability | A.5. Better Serviceability | |||
| EID-to-RLOC mappings can have very long TTL, sometimes in the order | EID-to-RLOC mappings can have a very long TTL, sometimes on the order | |||
| of several hours. Upon the expiry of that TTL, the xTR checks if | of several hours. Upon the expiry of that TTL, the xTR checks if | |||
| these entries are being used and removes any entry that is not being | these entries are being used and removes any entry that is not being | |||
| used. The problem with very long Map-Cache TTL is that (in the | used. The problem with a very long Map-Cache TTL is that (in the | |||
| absence of PubSub) if a mapping changes, but it is not being used, | absence of PubSub) if a mapping changes but is not being used, the | |||
| the cache remains but it is stale. This is due to no data traffic | cache remains but is stale. This is due to no data traffic being | |||
| being sent to the old location to trigger an SMR based Map-Cache | sent to the old location to trigger an SMR-based Map-Cache update as | |||
| update as described in Section 4.1.2.1 of | described in Section 4.1.2.1 of [EID-MOBILITY]. If the network | |||
| [I-D.ietf-lisp-eid-mobility]. If the network operator runs a show | operator runs a show command on a router to track the state of the | |||
| command on a router to track the state of the Map-Cache, the router | Map-Cache, the router will display multiple entries waiting to expire | |||
| will display multiple entries waiting to expire but with stale RLOC | but with stale RLOC information. This might be confusing for | |||
| information. This might be confusing for operators sometimes, | operators sometimes, particularly when they are debugging problems. | |||
| particularly when they are debugging problems. With PubSub, the Map- | With PubSub, the Map-Cache is updated with the correct RLOC | |||
| Cache is updated with the correct RLOC information, even when it is | information, even when it is not being used or waiting to expire, | |||
| not being used or waiting to expire, and this helps with debugging. | which helps with debugging. | |||
| Acknowledgments | Acknowledgments | |||
| We would like to thank Marc Portoles, Balaji Venkatachalapathy, | We would like to thank Marc Portoles, Balaji Venkatachalapathy, | |||
| Bernhard Haindl, Luigi Iannone, and Padma Pillay-Esnault for their | Bernhard Haindl, Luigi Iannone, and Padma Pillay-Esnault for their | |||
| great suggestions and help regarding this document. | great suggestions and help regarding this document. | |||
| Many thanks to Alvaro Retana for the careful AD review. | Many thanks to Alvaro Retana for the careful AD review. | |||
| Thanks to Chris M. Lonvick for the security directorate review, Al | Thanks to Chris M. Lonvick for the security directorate review, Al | |||
| Morton for the OPS-DIR review, Roni Even for the Gen-ART review, Mike | Morton for the OPS-DIR review, Roni Even for the Gen-ART review, Mike | |||
| McBride for the rtg-dir review, Magnus Westerlund for the tsv | McBride for the rtg-dir review, Magnus Westerlund for the tsv | |||
| directorate review, and Sheng Jiang for the int-dir review. | directorate review, and Sheng Jiang for the int-dir review. | |||
| Thanks to John Scudder, Erik Kline, Lars Eggert, Warren Kumari, | Thanks to John Scudder, Erik Kline, Lars Eggert, Warren Kumari, | |||
| Martin Duke, Murray Kucherawy, Éric Vyncke, Robert Wilton, | Martin Duke, Murray Kucherawy, Éric Vyncke, Robert Wilton, | |||
| Zaheduzzaman Sarker, and Roman Danyliw for the IESG review. | Zaheduzzaman Sarker, and Roman Danyliw for the IESG review. | |||
| This work was partly funded by the ANR LISP-Lab project #ANR- | This work was partly funded by the ANR LISP-Lab project #ANR- | |||
| 13-INFR-009 (https://anr.fr/Projet-ANR-13-INFR-0009). | 13-INFR-009 <https://anr.fr/Projet-ANR-13-INFR-0009>. | |||
| Contributors | Contributors | |||
| Dino Farinacci | ||||
| lispers.net | ||||
| San Jose, CA | ||||
| USA | ||||
| Email: farinacci@gmail.com | ||||
| Johnson Leong | ||||
| Email: johnsonleong@gmail.com | ||||
| Fabio Maino | Dino Farinacci | |||
| Cisco | lispers.net | |||
| San Jose, CA | San Jose, CA | |||
| USA | United States of America | |||
| Email: farinacci@gmail.com | ||||
| Email: fmaino@cisco.com | ||||
| Christian Jacquenet | Johnson Leong | |||
| Orange | Email: johnsonleong@gmail.com | |||
| Rennes | ||||
| France | ||||
| Email: christian.jacquenet@orange.com | Fabio Maino | |||
| Cisco | ||||
| San Jose, CA | ||||
| United States of America | ||||
| Email: fmaino@cisco.com | ||||
| Stefano Secci | Christian Jacquenet | |||
| Cnam | Orange | |||
| France | Rennes | |||
| France | ||||
| Email: christian.jacquenet@orange.com | ||||
| Email: stefano.secci@cnam.fr | Stefano Secci | |||
| Cnam | ||||
| France | ||||
| Email: stefano.secci@cnam.fr | ||||
| Authors' Addresses | Authors' Addresses | |||
| Alberto Rodriguez-Natal | Alberto Rodriguez-Natal | |||
| Cisco | Cisco | |||
| Barcelona | Barcelona | |||
| Spain | Spain | |||
| Email: natal@cisco.com | Email: natal@cisco.com | |||
| Vina Ermagan | Vina Ermagan | |||
| End of changes. 117 change blocks. | ||||
| 423 lines changed or deleted | 418 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. | ||||