<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
<!ENTITY RFC2119 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC8174 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174.xml">
<!ENTITY RFC5440 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5440.xml">
<!ENTITY RFC3704 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3704.xml">
<!ENTITY RFC8231 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8231.xml">
<!ENTITY RFC5394 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5394.xml">
<!ENTITY RFC4655 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.4655.xml">
<!ENTITY RFC8051 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8051.xml">
<!ENTITY RFC8346 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8346.xml">
<!ENTITY I-D.ietf-savnet-intra-domain-architecture SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-savnet-intra-domain-architecture.xml">
<!ENTITY I-D.ietf-savnet-inter-domain-architecture SYSTEM "https://datatracker.ietf.org/doc/bibxml3/draft-ietf-savnet-inter-domain-architecture.xml">
<!ENTITY I-D.ietf-savnet-intra-domain-problem-statement SYSTEM "https://datatracker.ietf.org/doc/bibxml3/draft-ietf-savnet-intra-domain-problem-statement.xml">
<!ENTITY I-D.ietf-savnet-inter-domain-problem-statement SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml3/reference.I-D.ietf-savnet-inter-domain-problem-statement.xml">
<!ENTITY I-D.ietf-savnet-general-sav-capabilities SYSTEM "https://datatracker.ietf.org/doc/bibxml3/draft-ietf-savnet-general-sav-capabilities.xml">
]>

<?rfc toc="yes" ?>
<?rfc symrefs="yes" ?>
<?rfc sortrefs="yes" ?>
<?rfc compact="yes" ?>
<?rfc subcompact="no" ?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" category="std" ipr="trust200902" docName="draft-song-pce-pcep-sav-01" consensus="true" submissionType="IETF" tocInclude="true" symRefs="true" sortRefs="true" version="3">
  <!-- xml2rfc v2v3 conversion 3.21.0 -->
  <front>
    <title abbrev="PCEP for SAV"> Path Computation Element Communication Protocol for Source Address Validation 
    </title>
    <seriesInfo name="Internet-Draft" value="draft-song-pce-pcep-sav-01"/>
    <author fullname="Xueyan Song" initials="X." surname="Song">
      <organization>ZTE Corp.</organization>
      <address>
        <postal>
          <street/>
          <!-- Reorder these if your country does things differently -->

         <city/>
          <region/>
          <code/>
          <country>China</country>
        </postal>
        <email>song.xueyan2@zte.com.cn</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
    <author fullname="Weiqiang Cheng" initials="W." surname="Cheng">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <street/>
          <!-- Reorder these if your country does things differently -->

         <city/>
          <region/>
          <code/>
          <country>China</country>
        </postal>
        <phone/>
        <email>chengweiqiang@chinamobile.com</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
    <author fullname="Shengna Yue" initials="S." surname="Yue">
      <organization>China Mobile</organization>
      <address>
        <postal>
          <street/>
          <!-- Reorder these if your country does things differently -->

         <city/>
          <region/>
          <code/>
          <country>China</country>
        </postal>
        <phone/>
        <email>yueshengnan@chinamobile.com</email>
        <!-- uri and facsimile elements may also be added -->
     </address>
    </author>
    <date month="July" day="25" year="2025"/>
    <area>Routing</area>
    <workgroup>PCE Working Group</workgroup>
    <keyword>Request for Comments</keyword>
    <keyword>RFC</keyword>
    <keyword>Internet Draft</keyword>
    <keyword>I-D</keyword>
    <abstract>
       <t>  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.</t>
    </abstract>
  </front>
  <middle>
    <section>
      <name>Introduction</name>
      <t> 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 <xref target="RFC3704"/> have some issues (e.g., high operational overhead, improper block or permit of traffic) as described in 
	  <xref target="I-D.ietf-savnet-intra-domain-problem-statement"/> and <xref target="I-D.ietf-savnet-inter-domain-problem-statement"/>. 
	  The new inter-domain SAV mechanism is required to have accurate source address validation to avoid improper block and minimize improper permit of traffic, 
	  and to support automatic update of SAV rules.</t>

      <t> The PCE architecture, defined in <xref target="RFC4655"/>, provides centralized control for path computation in networks. This document presents a 
	  PCE-based solution for SAVNET to provide dynamic policy enforcement in networks. By extending the PCEP protocol, PCE can efficiently manage SAV policies, 
	  validate source prefixes, and enforce traffic filtering actions to mitigate the threats of source address spoofing. </t>
    </section>
	
    <section>
      <name>Conventions</name>
      <section>
        <name>Requirements Language</name>
        <t> 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 
    <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, they appear in all capitals, as shown here.</t>
      </section>
	  
      <section>
        <name>Terminology</name>
        <t> This document uses the following terms defined in <xref target="RFC5440"/>: PCC, PCE, PCEP Peer, and PCEP speaker.</t>
        <t> This document uses the following terms defined in <xref target="RFC8051"/>: stateful PCE.</t> 
        <t> This document uses the following terms defined in <xref target="I-D.ietf-savnet-intra-domain-architecture"/>: SAV, SAV rule, SAV Information Base.</t>
      </section>
    </section>
    
	<section>
      <name>PCE for SAV Support</name>
      <section>
        <name>PCE Integration to SANET Architecture</name>
        <t> SAV Information Base (see <xref target="I-D.ietf-savnet-intra-domain-architecture"/>) that can be a table or data structure in a router which stores SAV-specific 
		information and local routing information. SAV Information Base synchronizes SAV rules to PCE via BGP-LS or NETCONF/YANG interfaces, enabling PCE to compute validation paths. 
		The PCE sends requests to PCC, which receives the SAV rules distributed by PCE and enforces SAV rules on data plane. For example, in an enterprise AS, PCE collects SAV 
		specific routes from edge routers or border routers. It 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. </t>

        <t> The PCE-SAVNET integration proposed here supports both single-PCE and multi-PCE coorperative environments. It is applicable to single-domain and multi-domain AS scenarios,
		leveraging 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 controller needs to synchronize the SAV rules and enforce policies for source address validation across domains. </t>
      </section>

      <section>
        <name>PCE as SAV Policy Controller</name>
        <t> The example of process for PCE using PCEP to install SAV policies on edge routers (i.e., PCC role) in inter-domain networks is showed below:</t>
        <t> PCE as SAV controller collects SAV-specific 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. </t>
		<t> PCE sends PCEP protocol messages (see <xref target="RFC8231"/>) to instal SAV policies, dynamic SAV policy updates.</t>
        <t> PCC deploys SAV policies which stores in SAV Information Database for mapping of source address prefix with valid ingress interfaces for ingress traffic filtering.</t>
      </section>
	  
      <section>
        <name>Requirements</name>
		<t> When the PCE speakers supporting SAV, the PCEP is required to support the following functionalities.</t>
		<t> The PCEP MUST support SAV-specific information and local routing information collection for cross-domain coordination and policy enforcement.</t>
		<t> The PCEP MUST support SAV capability advertisement in single and multi-domains.</t>
		<t> The PCEP MUST support dynamic updates of SAV policies for network changes (e.g., link failures, prefix additions).</t>
		<t> The PCEP MUST support backward compatibility with existing SAVNET mechanisms (e.g., BAR-SAV).</t>
		<t> The PCEP sessions for SAV MUST be secured against tampering and unauthorized access.</t>
     </section>
    </section>

    <section>
      <name> PCEP Extenstions</name>
      <section>
        <name>SAV capability advertisement</name>	  
        <t> The open message is used to establish a PCEP session between PCEP speakers. To support SAV functionality, a new flag is required for SAV capability advertisement 
		which is introduced in this document.</t>
		<t> The SAV-CAPABILITY TLV is an optional TLV for use in the OPEN object for SAV capability advertisement. The format for SAV-CAPABILITY TLV refers to figure 9 in 
		<xref target="RFC8231"/>. A new value for Flags field is TBD for the SAV capability advertisement.</t>
      </section>
	  
      <section>
        <name>SAV-POLICY Object</name>
        <t> To support SAV functions,  a new optional SAV object (class=TBD) for SAV information and its related object body formatted as TLV introduced in this document. 
		A SAV-POLICY object is used to carry information of SAV policy within a PCEP update message, which may carry a set of SAV policies delivery and updates.</t>
		
        <figure anchor="Figure_1">
          <name>SAV-POLICY Object Format</name>
          <artwork align="center"><![CDATA[          
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            |            Length             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|                                                               |
//                      Object Body                            //
|                                                               |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>

		
	 <t> SAV-POLICY object class value is TBD.</t>
     <t> The TLV format for SAV-POLICY object consists of IPv4/IPv6 prefix and incoming-interface list (legitimate or illegitimate interfaces). The information for SAV-POLICY
	 object is carried as TLV format, showed as the following figure:</t>

        <figure anchor="Figure_2">
          <name>SAV-CAPABILITY TLV Format</name>
          <artwork align="center"><![CDATA[  	 
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
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|L|     Type    |      Flag     |             Length            |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
| Prefix Length |       IP Source Prefix (variable)             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
|InterfaceLength|         Interface List (variable)             |
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
]]></artwork>
        </figure>	
		
     <t> The type (8 bits) of the TLV is TBD.</t>  
	 <t> The length field is 16 bits long, indicates the total length of the TLV in octects. </t>
	 <t> The value contains the following fields:</t>
     <t> L: 1 bit long, identifies IP source prefix types, including IPv4 and IPv6 types.</t>
     <t> Flag: 8 bits long, 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 <xref target="I-D.ietf-savnet-general-sav-capabilities"/>. </t>
     <t> Interface List: contains a list of interfaces. If it is a whitelist, it represents a list of interfaces allowed to access; if it is a blacklist, it represents a list 
	 of interfaces not allowed to access. The interface list can be expressed in the form of interface ID, interface name, or index.</t>
     <t> IP source prefix: contains the source address prefix information.</t>
	 
     </section>

      <section>
        <name>Mechanism for Updates</name>
        <t> The PCE needs send PCUpd message for triggering mechanism when PCE makes actively update to the SAV policies, the 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.</t>
	  </section>

    </section>

    <section>
      <name>IANA Considerations</name>
      <t> This document requests one new value for SAV capability advertisement, one new value for class of SAV policy object introduced in this document. IANA is requested to 
	  allocate TLV values for SAV-CAPABILITY TLV.</t>
    </section>

    <section>
      <name>Security Considerations</name>
      <t> Security considerations for PCE are covered in the PCE Architecture <xref target="RFC5394"/>, PCEP <xref target="RFC5440"/> and stateful PCE <xref target="RFC8231"/>. PCEP
	  sessions for SAV policy distribution MUST use TLS 1.3 <xref target="RFC8346"/> to prevent tampering. SAVNET security considerations covered in 
	  <xref target="I-D.ietf-savnet-intra-domain-architecture"/> and <xref target="I-D.ietf-savnet-inter-domain-architecture"/> are also
	  applicable to the SAVNET procedures through PCEP defined in this document.</t>
    </section>

    <section>
      <name>Acknowledgements</name>
      <t> The authors would like to acknowledge Haisheng Wu and Zhenghai Wang for their helpful comments. </t>
    </section>
  </middle>
  <back>
    <references title="Normative References">
    &RFC2119; 
    &RFC8174;
    &RFC5440;	
    &RFC8231;
    </references>
    <references title="Informative References">
    &RFC5394;
    &RFC3704;
    &RFC4655;
    &RFC8051;
    &RFC8346;
	&I-D.ietf-savnet-intra-domain-architecture;
    &I-D.ietf-savnet-inter-domain-architecture;
	&I-D.ietf-savnet-intra-domain-problem-statement;
    &I-D.ietf-savnet-inter-domain-problem-statement;
	&I-D.ietf-savnet-general-sav-capabilities;
    </references>
  </back>
</rfc>


