| Internet-Draft | PCEP for SAV | August 2026 |
| Song, et al. | Expires 4 March 2027 | [Page] |
This document presents a method of Path Computation Element (PCE) for Source Address Validation (SAV) in networks. It extends Path Computation Element Communication Protocol (PCEP) to support SAV policy distribution and synchronization between PCEP speakers for threat mitigation for source address spoofing.¶
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 4 March 2027.¶
Copyright (c) 2026 IETF Trust and the persons identified as the document authors. All rights reserved.¶
This document is subject to BCP 78 and the IETF Trust's Legal Provisions Relating to IETF Documents (https://trustee.ietf.org/license-info) in effect on the date of publication of this document. Please review these documents carefully, as they describe your rights and restrictions with respect to this document. Code Components extracted from this document must include 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.¶
Source Address Validation (SAV) is a critical security mechanism designed to mitigate IPv4 and IPv6 source address spoofing attacks by validating the legitimacy of source prefixes against their ingress interfaces. Traditional methods like ACL-based ingress filtering, strict uRPF and loose uRPF mechanisms [RFC3704] have some issues as described in [I-D.ietf-savnet-intra-domain-problem-statement] and [I-D.ietf-savnet-inter-domain-problem-statement]. The new inter-domain SAV mechanism is required not to generate false positive or false negative policies leading to improper block or permit of traffic.¶
The PCE architecture, defined in [RFC4655], provides a centralized control framework for path computation in networks. This document presents a PCE-based SAVNET solution to enable dynamic policy enforcement within the networks. By extending the PCEP protocol, the PCE can efficiently manage SAV policies, validate the legitimacy of source address prefixes, and enforce traffic filtering actions to mitigate the threats posed by source address spoofing.¶
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.¶
This document uses the following terms defined in [RFC5440]: PCC, PCE, PCEP Peer, and PCEP speaker.¶
This document uses the following terms defined in [RFC8051]: stateful PCE.¶
This document uses the following terms defined in [I-D.ietf-savnet-intra-domain-architecture]: SAV, SAV rule, SAV Information Base.¶
A PCC may use PCEP protocol to send a SAV request for one or more incoming interfaces to a PCE. The PCE may reply with a set of computed SAV policies to the PCC. For example, in an enterprise AS, a PCE receives SAV request from a PCC (e.g., edge routers or border routers). The PCE computes that source prefix (for example, 2001:db8:1::/48) is only valid on interfaces connected to the data center Subnet. Any traffic with this prefix arriving at an AS border router is dropped unless it originates from the designated interfaces.¶
The PCE-based SAVNET solution supports both single-PCE and multi-PCE coorperative environments. It is applicable to single-domain and multi-domain AS networks, which may leverage PCE for cross-domain policy coordination. For example, if the attacker switches the entry from Eth1/0 of R1 in AS60001 to Eth5/0 of R5 in AS60004, the PCE as network controller needs to synchronize and enforce the SAV policies across domains. The centralized control capability of PCE can enhance the dynamics of SAV strategies and the efficiency of cross-domain coordination.¶
The PCE provides a centralized control framework for SAV policy computation, the visibility of global SAV policy and global filtering policy optimization and across-domains coordination. PCE as SAV policy controller manages and delivers SAV information to the underlay network, which acquires SAV policies eliminating the needs for mutual communication between network nodes. The following figure shows an example of process for a PCE using PCEP to install SAV policies on PCC (i.e., AS boarder routers) in inter-domain networks.¶
+----------------+
| PCE |
-------------+(SAV Controller)+-----------
| +-------+--------+ |<--PCEP
| | |
+-----+--------+ +------+-------+ +-------+------+
| PCC | | PCC | | PCC |
|(ASx NetNodes)| |(ASy NetNodes)| |(ASz NetNodes)|
+--------------+ +--------------+ +--------------+
PCE as SAV controller collects SAV information for SAV policy generation of mapping valid interfaces with prefix (e.g., 2001:db8::/32) to have the capability of global SAV policy visibility for single or multiple domains policy enforcement and coordination.¶
The PCE sends PCEP protocol messages (see [RFC8231]) to instal SAV policies, dynamic SAV policy updates.¶
The PCC deploys SAV policies which are stored in the SAV Information Database for mapping of source address prefix with valid ingress interfaces for ingress traffic filtering.¶
This document leverages the Stateful PCE model defined in [RFC8231]. SAV policy state is maintained by both the PCE and the PCC. The PCE MAY actively update SAV policies via PCUpd messages, and the PCC MUST report its current SAV policy state via PCRpt messages.¶
When PCE speakers support SAV, PCEP is required to support the following functionalities.¶
The PCEP MUST support SAV information collection for intra-domain and cross-domain networks.¶
The PCEP MUST support SAV capability advertisement in single and multi-domains.¶
The PCEP MUST support dynamic updates of SAV policies for network changes (e.g., link failures, prefix additions).¶
The PCEP MUST support backward compatibility with existing SAVNET mechanisms (e.g., BAR-SAV).¶
The PCEP sessions for SAV MUST be secured against tampering and unauthorized access.¶
The OPEN message is used to establish a PCEP session between PCEP speakers. To support SAV functionality, a new flag SAV-CAPABILITY is introduced in the STATEFUL-PCE-CAPABILITY TLV for SAV capability advertisement.¶
The STATEFUL-PCE-CAPABILITY TLV format is defined in figure 9 in [RFC8231].The document defines a new flag bit in the Flags field.¶
SAV-CAPABILITY (Bit TBD): A PCEP speaker sets this bit to 1 to indicate that it supports the SAV extensions and objects defined in this document.¶
A new optional SAV object (Object-Class=TBD) is introduced to carrySAV policy information within PCEP messages (e.g., PCUpd, PCRpt). A SAV object is used to carry information of SAV policy within a PCEP update message for SAV policy delivery and updates.¶
The format of the SAV-POLICY object follows the standard PCEP Object format defined in [RFC5440].¶
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Object-Class | OT |Res|P|I| Object Length (bytes) |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| |
// (Object body) //
| |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
The value for Object-Class and Object-Type (OT) are TBD. The P and I flags are used as defined in [RFC5440].¶
The object body contains one or more SAV-POLICY-TLVs. Each TLV represents a single SAV rule mapping a source prefix to an interface list. The SAV-POLICY-TLV format is aligned with the standard PCEP TLV format and shown in the following figure:¶
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 (TBD) | Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ |L| Flag | Prefix Length | Reserved | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | IP Source Prefix | | (4 or 16 bytes) | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | // Interface List Sub-TLVs // | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Type: 16 bits. The TLV Type Indicator of value is TBD.¶
Length: 16 bits. Indicates the total length of the TLV in octects.¶
The value field contains the following fields:¶
L: 1 bit. A value of 0 indicates an IPv4 prefix (4 bytes); a value of 1 indicates an IPv6 prefix (16 bytes).¶
Reserved: 7 bits. MUST be set to 0 on transmission and MUST be ignored on receipt.¶
Flag: 7 bits. Identifies the validation modes used in network nodes. The validation modes include 4 modes: interface-based prefix allowlist, interface-based prefix blocklist, prefix-based interface allowlist, prefix-based interface blocklist. By selecting modes in different scenarios, the network can be secured to mitigate spoofing attacks, as introduced in [I-D.ietf-savnet-general-sav-capabilities].¶
Prefix Length: 8 bits. Indicates the length of the IP source prefix in bits.¶
IP source prefix: contains the source address prefix information.¶
Interface List: contains a list of interface List Sub-TLVs. If it is a allowlist, it represents a list of interfaces allowed to access; if it is a blocklist, it represents a list of interfaces not allowed to access. The Interface List is encoded as a sequence of zero or more Sub-TLVs, and the format for the Sub-TLV is shown in Figure 5.¶
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 +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | Sub-TLV Type | Sub-TLV Length | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | // Sub-TLV Value (variable) // | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Sub-TLV Types are defined as follows:¶
Value 1: Interface Index. Value is a 32-bit unsigned integer representing the interface index.¶
Value 2: Interface Name. Value is a variable-length UTF-8 encoded string.¶
Value 3-255: Reserved.¶
The SAV extensions defined in this document rely on the Stateful PCE model [RFC8231]. The PCE maintains SAV policy state and uses PCUpd messages to actively push SAV policy updates to PCCs.¶
The PCE sends PCUpd message to trigger mechanism when it determines the SAV policies need to change. Possible trigger conditions may involve: topology changes (e.g., interface status modified), policy updates (e.g., the new added IP source prefix affiliated interfaces), and attack response from external threats. Upon receiving a PCUpd message containing SAV-POLICY objects, the PCC MUST process the policies and respond with a PCRpt message containing the acknowledged SAV-POLICY objects.¶
IANA is requested to allocate the following values:¶
A new flag bit for SAV-CAPABILITY within the "STATEFUL-PCE-CAPABILITYTLV Flag Field" subregistry of the "Path Computation Element Protocol(PCEP) Numbers" registry.¶
A new object-class value and object type for the SAV-POLICY object within the "PCEP Objects" subregistry of the "Path Computation ElementProtocol (PCEP) Numbers" registry.¶
A new TLV Type Indicator value for SAV-POLICY-TLV within the "PCEP TLV Type Indicators" subregistry of the "Path Computation ElementProtocol (PCEP) Numbers" registry.¶
PCE security introduced in PCE Architecture [RFC5394], PCEP [RFC5440] and stateful PCE [RFC8231] also applies for this draft. PCEP sessions for SAV policy distribution MUST use TLS 1.3 [RFC9846] to prevent tampering. SAVNET security considerations covered in [I-D.ietf-savnet-intra-domain-architecture] and [I-D.ietf-savnet-inter-domain-architecture] are also applicable to the PCE-based SAVNET solution defined in this document.¶
The authors would like to acknowledge Haisheng Wu and Zhenghai Wang for their helpful comments.¶