Internet-Draft IGP for Intra SAV February 2024
Chen, et al. Expires 4 August 2024 [Page]
Workgroup:
Network Working Group
Internet-Draft:
draft-chen-savnet-lsr-intra-02
Published:
Intended Status:
Standards Track
Expires:
Authors:
H. Chen
Futurewei
W. Cheng
China Mobile
A. Wang
China Telecom
G. Mishra
Verizon Inc.
Y. Fan
Casa Systems
X. Liu
Alef Edge

IGP Extensions for Intra-Domain SAV

Abstract

This document specifies extensions to OSPF and IS-IS for Source Address Validation in Intra-domain.

Requirements Language

The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this document are to be interpreted as described in [RFC2119] [RFC8174] when, and only when, they appear in all capitals, as shown here.

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 4 August 2024.

Table of Contents

1. Introduction

Requirements for intra-domain Source Address Validation (SAV) Mechanisms are described in [I-D.ietf-savnet-intra-domain-problem-statement]. The most important requirements include:

This document proposes IGP (i.e., OSPF and IS-IS) extensions for Intra-Domain SAV to meet these requirements.

2. Overview of Intra-Domain SAV

This section briefs SAV table and its usage, and then introduces one area (i.e., intra-area) SAV and multiple areas (i.e., inter-area) SAV.

2.1. SAV Table and its Usage

Every node (i.e., IGP control plane on the node) in a Autonomous System (AS) builds and maintains its own Source Address Validation (SAV) Table based on its Link-State Database (LSDB). The format of a SAV table is shown in Figure 1.

    +==========+============+     +===========+================+
    |Source    |Incoming    |     |Destination|Outgoing        |
    |Prefix    |Interface   |     |Prefix     |Interface       |
    +==========+============+     +===========+================+
    |S-prefix-1|Interface-a |     |D-prefix-1 |Out-interface-a |
    +----------+------------+     +-----------+----------------+
==> |S-prefix-2|Interface-b | ==> |D-prefix-2 |Out-interface-b | ==>
 ^  +----------+------------+  ^  +-----------+----------------+  ^
 |     ...                     |      ...                         |
 |  +----------+------------+  |  +-----------+----------------+  |
 |  |S-prefix-n|Interface-x |  |  |D-prefix-n |Out-interface-x |  |
 |  +----------+------------+  |  +-----------+----------------+  |
 |   Format of SAV Table       |             FIB                  |
 |                             |                                  |
Packet in                  forward Packet                  Packet out
               if source address and receiving interface
               of Packet in SAV Table
Figure 1: Format of SAV Table and FIB

When there is a shortest path from source prefix S-prefix-i to a destination through node N and interface Interface-j of node N, the SAV table of node N has a row containing S-prefix-i as Source Prefix and Interface-j as Incoming Interface. For example, the first row in the SAV table of node N contains S-prefix-1 as Source Address and Interface-a as Incoming Interface. This row indicates that there is a shortest path from S-prefix-1 to a destination through node N and Interface-a of node N.

The SAV table is sent to the data plane and used to validate the source address of a packet. When receiving a packet from an interface, the node validates the packet using its SAV table.

If the source address of the packet and the receiving/incoming interface are in the SAV table (i.e., there is one row in the SAV table containing the source address and the receiving/incoming interface), the packet is forwarded according to the FIB and destination address of the packet as shown in the figure; otherwise (i.e., there is no row in the SAV table containing the source address and the receiving/incoming interface), the packet is blocked or dropped.

2.2. Intra-Area SAV

This section introduces a method for a node to build its SAV table in a special case where an AS has only one area or SAV is for only one area.

When every routing/forwarding path in an AS is symmetric (i.e., every path has the same cost in both directions), every node in the AS builds and maintains its SAV table using its RIB/FIB. The node can determine whether every path is symmetric by checking its LSDB. If every link in its LSDB is symmetric (i.e., has the same metric or cost in both directions), then every path is symmetric; otherwise (i.e., there is an asymmetric link, its metric/cost in one direction is different from the one in the other/reverse direction), there are some asymmetric paths.

The node builds its SAV table using the RIB/FIB by including a row in its SAV table for each prefix with a next hop interface in its RIB/FIB. The row contains the prefix and the interface in the Source Prefix and Incoming Interface columns respectively.

When there is a routing/forwarding path which is not symmetric, every node X builds its SAV table in the following steps:

  1. Builds reverse shortest path tree (RSPT). Node X computes/builds a shortest path tree from node X to the other nodes using the link metric or cost of each link in the reverse direction.

  2. Builds reverse routing table (RRT) using RSPT. When node X finds a shortest path from node X to node Y with a next hop interface in its RSPT, node X adds an entry for each prefix attached to Y into its RRT. The entry has the prefix as the destination and the next hop interface as the next hop.

  3. Builds SAV table using RRT. Node X includes a row in its SAV table for each prefix with a next hop interface in its RRT. The row contains the prefix and the interface in the Source Prefix and Incoming Interface columns respectively.

There are a few options below for the scope of the prefixes to be validated.

Option 1:
The prefixes attached to every node.
Option 2:
The prefixes attached to each ASBR and ABR.
Option 3:
The prefixes indicated/configured on any node.

The method above builds the SAV table for option 1.

For option 2, we consider only ASBR and ABR Y in step 2. Thus the RRT contains only the prefixes attached to ASBRs and ABRs. So does the SAV table.

For option 3, we consider only the prefixes attached to node Y and indicated/configured by node Y in step 2. Thus the RRT contains only these prefixes. So does the SAV table.

2.3. Inter-Area SAV

This section introduces a method for a node to build its SAV table in a general case where an AS has multiple areas and SAV is for all the areas. The method is based on the one described in Section 2.2.

For any area A, every node X in A builds its SAV table using the following steps:

  1. Gets area shortest path tree (ASPT). The ASPT is a tree from node X as root to all the other nodes in area A. If every link in area A is symmetric, the ASPT is the SPT built by node X for its RIB, which is reused; otherwise (i.e., there is asymmetric link in area A), the ASPT is a RSPT from node X as root to all the other nodes in area A. Node X computes/builds the RSPT as described in Section 2.2.

  2. Extends ASPT. For each leaf node L of ASPT, node X attaches node L of ASPT every prefix of node L if the cost from the prefix to L is minimal. If every link in area A is symmetric and every path between any ABR and a summary prefix/address from the ABR is symmetric, the extended ASPT is the SPT with the prefixes of each node in area A built by node X for its RIB, which is reused.

  3. Builds reverse routing table (RRT) using extended ASPT. When node X finds a shortest path from node X to node Y with a next hop interface in its extended ASPT, node X adds an entry for each prefix attached to Y into its RRT. The entry has the prefix as the destination and the next hop interface as the next hop.

  4. Builds SAV table using RRT. Node X includes a row in its SAV table for each prefix with a next hop interface in its RRT. The row contains the prefix and the interface in the Source Prefix and Incoming Interface columns respectively.

The method above builds the SAV table for option 1.

For option 2, we consider only ASBR and ABR Y in step 3. Thus the RRT contains only the prefixes attached to ASBRs and ABRs. So does the SAV table.

For option 3, we consider only the prefixes attached to node Y and indicated/configured by node Y in step 3. Thus the RRT contains only these prefixes. So does the SAV table.

3. Extensions to IGP

This section describes extensions to OSPFv2, OSPFv3 and IS-IS for SAV. The extensions include:

3.1. Extensions to OSPFv2

3.1.1. Indicating Prefixes to be Validated

[RFC7684] defines the OSPFv2 Extended Prefix TLV to advertise additional attributes associated with the prefix. A new flag of one bit in Flags field of the TLV is defined below:

0x20 - S-Flag (SAV Prefix Flag):
Set when the prefix is configured for SAV (i.e., to be validated as a Source Address of a packet).

3.1.2. Path Cost from Prefix to ABR

[RFC7684] defines the OSPFv2 Extended Prefix TLV. A new OSPFv2 Reverse Cost to Prefix Sub-TLV is defined to be included in this TLV with Route Type 3 (Inter-Area). It has the following format:

    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 (TBD1)       |          Length (4)           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Cost from Prefix to ABR                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 2: OSPFv2 Reverse Cost to Prefix Sub-TLV

3.2. Extensions to OSPFv3

3.2.1. Indicating Prefixes to be Validated

[RFC8362] defines Intra-Area-Prefix TLV and External-Prefix TLV to advertise additional attributes associated with the prefix. A new Sub-TLV called Prefix Attribute Flags Sub-TLV is defined to be included in these two TLVs. It has the following format:

    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 (TBD2)       |          Length (4)           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                      Prefix Attribute Flags                 |S|
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 3: OSPFv3 Prefix Attribute Flags Sub-TLV

One flag of 1-bit in Prefix Attribute Flags field is defined below:

0x01 - S-Flag (SAV Prefix Flag):
Set when the prefix is configured for SAV (i.e., to be validated as a Source Address of a packet).

3.2.2. Path Cost from Prefix to ABR

[RFC8362] defines the Intra-Area-Prefix TLV. A new OSPFv3 Reverse Cost to Prefix Sub-TLV is defined to be included in this TLV. It has the following format:

    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 (TBD3)       |          Length (4)           |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                     Cost from Prefix to ABR                   |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 4: OSPFv3 Reverse Cost to Prefix Sub-TLV

3.3. Extensions to IS-IS

3.3.1. Indicating Prefixes to be Validated

[RFC7794] defines the Prefix Attribute Flags Sub-TLV to advertise additional IPv4 and IPv6 prefix attributes in TLV 135 (Extended IP Reachability), 235 (MT IP Reach), 236 (IPv6 IP Reach) and 237 (MT IPv6 IP Reach). A new one bit flag in the Sub-TLV is defined below:

Bit 5 - SAV Prefix Flag (S-flag):
Set when the prefix is configured for SAV (i.e., to be validated as a Source Address of a packet).

3.3.2. Path Cost from Prefix to ABR

A new IS-IS Reverse Cost to Prefix Sub-TLV is defined for an ABR (i. e., level 2/1 router) to include it in TLV 135, 235, 236 and 237 for the prefix. It has the following format:

    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 (TBD4)  |   Length (4)  |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
   |                    Cost from Prefix to ABR                    |
   +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
Figure 5: IS-IS Reverse Cost to Prefix Sub-TLV

4. Security Considerations

TBD.

5. IANA Considerations

5.1. OSPFv2

Under "OSPFv2 Extended Prefix TLV Flags registry", IANA is requested to assign a codepoint for SAV Prefix Flag as follows:

+=======+==========================+=============+
| Value | Description              |Reference    |
+=======+==========================+=============+
| 0x10  | S-Flag (SAV Prefix Flag) |This document|
+-------+--------------------------+-------------+

Under "OSPFv2 Extended Prefix TLV Sub-TLVs registry" as defined in [RFC7684], IANA is requested to assign a registry value for Link Number Sub-TLV as follows:

+===========+=========================+==================+
|  Value    | Description             | Reference        |
+===========+=========================+==================+
|  TBD1     | Reverse Cost to Prefix  | This document    |
+-----------+-------------------------+------------------+

5.2. OSPFv3

Under "OSPFv3 Extended-LSA Sub-TLVs registry" as defined in [RFC8362], IANA is requested to assign a registry value for Reverse Cost to Prefix Sub-TLV as follows:

+===========+=========================+==================+
|  Value    | Description             | Reference        |
+===========+=========================+==================+
|  TBD2     | Prefix Attribute Flags  | This document    |
+-----------+-------------------------+------------------+
|  TBD3     | Reverse Cost to Prefix  | This document    |
+-----------+-------------------------+------------------+

5.3. IS-IS

Under "IS-IS Bit Values for Prefix Attribute Flags Sub-TLV", IANA is requested to assign a codepoint for SAV Prefix Flag as follows:

+=====+========================+=============+
|Bit #|Name                    |Reference    |
+=====+========================+=============+
|  5  |SAV Prefix Flag (S-flag)|This document|
+-----+------------------------+-------------+

Under "IS-IS Sub-TLVs for TLVs Advertising Prefix Reachability", IANA is requested to assign a codepoint for Reverse Cost to Prefix Sub-TLV as follows:

+===========================+==+===+===+===+===+===+===+=============+
|Type|Description           |27|126|127|135|235|236|237|reference    |
+====+======================+==+===+===+===+===+===+===+=============+
|TBD3|Reverse Cost to Prefix|n | n | n | y | y | y | y |This document|
+----+----------------------+--+---+---+---+---+---+---+-------------+

6. Acknowledgements

The authors would like to thank Joel Halpern for the valuable comments and suggestions on this draft..

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, , <https://www.rfc-editor.org/info/rfc2119>.
[RFC2328]
Moy, J., "OSPF Version 2", STD 54, RFC 2328, DOI 10.17487/RFC2328, , <https://www.rfc-editor.org/info/rfc2328>.
[RFC5120]
Przygienda, T., Shen, N., and N. Sheth, "M-ISIS: Multi Topology (MT) Routing in Intermediate System to Intermediate Systems (IS-ISs)", RFC 5120, DOI 10.17487/RFC5120, , <https://www.rfc-editor.org/info/rfc5120>.
[RFC5226]
Narten, T. and H. Alvestrand, "Guidelines for Writing an IANA Considerations Section in RFCs", RFC 5226, DOI 10.17487/RFC5226, , <https://www.rfc-editor.org/info/rfc5226>.
[RFC5305]
Li, T. and H. Smit, "IS-IS Extensions for Traffic Engineering", RFC 5305, DOI 10.17487/RFC5305, , <https://www.rfc-editor.org/info/rfc5305>.
[RFC7684]
Psenak, P., Gredler, H., Shakir, R., Henderickx, W., Tantsura, J., and A. Lindem, "OSPFv2 Prefix/Link Attribute Advertisement", RFC 7684, DOI 10.17487/RFC7684, , <https://www.rfc-editor.org/info/rfc7684>.
[RFC7794]
Ginsberg, L., Ed., Decraene, B., Previdi, S., Xu, X., and U. Chunduri, "IS-IS Prefix Attributes for Extended IPv4 and IPv6 Reachability", RFC 7794, DOI 10.17487/RFC7794, , <https://www.rfc-editor.org/info/rfc7794>.
[RFC8174]
Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, , <https://www.rfc-editor.org/info/rfc8174>.
[RFC8362]
Lindem, A., Roy, A., Goethals, D., Reddy Vallem, V., and F. Baker, "OSPFv3 Link State Advertisement (LSA) Extensibility", RFC 8362, DOI 10.17487/RFC8362, , <https://www.rfc-editor.org/info/rfc8362>.

7.2. Informative References

[I-D.ietf-savnet-intra-domain-problem-statement]
Li, D., Wu, J., Qin, L., Huang, M., and N. Geng, "Source Address Validation in Intra-domain Networks Gap Analysis, Problem Statement, and Requirements", Work in Progress, Internet-Draft, draft-ietf-savnet-intra-domain-problem-statement-02, , <https://datatracker.ietf.org/doc/html/draft-ietf-savnet-intra-domain-problem-statement-02>.
[RFC5250]
Berger, L., Bryskin, I., Zinin, A., and R. Coltun, "The OSPF Opaque LSA Option", RFC 5250, DOI 10.17487/RFC5250, , <https://www.rfc-editor.org/info/rfc5250>.

Authors' Addresses

Huaimo Chen
Futurewei
Boston, MA,
United States of America
Weiqiang Cheng
China Mobile
China
Aijun Wang
China Telecom
Beiqijia Town, Changping District
Beijing
102209
China
Gyan S. Mishra
Verizon Inc.
13101 Columbia Pike
Silver Spring, MD 20904
United States of America
Phone: 301 502-1347
Yanhe Fan
Casa Systems
United States of America
Xufeng Liu
Alef Edge
United States of America