Network Working Group                                             H. Li
Internet Draft                                                  M. Chen
Intended status: Informational                     New H3C Technologies
Expires: April 24, 2023                                           D. Li
                                                    Tsinghua University
                                                                 F. Gao
                                                Zhongguancun Laboratory
                                                               M. Huang
                                                                 Huawei
                                                       October 24, 2022


        Analysis of Source Address Validation Data Plane Performance
                 draft-li-savnet-dataplane-performance-00


Abstract

   Source address validation (SAV) is one important way to mitigate
   source address spoofing attacks. However, there may be concern about
   whether the source address check action of the data plane would
   cause a great performance loss and even affect SAV deployment. This
   document provides an analysis of data plane implementation of SAV
   mechanisms, including the existing mechanisms and a new mechanism
   using independent SAV table. The data plane performances of
   different mechanisms are tested respectively.

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 April 24, 2023.

Copyright Notice

   Copyright (c) 2022 IETF Trust and the persons identified as the
   document authors. All rights reserved.



Li, et al.              Expire April 24, 2023                 [Page 1]


Internet-Draft       SAVNET Data Plane Performance        October 2022


   This document is subject to BCP 78 and the IETF Trust's Legal
   Provisions Relating to IETF Documents
   (http://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...................................................2
   2. Data Plane Implementation of SAV Mechanisms....................3
      2.1. ACL.......................................................3
      2.2. Strict uRPF...............................................4
      2.3. Loose uRPF................................................5
      2.4. Independent SAV Table Mechanism...........................5
   3. Performance Testing............................................7
      3.1. Test Setup................................................8
      3.2. Test Procedure............................................8
      3.3. Test Result...............................................9
   4. Conclusion....................................................11
   5. Security Considerations.......................................12
   6. IANA Considerations...........................................12
   7. References....................................................12
      7.1. Normative References.....................................12
      7.2. Informative References...................................13
   Authors' Addresses...............................................14

1. Introduction

   Source address validation (SAV) is one important way to mitigate
   source address spoofing attacks. Therefore, from the perspective of
   ensuring safety, it is desirable to deploy SAV in intra-domain and
   inter-domain networks.

   [I-D.li-savnet-intra-domain-problem-statement] and [I-D.wu-savnet-
   inter-domain-problem-statement] describe the current gaps,
   fundamental problems and core requirements for intra-domain SAV and
   inter-domain SAV respectively. Existing SAV mechanisms like uRPF-
   related technologies may improperly permit spoofed traffic or block
   legitimate traffic. The accuracy of the new SAVNET mechanisms is
   expected to improve upon the current ones. The generation of SAV
   table should be according to the real data plane forwarding path.
   Independent SAV table may be required in the data plane
   implementation of new SAVNET mechanisms.

Li, et al.             Expires April 24, 2023                 [Page 2]


Internet-Draft       SAVNET Data Plane Performance        October 2022


   However, for any SAV mechanism, existing or new ones, source address
   checking actions are added to the data plane, which affects the
   forwarding performance of network devices. There may be concern
   about whether the source address check action of the data plane
   would cause a great performance loss and even affect the deployment.

   This document provides an analysis of data plane implementation of
   SAV mechanisms, including the existing mechanisms and a new
   mechanism using independent SAV table. The data plane performances
   of different mechanisms are tested respectively to quantify
   performance impact.

2. Data Plane Implementation of SAV Mechanisms

   On the data plane, the key idea of SAV is to check the validity of a
   packet by its source IP address and incoming interface. So, in
   theory, a SAV rule can be represented by a 2-tuple of {source
   prefix, valid incoming interface(s)}. The SAV rules are stored in a
   SAV table. When a router receives a packet, it queries the SAV table
   to check whether the source IP address and incoming interface match
   any rule in the table.

   +----------+---------------+---------------------------+
   | SAV rule | Source Prefix | Valid incoming interfaces |
   +----------+---------------+---------------------------+
   | 1        | p1            | if1, if2                  |
   +----------+---------------+---------------------------+
   | 2        | p2            | if3                       |
   +----------+---------------+---------------------------+
   | 3        | p3            | if1, if2, if3             |
   +----------+---------------+---------------------------+

   Figure 1: Schematic of Generic SAV Table

   Figure 1 shows a schematic of generic SAV table. However, for
   different SAV mechanisms, the data plane implementations could be
   quite different. In this section, some of the common SAV mechanisms
   are analyzed as follows, based on the implementations of H3C
   Devices.

2.1. ACL

   Access Control List (ACL) is a user-ordered set of rules that is
   used to filter traffic. Each ACL rule is represented by an Access
   Control Entry (ACE). Each ACE has a group of match criteria and a
   group of actions.



Li, et al.             Expires April 24, 2023                 [Page 3]


Internet-Draft       SAVNET Data Plane Performance        October 2022


   ACL is a typical implementation of ingress filtering for SAV.
   Operators may configure ACL rules to specify which source addresses
   are acceptable (or unacceptable) for which interfaces. Schematic of
   ACL rules for SAV is shown as Figure 2.

   +----------+---------------------------------------+--------+
   | ACL rule | Criteria                              | Action |
   +----------+---------------------------------------+--------+
   | 1        | 1) SourceAddress match p1             | Permit |
   |          | 2) IngressInterface match if1,if2     |        |
   +----------+---------------------------------------+--------+
   | 2        | 1) SourceAddress match p2             | Permit |
   |          | 2) IngressInterface match if3         |        |
   +----------+---------------------------------------+--------+
   | 3        | 1) SourceAddress match p3             | Permit |
   |          | 2) IngressInterface match if1,if2,if3 |        |
   +----------+---------------------------------------+--------+

   Figure 2: Data Plane ACL Rules for SAV

   Each ACL rule in Figure 2 corresponds to a SAV rule in Figure 1,
   which maps the 2-tuple of {source prefix, valid incoming
   interface(s)} into match criteria of source address and ingress
   interface.

2.2. Strict uRPF

   Strict unicast Reverse Path Forwarding (uRPF) is also a typical way
   to implement an ingress filter for SAV [RFC3704]. The procedure is
   that the source address is looked up in the Forwarding Information
   Base (FIB) - and if the packet is received on the interface which
   would be used to forward the traffic to the source of the packet, it
   passes the check.

   +-----------+------------------------------------------+
   | FIB Entry | Destination Prefix | Outgoing Interface  |
   +-----------+------------------------------------------+
   | 1         | p1                 | ECMP -> if1,if2     |
   +-----------+------------------------------------------+
   | 2         | p2                 | if3                 |
   +-----------+------------------------------------------+
   | 3         | p3                 | ECMP -> if1,if2,if3 |
   +-----------+------------------------------------------+

   Figure 3: FIB-based Strict uRPF Data Plane

   On the data plane, strict uRPF needs no additional table to store
   SAV rules, since it re-uses the FIB. Assuming that the FIB on a

Li, et al.             Expires April 24, 2023                 [Page 4]


Internet-Draft       SAVNET Data Plane Performance        October 2022


   router is as Figure 3, strict uRPF will perform the same function as
   the SAV rules in Figure 1.

2.3. Loose uRPF

   Loose Reverse Path Forwarding (Loose RPF) is algorithmically similar
   with strict RPF, but differs in that it checks only for the
   existence of a route, not where the route points to.

   +-----------+--------------------+
   | FIB Entry | Destination Prefix |
   +-----------+--------------------+
   | 1         | p1                 |
   +-----------+--------------------+
   | 2         | p2                 |
   +-----------+--------------------+
   | 3         | p3                 |
   +-----------+--------------------+

   Figure 4: FIB-based Loose uRPF Data Plane

   Figure 4 shows the loose uRPF based on the same FIB in Figure 3. The
   'Outgoing Interface' column is omitted, since loose uRPF does not
   care that information.

2.4. Independent SAV Table Mechanism

   In order to achieve high accuracy, the new SAVNET mechanisms are
   expected to generate SAV rules based on the real data plane
   forwarding path. So, unlike uRPF, independent SAV table is required
   in the data plane implementation of new SAVNET mechanisms (In fact,
   EFP-uRPF [RFC8704] has the similar requirements). The storage and
   query method of SAV table can be one key factor of data plane
   performance, and it must be carefully designed in order to apply to
   multiple source address verification scenarios and achieve high
   scalability.

   If required to support incremental deployment, a SAVNET mechanism
   should only reject the packets with known source prefixes coming
   from wrong interfaces. That is to say, if the source address of a
   packet does not match any SAV rules, the packet should not be
   regarded as invalid, because the SAV table is not complete due to
   incremental deployment.

   This document provides a possible way to implement the SAVNET
   mechanism on data plane by using independent SAV table. Figure 6 and
   Figure 7 show the implementation of the generic SAV table in Figure
   1 by using independent SAV table.

Li, et al.             Expires April 24, 2023                 [Page 5]


Internet-Draft       SAVNET Data Plane Performance        October 2022


   Line Card 1 (including if1)
   +---------------+--------------------------+
   | Key-1:        | Key-2:                   |
   | Source Prefix | Valid Incoming Interface |
   +---------------+--------------------------+
   | p1            | if1                      |
   +---------------+--------------------------+
   | p3            | if1                      |
   +---------------+--------------------------+

   Line Card 2 (including if2 and if3)
   +---------------+--------------------------+
   | Key-1:        | Key-2:                   |
   | Source Prefix | Valid Incoming Interface |
   +---------------+--------------------------+
   | p1            | if2                      |
   +---------------+--------------------------+
   | p2            | if3                      |
   +---------------+--------------------------+
   | p3            | if2                      |
   +---------------+--------------------------+
   | p3            | if3                      |
   +---------------+--------------------------+

   Figure 6: Local SAV Table for Line Card

   +---------------+
   | Key:          |
   | Source Prefix |
   +---------------+
   | p1            |
   +---------------+
   | p2            |
   +---------------+
   | p3            |
   +---------------+

   Figure 7: Global SAV Table

   Each line card has its local SAV table which stores only part of the
   SAV rules related with its own interfaces. Each entry has two keys,
   one for source prefix, the other for valid incoming interface, and
   has no value field.

   If required to support incremental deployment, a global SAV table is
   also created to store all the known source prefixes. In terms of
   source prefixes, the global table is the union of all the local
   tables in different line cards. When a packet does not match any

Li, et al.             Expires April 24, 2023                 [Page 6]


Internet-Draft       SAVNET Data Plane Performance        October 2022


   entry in the local SAV table, if its source address matches global
   SAV table, it is rejected, otherwise it is permitted. For example, a
   packet from p2 entering if1 will be rejected, and a packet from p4
   entering if1 will be permitted.

   When a packet with Source Address of S is received from interface I,
   the SAV procedure is as follows:

   Look up both S (by longest-prefix-match) and I in local SAV table
   If (matched entry in local SAV table) {
       The packet is valid
   } Else {
       If (support Incremental-Deployment) {
           Look up S (by longest-prefix-match) in global SAV table
           If (matched entry in global SAV table) {
               The packet is invalid
           }
           Else {
               The packet is valid
           }
       }
       Else {
           The packet is invalid
       }
   }

   To improve the processing speed, an implementation may lookup the
   local SAV table and the global SAV table in parallel. The optimized
   procedure is as follows:

   Look up both S (by longest-prefix-match) and I in local SAV table
   Meanwhile, look up S (by longest-prefix-match) in global SAV table
   If (matched entry in local SAV table) {
       The packet is valid
   } Else {
       If (support Incremental-Deployment) and
          (matched entry in global SAV table) {
           The packet is invalid
       }
       Else {
           The packet is valid
       }
   }

3. Performance Testing

   There may be concern that the data plane performance would be a drag
   on the deployment of SAV.

Li, et al.             Expires April 24, 2023                 [Page 7]


Internet-Draft       SAVNET Data Plane Performance        October 2022


   To demonstrate the data plane performance of SAV, a test is carried
   out on the H3C Core Router (CR) Device. All the mechanisms mentioned
   in Section 2 are included. For the new mechanism in Section 2.4, a
   rapid prototype is implemented based on H3C router for testing
   purposes. In addition, plain forwarding without any SAV mechanism is
   also tested as a basis.

3.1. Test Setup

                A +-------+ C
    ----Flow-In-->|       |-->Flow-Out----
   |              |  DUT  |               |
   |  --Flow-In-->|       |-->Flow-Out--  |
   | |          B +-------+ D           | |
   | |                                  | |
   | |            +-------+             | |
   |  ------------|       |-------------  |
   |              |  TC   |               |
    --------------|       |---------------
                  +-------+

   Figure 8: Test Setup

   All the physical links are 100Gbps ethernet. The Test Center (TC)
   sends traffic flows to the Device Under Test (DUT). The DUT performs
   SAV function for the import packets. Then, the export flows are
   counted by the TC, and the measurement of packets per second (pps)
   is used to evaluate the data plane performance of SAV.

   Two import interfaces and two export interfaces are used in order to
   cover the ECMP cases.

3.2. Test Procedure

   The test traffic consists of small-packet flows from 1,000 different
   source prefixes. And the DUT is configured with the SAV rules for
   those prefixes. The import flows are at line rate.











Li, et al.             Expires April 24, 2023                 [Page 8]


Internet-Draft       SAVNET Data Plane Performance        October 2022


   Test Traffic:         SAV rules on DUT:

     Index|SrcAddr         Index|SrcPfx            |Intf
     -----+-------         -----+------------------+----
     1    |s1              1    |p1(cover s1)      |A&B
     2    |s2              2    |p2(cover s2)      |A&B
     ...  |...             ...  |...               |...
     1000 |s1000           1000 |p1000(cover s1000)|A&B

   Packet Type:  IPv6
   Packet Size:  78 Byte
   Traffic Rate: 100 Gbps (Line Rate)

   The following mechanisms are tested respectively:

   o Non-SAV (Plain Forwarding without any SAV Mechanism)

   o ACL

   o Strict uRPF

   o Loose uRPF

   o Independent SAV Table Mechanism (for SAVNET)

   Then, the scale of sources of test traffic is raised to 10,000 and
   100,000 prefixes respectively, and the test is repeated for
   independent SAV table mechanism to check out the scaling issue.

3.3. Test Result

   The test results of data plane performance of different SAV
   mechanisms are shown as the following:















Li, et al.             Expires April 24, 2023                 [Page 9]


Internet-Draft       SAVNET Data Plane Performance        October 2022


   +-------+-----------------------+---------------------+
   | Index | SAV Mechanism         | pps of Export Flows |
   |       |                       | (Ratio to Non-SAV)  |
   +-------+-----------------------+---------------------+
   | 0     | Non-SAV               | 100%                |
   +-------+-----------------------+---------------------+
   | 1     | ACL                   | 96.6%               |
   +-------+-----------------------+---------------------+
   | 2     | Strict uRPF           | 94.4%               |
   +-------+-----------------------+---------------------+
   | 3     | Loose uRPF            | 94.4%               |
   +-------+-----------------------+---------------------+
   | 4     | Independent SAV Table | 94.5%               |
   +-------+-----------------------+---------------------+

   Figure 8: Test Results of Different SAV Mechanisms

   Compared with the plain forwarding without SAV, the loss of data
   plane performance after enabling any of the above SAV mechanism is
   about 5 percent, which can be acceptable for the deployment of SAV.

   According to the results, ACL has the best performance. This is not
   due to ACL mechanism itself, but because the DUT's NP (Network
   Processor) chooses to look up FIB table and ACL table on the TCAM
   (Ternary Content-Addressable Memory) in parallel because it regards
   ACL as a very common basic function. But for the other SAV
   mechanisms, NP looks up the FIB table by destination IP Address for
   forwarding and look up the FIB table (used by uRPF) or the SAV table
   (used by SAVNET) by source IP Address for SAV function in a serial
   manner. So, the outstanding test result of ACL benefits from the
   specific implementation. Implementations by other manufacturers may
   look up the FIB table and ACL table in a serial manner, in which
   case the test result of ACL would probably not be better than the
   other mechanisms. Since the scale of ACL table is usually not very
   large, the ACL based SAV applies to networks that are statically
   configured and of small scale.

   The performance of Strict uRPF, Loose uRPF and Independent SAV Table
   Mechanism are roughly equivalent. The Independent SAV Table
   Mechanism works slightly better than uRPF on the data plane, due to
   the difference between the implementation of SAV table and FIB
   table.

   Since ACL is commonly deployed in existing networks and usually
   supports QOS by matching various information other than source
   address, not only for SAV purposes, the performance test for Strict
   uRPF and Independent SAV Table Mechanism are repeated with 1,000


Li, et al.             Expires April 24, 2023                [Page 10]


Internet-Draft       SAVNET Data Plane Performance        October 2022


   background ACL rules set for QoS. The results do not change
   (accurate to 0.1%), as shown in the following:

   +-------+-----------------------+---------------------+
   | Index | SAV Mechanism         | pps of Export Flows |
   |       |                       | (Ratio to Non-SAV)  |
   +-------+-----------------------+---------------------+
   | 0     | Strict uRPF           | 94.4%               |
   +-------+-----------------------+---------------------+
   | 1     | Independent SAV Table | 94.5%               |
   +-------+-----------------------+---------------------+

   Figure 9: Test Results with Background ACL Rules for QoS

   The test results of independent SAV table mechanism under different
   source prefix scales are shown as the following:

   +------------------------------------------------------+
   | Independent SAV Table Mechanism                      |
   +-------+------------------------+---------------------+
   | Index | Scale of Source Prefix | pps of Export Flows |
   |       |                        | (Ratio to Non-SAV)  |
   +-------+------------------------+---------------------+
   | 0     | 1,000                  | 94.5%               |
   +-------+------------------------+---------------------+
   | 1     | 10,000                 | 94.5%               |
   +-------+------------------------+---------------------+
   | 2     | 100,000                | 94.5%               |
   +-------+------------------------+---------------------+

   Figure 10: Test Results of Different Source Prefix Scales

   As the scale of source prefix grows, the scale of SAV table also
   grows, but the pps measurement of export flows has no substantial
   changes. From the perspective of data plane performance, the
   Independent SAV Table mechanism works well in large-scale cases.

4. Conclusion

   Data plane performance is crucial for SAV. New SAVNET mechanisms
   should be carefully designed to achieve a high level of performance.

   A possible data plane implementation of SAVNET is analyzed, along
   with the comparison with the existing mechanisms. Furthermore, the
   data plane performances of existing SAV mechanisms and independent
   SAV table mechanism for SAVNET are tested on a real router.
   According to the test results, the loss of data plane performance
   compared with pure forwarding after enabling any of the above SAV

Li, et al.             Expires April 24, 2023                [Page 11]


Internet-Draft       SAVNET Data Plane Performance        October 2022


   mechanism is about 5 percent, which can be acceptable for the
   deployment of SAV. Test data shows that the  Ratio to Non-SAV of
   independent SAV table mechanism is 94.5%,and the Ratio to Non-SAV of
   uRPF is 94.4%. That means independent SAV table mechanism for SAVNET
   is as good as the existing mechanisms on data plane. So, based on
   the test data, the data plane performance would not be a weak spot
   of SAV, whether the new SAVNET mechanisms or the existing SAV
   mechanisms.

5. Security Considerations

   TBD

6. IANA Considerations

   TBD

7. References

7.1. 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>.

   [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>.

   [I-D.li-savnet-intra-domain-problem-statement] Li, D., Wu, J., Qin,
             L., Huang, M., and N. Geng, "Source Address Validation in
             Intra-domain Networks (Intra-domain SAVNET) Gap Analysis,
             Problem Statement and Requirements", Work in Progress,
             Internet-Draft, draft-li-savnet-intra-domain-problem-
             statement-01, 26 September 2022,
             <https://www.ietf.org/archive/id/draft-li-savnet-intra-
             domain-problem-statement-01.txt>.

   [I-D.wu-savnet-inter-domain-problem-statement] Wu, J., Li, D., Qin,
             L., Huang, M., and N. Geng, " Source Address Validation in
             Inter-domain Networks (Inter-domain SAVNET) Gap Analysis,
             Problem Statement, and Requirements", Work in Progress,
             Internet-Draft, draft-wu-savnet-inter-domain-problem-
             statement-01, 26 September 2022,
             <https://www.ietf.org/archive/id/draft-wu-savnet-inter-
             domain-problem-statement-01.txt>.


Li, et al.             Expires April 24, 2023                [Page 12]


Internet-Draft       SAVNET Data Plane Performance        October 2022


7.2. Informative References

   [RFC3704] Baker, F. and P. Savola, "Ingress Filtering for Multihomed
             Networks", BCP 84, RFC 3704, DOI 10.17487/RFC3704, March
             2004, <https://www.rfc-editor.org/info/rfc3704>.

   [RFC8704] Sriram, K., Montgomery, D., and J. Haas, "Enhanced
             Feasible-Path Unicast Reverse Path Forwarding", BCP 84,
             RFC 8704, DOI 10.17487/RFC8704, February 2020,
             <https://www.rfc-editor.org/info/rfc8704>.






































Li, et al.             Expires April 24, 2023                [Page 13]


Internet-Draft       SAVNET Data Plane Performance        October 2022


Authors' Addresses

   Hao Li
   New H3C Technologies
   Beijing
   China
   Email: lihao@h3c.com


   Mengxiao Chen
   New H3C Technologies
   Hangzhou
   China
   Email: chen.mengxiao@h3c.com


   Dan Li
   Tsinghua University
   Beijing
   China
   Email: tolidan@tsinghua.edu.cn


   Fang Gao
   Zhongguancun Laboratory
   Beijing
   China
   Email: gaofang@mail.zgclab.edu.cn


   Mingqing Huang
   Huawei
   Beijing
   China
   Email: huangmingqing@huawei.com













Li, et al.             Expires April 24, 2023                [Page 14]