Secure EVPN MAC Signaling
draft-thubert-bess-secure-evpn-mac-signaling-00
The information below is for an old version of the document.
| Document | Type | Active Internet-Draft (individual) | |
|---|---|---|---|
| Authors | Pascal Thubert , Tony Przygienda , Jeff Tantsura | ||
| Last updated | 2021-07-08 | ||
| Stream | (None) | ||
| Formats | plain text html xml htmlized pdfized bibtex | ||
| Stream | Stream state | (No stream defined) | |
| Consensus boilerplate | Unknown | ||
| RFC Editor Note | (None) | ||
| IESG | IESG state | I-D Exists | |
| Telechat date | (None) | ||
| Responsible AD | (None) | ||
| Send notices to | (None) |
draft-thubert-bess-secure-evpn-mac-signaling-00
BESS P. Thubert, Ed.
Internet-Draft Cisco Systems
Intended status: Standards Track A. Przygienda
Expires: 9 January 2022 Juniper Networks, Inc
J. Tantsura
Microsoft
8 July 2021
Secure EVPN MAC Signaling
draft-thubert-bess-secure-evpn-mac-signaling-00
Abstract
This specification adds attributes to EVPN to carry IPv6 address
metadata learned from RFC 8505 and RFC 8928 so as to maintain a
synchronized copy of the 6LoWPAN ND registrar at each EVPN router and
perform locally a unicast IPv6 ND service for address lookup and
duplicate address detection.
Status of This Memo
This Internet-Draft is submitted in full conformance with the
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
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet-Drafts as reference
material or to cite them other than as "work in progress."
This Internet-Draft will expire on 9 January 2022.
Copyright Notice
Copyright (c) 2021 IETF Trust and the persons identified as the
document authors. All rights reserved.
Thubert, et al. Expires 9 January 2022 [Page 1]
Internet-Draft EVPN Secure MAC July 2021
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 . . . . . . . . . . . . . . . . . . . . . . . . 3
2. Terminology . . . . . . . . . . . . . . . . . . . . . . . . . 4
2.1. Requirements Language . . . . . . . . . . . . . . . . . . 4
2.2. Glossary . . . . . . . . . . . . . . . . . . . . . . . . 4
2.3. References . . . . . . . . . . . . . . . . . . . . . . . 5
3. 6LoWPAN Neighbor Discovery . . . . . . . . . . . . . . . . . 6
3.1. RFC 6775 Address Registration . . . . . . . . . . . . . . 6
3.2. RFC 8505 Extended Address Registration . . . . . . . . . 7
3.2.1. R Flag . . . . . . . . . . . . . . . . . . . . . . . 8
3.2.2. TID, "I" Field and Opaque Fields . . . . . . . . . . 8
3.2.3. Status . . . . . . . . . . . . . . . . . . . . . . . 8
3.2.4. Route Ownership Verifier . . . . . . . . . . . . . . 9
3.3. RFC 8505 Extended DAR/DAC . . . . . . . . . . . . . . . . 9
3.4. RFC 7400 Capability Indication Option . . . . . . . . . . 10
4. Extending 6LoWPAN ND . . . . . . . . . . . . . . . . . . . . 11
4.1. Use of the R flag in NA . . . . . . . . . . . . . . . . . 11
4.2. Distributing the 6LBR . . . . . . . . . . . . . . . . . . 11
4.3. Unicast Address Lookup with the 6LBR . . . . . . . . . . 15
5. Requirements on the EVPN-Unaware Host . . . . . . . . . . . . 21
5.1. Support of 6LoWPAN ND . . . . . . . . . . . . . . . . . . 21
6. Enhancements to EVPN . . . . . . . . . . . . . . . . . . . . 22
6.1. ROVR MAC Mobility Extended Community . . . . . . . . . . 24
6.2. Extended ROVR MAC Procedures . . . . . . . . . . . . . . 25
7. Protocol Operations . . . . . . . . . . . . . . . . . . . . . 26
8. Security Considerations . . . . . . . . . . . . . . . . . . . 36
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 37
10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 37
11. Normative References . . . . . . . . . . . . . . . . . . . . 37
12. Informative References . . . . . . . . . . . . . . . . . . . 38
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 39
Thubert, et al. Expires 9 January 2022 [Page 2]
Internet-Draft EVPN Secure MAC July 2021
1. Introduction
"Registration Extensions for IPv6 over 6LoWPAN Neighbor Discovery"
[RFC8505] (ND) provides a zeroconf routing-agnostic Host-to-Router
Link-Local interface for Stateful Address Autoconfiguration.
"Address-Protected Neighbor Discovery for Low-Power and Lossy
Networks" [RFC8928] (AP-ND) adds a zeroconf anti-theft protection
that protects the ownership of the autoconfigured address with
autoconfigured proof of ownership called a Registration Ownership
Verifier (ROVR).
[RFC8505] enables the host to claim an IPv6 address and obtain
reachability services for that address. It is already used to inject
host routes in RPL [RFC9010] and RIFT "Routing in Fat Trees" [RIFT],
and to maintain a proxy-ND state in a backbone router [RFC8929]; this
specification extends its applicability to the case of Ethernet
Virtual Private Network (eVPN).
[RFC8505] specifies a unicast address registration mechanism that
enables the host called a 6LowPAN Node (6LN) to install a ND binding
state in the 6LowPAN Router (6LR) that can serve as Neighbor Cache
Entry (NCE), though it is not operated as a cache. The protocol
provides the means to reject the registration in case of address
duplication. It also enables to discriminate mobility from
multihoming. [RFC8928] adds the capability to verify the ownership
of the address and prevent an attacker from stealing and/or
impersonating an address.
[RFC8505] defines the 6LoWPAN Border Router (6LBR) as an abstract
address registrar that provides authoritative service for Address
Registration and duplicate detection. The 6LBR stores address
metadata that is obtained during the Address Registration, including
an owner ID and a sequence counter. As part of the process of a new
Address Registration, the 6LR queries the 6LBR for existing metadata
related to the address being registered. This enables in particular
to detect a duplication and reject the registration. This
specification extends the 6LBR abstract data model to store the Link
Layer Address (LLA) of the Registering Node. This enables the 6LBR
to perform locally, and using unicast communication, the IPv6 ND
services of address lookup and duplicate address detection.
The [RFC8505] address registrar can be centralized, but it can also
be distributed and maintained synchronized using a routing protocol.
This specification adds attributes to EVPN to carry the IPv6 address
metadata learned from [RFC8505] so as to maintain a synchronized copy
of the 6LBR abstract data at each EVPN router.
Thubert, et al. Expires 9 January 2022 [Page 3]
Internet-Draft EVPN Secure MAC July 2021
2. Terminology
2.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.
2.2. Glossary
This document uses the following acronyms:
6CIO Capability Indication Option [RFC7400]
6LN: 6LoWPAN Node (the Host) [RFC6775]
6LR: 6LoWPAN router (the router) [RFC6775]
6LBR: 6LoWPAN Border router [RFC6775]
AMC: Address Mapping Confirmation [UNICAST-LOOKUP]
AMR: Address Mapping Request [UNICAST-LOOKUP]
ARO Address Registration Option [RFC6775]
CIPO: Crypto-ID Parameters Option
DAD: Duplicate Address Detection [RFC4862]
ICMPv6: Internet Control Message Protocol for IPv6
DAC Duplicate Address Confirmation [RFC6775]
DAR Duplicate Address Request [RFC6775]
EDAC Extended Duplicate Address Confirmation [RFC8505]
EDAR Extended Duplicate Address Request [RFC8505]
EARO: Extended Address Registration Option [RFC8505]
EVPN: Ethernet VPN [RFC7432]
LLA: Link-Layer Address (the MAC address on Ethernet)
LLN Low-Power and Lossy Network [RFC6550]
NA: Neighbor Advertisement [RFC4861]
NCE: Neighbor Cache Entry [RFC4861]
ND: Neighbor Discovery [RFC4861]
NDPSO: Neighbor Discovery Protocol Signature Option
NS: Neighbor Solicitation [RFC4861]
RA: Router Advertisement [RFC4861]
ROVR: Registration Ownership Verifier [RFC8505]
TID: Transaction ID (a sequence counter in the EARO) [RFC8505]
SLAAC: Stateless Address Autoconfiguration [RFC4862]
SLLAO: Source Link-Layer Address Option [RFC4861]
TLLAO: Target Link-Layer Address Option [RFC4861]
ROVR MAC: MAC obtained from a host meeting requirements in Section 5
Validated ROVR MAC: ROVR MAC validated by procedures specified in
[RFC8928]
ROVR Node: EVPN node capable of advertising ROVR MACs
non-ROVR Node: EVPN node not supporting extensions defined in this
Thubert, et al. Expires 9 January 2022 [Page 4]
Internet-Draft EVPN Secure MAC July 2021
document.
VPN: Virtual Private Network
2.3. References
This document uses the terms Clos fabric and Fat Tree
interchangeably, to refer to a folded spine-and-leaf topology as
defined in the terminology section of "RIFT: Routing in Fat Trees"
[RIFT].
The term "leaf" represents the access switch that connects the
servers to the Fat Tree. The leaf is typically a Top-of-Rack (ToR)
switch.
This specification uses the terms 6LN, 6LR and 6LBR to refer
specifically to nodes that implement the said roles in [RFC8505] and
does not expect other functionality such as 6LoWPAN Header
Compression:
* In the context of this document, the 6LN is a server that
advertises an address mapping using [RFC8505], and optionally
protects its ownership with [RFC8928].
* The 6LR and 6LBR function are collapsed at the leaf and its state
is synchronized with that of the EVPN functional support using an
internal interface that is out of scope. That interface could be
"pull" meaning that the 6LBR fetches the EVPN information when it
needs it, or "push", meaning that any information that EVPN
distributes is immediately fed in all the 6LBRs in all the leaves.
Note that this is pure control plane and is not subject to
abbreviating optimization as the FIB may be.
In this document, readers will encounter terms and concepts that are
discussed in the following documents:
EVPN: "BGP MPLS-Based Ethernet VPN" [RFC7432] and "Network
Virtualization Overlay Solution" [RFC8365],
Classical IPv6 ND: "Neighbor Discovery for IP version 6" [RFC4861]
and "IPv6 Stateless Address Autoconfiguration" [RFC4862],
6LoWPAN ND: Neighbor Discovery Optimization for Low-Power and Lossy
Networks [RFC6775], "Registration Extensions for 6LoWPAN Neighbor
Discovery" [RFC8505], "Address Protected Neighbor Discovery for
Low-power and Lossy Networks" [RFC8928], and "IPv6 Backbone
Router" [RFC8929].
Thubert, et al. Expires 9 January 2022 [Page 5]
Internet-Draft EVPN Secure MAC July 2021
3. 6LoWPAN Neighbor Discovery
6LoWPAN Neighbor Discovery defines a stateful address
autoconfiguration mechanism for IPv6. 6LoWPAN ND enables to divorce
the L3 abstractions for link and subnet from the characteristics of
the L2 link and broadcast domain. It is applicable beyond its
original field of IoT to any environment where the broadcast nature
of the underlaying network should not be exploited, e.g., in the case
of a wireless link where broadcast uses an excessive amount of
spectrum, and a distributed cloud, where it may span too widely.
In contrast to Stateless Address Autoconfiguration (SLAAC) [RFC4862]
which relies on broadcast for duplicate address detection (DAD) and
address lookup, 6LoWPAN ND installs and maintains a state in the
neighbors for the duration of their interaction. Though it is also
called a Neighbor Cache Entry (BCE) in [RFC6775], and in contrast
with the the BCE in SLAAC, that state is not a cache that can be
casually flushed and rebuilt. It must be installed proactively and
refreshed periodically to maintain the connectivity and enable
unicast-only operations.
The typical abstraction for an IP Link with 6LoWPAN ND is point-to-
point (P2P) between a node and a router. An IP interface bundles
multiple links between this node and peers in the same subnet, aka
point-to-multipoint (P2MP). The subnet is a not-on-link L3-connected
collection of such nodes and links, which means that the any-to-any
connectivity across the subnet is ensured through L3 routing as
opposed to transitive (any-to-any) reachability from L2.
This section goes through the 6LoWPAN ND mechanisms that this
specification leverages, as a non-normative reference to the reader.
The relevant normative text is to be found in [RFC6775], [RFC8505],
and [RFC8928].
3.1. RFC 6775 Address Registration
The classical "IPv6 Neighbor Discovery (IPv6 ND) Protocol" [RFC4861]
[RFC4862] was defined for serial links and transit media such as
Ethernet. It is a reactive protocol that relies heavily on multicast
operations for Address Discovery (aka Lookup) and Duplicate Address
Detection (DAD).
Thubert, et al. Expires 9 January 2022 [Page 6]
Internet-Draft EVPN Secure MAC July 2021
"Neighbor Discovery Optimizations for 6LoWPAN networks" [RFC6775]
adapts IPv6 ND for operations over energy-constrained LLNs. The main
functions of [RFC6775] are to proactively establish the Neighbor
Cache Entry (NCE) in the 6LR and to prevent address duplication. To
that effect, [RFC6775] introduces a new unicast Address Registration
mechanism that contributes to reducing the use of multicast messages
compared to the classical IPv6 ND protocol.
[RFC6775] defines a new Address Registration Option (ARO) that is
carried in the unicast Neighbor Solicitation (NS) and Neighbor
Advertisement (NA) messages between the 6LoWPAN Node (6LN) and the
6LoWPAN router (6LR). It also defines the Duplicate Address Request
(DAR) and Duplicate Address Confirmation (DAC) messages between the
6LR and the 6LBR. In a Low-Power and Lossy Network (LLN), the 6LBR
is the central repository of all the Registered Addresses in its
domain and the authoritative source of truth for uniqueness and
ownership.
3.2. RFC 8505 Extended Address Registration
"Registration Extensions for 6LoWPAN Neighbor Discovery" [RFC8505]
updates RFC 6775 into a generic Address Registration mechanism that
can be used to access services such as routing and ND proxy. To that
effect, [RFC8505] defines the Extended Address Registration Option
(EARO), shown in Figure 1:
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length | Status | Opaque |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Rsvd | I |R|T| TID | Registration Lifetime |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
... Registration Ownership Verifier ...
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 1: EARO Option Format
Thubert, et al. Expires 9 January 2022 [Page 7]
Internet-Draft EVPN Secure MAC July 2021
3.2.1. R Flag
[RFC8505] introduces the R Flag in the EARO. The Registering Node
sets the R Flag to indicate whether the 6LR should ensure
reachability for the Registered Address. If the R Flag is set to 0,
then the Registering Node handles the reachability of the Registered
Address by other means. In an EVPN network, this means that either
it is a RAN that injects the route by itself or that it uses another
EVPN router for reachability services.
This document specifies how the R Flag is used in the context of
EVPN. An EVPN Host that implements the 6LN functionality from
[RFC8505] requires reachability services for an IPv6 address if and
only if it sets the R Flag in the NS(EARO) used to register the
address to a 6LR acting as an EVPN border router. Upon receiving the
NS(EARO), the EVPN router generates a BGP advertisement for the
Registered Address if and only if the R flag is set to 1.
[RFC9010] specifies that the 'R' flags is set in the responded NA
messages if and only if the route was installed. This specification
echoes that behavior.
3.2.2. TID, "I" Field and Opaque Fields
When the T Flag is set to 1, the EARO includes a sequence counter
called Transaction ID (TID), that is needed to format the MAC
Mobility Extended Community. This is the reason why the support of
[RFC8505] by the Host, as opposed to only [RFC6775], is a
prerequisite for this specification); this requirement is fully
explained in Section 5.1. The EARO also transports an Opaque field
and an associated "I" field that describes what the Opaque field
transports and how to use it.
This document specifies the use of the "I" field and the Opaque field
by a Host.
3.2.3. Status
The values of the EARO status are maintained by IANA in the Address
Registration Option Status Values subregistry [IANA-EARO-STATUS] of
the Internet Control Message Protocol version 6 (ICMPv6) Parameters
registry.
[RFC6775] and [RFC8505] defined the original values whereas [RFC9010]
reduced range to 64 values and reformatted the octet field to enable
to transport an external error, e.g., coming form a routing protocol.
Thubert, et al. Expires 9 January 2022 [Page 8]
Internet-Draft EVPN Secure MAC July 2021
This specification uses the format expressed in [RFC9010]. The value
of 0 denotes an unqualified success, 1 indicates an address
duplication, 3 a TID value that is outdated, and 4 is used in an
asynchronous NA to indicate that 6LN should remove that address and
possibly form new ones.
3.2.4. Route Ownership Verifier
Section 5.3 of [RFC8505] introduces the Registration Ownership
Verifier (ROVR) field of variable length from 64 to 256 bits. The
ROVR is a replacement of the EUI-64 in the ARO [RFC6775] that was
used to identify uniquely an Address Registration with the Link-Layer
address of the owner but provided no protection against spoofing.
"Address Protected Neighbor Discovery for Low-power and Lossy
Networks" [RFC8928] leverages the ROVR field as a cryptographic proof
of ownership to prevent a rogue third party from registering an
address that is already owned. The use of ROVR field enables the 6LR
to block traffic that is not sourced at an owned address.
This specification does not address how the protection by [RFC8928]
could be extended for use in EVPN. On the other hand, it adds the
ROVR to the BGP advertisement to share the state with the other
routers via the Reflector (see Section 6.1), which means that the
routers that are aware of the Host route are also aware of the ROVR
associated to the Target Address, whether it is cryptographic and
should be verified.
3.3. RFC 8505 Extended DAR/DAC
[RFC8505] updates the DAR/DAC messages to EDAR/EDAC messages to carry
the ROVR field. The EDAR/EDAC exchange takes place between the 6LR
to which the node registers an address, and the abstract 6LBR that
stores the reference value for the ROVR and the TID associated to
that address. It is triggered by an NS(EARO) message from a 6LN to
the 6LR, to create, refresh, compare and delete the corresponding
state in the 6LBR.
In the status returned with the EDAC message, the 6LBR indicates if
the registration is accepted, should be challenged, or is duplicate.
The status of 0 (success) indicates that the address is either new or
that the current registration matches, and in particular that the
ROVR at the 6LBR and the one in the EDAR message are identical.
Thubert, et al. Expires 9 January 2022 [Page 9]
Internet-Draft EVPN Secure MAC July 2021
6LN 6LR 6LBR
| | |
| IP Link | subnetwork |
| | |
| NS(EARO) | |
|---------------->| |
| | |
| | EDAR |
| |------------------>|
| | |
| | EDAC(status) |
| |<------------------|
| | |
| NA(EARO) | |
|<----------------| |
| | |
Figure 2: EDAR/EDAC flow
The EDAR/EDAC exchange is protected by the retry mechanism specified
in Section 8.2.6 of [RFC6775], though in a data center, a duration
significantly shorter than the default value of the Retransmission
Timer [RFC4861] of 1 second may be sufficient to cover the round-trip
delay between the 6R and the 6LBR.
With this specification, the 6LBR is distributed across the leaves,
and all the leaves where an address is currently registered maintain
a full 6LBR state for the address, aka local state in the following
text. The specification leverages the EDAR/EDAC exchange to ensure
that a leaf (acting as a 6LR) that needs to create a 6LBR state for a
new registration has the same value for the ROVR as any 6LBR already
serving that address on another leaf. At the same time, the
specification avoids placing full ROVR information in BGP so 1) it is
not observable by a potential attacker and 2) the new attributes
remain reasonably small.
3.4. RFC 7400 Capability Indication Option
"6LoWPAN-GHC: Generic Header Compression for IPv6 over Low-Power
Wireless Personal Area Networks (6LoWPANs)" [RFC7400] defines the
6LoWPAN Capability Indication Option (6CIO) that enables a node to
expose its capabilities in router Advertisement (RA) messages.
[RFC8505] defines a number of bits in the 6CIO, in particular:
L: Node is a 6LR.
E: Node is an IPv6 ND Registrar -- i.e., it supports registrations
Thubert, et al. Expires 9 January 2022 [Page 10]
Internet-Draft EVPN Secure MAC July 2021
based on EARO.
P: Node is a Routing Registrar, -- i.e., an IPv6 ND Registrar that
also provides reachability services for the Registered Address.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type | Length = 1 | Reserved |D|L|B|P|E|G|
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Reserved |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3: 6CIO flags
A 6LR that provides reachability services for a Host in an EVPN
network as specified in this document includes a 6CIO in its RA
messages and set the L, P and E flags to 1 as prescribed by
[RFC8505].
4. Extending 6LoWPAN ND
4.1. Use of the R flag in NA
This document extends [RFC8928] and [RFC8505] as follows
This document also updates the behavior of a 6LR acting as EVPN
router and of a 6LN acting as Host in the 6LoWPAN ND Address
Registration as follows:
* The use of the R Flag is extended to the NA(EARO) to confirm
whether the route was installed.
4.2. Distributing the 6LBR
This specification enables to distribute the 6LBR at the edge of the
EVPN network and collapse the 6LBR function with that of the EVPN
support. In that model, the EVPN to 6LBR interaction becomes an
internal interface, where each side informs the other in case of new
information concerning an IP to Link-Layer Address (LLA) mapping.
Since this is an internal interface, this specification makes no
assumption on whether the 6LBR stores its own representation of the
full EVPN state, which means that the EVPN support informs the 6LBR
in case of any change on the EVPN side (this is called the push
model, see Figure 10), or if the 6LBR queries the EVPN support when
it does not have a mapping to satisfy a request (pull model, see
Figure 9).
Thubert, et al. Expires 9 January 2022 [Page 11]
Internet-Draft EVPN Secure MAC July 2021
This specification leverages [RFC8929] that augments the abstract
data model of the 6LBR to store the LLA associated with the
registered address. Based on that additional state, the 6LBR in a
leaf can communicate the mapping to the collocated EVPN function and
respond to unicast address mapping lookups from the server side.
In an environment where the server ranges from a classical host to a
more complex platform that runs a collection of virtual hosts
interconnected by a virtual switch, but where the host-to-leaf
interface remains at layer 2, the 6LR and the 6LBR functions can be
collapsed in the leaf. The 6LR to 6LBR interaction also becomes an
internal interface, and there is no need for EDAR/EDAC messages.
In that case, the MAC address associated to the Registered Address is
indicated in the Target Link-Layer Address Option (TLLAO) in the NS
message used for the registration, as shown in Figure 4. In the case
of a pull model, if the 6LBR does not have a local state for the
mapping, it queries the EVPN support to obtain the EVPN state if any.
If a mapping is known then the 6LR/6LBR evaluates the registration
for address duplication and other possible issues per [RFC8505].
Else (this is for a new mapping), if the registration is accepted,
then the 6LBR notifies the EVPN support to inject a route type 2 in
the fabric.
Thubert, et al. Expires 9 January 2022 [Page 12]
Internet-Draft EVPN Secure MAC July 2021
Server Leaf
+--------------+ +-------------------+
| | | |
6LN 6LR/6LBR EVPN
| | |
| <vSwitch> Ethernet | <call I/F> |
| | |
| NS(EARO) | |
|------------------->| |
| | | ^
| | query | |
| |----------->| | if pull
| | response | | model
| |<-----------| |
| | v
| Evaluation (DAD) |
| |
| |new mapping |
| | indication |
| |----------->|
| | Inject/maintain
| store a mapping state | EVPN route type 2
| | ------------------>
| NA(EARO) | | [via BGP signaling]
|<-------------------| |
| | |
Figure 4: Direct Registration
In another type of deployment, the 6LR may be a virtual router in the
server whereas the 6LBR runs in the leaf node. To address that case,
the EDAR/EDAC may be used to communicate as shown in figure 5 of
[RFC8505]. This draft leverages the capability to insert IPv6 ND
options in the EDAR and EDAC messages introduced in [RFC8929] to
place a TLLAO that carries the MAC address associated to the
Registered address in the EDAR and EDAC messages as shown in
Figure 5:
Thubert, et al. Expires 9 January 2022 [Page 13]
Internet-Draft EVPN Secure MAC July 2021
Server Leaf
+----------------+ +----------------+
| | | |
6LN 6LR 6LBR EVPN
| | | |
| <vSwitch> | Ethernet | <call I/F> |
| | | |
| NS(EARO) | | |
|----------->| | |
| | EDAR(TLLAO) | |
| |------------->| |
| | | | ^
| | | query | |
| | |----------->| | if pull
| | | response | | model
| | |<-----------| |
| | | v
| | Evaluation (DAD) |
| | |
| | |new mapping |
| | | indication |
| | |----------->|
| | | Inject/maintain
| | store a mapping state | EVPN route type 2
| | | ------------------>
| | EDAC(TLLAO) | | [via BGP signaling]
| |<-------------| |
| NA(EARO) | | |
|<-----------| | |
| | | |
Figure 5: leveraging EDAR
[RFC8505] updates the DAR/DAC messages into the Extended DAR/DAC to
carry the ROVR field. With this specification, the abstract 6LBR is
distributed in all the Leaf nodes and synchronized with EVPN. When a
server successfully registers an address to a leaf, the 6LR on that
leaf becomes 6LBR for that address. It stores the full state for
that address including the ROVR and the TID. When the address
registration moves to another leaf, an EDAR/EDAC flow between the 6LR
in the new leaf and the 6LBR in the old leaf confirms that the ROVR
in the NS(EARO) received at the new leaf is correct, in which case
the 6LR in the new leaf becomes 6LBR.
When the address is already registered to the local leaf, the EDAR/
EDAC exchange is either local between a virtual router in the server
and the leaf, or internal to the leaf between a collapsed 6LR and
Thubert, et al. Expires 9 January 2022 [Page 14]
Internet-Draft EVPN Secure MAC July 2021
6LBR. Based on its local state, the 6LBR in the leaf checks whether
the proposed address/route is new and legit, and can reject it
otherwise.
It results that duplicate addresses and address impersonation attacks
can be filtered at the level of IPv6 ND by the 6LBR before the
information reaches EVPN.
4.3. Unicast Address Lookup with the 6LBR
A classical IPv6 ND stack in the server that treats the subnet prefix
as on-link (more in section 4.6.2. of [RFC4861]), will resolve an
unknown LLA mapping with a multicast NS(lookup) message addressed to
the solicited node multicast address (SNMA) associated with the
destination address being resolved. The RECOMMENDED operation in
that case is for the 6LBR that has a mapping state to forward the
packet as a unicast MAC to the LLA that is stored for the IPv6
address as expected by [RFC6085]. The actual owner of the address
can then answer unicast with a NA message, setting the override (O)
bit to 1, as shown in Figure 6.
Local Local Remote
Server Leaf Server
+----+ +--------+ +----+
| | | | | |
6LN 6LR/6LBR 6LN
| | |
| Ethernet | |
| | [via EVPN ] |
| multicast | [Data Tunnels] |
| NS(lookup) | |
|---------------->| |
| | forward unicast |
| | NS(lookup) |
| |---------------------->|
| | |
| | NA(O) |
| |<----------------------|
| NA(O) | |
|<----------------| |
| | |
Figure 6: Forwarding legacy NS (Lookup)
Thubert, et al. Expires 9 January 2022 [Page 15]
Internet-Draft EVPN Secure MAC July 2021
Section 3.1. of [RFC8929] adds the capability to insert IPv6 ND
options in the EDAR and EDAC messages. This enables the 6LBR to
store the link-layer address associated with the Registered Address
and to serve as a mapping server. [UNICAST-LOOKUP] leverages that
state to define a new unicast address lookup operation, extending the
EDAR and EDAC messages as the Address Mapping Request (AMR) and
Confirmation (AMC) with a different Code Prefix [RFC8505].
In that model, the router advertises the subnet prefix as not on-link
by setting the L flag to 0 in the Prefix Information Option (PIO),
more in section 4.6.2. of [RFC4861]. The expected behavior is that
the host that communicates with a peer in the same subnet refrains
from resolving the address mapping and passes the packets directly to
the router.
In the case where the router is a virtual 6LR running in the server,
and the source and destination are in the same subnet served by EVPN,
the router then resolves the address mapping on behalf of the host.
To that effect, the router sends a unicast AMR message to the 6LBR.
The message contains the SLLAO of the router to which the 6LBR will
reply. If the binding is found, the 6LBR replies with an AMC message
that contains the TLLOA with the requested MAC address, as shown in
Figure 7.
Thubert, et al. Expires 9 January 2022 [Page 16]
Internet-Draft EVPN Secure MAC July 2021
Local Local Remote
Server Leaf Server
+----------------+ +---------+ +----+
| | | | | |
6LN 6LR 6LBR/EVPN 6LN
| | | |
| | | [via EVPN ] |
| <vSwitch> | Ethernet | [Data Tunnels] |
| | | |
| | | |
| RA(PIO) | | |
| not onlink | | |
|<-----------| | |
| | | |
| Packet | | |
|----------->| | |
| | | |
| | AMR (SLLAO) | |
| |------------->| |
| | | |
| | AMC (TLLAO) | |
| |<-------------| |
| | | |
| NCE in STALE state | |
| | |
| | Packet |
| |------------------------------->|
| | |
| NCE in DELAY state | |
| | | |
Figure 7: Unicast Lookup from the virtual Host
If it is not found, [UNICAST-LOOKUP] provides the capability to
indicate immediately that the mapping is not known with a "not found"
status in the AMC, as opposed to waiting for an NS(lookup) and
retries to time out per [RFC4861].
In a fully stateful subnet where all nodes register all their
addresses with [RFC8505], this means that the looked up address is
not present in the network; in that case the packet is dropped and an
ICMP error type 1 "Destination Unreachable" code 3 "Address
unreachable" [RFC4443] is returned as shown in Figure 8.
Thubert, et al. Expires 9 January 2022 [Page 17]
Internet-Draft EVPN Secure MAC July 2021
Local Local
Server Leaf
+----------------+ +---------+
| | | |
6LN 6LR 6LBR/EVPN
| | |
| | |
| <vSwitch> | Ethernet |
| | |
| | |
| RA(PIO | |
|not on-link)| |
|<-----------| |
| | |
| Packet | |
|----------->| |
| | |
| | AMR (SLLAO) |
| |------------->|
| | |
| | AMC(status= |
| | "Not Found") |
| |<-------------|
|ICMPv6 Error| |
| "Address | |
|Unreachable"| |
|<-----------| |
| Drop Packet |
| | |
Figure 8: Unicast Lookup failure
Note that the figures above make no assumption on the pull vs. push
model. In the case of pull model, the 6LBR queries the EVPN support
when it does not have the mapping information to satisfy a request.
Figure 9 illustrates a successful pull model lookup flow, when the
route type 2 for the mapping is already known on the EVPN side.
Thubert, et al. Expires 9 January 2022 [Page 18]
Internet-Draft EVPN Secure MAC July 2021
Server Leaf
+----------------+ +----------------+
| | | |
6LN 6LR 6LBR EVPN
| | | |
| <vSwitch> | Ethernet | <call I/F> |
| | | |
| | | |
| | | | Receive EVPN
| | | | route type 2 for
| | | | remote address A'
| | | | [via BGP signaling]
| | | |<-----------------
| | | store a mapping state
| | | |
|Packet for A' | |
|----------->| | |
| |AMR(lookup A')| |
| |------------->| |
| | |Query addr A'
| | |----------->|
| | | |
| | | return LLA |
| | |<-----------|
| | | |
| |AMC(A''s TLLA)| |
| |<-------------| |
| | | |
| | Packet for A' |
| | [via EVPN ] |
| | [Data Tunnels] |
| |----------------------------------->
| | | |
Figure 9: Pull model
In the case of push model, the EVPN support synchronizes its state
upon a route type 2 with the 6LBR, and the 6LBR maintains an abstract
data structure for all information known to EVPN. This way, the 6LBR
already has the mapping information to satisfy any request for an
existing mapping and it can answer right away. Figure 10 illustrates
a successful push model lookup flow, when the 6LBR is already in
possession of the mapping.
Thubert, et al. Expires 9 January 2022 [Page 19]
Internet-Draft EVPN Secure MAC July 2021
Server Leaf
+----------------+ +----------------+
| | | |
6LN 6LR 6LBR EVPN
| | | |
| <vSwitch> | Ethernet | <call I/F> |
| | | |
| | | |
| | | |
| | | | Receive EVPN
| | | | route type 2 for
| | | | remote address A'
| | | | [via BGP signaling]
| | | |<-----------------
| | | store a mapping state
| | | |
| | |indicate LLA|
| | |<-----------|
| | store a mapping state |
| | | |
|Packet to A'| | |
|----------->| | |
| |AMR(lookup A')| |
| |------------->| |
| | | |
| |AMC(A's TLLA) | |
| |<-------------| |
| | | |
| | Packet to A' |
| | [via EVPN ] |
| | [Data Tunnels] |
| |----------------------------------->
| | | |
Figure 10: Push model
In a mixed environment, a lookup failure (the mapping is not found
though the address is present in the network) may be caused by a
legacy node that was node discovered (aka a silent node). In that
case, it is an administrative decision for the 6LR to broadcast an
NS(lookup) or to return an error as shown in Figure 8.
Thubert, et al. Expires 9 January 2022 [Page 20]
Internet-Draft EVPN Secure MAC July 2021
5. Requirements on the EVPN-Unaware Host
This document describes how EVPN routing can be extended to reach a
Host. This section specifies the minimal EVPN-independent
functionality that the Host needs to implement to obtain routing
services for its addresses.
5.1. Support of 6LoWPAN ND
A host sees a prefix as not on-link (e.g., it learned that prefix in
a PIO in a RA with the L flag not set) should not attempt to resolve
an address within that prefix using a multicast NS(lookup). Instead,
it must pass its packets to a router, preferably one that advertises
that prefix in a PIO; it must register the address that it uses as
source to that router to enable source address validation using
[RFC8505]. It is recommended that the Host also implements [RFC8928]
to prove its ownership of its addresses.
The Host is expected to request routing services from a router only
if that router originates RA messages with a 6CIO that has the L, P,
and E flags all set to 1 as discussed in Section 3.4, unless
configured to do so. To obtain routing services for one of its
addresses, the host must register the address to a router that
advertises the prefix, setting the "R" and "T" flags in the EARO to 1
as discussed in Section 3.2.1 and Section 3.2.2, respectively.
This document echoes the behavior specified in [RFC9010] whereby,
when the R Flag set to 1 in a NS(EARO) is not echoed in the NA(EARO),
the host must understand that the route injection failed, and if the
R flag is reset later in an asynchronous NA(EARO), the host must
understand that routing service has failed.
The host may attach to multiple 6LRs and is expected to prefer those
that provide routing services. The abstract model for this is a P2MP
interface that wraps together as many P2P IP Links the host has
adjacencies to 6LRs over that interface. The IPv6 address and the
subnet are associated to that interface. The interface may be
virtual and it may bundle multiple physical Ethernet interfaces that
connect to the individual 6LRs over point to point wires, possibly
via a software switch. It can also be associated to one physical
interface to an external switch, either way the PI Links can be
associated to sub-interface of the interface.
The Host needs to register to all the 6LRs from which it desires
routing services. The multiple Address Registrations to several 6LRs
should be performed in a rapid sequence, using the same EARO for the
same Address. Gaps between the Address Registrations will invalidate
some of the routes till the Address Registration finally shows on
Thubert, et al. Expires 9 January 2022 [Page 21]
Internet-Draft EVPN Secure MAC July 2021
those routes. The routers recognize the same (ROVR, TID) as the
signal of a multihomed address and maintain all the routes. In the
case of EVPN, the Ethernet Segment must also be the same. The flow
for a successful multihomed registration is illustrated in Figure 13.
[RFC8505] introduces error Status values in the NA(EARO) which can be
received synchronously upon an NS(EARO) or asynchronously. The Host
needs to support both cases and refrain from using the address when
the Status value indicates a rejection.
6. Enhancements to EVPN
This section addresses the necessary changes to EVPN formats and
behavior to support address registration security per [RFC8928] and
mobility per [RFC8505] while retaining interoperability with
traditional nodes. With 6LR injecting not only MACs via packet
sources and TLLAO options but also ROVR into mobility extended
community their semantics will be somewhat extended. Specifically
following issues have to be addressed:
* The ROVR extends the semantics of the type-2 MAC advertisement via
changes in MAC Mobility Extended Community in the sense that the
MAC must be aligned with the ROVR and under normal circumstances
only the validity of ROVR guarantees that the type-2 MAC can be
allocated to the requester. A MAC validated by ROVR should take
precedence over MAC addresses allocated without using it given it
presents a much more trustworthy topological information (it will
be called ROVR MAC in further text). EVPN nodes not supporting
extensions introduced by this document will need to be led to
believe that a ROVR MAC is to be preferred over any advertisement
they see as long a ROVR MAC route is present. Nevertheless,
primary key of NRLI is still the IP/MAC/ESI combination as defined
in [RFC7432], Section 7.2 and 7.7. This implies that the same MAC
(and consequently ROVR MAC) can be assigned multiple IP addresses
and those represent independent NLRIs.
* The TID field in the EARO is smaller than the mobility sequence
number in [RFC7432]. To allow a ROVR MAC mobility to "win" over
legacy MACs in every circumstance, signaling must be introduced
that enables to distinguish a TID-generated sequence number from a
legacy sequence number.
* [RFC8505] supports IP multihoming, but does not differentiate
multihoming from anycast, e.g., using the MAC address, to enable
MAC address rotation. If an anycast IP address is registered with
a different ROVR it will be rejected as duplicate. If it is
registered with a different TID, the older sequence will be
withdrawn. So the basic expectation with [RFC8505] is that the
Thubert, et al. Expires 9 January 2022 [Page 22]
Internet-Draft EVPN Secure MAC July 2021
advertisement of an anycast address is coordinated, with the same
keypair known to all parties, and the same value of the TID used
by all nodes (and possibly never increasing), in other words, with
no concept of mobility. This specification adds a flag in EVPN
that signals that the IP address is anycast and requires the local
6LBR to ignore the duplication if the same IP address is
registered locally, and then to inject the NLRI with the A flag
set on mobility extended community as well.
* [RFC8928] needs the full ROVR to validate the address ownership,
but the full ROVR can be too large to advertise through BGP. When
an IP address is advertised through EVPN, it is REQUIRED that the
EVPN Next Hop represents the address of the 6LBR of the leaf where
the address was registered as well. This way, if the address is
registered later on a second leaf, the 6LR in second leaf can
leverage an out-of-band, i.e. via EVPN traffic carrying tunnels,
EDAR/EDAC exchange with that 6LBR to validate that the ROVR in the
registration is indeed the same. When that is the case, it can
continue with the registration procedure and if successful, become
a 6LBR for that IP address, either as a mobility event or as a
multihomed registration.
* [RFC8928] expects nodes to autoconfigure the keypair that is used
to form the ROVR, in which case the IPv6 address can be locally
autoconfigured with no central coordination; in that case, the
ROVR only protects the ownership and enforce first-come first-
serve and source address validation. But it is also possible to
pre-provision the ROVR in the 6LBR and then provision the keypair
in the node, e.g., in the case of a trusted server. To enable
that capability in EVPN, this specification adds a flag to signal
that the 6LBR that injects the address in EVPN does not provide
reachability to the address. When that flag is set, the value of
the TID is ignored in the mobility computation, the mapping to the
MAC address is ignored, and the route to the IP address is not
injected in the RIB on ROVR nodes. Non-ROVR nodes will consider
the node a "honey-pot". Once the address is registered by a 6LN
in the network and the according validation with the node
advertising the U-bit version of the route performed, the owner
will inject the route without the U-bit. A node advertising the
NLRI with U-bit in its mobility extended community MUST withdraw
the U-bit route once it sees a validated NLRI without the U-bit
and it MAY reinject the route with the U-bit once all routes
without the U-bit are withdrawn to protect the address again.
EVPN signaling is not used to carry ROVR since without challenge per
[RFC8928] they do not represent any difference over using the IP/MAC
combination. Instead, the full ROVR is verified upon a movement or a
multi-homed advertisement using an EDAR/EDAC exchange. Additionally,
Thubert, et al. Expires 9 January 2022 [Page 23]
Internet-Draft EVPN Secure MAC July 2021
backwards compatibility could not be preserved given comparing routes
based on ROVR would present a change in primary key of NLRIs which
non-ROVR routers do not implement. An indication from a ROVR node
that a MAC has been validated by proof of ownership is enough to
convey the necessary information. Only a small hash of the ROVR is
carried to speed up the identification of an address duplication.
6.1. ROVR MAC Mobility Extended Community
Extending MAC Mobility Extended Community allows to design a solution
that, while backwards compatible, allows to introduce ROVR MAC as
"more trusted" entities. Figure 11 presents the according extensions
that will however necessitate some further explanation.
To introduce a "precedence" of ROVR MACs over normal EVPN MACs ROVR
MACs are advertised to look like "sticky" MACs for non-ROVR nodes.
As defined in the glossary, for simplicity reasons such nodes will be
called non-ROVR nodes vs. ROVR nodes. The "sticky" bit will force
non-ROVR nodes to disregard the sequence number and accept any IP/MAC
route provided.
ROVR nodes MUST set the "R" flag in Mobility Extended Community to
indicate that the advertisement is a ROVR MAC in case the host
followed the according procedures. ROVR MACs use (instead of
increasing the normal sequence number) the TID in the high bits of
the sequence number field to "override" any normal MAC advertisement
(further considerations will be provided in Section 6.2).
ROVR nodes MUST set the "V" flag if the address assignment passed
proof of ownership per [RFC8928]. Such "validated" ROVR MAC
addresses will be preferred by ROVR nodes over non validated ROVR
MACs.
In case a ROVR node configures the address as "sticky" (since the
sticky bit semantics have been changed to the point a ROVR cannot
tell whether address is really sticky unless advertised as such by
non-ROVR node) a new "X" flag called "super sticky" is introduced.
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Type=0x06 | Sub-Type=0x00 |rsv|U|A|X|V|R|S| Reserved = 0 |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| TID | Reserved = 0 | ROVR Hash |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 11: Modified MAC Mobility Extended Community
Flags:
Thubert, et al. Expires 9 January 2022 [Page 24]
Internet-Draft EVPN Secure MAC July 2021
U: Unreachable, indicating that the IP address is not reachable via
that EVPN next hop, but is advertised for the purpose of
protecting the value of the ROVR until a first 6LBR that can reach
the address becomes available.
A: Anycast, indicating that the IP address duplication should be
ignored. When this bit is set, TID should be ignored in
comparison of EVPN advertisements, i.e. all ROVR MACs at same
level of validation MUST be considered having same TID.
S: Sticky as defined in [RFC7432].
R: ROVR Capable indicates that the advertisement is originated after
processing signaling from host meeting the requirements in
Section 5. This indicates a ROVR MAC.
V: ROVR Validated indicates that the MAC passed proof of ownership
per [RFC8928]. Presence of this bit implies the "R" bit being set
irregardless of its value.
X: Super Sticky indicates that the ROVR MAC is sticky and should
follow procedures of sticky per [RFC7432].
Sequence Number Field:
TID: contains the ROVR MAC TID per [RFC8505]. This MUST NOT be
zero, i.e. a ROVR
ROVR Hash: Hash of ROVR used to generate the according ROVR MAC.
Hash is built by XOR'ing ROVR bytes in network order into the
least significant byte and rotating the two bytes result after
every byte by one bit to the left.
6.2. Extended ROVR MAC Procedures
In case a non-ROVR node advertises a sticky MAC by setting the "S"
bit and a ROVR node sees an ROVR address registration for the same
MAC it MUST follow procedures per [RFC7432].
In case a non-ROVR node advertises a sequence number larger than the
one generated by TID on a ROVR node, the ROVR node SHOULD advertise a
Sequence Number consisting of all bits being set to force a "roll-
over" on all nodes and then fall back to advertising the TID
generated sequence number again. In case a non-ROVR node persists in
increasing the sequence number after that it is indication of
violation of [RFC7432] on its part.
Thubert, et al. Expires 9 January 2022 [Page 25]
Internet-Draft EVPN Secure MAC July 2021
A ROVR node advertising a ROVR MAC that has not been validated and
receiving same type-2 route that has been validated MUST immediately
withdraw its advertisement.
A ROVR node advertising a ROVR MAC and receiving an equivalent ROVR
MAC from other node with a higher TID MUST immediately withdraw its
advertisement. This will allow the non-ROVR nodes to correctly
interpret the sequence as MAC move despite ignoring the sequence
number due to presence of "S" bit.
A ROVR node that receives a ROVR MAC with "super sticky" indication
and seeing the MAC locally MUST follow analogous procedures to
[RFC7432].
Multi-homing a MAC on mix of ROVR and non-ROVR nodes will lead to
operational notifications since per [RFC7432] the non-ROVR node will
interpret the situation as a sticky MAC that has shown up on its
local interface unless an implementation is somewhat clever and
understands that the presence of the same ESI on all the routes
indicates that this situation does not represent a sticky MAC being
moved.
7. Protocol Operations
Following section illustrates several situations and resulting
signaling in EVPN from the point of view of a ROVR node.
Figure 12 illustrates the registration flow of a new address
protected by [RFC8928]. The ROVR in the EARO is a Crypto-ID that
derives from a public address through hashing with some other terms.
The router challenges the host with a status of 5 (validation
requested).
The host performs the NS again, passing the parameters that enable to
build the Crypto-ID in a Crypto-ID Parameters Option (CIPO), and
signing that set of parameters together with a pair of Nonce values,
one from each side, in a resulting Neighbor Discovery Protocol
Signature Option (NDPDO). The 6LR first verifies that the Crypto-ID
can be rebuilt based on the public key, then verifies that the
signature in the NDPSO was effectively performed with the associated
public key. When that is the case, the registration flow can
continue, else the registration is rejected with a status of 10
(Validation Failed) in the NA(EARO).
With this specification, the 6LBR communicates internally with the
collocated eVPN router to inject the route in eVPN. Since the
[RFC8928] validation was performed, the V flag is set. Once this is
done, the local 6LBR installs a local state associated to the NCE and
Thubert, et al. Expires 9 January 2022 [Page 26]
Internet-Draft EVPN Secure MAC July 2021
becomes owner of the registration, whereas the remote leaves
optionally install a remote state for the address with the indication
of the 6LBR that owns the registration. The local 6LBR MUST be
signalled as EVPN Next Hop for the route.
Local Local Route Remote
Server Leaf Reflector Leaf
+-------+ +---------+ +-------+ +---------+
| | | | | | | |
6LN 6LBR/EVPN BGP EVPN/6LBR
| | | |
| Ethernet | [via BGP signaling] |
| | | |
| | | |
| NS(EARO( | | |
| R set)) | | |
|--------------->| | |
| ROVR in EARO is cryptographic | |
| | | |
| NA(EARO( | | |
| R not set, | | |
| status = 5), | | |
| Nonce1) | | |
|<---------------| | |
| | | |
| NS(EARO( | | |
| R set), | | |
| CIPO, | | |
| Nonce2, | | |
| NDPSO) | | |
|--------------->| | |
| Proof verified | |
| no state for that address | |
| install local state | |
| | | |
| | ROVR MAC Route A' |
| |---------------->| |
| route injected | |
| | | |
| NA(EARO( | | |
| R set, | | |
| status = 0)) | | |
|<---------------| | |
| | | ROVR MAC Route A'
| | |--------------->|
| | | install remote state
| | | |
Thubert, et al. Expires 9 January 2022 [Page 27]
Internet-Draft EVPN Secure MAC July 2021
Figure 12: Host Registration
Figure 13 presents the same flow but for a multihomed address; here
and in the following flows, the proof of ownership section is not
shown, but its use is RECOMMENDED. The interesting piece is that
when the node registers to the second 6LBR, that second 6LBR find
that there is a first 6LBR that already own the registration. Using
and EDAR / EDAC flow, the second 6LBR validates that the ROVR and TID
are identical, in which case it accepts the registration and becomes
another 6LBR owner of the registration. The result is that the 2
6LBRs are synchronized and any of the 2 can now be used, e.g., if the
address is registered a third time.
Thubert, et al. Expires 9 January 2022 [Page 28]
Internet-Draft EVPN Secure MAC July 2021
Local Local Local
Server Leaf 1 Leaf 2 Reflector
+-------+ +---------+ +---------+ +---------+
| | | | | | | |
6LN 6LBR/EVPN 6LBR/EVPN |
| | | |
| Ethernet | | |
| | | [via BGP signaling]
| | | |
| NS(EARO) | | |
|--------------->| | |
| install local state | |
| | |
| |------ROVR MAC Route A' ----->|
| NA(EARO) | | |
|<---------------| | |
| | |<----------------|
| | install remote state |
| | | |
| NS(same address, ES and EARO) | |
|------------------------------>| |
| | | |
| | Same ES and ROVR Hash |
| | EDAR | |
| |<-------------| |
| | | |
| ROVR match, TID OK | |
| | | |
| |EDAC(status=0)| |
| |------------->| |
| | install local state |
| | | |
| | ROVR MAC Route A' |
| | |---------------->|
| |<-------------------------------|
| install remote state | |
| | | |
| NA(EARO(status = 0)) | |
|<------------------------------| |
| | | |
Figure 13: Multihoming
The registration is associated with a lifetime, and it must be
renewed with an incremented TID. The new TID is propagated in eVPN
as illustrated in Figure 14.
Thubert, et al. Expires 9 January 2022 [Page 29]
Internet-Draft EVPN Secure MAC July 2021
Local Local Route Remote
Server Leaf Reflector Leaf
+-------+ +---------+ +-------+ +---------+
| | | | | | | |
6LN 6LBR/EVPN BGP EVPN/6LBR
| | | |
| Ethernet | [via BGP signaling] |
| | | |
| | | |
| NS(EARO( | | |
| TID+1)) | | |
|--------------->| | |
| renew lifetime locally | |
| | | |
| | ROVR MAC Route A'(TID+1) |
| |---------------->| |
| NA(EARO | |--------------->|
| status = 0)) | | update remote state
|<---------------| | |
| | | |
| | | |
Figure 14: Host Registration Renewal
Figure 15 illustrates the case where a second host registers the same
address, creating a potential address duplication situation. in most
cases, the ROVR hash will be different, and the local 6LBR can reject
the registration is a status of 1 (duplicate) right away.
Thubert, et al. Expires 9 January 2022 [Page 30]
Internet-Draft EVPN Secure MAC July 2021
Local Local Route Remote
Server Leaf Reflector Leaf
+-------+ +---------+ +-------+ +---------+
| | | | | | | |
6LN 6LBR/EVPN BGP EVPN/6LBR
| | | |
| Ethernet | | |
| | [via BGP signaling] |
| | | |
| | | Local state for A'
| | | |
| | ROVR MAC Route A' |
| | ROVR Hash G |
| | |<---------------|
| |<----------------| |
| Create remote state for A' | |
| | | |
| NS(EARO) | | |
|--------------->| | |
| compute ROVR Hash F | |
| | | |
| NA(EARO( | | |
| status = 1)) | | |
|<---------------| | |
| | | |
| | | |
Figure 15: Duplicate Addresses
Figure 16 illustrates the case of an address duplication situation
where by chance, the ROVR hashes are the same. In that case, the
local 6LR checks with the 6LBR that owns the registration using an
EDAR/EDAC message exchange. As opposed to the ROVR hash, the full
ROVRs do not collide and the registration is also rejected.
Thubert, et al. Expires 9 January 2022 [Page 31]
Internet-Draft EVPN Secure MAC July 2021
Local Local Route Remote
Server Leaf Reflector Leaf
+-------+ +---------+ +-------+ +---------+
| | | | | | | |
6LN 6LBR EVPN BGP EVPN/6LBR
| | | | | |
| Ethernet | | | | |
| | | [via BGP signaling] | |
| | | | | |
| | | | Local state for A'
| | | | | |
| | | ROVR MAC Route A' | |
| | | ROVR Hash G | |
| | | |<--------------| |
| | |<--------------| | |
| Create remote state for A' | | |
| | | | |
| | |
| | [[out of band signaling]] |
| NS(EARO) | |
|------------->| |
| compute ROVR Hash G |
| | |
| | EDAR to EVPN Next Hop |
| |-------------------------------------->|
| | |
| | EDAC (status = 1) |
| |<--------------------------------------|
| | |
| NA(EARO( | |
| status = 1))| |
|<-------------| |
| | |
Figure 16: Duplicate Addresses, ROVR Hash Collision
Figure 17 shows a rare case where the registration has already moved
elsewhere with an incremented TID when the local registration is
received after being delayed in the network. In that case, the
registration is rejected with a status of 3 (moved).
Thubert, et al. Expires 9 January 2022 [Page 32]
Internet-Draft EVPN Secure MAC July 2021
Local Local Route Remote
Server Leaf Reflector Leaf
+-------+ +---------+ +-------+ +---------+
| | | | | | | |
6LN 6LBR/EVPN BGP EVPN/6LBR
| | | |
| Ethernet | | |
| | [via BGP signaling] |
| | | |
| | ROVR MAC Route A' |
| | ESI X', Hash F, TID Z |
| | |<---------------|
| |<----------------| |
| create remote start A' | |
| ESI X', ROVR Hash F, TID Z | |
| | | |
| NS(EARO( | | |
| TID=Z-1)) | | |
|--------------->| | |
| computes as | |
| ROVR Hash F | |
| ESI X'', TID Z-1 | |
| NA(EARO) | | |
| status = 3)) | | |
|<---------------| | |
| | | |
Figure 17: Address Already Moved
Address move differs from multi-homing by the ESI being different as
visualized by Figure 18. In case of different ESI BGP signalling
happens immediately, in case of multi-homing we can reasonably expect
for the signalling to catch up on the other leg with a new, higher
TID. However, since ESI matches TID doesn't matter strictly speaking
and the new remote state can be installed as is. However, if 6LN is
not refreshing it registration we can expect elapsed lifetime to
create scenario Figure 21 over time.
Thubert, et al. Expires 9 January 2022 [Page 33]
Internet-Draft EVPN Secure MAC July 2021
Local Local Route Remote
Server Leaf Reflector Leaf
+-------+ +---------+ +-------+ +---------+
| | | | | | | |
6LN 6LBR/EVPN BGP EVPN/6LBR
| | | |
| Ethernet | | |
| | [via BGP signaling] |
| NS(EARO) | | |
|--------------->| | |
| Create local state | |
| | ROVR MAC Route A' |
| | ESI X', ROVR Hash F, TID Z |
| |---------------->| |
| | |--------------->|
| | | Create remote state
Same ES (multihomed):
| | | |<--
| | | New local state A' created
| | | |
| | ROVR MAC Route A' |
| | ESI X', Hash F, TID Z+1 |
| | |<---------------|
| |<----------------| |
| Create remote state | |
| Keep local expect renew | |
| | | |
Different ES (movement):
| | | |<--
| | | New local state A' created
| | | |
| | ROVR MAC Route A' |
| | ESI X'', ROVR Hash F, TID Z+1 |
| | |<---------------|
| |<----------------| |
| Create remote state | |
| | | |
| NA(EARO( | | |
| status = 4)) | | |
|<---------------| | |
| | Withdraw ROVR MAC Route A' |
| |---------------->| |
| | |--------------->|
| remove local state | |
| | | |
Thubert, et al. Expires 9 January 2022 [Page 34]
Internet-Draft EVPN Secure MAC July 2021
Figure 18: Address Move
The host that registered the address may cancel the registration at
any time, e.g., if the address is removed fmor its own interface.
This is done by registering with a lifetime if 0 as shown in
Figure 19. The Leaf may respond with a status of 0 to indicate
success, but a status of 4 (removed) is preferred for this situation.
Local Local Route Remote
Server Leaf Reflector Leaf
+-------+ +---------+ +-------+ +---------+
| | | | | | | |
6LN 6LBR/EVPN BGP EVPN/6LBR
| | | |
| Ethernet | | |
| | [via BGP signaling] |
| | | |
| NS(EARO, | | |
| lifetime=0) | | |
|--------------->| | |
| | | |
| | Withdraw ROVR MAC Route A' |
| |---------------->| |
| | |--------------->|
| NA(EARO( | | |
| status = 4)) | | |
|<---------------| | |
| | | |
| remove local state | |
| | | |
Figure 19: Address Removal
The host that registered the address may withdraw the route but
maintain the NCE, e.g., in the case where it is multihomed but does
not want to use one interface for the traffic back as this time.
This is done by registering with the R flag set to 0 as shown in
Figure 20.
Thubert, et al. Expires 9 January 2022 [Page 35]
Internet-Draft EVPN Secure MAC July 2021
| NS(EARO, | | |
| R reset) | | |
|--------------->| | |
| | | |
| | Withdraw ROVR MAC Route A' |
| |---------------->| |
| | |--------------->|
| NA(EARO( | | |
| R reset, | | |
| status = 0)) | | |
|<---------------| | |
| | | |
| retain only NCE | |
| | | |
Figure 20: Route Type 2 Removal
When the lifetime elapses, the 6LBR requires the collocated eVPN
router to withdraw the route.
Local Local Route Remote
Server Leaf Reflector Leaf
+-------+ +---------+ +-------+ +---------+
| | | | | | | |
6LN 6LBR/EVPN BGP EVPN/6LBR
| | | |
| Ethernet | | |
| | [via BGP signaling] |
| | | |
| lifetime Expired | |
| | | |
| | Withdraw ROVR MAC Route A' |
| |---------------->| |
| | |--------------->|
| NA(EARO( | | |
| status = 4)) | | |
|<---------------| | |
| | | |
| remove local state | |
| | | |
Figure 21: Lifetime Elapse
8. Security Considerations
TBD
Thubert, et al. Expires 9 January 2022 [Page 36]
Internet-Draft EVPN Secure MAC July 2021
9. IANA Considerations
10. Acknowledgments
The authors wish to thank you for reading that far. We acknowledge
and express gratitude to Wen Lin, Stephane Litkowski, Eric Levy-
Abegnoli, Lukas Krattiger, Jerome Tollet, and Ali Sajassi, for their
help and support.
11. Normative References
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate
Requirement Levels", BCP 14, RFC 2119,
DOI 10.17487/RFC2119, March 1997,
<https://www.rfc-editor.org/info/rfc2119>.
[RFC4443] Conta, A., Deering, S., and M. Gupta, Ed., "Internet
Control Message Protocol (ICMPv6) for the Internet
Protocol Version 6 (IPv6) Specification", STD 89,
RFC 4443, DOI 10.17487/RFC4443, March 2006,
<https://www.rfc-editor.org/info/rfc4443>.
[RFC4861] Narten, T., Nordmark, E., Simpson, W., and H. Soliman,
"Neighbor Discovery for IP version 6 (IPv6)", RFC 4861,
DOI 10.17487/RFC4861, September 2007,
<https://www.rfc-editor.org/info/rfc4861>.
[RFC4862] Thomson, S., Narten, T., and T. Jinmei, "IPv6 Stateless
Address Autoconfiguration", RFC 4862,
DOI 10.17487/RFC4862, September 2007,
<https://www.rfc-editor.org/info/rfc4862>.
[RFC6775] Shelby, Z., Ed., Chakrabarti, S., Nordmark, E., and C.
Bormann, "Neighbor Discovery Optimization for IPv6 over
Low-Power Wireless Personal Area Networks (6LoWPANs)",
RFC 6775, DOI 10.17487/RFC6775, November 2012,
<https://www.rfc-editor.org/info/rfc6775>.
[RFC6085] Gundavelli, S., Townsley, M., Troan, O., and W. Dec,
"Address Mapping of IPv6 Multicast Packets on Ethernet",
RFC 6085, DOI 10.17487/RFC6085, January 2011,
<https://www.rfc-editor.org/info/rfc6085>.
[RFC7400] Bormann, C., "6LoWPAN-GHC: Generic Header Compression for
IPv6 over Low-Power Wireless Personal Area Networks
(6LoWPANs)", RFC 7400, DOI 10.17487/RFC7400, November
2014, <https://www.rfc-editor.org/info/rfc7400>.
Thubert, et al. Expires 9 January 2022 [Page 37]
Internet-Draft EVPN Secure MAC July 2021
[RFC7432] Sajassi, A., Ed., Aggarwal, R., Bitar, N., Isaac, A.,
Uttaro, J., Drake, J., and W. Henderickx, "BGP MPLS-Based
Ethernet VPN", RFC 7432, DOI 10.17487/RFC7432, February
2015, <https://www.rfc-editor.org/info/rfc7432>.
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174,
May 2017, <https://www.rfc-editor.org/info/rfc8174>.
[RFC8505] Thubert, P., Ed., Nordmark, E., Chakrabarti, S., and C.
Perkins, "Registration Extensions for IPv6 over Low-Power
Wireless Personal Area Network (6LoWPAN) Neighbor
Discovery", RFC 8505, DOI 10.17487/RFC8505, November 2018,
<https://www.rfc-editor.org/info/rfc8505>.
[RFC8365] Sajassi, A., Ed., Drake, J., Ed., Bitar, N., Shekhar, R.,
Uttaro, J., and W. Henderickx, "A Network Virtualization
Overlay Solution Using Ethernet VPN (EVPN)", RFC 8365,
DOI 10.17487/RFC8365, March 2018,
<https://www.rfc-editor.org/info/rfc8365>.
[RFC8928] Thubert, P., Ed., Sarikaya, B., Sethi, M., and R. Struik,
"Address-Protected Neighbor Discovery for Low-Power and
Lossy Networks", RFC 8928, DOI 10.17487/RFC8928, November
2020, <https://www.rfc-editor.org/info/rfc8928>.
[UNICAST-LOOKUP]
Thubert, P. and E. Levy-Abegnoli, "IPv6 Neighbor Discovery
Unicast Lookup", Work in Progress, Internet-Draft, draft-
thubert-6lo-unicast-lookup-00, 25 January 2019,
<https://datatracker.ietf.org/doc/html/draft-thubert-6lo-
unicast-lookup-00>.
12. Informative References
[RFC6550] Winter, T., Ed., Thubert, P., Ed., Brandt, A., Hui, J.,
Kelsey, R., Levis, P., Pister, K., Struik, R., Vasseur,
JP., and R. Alexander, "RPL: IPv6 Routing Protocol for
Low-Power and Lossy Networks", RFC 6550,
DOI 10.17487/RFC6550, March 2012,
<https://www.rfc-editor.org/info/rfc6550>.
[RFC8929] Thubert, P., Ed., Perkins, C.E., and E. Levy-Abegnoli,
"IPv6 Backbone Router", RFC 8929, DOI 10.17487/RFC8929,
November 2020, <https://www.rfc-editor.org/info/rfc8929>.
Thubert, et al. Expires 9 January 2022 [Page 38]
Internet-Draft EVPN Secure MAC July 2021
[RFC9010] Thubert, P., Ed. and M. Richardson, "Routing for RPL
(Routing Protocol for Low-Power and Lossy Networks)
Leaves", RFC 9010, DOI 10.17487/RFC9010, April 2021,
<https://www.rfc-editor.org/info/rfc9010>.
[RIFT] Przygienda, T., Sharma, A., Thubert, P., Rijsman, B., and
D. Afanasiev, "RIFT: Routing in Fat Trees", Work in
Progress, Internet-Draft, draft-ietf-rift-rift-12, 26 May
2020, <https://datatracker.ietf.org/doc/html/draft-ietf-
rift-rift-12>.
[IANA-EARO-STATUS]
IANA, "Address Registration Option Status Values",
<https://www.iana.org/assignments/icmpv6-parameters/
icmpv6-parameters.xhtml#address-registration>.
Authors' Addresses
Pascal Thubert (editor)
Cisco Systems, Inc
France
Phone: +33 497 23 26 34
Email: pthubert@cisco.com
Tony Przygienda
Juniper Networks, Inc
Switzerland
Email: prz@juniper.net
Jeff Tantsura
Microsoft
Email: jefftant.ietf@gmail.com
Thubert, et al. Expires 9 January 2022 [Page 39]