SAVI in an EVPN network
draft-levyabegnoli-bess-evpn-savi-00
This document is an Internet-Draft (I-D).
Anyone may submit an I-D to the IETF.
This I-D is not endorsed by the IETF and has no formal standing in the
IETF standards process.
The information below is for an old version of the document.
| Document | Type |
This is an older version of an Internet-Draft whose latest revision state is "Expired".
|
|
|---|---|---|---|
| Authors | Eric Levy-Abegnoli , Pascal Thubert , Ratko Kovacina | ||
| Last updated | 2023-07-10 | ||
| RFC stream | (None) | ||
| Formats | |||
| 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-levyabegnoli-bess-evpn-savi-00
BESS E. Levy-Abegnoli
Internet-Draft P. Thubert
Intended status: Informational R. Kovacina
Expires: 11 January 2024 Cisco Systems
10 July 2023
SAVI in an EVPN network
draft-levyabegnoli-bess-evpn-savi-00
Abstract
Source Address Validation procedures have been specified in the SAVI
Working Group and provide a set of mechanisms and state machines to
verify Source Address ownership. The main mechanisms are described
in [RFC6620] and [RFC7513].
[RFC7432] and furthermore [RFC9161] specify how an EVPN network could
learn and distribute IP addresses. [RFC9161] describes a mechanism
by which the PE can proxy some ND messages based on this information.
In this document, we review how these two sets of specifications and
underlying mechanisms can interact to provide Source Address
Validation in an EVPN network.
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 11 January 2024.
Copyright Notice
Copyright (c) 2023 IETF Trust and the persons identified as the
document authors. All rights reserved.
Levy-Abegnoli, et al. Expires 11 January 2024 [Page 1]
Internet-Draft SAVI in an EVPN network July 2023
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 Revised BSD License text as
described in Section 4.e of the Trust Legal Provisions and are
provided without warranty as described in the Revised BSD License.
Table of Contents
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2
2. Acronyms . . . . . . . . . . . . . . . . . . . . . . . . . . 3
3. Deployment models . . . . . . . . . . . . . . . . . . . . . . 3
4. DHCP assigned addresses . . . . . . . . . . . . . . . . . . . 5
4.1. SAVI-DHCP background . . . . . . . . . . . . . . . . . . 5
4.2. Interactions between RFC7513 and EVPN . . . . . . . . . . 6
5. SLAAC and other IPv6 addresses . . . . . . . . . . . . . . . 6
5.1. SAVI-FCFS background . . . . . . . . . . . . . . . . . . 6
5.2. Interactions between SAVI-FCFS and EVPN . . . . . . . . . 6
6. Enhanced SAVI/EVPN interactions . . . . . . . . . . . . . . . 8
6.1. Address not found . . . . . . . . . . . . . . . . . . . . 9
6.2. Address found in BGP/EVPN table, remote not active . . . 9
6.3. Address found in BGP/EVPN table, remote active . . . . . 10
7. Security Considerations . . . . . . . . . . . . . . . . . . . 11
8. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 11
9. Contributors . . . . . . . . . . . . . . . . . . . . . . . . 11
10. Acknowledgments . . . . . . . . . . . . . . . . . . . . . . . 11
11. Normative References . . . . . . . . . . . . . . . . . . . . 11
12. Informative References . . . . . . . . . . . . . . . . . . . 12
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 12
1. Introduction
[RFC6620] describes a mechanism that provides Source Address
Validation Improvements (SAVI) for IPv6 networks based the First Come
First Serve (FCFS) principle, applicable to any type of IPv6
addresses, including those assigned through IPv6 [RFC4291][RFC8200]
Neighbor Discovery (ND) [RFC4861] Stateless Address Autoconfiguration
(SLAAC) [RFC4862]. According to that specification, an IPv6 entry
freshly snooped on a SAVI device needs to reach the “VALID“ state
before traffic sourced with it can be forwarded.
Another SAVI specification, [RFC7513], describes a similar mechanism
for addresses assigned by DHCPv6/DHCPv4 server. Again, traffic
sourced which such addresses can only be forwarded when the address
state is “BOUND”.
Levy-Abegnoli, et al. Expires 11 January 2024 [Page 2]
Internet-Draft SAVI in an EVPN network July 2023
Section 10 of "BGP MPLS-Based Ethernet VPN" [RFC7432](EVPN) indicates
that a Provider Edge (PE) router may learn IP addresses and advertise
them to other PEs. EVPN allows PEs to execute a proxy ARP/ND
function that is further detailed in "Operational Aspects of Proxy
ARP/ND in Ethernet Virtual Private Network" [RFC9161]. According to
section 3.2 of [RFC9161], IPv6 addresses should be learnt by snooping
Neighbor Advertisements (NA), then advertised in an EVPN MAC/IP
Advertisement route, and finally used on remote PEs to perform said
proxy ARP/ND function.
Assuming one would want to perform Source Address Validation in an
EVPN network, two models can be deployed:
1. the SAVI function runs on SAVI switches external to PEs
2. the SAVI function is co-located with the PEs
These two models are reviewed in Section 3. Corresponding
interactions between SAVI and EVPN are reviewed as well in this
document.
2. Acronyms
This document uses the following abbreviations:
CE: Customer Edge (router)
DAD: Duplicate Address Detection
NA: Neighbor Advertisement (message)
ND: Neighbor Discovery (protocol)
NDP: Neighbor Discovery Protocol
NS: Neighbor Solicitation (message)
PE: Provider Edge (router)
VLAN: Virtual Local Area Network
VxLAN: Virtual Extensible LAN
EVPN: Ethernet Virtual Private Network
VTEP: VXLAN Tunnel EndPoint (node)
BGP: Border Gateway Protocol
3. Deployment models
In model 1, a SAVI device is inserted between client (host or CE) and
PE (or VTEP). This first model is straight forward and does not
require any additional specification. It is presented in Figure 1.
The SAVI devices operate as a verification perimeter between
untrusted clients (CEs or Hosts) and PEs (or VTEPs). As specified in
[RFC6620] and [RFC7513], only validated addresses can inject traffic
over the trusted perimeter. The mechanisms to validate addresses are
Levy-Abegnoli, et al. Expires 11 January 2024 [Page 3]
Internet-Draft SAVI in an EVPN network July 2023
specified in these two RFCs. Note that IPv6 DAD NS (IP source is set
to the unspecified address, see section section-2.5.2 of [RFC4291] ),
used by SAVI for validation, can still be forwarded by EVPN but are
not used by EVPN proxy for learning. Therefore, as long as an
address is not validated by SAVI, it remains unknown by EVPN.
protection perimeter
+- - - - - - - - - - - - - - - - - - - - - - -+
| |
| trusted perimeter |
| +- - - - - - - - - -+ |
| | | |
| | L3 NETWORK | |
| | VTEP VTEP | |
+-------+ | +------+ ++------+ +------++ +------+ | +-------+
| | | | SAVI | | | | | | SAVI | | | |
|HOST/CE| | | | |EVPN/PE| |EVPN/PE| | | | |HOST/CE|
| | | |device| | | | | |device| | | |
+-------+ | +------+ ++------+ +------++ +------+ | +-------+
| | | |
| | | |
| | | |
| | | |
| +- - - - - - - - - -+ |
| |
| |
+- - - - - - - - - - - - - - - - - - - - - - -+
Figure 1: Deployment model 1
In model 2, the SAVI device and the PE/VTEP are colapsed into the
same box. SAVI device is referenced as a "SAVI instance". This
model is presented in Figure 2.
Model 2 is fundamentally the same as the model 1. SAVI instance acts
as a Security wall between untrusted clients and the VTEPs, and only
allows validated sources to inject traffic beyond the VTEP. The
injection happens over an API between SAVI instance and EVPN rather
than over a physical wire. Furthermore, only validated sources are
learnt per section 3.2 of [RFC9161].
Levy-Abegnoli, et al. Expires 11 January 2024 [Page 4]
Internet-Draft SAVI in an EVPN network July 2023
protection perimeter
+- - - - - - - - - - - - - - - - - -- - -- - +
| |
| trusted perimeter |
| +- - - -- - - - - - -+ |
| | | |
| | L3 NETWORK | |
| VTEP/PE | | VTEP/PE |
+-------+ | +--------+-+------+ +------+-+--------+ | +-------+
| | | |SAVI | | | | SAVI | | | |
|HOST/CE| | | API EVPN | | EVPN API | | |HOST/CE|
| | | |instance| | | |instance| | | |
+-------+ | +--------+-+------+ +------+-+--------+ | +-------+
| | | |
| | | |
| | | |
| | | |
| +- - - - ---- - - - -+ |
| |
| |
+- - - - - - - - - - - - - - - - - - - - - - +
protection perimeter
Figure 2: Deployment model 2
In this model however, it is possible and even desirable to leverage
the knowledge of remote IP entries stored in the VTEP BGP tables to
make SAVI validation process more efficient. This is described in
section Section 6
The next section review interactions between SAVI and EVPN for
different type of addresses
4. DHCP assigned addresses
4.1. SAVI-DHCP background
The "SAVI Solution for DHCP" [RFC7513] specification describes a
mechanism that provides source address validation for IPv6 networks
where addresses are assigned by DHCPv6 server. The address
validation is achieved by snooping DHCPv6 address assignments, which
is known as DHCP Snooping, or validating discovered address with the
DHCP server which is described as Data Snooping process. Both
processes are described in detail in [RFC7513].
Levy-Abegnoli, et al. Expires 11 January 2024 [Page 5]
Internet-Draft SAVI in an EVPN network July 2023
During DHCP Snooping process and according to associated state
machine, an IP entry freshly snooped on a SAVI device progresses from
NO_BIND to BOUND.
4.2. Interactions between RFC7513 and EVPN
The whole DHCP address assignment procedure is performed using IPv6
Link-Local addresses, which are expected to be VALID prior to the
beginning of this process. The DHCP server or relay can then be
located anywhere in the EVPN network without the DHCP messages being
blocked by SAVI. EVPN itself does not learn from DHCP, so until the
address is assigned, DAD completed and the host have sent an NA
(response to a lookup or unsolicited NA), EVPN is not aware of the
assigned address. After the NA is sent, the address can be learnt by
EVPN, stored locally by the EVPN proxy-ND, and distributed by BGP per
[RFC9161].
5. SLAAC and other IPv6 addresses
5.1. SAVI-FCFS background
According to [RFC6620], any address, used as the source of a packet
or showing up as a target of a Neighbor Advertisement (NA) or a
target of a DAD Neighbor Solicitation (NS), which is not locally
known and validated, is treated as a TENTATIVE address and a DAD NS
(Duplicate Address Detection Neighbor Solicitation) message with this
address in the target field is originated by the SAVI device and
broadcasted to any validated or trusted port. A response received
implies a duplication and/or IP theft and on the contrary, no
response allow to progress the state of the address from TENTATIVE to
VALID.
5.2. Interactions between SAVI-FCFS and EVPN
Main interactions are listed below:
* Sources not validated by SAVI are not learnt nor distributed by
EVPN: SAVI does not allow NA to be forwarded (model 1) or signaled
(model 2) to EVPN.
* During the validation process for a Source, SAVI (ingress)
originates a broadcast DAD, with target set to "Source" and
forwards (model 1) or signals (model 2) it to EVPN, which delivers
it to remote SAVI devices (over the wire or an API). Only SAVI
devices that have a local validated entry or a trusted interface
forward the DAD to enable the target to defend itself.
Levy-Abegnoli, et al. Expires 11 January 2024 [Page 6]
Internet-Draft SAVI in an EVPN network July 2023
* In case a response is sent by one of the DAD recipients, it is a
broadcast NA (to "all-nodes"), processed by SAVI (egress). The
source is expected to be a SAVI validated source, and as such,
delivered from (egress) SAVI to EVPN for delivery to all VTEPs and
finally to (ingress) SAVI to complete the validation process of
the target "Source".
* The first NA sent by this Source triggers EVPN proxy learning and
EVPN distribution to all VTEPs per [RFC9161].
The flow below shows two sequences, A and B, with A where Host does
not respond to DAD sent by SAVI and B where host does respond.
Sequence goes like this for A:
1. Data sourced with S is received on the ingress SAVI instance. An
entry for S is created in TENTATIVE state.
2. A DAD is built with target=S and broadcasted to all SAVI
instances over the EVPN network.
3. Only instances that have the entry "S" in VALID state or trusted
ports forward the DAD.
In the absence of a response from HOST, the state of the "S" entry at
the ingress SAVI progresses to VALID.
For B, after step 3:
4. HOST responds to DAD with an NA.
Upon receiving the NA, the ingress SAVI instance move the entry to
NO_BIND and does not allow traffic from this source to be forwarded.
Levy-Abegnoli, et al. Expires 11 January 2024 [Page 7]
Internet-Draft SAVI in an EVPN network July 2023
layer3 network
+-----------+
VTEP | | VTEP
+------+ +--------+-----+--+ +-+------+--------+ +-------+
| | | | | | | | | |
| HOST | | SAVI | EVPN | | EVPN | SAVI | |HOST |
| | | | | | | | | |
+----+-+ +----+---+---+-+--+ +-+--+---+---+----+ +---+---+
| | | | | | | |
| | | +-----------+ | | |
(1)data, src=S | | | S in VALID |
+------------>| | | state |
| | | | | |
| S: TENTATIVE | | | |
| | |(2)DAD NS, target=S | |
| +- +-------+---------------+------->|(3)DAD NS |
| | | | | +---------->|
| | timeout | | | |
| | | | | | |
| A | | | | | |
| | S: VALID | | | |
| | | | | | |
| | | | | | |
| +- | | | | |
| | |(2)DAD NS, target=S | |
| +- +-------+---------------+------->|(3)DAD NS |
| | | | | +---------->|
| | | |(4)NA to all_nodes(4) | |
| B | |<------+---------------+--------+-----------+
| | | | | | |
| | S: NO_BIND | | | |
| +- | | | | |
| | | | | |
| | | | | |
Figure 3: FCFS-SAVI
6. Enhanced SAVI/EVPN interactions
In model 2 where SAVI is co-located with BGP and EVPN proxy table,
upon starting the validation process for an address, SAVI MAY perform
a lookup into EVPN/BGP proxy table, where entry can be 1) not found,
2) local or 3) remote.
If the entry is local, this is an error as it is expected only VALID
entries should be learnt by EVPN ND proxy. The entry in the proxy
table MUST be deleted.
Levy-Abegnoli, et al. Expires 11 January 2024 [Page 8]
Internet-Draft SAVI in an EVPN network July 2023
Other cases are described in the next sections
As described in [RFC6620], when validating a source address that is
not known in the local SAVI table, a multicast DAD NS message is sent
to all remote SAVI instances to check for the presence of this
address on any of these instances. This process can be optimized by
leveraging the content of EVPN / BGP tables on VTEPs and "unicast-
forward" the DAD to the known address owner, if any, more in
[RFC6085].
Depending on the presence of the address in the BGP table and if
present, whether the address is active or not, there are three
possible scenarios as described below.
1. Address not found in BGP/EVPN table.
2. Address found in BGP/EVPN table, remote not active.
3. Address found in BGP/EVPN table, remote active.
6.1. Address not found
When the source address that is being validated by SAVI process is
not present in the BGP / EVPN table, it means that is was not learned
on any of the remote VTEPs which indicates that none of the remote
SAVI devices have the entry for that source address in VALID state.
Based on the validation process described in [RFC6620], in such
scenario the multicast NS DAD MAY NOT be forwarded over the EVPN
network and the SAVI entry MAY move directly to VALID state.
Note that to prevent race condition where a host is VALID in the
local SAVI instance but not yet present in the EVPN proxy table, SAVI
MAY signal the entry to EVPN as soon as it becomes VALID.
6.2. Address found in BGP/EVPN table, remote not active
When the source address that is being validated by SAVI process is
present in the BGP / EVPN table, then the multicast NS DAD sent by
SAVI can be "unicast-forwarded" per section 3.4. "Unicast-Forward
Sub-function" of [RFC9161].
If the address is no longer active on the remote location, there will
be no response and the validation process will follow the steps as
specified in [RFC6620] to move the entry to VALID state. Once the
entry is in VALID state, the traffic received from that address will
be forwarded into EVPN network and the IP address will be learned by
the EVPN. This is shown in Figure 4
Levy-Abegnoli, et al. Expires 11 January 2024 [Page 9]
Internet-Draft SAVI in an EVPN network July 2023
SAVI instance MAY signal the entry to EVPN as soon as it becomes
VALID.
This would be an example of host mobility use case.
local VTEP remote VTEP
+ - - - - - - - - - - - - - + +--- - - - - - - +
+------+ | +---------+ +---------+ | | +-----+ +----+ | +------+
| | | | local | | | | | | | | | | | |
|Client| | | SAVI |<API>| EVPN | | | |EVPN | |SAVI| | |Client|
+------+ | +---------+ +---------+ | | +-----+ +----+ | +------+
| + - - | - - - - - - - | - - + +--- - --- - | --+ |
| src=IP | | | IP in VALID |
+---------->+ | | state |
| | | | | |
| | Lookup EVPN/BGP| | | |
| | for IP | | | |
| +--------------->+ | | |
| | IP FOUND, MAC<>IP | | |
| <----------------+ | | |
| | | | | |
| | unicast NS DAD to MAC | | |
| +--------------------------------------> ------->|
| | | | | |
| |No response | | No response
| |entry moved to VALID | |
| + | | |
| NA is allowed to reach EVPN| | |
+--------------------------->+--------------------->
+ | IP learned | IP in NO_BIND
| | in BGP | state
+------------->
Figure 4: Remote not responding - Mobility
6.3. Address found in BGP/EVPN table, remote active
As in previous section, local SAVI sends the multicast NS DAD to the
known (by EVPN, as a remote entry) target but this time, the target
responds with a multicast NA. The validation process will follow the
steps as specified in [RFC6620] and move the entry to NO_BIND state.
Any NA received on this local SAVI instance from the validating port
will not be signalled to EVPN and will not be learnt by EVPN ND
proxy. This is a IP duplication / theft use case and should be
signalled through logging or by triggering an alarm.
This is shown in Figure 5
Levy-Abegnoli, et al. Expires 11 January 2024 [Page 10]
Internet-Draft SAVI in an EVPN network July 2023
local VTEP remote VTEP
+ - - - - - - - - - - - - - + +--- - - - - - - +
+------+ | +---------+ +---------+ | | +-----+ +----+ | +------+
| | | | local | | | | | | | | | | | |
|Client| | | SAVI |<API>| EVPN | | | |EVPN | |SAVI| | |Client|
+------+ | +---------+ +---------+ | | +-----+ +----+ | +------+
| + - - | - - - - - - - | - - + +--- - --- - | -+ |
| src=IP | | | IP in VALID |
+---------->+ | | state |
| | | | | |
| | Lookup EVPN/BGP| | | |
| | for IP | | | |
| +--------------->+ | | |
| | IP FOUND, MAC<>IP | | |
| <----------------+ | | |
| | | | | |
| | unicast NS DAD to MAC | | |
| +--------------------------------------> ------> |
| | | | | NA |
| | | | allowed|<-------|
| |<--------------------------------------| |
| Entry in NO_BIND state | | | |
| | | | | |
| NA, target=IP | | | |
|---------->| | | | |
| Traffic from src/target IP| | | |
| is DROPPED and not visible| | | |
| to EVPN/BGP | | | |
Figure 5: Remote active - IP theft
7. Security Considerations
8. IANA Considerations
This specification does not require IANA action.
9. Contributors
10. Acknowledgments
11. Normative References
[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>.
Levy-Abegnoli, et al. Expires 11 January 2024 [Page 11]
Internet-Draft SAVI in an EVPN network July 2023
[RFC6620] Nordmark, E., Bagnulo, M., and E. Levy-Abegnoli, "FCFS
SAVI: First-Come, First-Served Source Address Validation
Improvement for Locally Assigned IPv6 Addresses",
RFC 6620, DOI 10.17487/RFC6620, May 2012,
<https://www.rfc-editor.org/info/rfc6620>.
[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>.
[RFC7513] Bi, J., Wu, J., Yao, G., and F. Baker, "Source Address
Validation Improvement (SAVI) Solution for DHCP",
RFC 7513, DOI 10.17487/RFC7513, May 2015,
<https://www.rfc-editor.org/info/rfc7513>.
[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>.
[RFC8200] Deering, S. and R. Hinden, "Internet Protocol, Version 6
(IPv6) Specification", STD 86, RFC 8200,
DOI 10.17487/RFC8200, July 2017,
<https://www.rfc-editor.org/info/rfc8200>.
[RFC9161] Rabadan, J., Ed., Sathappan, S., Nagaraj, K., Hankins, G.,
and T. King, "Operational Aspects of Proxy ARP/ND in
Ethernet Virtual Private Networks", RFC 9161,
DOI 10.17487/RFC9161, January 2022,
<https://www.rfc-editor.org/info/rfc9161>.
12. Informative References
[RFC4291] Hinden, R. and S. Deering, "IP Version 6 Addressing
Architecture", RFC 4291, DOI 10.17487/RFC4291, February
2006, <https://www.rfc-editor.org/info/rfc4291>.
[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>.
Authors' Addresses
Eric Levy-Abegnoli
Cisco Systems, Inc
Emerald Square, Batiment C
Levy-Abegnoli, et al. Expires 11 January 2024 [Page 12]
Internet-Draft SAVI in an EVPN network July 2023
rue Evariste Galois
06410 BIOT - Sophia Antipolis
France
Phone: +33 497 23 26 20
Email: elevyabe@cisco.com
Pascal Thubert
Cisco Systems, Inc
Emerald Square, Batiment C
rue Evariste Galois
06410 BIOT - Sophia Antipolis
France
Phone: +33 497 23 26 34
Email: pthubert@cisco.com
Ratko Kovacina
Cisco Systems, Inc
2000 Innovation Dr
Kanata, ON K2K 3E8, Canada ON K2K 3E8
Canada
Phone: +1 613 254 4545
Email: rkovacin@cisco.com
Levy-Abegnoli, et al. Expires 11 January 2024 [Page 13]