Internet-Draft | Intra-domain SAVNET Architecture | July 2023 |
Li, et al. | Expires 26 January 2024 | [Page] |
This document proposes an intra-domain SAVNET architecture. Devices in the intra-domain network can communicate with each other and advertise SAV-specific information. SAV-specific information explicitly or implicitly indicates the accurate incoming directions of source addresses. With the advertised information, devices can generate accurate SAV rules automatically. Under the incremental/partial deployment of the architecture, routing information can be used as a supplement of SAV-specific information for SAV rule generation.¶
The architecture primarily introduces the SAV-specific information, architectural components, and the collaborations between them. Future intra-domain SAV mechanisms/protocols can be developed based on the architecture. Concrete protocol extensions or implementations are not the focus of this document.¶
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 26 January 2024.¶
Copyright (c) 2023 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 important for mitigating source address spoofing and contributing to the Internet security. Source Address Validation Architecture (SAVA) [RFC5210] divides SAV into three checking levels, i.e., access-network SAV, intra-domain SAV, and inter-domain SAV. When an access network does not deploy SAV (such as SAVI [RFC7039][RFC7513], Cable Source Verify [cable-verify], and IP Source Guard [IPSG]), intra-domain SAV helps block spoofed packets from the access network as close to the source as possible. The concept of intra-domain SAV in this document keeps consistent with that in [I-D.ietf-savnet-intra-domain-problem-statement].¶
The main task of SAV mechanisms is to generate SAV rules for checking the validity of source addresses of data packets. The information of source addresses/prefixes and their incoming directions makes up the SAV rules. How to efficiently and accurately learn the information is the core challenge for SAV mechanisms. There are many intra-domain SAV mechanisms available such as ACL-based filtering [RFC2827], strict uRPF [RFC3704], and loose uRPF [RFC3704]. SAV rules are generated by either routing information or manual configurations. However, they are faced with the problems of high operational overhead and inaccurate validation in some scenarios [I-D.ietf-savnet-intra-domain-problem-statement].¶
An intra-domain architecture is proposed in this document to address the above issues. Consider that routing information is not accurate enough for SAV rule generation. SAV-specific information is defined which can provide more accurate incoming directions of source addresses. For example, a route indicates that the next-hop of address P1 is Intf. 1, while the packets with source address of P1 come from Intf. 2. SAV-specific information can be used to indicate the real incoming interface of the address and replace the reverse route looking up.¶
Under the architecture, devices can communicate with each other and share SAV-specific information besides routing information. Accurate SAV rules on devices can be automatically generated based on the learned SAV-related information. When the architecture is partially or incrementally deployed, complete SAV-specific information may not be available. Devices can leverage routing information for generating SAV rules. By default, SAV-specific information has a higher priority than routing information in case of information conflicts.¶
This document presents the high-level designs for future intra-domain SAV mechanisms. The definitions of SAV-specific information, architectural components, and the collaborations between them are the focus of the document. The main purpose is to provide a conceptual framework and guidance for the development of intra-domain SAV mechanisms, allowing implementers to adapt and implement the architecture based on their specific requirements and network environments. The protocols or protocol extensions for implementing the architecture are not in the scope of this document.¶
SAV Rule: The rule that indicates the validity of a specific source IP address or source IP prefix.¶
SAV Table: The table or data structure that implements the SAV rules and is used for source address validation.¶
SAV-related Information: Any information that is useful for getting or generating SAV rules.¶
SAV-specific Information: The information specialized for SAV that explicitly or implicitly indicates the accurate incoming directions of source addresses.¶
SAV-specific Protocol: The protocols or protocol extensions for delivering SAV-specific information.¶
SAV Agent: The component that stores SAV-related information, consolidates the information, and outputs SAV rules to the SAV table.¶
SAV Information Base: A table or data structure for storing SAV-related information.¶
False Positive: The validation results that the packets with legitimate source IP addresses are considered "invalid" due to inaccurate SAV rules.¶
False Negative: The validation results that the packets with spoofed source IP addresses are considered "valid" due to inaccurate SAV rules.¶
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.¶
The intra-domain SAVNET architecture is to enhance the intra-domain SAV and aims to achieve the following goals:¶
Existing SAV mechanisms mostly rely on routing information for automatically generating SAV rules. However, route decides the outgoing interface of source address while SAV focuses on the incoming interface. Therefore, in some cases, routing information cannot support accurate rule generation. The information specifically useful to accurate SAV is required. Manually configuring such information on devices is not practical especially in large-scale and dynamic networks.¶
To achieve the above goals, the architecture proposes to allow devices to advertise SAV-specific information automatically. The SAV-specific information will provide more accurate incoming directions of source addresses than routing information. Devices receiving the information will be able to generate accurate SAV rules. Since the updates of SAV-specific information will be advertised proactively, the generated SAV rules can be automatically updated. By properly utilizing routing information, the architecture can also work in incremental/partial deployment¶
SAV-related information represents any information that is useful for getting or generating SAV rules. There are largely two kinds of SAV-related information: routing information and SAV-specific information.¶
Routing information is used for forwarding rule computation, which mostly stored in RIB/FIB. It is not specialized for SAV but can be used to some extent for SAV. Existing SAV mechanisms like strict uRPF and loose uRPF conduct SAV solely based on routing information.¶
SAV-specific information is specialized for SAV, which explicitly or implicitly indicates the accurate incoming directions of source addresses. Compared to using routing information, the accuracy of SAV rules can be improved through SAV-specific information. The false positive problems can be avoided and the false negative problems can be reduced.¶
SAV-specific information can be various kinds of information on devices. Some examples are as follows:¶
The proposed architecture is shown in Figure 1. In the architecture, there is a communication channel connecting two entities, i.e., Source Entity and Validation Entity. Source Entity is the information source and provides SAV-related information to Validation Entity. Validation Entity receives the information, generates SAV rules, and conducts validation. An entity can be a router, a server, or some other SAV-equipped devices. A device can act as a Source Entity, a Validation Entity, or both of them.¶
Source Speaker resides in Source Entity is responsible to communicate with Validation Speaker in Validation Entity through the communication channel. The communication channel may consist of several sessions for transmitting SAV-related information including routing information and SAV-specific information. In order to transmit SAV-specific information in the channel, a new SAV-specific protocol should be developed to carry the SAV-specific information. The SAV-specific protocol should define the data structure or format for communicating the SAV-specific information and the operations and timing for originating, processing, propagating, and terminating the messages which carry the information.¶
Under the incremental/partial deployment, not all devices support advertising SAV-specific information. So, complete SAV-specific information will not be available for the devices acting as Validation Entity. In the stage of incremental/partial deployment, routing information can be used as a supplement of SAV-specific information for SAV rule generation. That is why the advertisement of routing information is also included in the architecture.¶
SAV Agent in Validation Entity stores SAV-related information from Validation Receiver, consolidates the different types of information from all sources, and outputs SAV rules to the SAV table. The concrete structure of SAV Agent will be introduced later.¶
The communication channel is constructed between the Source Speaker and Validation Receiver. The primary purpose of the channel is for Source Entity to advertise SAV-related information to Validation Entity. In the architecture, the communication channel can transmit both routing information and SAV-specific information through different sessions. These sessions can belong to different protocols:¶
As shown in Figure 1, Source Speaker resides in Source Entity, and Validation Receiver is in Validation Entity. Either Source Speaker or Validation Receiver is an abstracted interface which represents a union of multiple protocol speakers/receivers as illustrated in Figure 2. These protocol speakers/receivers can advertise/receive the messages carrying SAV-related information.¶
The SAV-specific protocol is for propagating SAV-specific information from Source Entity to Validation Entity. The need for the SAV-specific protocol arises from the facts that there is no existing mechanism which can support the perception and propagation of SAV-specific information between devices. Hence, a unified SAV-specific protocol is needed to establish communication between different devices for the exchange of SAV-specific information. This document does not present how to implement such a protocol and will only describe the necessary features of it.¶
The SAV-specific protocol SHOULD define the SAV-specific information to be communicated, the data structure or format to communicate the information, and the operations and timing for originating, processing, propagating, and terminating the messages which carry the information. The protocol SHOULD advertise the updates of SAV-specific information in a timely manner so that Validation Entity can update SAV rules correspondingly.¶
A session of the protocol can be established by manual configurations of operators or an automatic mechanism. The concrete manner of constructing a session depends on the actual protocol implementations, but the following requirements SHOULD be satisfied:¶
The connectivity models between Source Speaker and Validation Receiver are various. Section 6 shows some examples of connectivity models.¶
Figure 3 shows SAV Agent. SAV Information Manager in SAV Agent parses the messages received by Validation Receiver. The SAV-related information carried in the messages will be stored in SAV Information Base. The information of Source Speaker, protocols, timestamp, and other useful things will also be recorded together. The recorded information will be disseminated to SAV Rule Generator. SAV rules (e.g., tuples like <prefix, interface set, validity state>) will be generated and stored in SAV Table [I-D.huang-savnet-sav-table]. Besides rule generation, SAV Information Base also provides the support of diagnosis. Operators can look up the information in the base for protocol monitoring or troubleshooting.¶
It can be noticed that SAV Information Base stores SAV-related information from different Source Entities and different protocol speakers. When SAV Rule Generator generates rules based on the stored information, rule conflicts may appear. For example, for a given prefix, the information from different entities or speakers may indicate a different list of valid incoming interfaces.¶
To solve the problem of rule conflicts, each Source Entity or protocol speaker can be set with a priority. So, the SAV-related information from the entity or protocol speaker is also tagged with a priority. In general, since SAV-specific information is specialized for SAV and helps generate more accurate SAV rules than routing information, SAV-specific information has a higher priority than routing information. When rule conflicts exist, the rule based on the information with a higher priority will override that based on the information with a lower priority. If two conflicted rules are based on the information with the same priority, they can be merged to one rule (i.e., taking a union set). When the settings of priority change, the affected information MUST be reprocessed for updating rules.¶
Consider that one Validation Entity receives the information about prefix P1 from one Source Entity through two protocol speakers. Based on the information from speaker 1, the rule is <P1, {intf1}, valid>. While based on the information from speaker 2, the rule is <P1, {intf2}, valid>. Next, consider two cases of priority settings. In case 1, speaker 1 has a higher priority than speaker 2. Then, the rule of <P1, {intf1}, valid> will be finally stored in SAV Table. In case 2, two speakers have the same priority. Then, <P1, {intf1, intf2}, valid> is the output rule.¶
How to generate SAV rules SHOULD be designed in future SAV mechanisms that implement the architecture.¶
This section will present two use cases to show why the architecture can work better than existing SAV mechanisms. Figure 4 shows an example of intra-domain SAV. In the figure, Subnet1 and Subnet3 are single-homed to Router1 and Router2, respectively. Subnet2 is multi-homed to Router1 and Router2. Router3 connects to the Internet through two external interfaces. A typical deployment of existing SAV mechanisms is: Strict uRPF is deployed on interface '#' for validating packets from subnets, and ACL rules are configured at external interface '*' for blocking internal source addresses from the Internet.¶
Consider a scenario of asymmetric routing where Subnet2 advertises IP address P1 to Router2 instead of Router1 but sends packets with source address P1 to Router1. In the scenario, strict uRPF on Router1 will improperly block legitimate packets from Subnet2 at Intf.2.¶
If the proposed architecture is deployed in the network, Router2 can advertise the SAV-specific information (i.e., Subnet2 has address P1) to Router1. Then, Router1 will not block P1 at Intf. 2, so improper block is avoided.¶
Consider that ACL rules are manually maintained at external interfaces to block internal addresses belonging to Subnet1, Subnet2, and Subnet3. There may be operational challenges when there are many external interfaces and the internal addresses are dynamic.¶
If the proposed architecture is deployed in the network, Router1 and Router2 will advertise the internal addresses of connected subnets to Router3. Then, Router3 can automatically update filtering rules at external interfaces.¶
The above to use cases are simple. The detailed operations (such as identifying, formatting, propagating, parsing, etc.) on SAV-specific information SHOULD be defined in the implementations of the architecture.¶
This section presents some examples of connectivity models of the architecture. A combination of these models is also suitable to the architecture.¶
One Validation Entity can collect SAV-related information from multiple Source Entities as shown in Figure 5. For each Source Entity, Validation Entity maintains a communication channel for receiving messages.¶
One Source Entity can provide information for multiple Validation Entities as shown in Figure 6. Source Entity will maintain a communication channel with each Validation Entity.¶
By combining Example 1 and Example 2, it can be seen that the connectivity model can also be "multiple Source Entities to multiple Validation Entities".¶
As mentioned previously, a device can be both Source and Validation Entity. In Figure 7, the middle entity is such a device. It can receive information messages from the top Source Entity and can advertise information messages to the bottom Validation Entity. The middle entity can also relay the messages from the top Source Entity to the bottom Validation Entity, which is just like routing information spreading.¶
Network topologies may change sometimes and result in the change of SAV-related information. Convergence of the architecture is needed. Source Entity MUST advertise the updates of SAV-related information to Validation Entity in time. Then, Validation Entity MUST update local SAV rules immediately. Even so, there will still be delay of message delivery (sometimes re-transmission delay due to packet loss) and information processing. Therefore, during the convergence process, the SAV rules for checking packets are possibly inaccurate, which may result in severe false positive or too much false negative.¶
Existing routing information-based SAV mechanisms like strict uRPF is also faced with convergence problem. Inaccurate validation may appear during the convergence of routing, which is inevitable in practice. However, the proposed architecture involves SAV-specific Protocols that are especially for SAV. The convergence process can be slowed down due to the existence of SAV-specific Protocols.¶
The protocol for implementing the architecture MUST carefully consider the convergence problems, so that normal packet forwarding won't be impacted too much. There are some potential work directions for dealing with convergence problems:¶
Although an intra-domain network mostly has one administration, incremental/partial deployment may still exist due to phased deployment or the limitations coming from multi-vendor supplement. Under incremental/partial deployment, if complete SAV-specific information is unavailable, SAV rules can be generated by combing available SAV-specific information and routing information.¶
The implementation of Validation Entity is RECOMMENDED to support flexible validation modes such as interface-based prefix allowlist, interface-based prefix blocklist, and prefix-based interface allowlist [I-D.huang-savnet-sav-table]. The first two modes are interface-scale, and the last one is device-scale. Under incremental/partial deployment, the device of Validation Entity SHOULD take on the proper validation mode according to the deploying of Source Entities. For example, if Validation Entity is able to get the complete set of legitimate source prefixes arriving at a given interface, interface-based prefix allowlist can be enabled at the given interface, and false positive will not exist.¶
In addition, the SAV filtering at the router can be also performed incrementally. The router can first take conservative actions on the validated data packets. That is to say, the router will not directly discard packet with an invalid result in the beginning of deployment. It can conduct sampling action for measurement analysis at first, and then conducts rate-limiting action or redirecting action for packets with invalid results. These conservative actions will not result in serious consequences under false positive validation results, while still providing protection for the network. Finally, filtering action is enabled only after confirming that there are no false positives.¶
In many cases, an intra-domain network can be considered as a trusted domain. There will be no threats within the domain.¶
However, in some other cases, devices within the domain do not trust each other. Operators SHOULD be aware of potential threats involved in deploying the architecture. Typically, the potential threats and solutions are as follows:¶
Entity impersonation.¶
Message blocking.¶
Message alteration.¶
Message replay.¶
When implementing the architecture in an extended protocol, the existing security mechanisms of the protocol can be taken.¶
The architecture provides a general design for collecting SAV-related information and generating accurate SAV rules. Protocol-independent mechanisms SHOULD be provided for operating and managing SAV-related configurations. For example, a YANG data model for SAV configuration and operation is necessary for the ease of management.¶
SAV may affect the normal forwarding of data packets. The diagnosis approach and necessary logging information SHOULD be provided. SAV Information Base SHOULD store some information that may not be useful for rule generation but is helpful for management.¶
Messages carrying SAV-related information come from different protocol speakers. Each corresponding protocol SHOULD have monitoring and troubleshooting mechanisms, which is necessary for efficiently operating the architecture.¶
The advertised SAV-related information mainly indicates the incoming directions of source prefixes. Devices under the architecture will learn more forwarding information of data packets.¶
An intra-domain network is mostly operated by a single organization or company, and the advertised information is only used within the network. Therefore, the architecture does not import critical privacy issues in usual cases.¶
The architecture makes the forwarding information in the network clearer, which can be helpful for network management such as fault diagnosis and traffic visualization.¶
This document has no IANA requirements.¶
Many thanks to the valuable comments from: Igor Lubashev, Alvaro Retana, Aijun Wang, Joel Halpern, Jared Mauch, Kotikalapudi Sriram, Rüdiger Volk, Jeffrey Haas, Xiangqing Chang, Changwang Lin, etc.¶