RFC 8687

OSPF Routing with Cross-Address Family Traffic Engineering Tunnels

๐Ÿ“… published November 2019, from ietf

Okay bestie, let's get into RFC 8687 ๐ŸŽ€ It's called OSPF Routing with Cross-Address Family Traffic Engineering Tunnels ๐Ÿ’– It's a Standards Track document from the IETF (Internet Engineering Task Force) ๐Ÿ‘‘ The authors are A. Smirnov of Cisco Systems, Inc., A. Retana of Futurewei Technologies, Inc., and M. Barnes ๐Ÿ’… It came out in November 2019 with ISSN 2070-1721, and it updates RFC 5786 ๐Ÿฆ‹ The header doesn't list anything it obsoletes. This one is all about making cross-family TE actually work ๐Ÿ˜ญ

Abstract โœจ

Okay so picture this: you're doing Traffic Engineering (TE) in a dual-stack IPv4/IPv6 network ๐ŸŒˆ and the Multiprotocol Label Switching (MPLS) TE Label Switched Path (LSP) infrastructure might get duplicated, even when the IPv4 and IPv6 destination addresses belong to the same remote router ๐Ÿ™ˆ Not it. To get one integrated MPLS TE LSP setup, OSPF routes have to be computed over MPLS TE tunnels built from info propagated in a different OSPF instance. The fix is advertising cross-address family (X-AF) OSPF TE information ๐Ÿ’–

This document is an update to RFC 5786 that makes it easy to spot a router's local X-AF IP addresses โœจ

Status of This Memo ๐Ÿ“œ

This is an Internet Standards Track document.

This document is a product of the Internet Engineering Task Force (IETF). It represents the consensus of the IETF community. It has received public review and has been approved for publication by the Internet Engineering Steering Group (IESG). Further information on Internet Standards is available in Section 2 of RFC 7841.

Information about the current status of this document, any errata, and how to provide feedback on it may be obtained at https://www.rfc-editor.org/info/rfc8687.

Copyright (c) 2019 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 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.  Requirements Language
3.  Operation
4.  Backward Compatibility
  4.1.  Automatically Switched Optical Networks
5.  Security Considerations
6.  IANA Considerations
7.  References
  7.1.  Normative References
  7.2.  Informative References
Acknowledgements
Authors' Addresses

1. Introduction ๐ŸŒธ

Okay so OSPFv2 [RFC3630] and OSPFv3 [RFC5329] both got TE extensions ๐Ÿ’… which support intra-area TE in IPv4 and IPv6 networks, respectively. In both cases the TE database is tightly coupled to the routed protocol and the TE signaling info that gets advertised. In other words, using the TE database is limited to IPv4 for OSPFv2 [RFC2328] and IPv6 for OSPFv3 [RFC5340]. ๐Ÿ˜ญ

In a dual-stack network, it might be desirable to set up common MPLS TE LSPs that carry traffic going to addresses from different address families on a router. Sharing LSPs is a whole vibe for scalability and management, because it halves the number of LSPs in the network ๐Ÿ™Œ Plus, operators can group traffic based on business characteristics, class of service, and/or applications, and they aren't stuck with whichever network protocol is in use ๐Ÿฆ‹

For example, an LSP built from MPLS TE info propagated by an OSPFv2 instance can carry both IPv4 and IPv6 traffic. The alternative is running both OSPFv2 and OSPFv3 to set up a separate LSP for each address family. Even if you do need to separate the address-family-specific traffic in some cases, calculating from a common TE database can still be operationally beneficial ๐Ÿงš

During the SPF calculation on the TE tunnel head-end router, OSPF computes shortcut routes using TE tunnels. A commonly used algorithm for computing shortcuts is defined in [RFC3906]. For that algorithm, or any similar one, to work with a common MPLS TE infrastructure in a dual-stack network, you need to reliably map the X-AF addresses to the matching tail-end router. This mapping is kind of a challenge ๐Ÿ˜ค because the Link State Advertisements (LSAs) with the routing info live in one OSPF instance, while the TE calculations might use a TE database from a different OSPF instance.

A simple solution is to rely on the Router ID to identify a node in the matching OSPFv2 and OSPFv3 Link State Databases (LSDBs). But this would mean both instances on the same router have to be configured with the same Router ID. Relying on config being perfect puts extra burden and cost on running the network ๐Ÿ’€ It gets even harder to manage if the OSPFv2 and OSPFv3 topologies don't match exactly, for example if area borders are chosen differently in the two protocols. Also, if the routing processes fall out of sync (say they have different Router IDs for local administrative reasons), there's no defined way for other routers to discover that misalignment and take corrective measures. Those could include avoiding routing traffic through affected TE tunnels or alerting the network administrators. Misaligned Router IDs can deliver traffic to the wrong tail-end router, which could lead to suboptimal routing or even traffic loops ๐Ÿ™ˆ

This document is an update to [RFC5786] that makes it easy to spot a router's local X-AF IP addresses โœจ [RFC5786] defined the Node IPv4 Local Address and Node IPv6 Local Address sub-TLVs of the Node Attribute TLV, which let a router advertise additional local IPv4 and IPv6 addresses. However, [RFC5786] did not describe how to advertise and use these sub-TLVs when the address family of the advertised local address is different from the address family of the OSPF traffic engineering protocol.

This document updates [RFC5786] so a router can also announce one or more local X-AF addresses using the corresponding Local Address sub-TLV. Routers using the Node Attribute TLV [RFC5786] can include non-TE-enabled interface addresses in their OSPF TE advertisements, and they can use the same sub-TLVs to carry X-AF info. That makes the mapping described above a lot easier ๐Ÿ‘‘

The method in this document can also be used to compute the X-AF mapping of the egress Label Switching Router (LSR) for sub-LSPs of a Point-to-Multipoint LSP [RFC4461]. Using Point-to-Multipoint MPLS TE for X-AF traffic forwarding is outside the scope of this document ๐Ÿซถ

2. Requirements Language ๐Ÿ”ฅ

Okay bestie, 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. ๐Ÿ’… So lowercase "must" or "may" is just regular English, not a spec requirement ๐Ÿ’–

3. Operation โœจ

okay so, to actually do X-AF routing (the technique this doc is about ๐Ÿ’…), OSPFv2 is gonna advertise the Node IPv6 Local Address sub-TLV and OSPFv3 is gonna advertise the Node IPv4 Local Address sub-TLV. They can also keep advertising other IP addresses the way [RFC5786] describes. bestie, it's giving cross-protocol teamwork ๐Ÿซถ

Running OSPFv3 for both IPv4 and IPv6 means you need multiple instances of it, which is covered in [RFC5838] ๐Ÿงš. This section is written with OSPFv2 as the protocol for IPv4, since that's the most common setup. If OSPFv3 is doing IPv4 instead, it just follows the same steps as the OSPFv2 version below. no cap, it's the same vibe, just swapped ๐Ÿ”„

On a node that does X-AF routing, every OSPF instance uses the Node Local Address sub-TLV to advertise all the X-AF addresses local to the router that CSPF (Constrained Shortest Path First) can use to calculate MPLS TE LSPs. For OSPFv2 instances that's the IPv6 addresses, and for OSPFv3 it's the IPv4 ones. Here's the breakdown ๐ŸŽ€

  • The OSPF instance MUST advertise the IP address listed in the Router Address TLV [RFC3630] [RFC5329] of the X-AF instance that's maintaining the TE database. (this one is non-negotiable, periodt ๐Ÿ’–)
  • The OSPF instance SHOULD include additional local addresses that the X-AF OSPF instance advertised in its Node Local Address sub-TLVs. ๐ŸŒธ
  • An implementation MAY advertise other local X-AF addresses. ๐Ÿฆ‹

When TE info gets advertised in an OSPF instance, both natively (so, as per RFC [RFC3630] or [RFC5329]) and as an X-AF Node Attribute TLV, it's up to local configuration to decide which TE database gets used to compute routes for that OSPF instance. Your config is the boss here ๐Ÿ‘‘

Now for ABRs (Area Border Routers) ๐ŸŒˆ. Each advertised X-AF IP address MUST be advertised into, at most, one area. Like, it can only live in one area, no sharing ๐Ÿ™…โ€โ™€๏ธ. If OSPFv2 and OSPFv3 ABRs are the same router (meaning the areas for all OSPFv2 and OSPFv3 interfaces are the same), then the X-AF addresses MUST be advertised into the same area in both instances. This lets other ABRs hooked up to the same set of areas figure out which area to link computed MPLS TE tunnels with. it's giving organized ๐Ÿ“‹

During the X-AF routing calculation, X-AF IP addresses get used to map locally created LSPs to tail-end routers in the LSDB. The mapping algorithm goes like this (fenced so you can see the exact steps ๐Ÿ‘€):

   Walk the list of all MPLS TE tunnels for which the computing
   router is a head end.  For each MPLS TE tunnel T:

   1.  If T's destination address is from the same address family as
       the OSPF instance associated with the LSDB, then the
       extensions defined in this document do not apply.

   2.  Otherwise, it is a X-AF MPLS TE tunnel.  Note the tunnel's
       destination IP address.

   3.  Walk the X-AF IP addresses in the LSDBs of all connected
       areas.  If a matching IP address is found, advertised by
       router R in area A, then mark the tunnel T as belonging to
       area A and terminating on tail-end router R.  Assign the
       intra-area SPF cost to reach router R within area A as the IGP
       cost of tunnel T.

After all that's done, every TE tunnel is tied to an area and a tail-end router, based on the routing LSDB of the computing OSPF instance, and it has a cost. โœจ Iconic.

The algorithm above only gets used if the Node Local Address sub-TLV includes X-AF info. ๐Ÿ™ˆ

Also, the mapping algorithm is written as one single calculation just so it's easier to read. Implementations are allowed to do equivalent mapping functionality without following the algorithm step by step. The spec is chill about how you get there ๐Ÿ’œ

Example time! ๐Ÿ“ Picture a router in a dual-stack network running OSPFv2 for IPv4 and OSPFv3 for IPv6. Say the OSPFv2 instance is the one used to spread MPLS TE info, and the router is set up to accept TE LSPs ending at the local addresses 198.51.100.1 and 198.51.100.2. The router advertises 198.51.100.1 in OSPFv2's Router Address TLV, puts the extra local IPv4 address 198.51.100.2 in the Node IPv4 Local Address sub-TLV, and includes whatever other TE TLVs [RFC3630] asks for. Now if the OSPFv3 instance in the network is set up for X-AF TE routing (meaning it uses MPLS TE LSPs computed by OSPFv2 for IPv6 routing), then the router's OSPFv3 instance advertises the Node IPv4 Local Address sub-TLV listing 198.51.100.1 and 198.51.100.2. Other routers in the OSPFv3 network use that info to reliably identify this router as the egress LSR for MPLS TE LSPs ending at either of those addresses. main character energy ๐ŸŽฌ

4. Backward Compatibility ๐Ÿ”™

Only routers that act as endpoints for one or more TE tunnels MUST be upgraded to support the procedures in this document. Here's what they do ๐ŸŽ€

  • Tunnel tail-end routers advertise the Node IPv4 Local Address sub-TLV and/or the Node IPv6 Local Address sub-TLV. ๐Ÿ“ก
  • Tunnel head-end routers perform the X-AF routing calculation. ๐Ÿงฎ

Both endpoints MUST be upgraded before the tail end starts advertising the X-AF info. โซ The other routers in the network don't need to support X-AF procedures at all, so they can just chill ๐Ÿ˜Œ

4.1. Automatically Switched Optical Networks ๐Ÿ’ก

[RFC6827] updates [RFC5786] by defining extensions to be used in an Automatically Switched Optical Network (ASON). The Local TE Router ID sub-TLV is required for determining ASON reachability. What that means is that if the Local TE Router ID sub-TLV is present in the Node Attribute TLV, then the procedures in [RFC6827] apply, whether or not any X-AF information is advertised. โœจ it's giving "the rules kick in based on this one sub-TLV" energy

5. Security Considerations ๐Ÿ”๐Ÿ’€

okay bestie, this part is serious, so read it closely ๐Ÿซฃ

This document describes how the Local Address sub-TLVs are used to provide X-AF information. Advertising these sub-TLVs in any OSPF instance is not blocked by [RFC5786]. So, no new security threats are introduced beyond what's already covered in OSPFv2 [RFC2328], OSPFv3 [RFC5340], and [RFC5786]. Phew ๐Ÿ˜ฎโ€๐Ÿ’จ

The X-AF information is not used for SPF computation or normal routing, so the mechanism in this document has no effect on IP routing. HOWEVER (and this is the drama ๐Ÿ˜ค), generating incorrect information or messing with the sub-TLVs may affect traffic engineering computations. Specifically, TE traffic may get delivered to the wrong tail-end router. That could lead to suboptimal routing, traffic loops, or exposing the traffic to an attacker who can inspect or modify it. ๐Ÿšจ Those threats already exist in other TE-related specs, and their considerations apply here too, including [RFC3630] and [RFC5329]. Please take this seriously, periodt ๐Ÿ’…

6. IANA Considerations ๐Ÿ“š

This document has no IANA actions. ๐ŸŒท Nothing to register, nothing to update, we're good.

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

[RFC3630]  Katz, D., Kompella, K., and D. Yeung, "Traffic Engineering
           (TE) Extensions to OSPF Version 2", RFC 3630,
           DOI 10.17487/RFC3630, September 2003,
           <https://www.rfc-editor.org/info/rfc3630>.

[RFC5329]  Ishiguro, K., Manral, V., Davey, A., and A. Lindem, Ed.,
           "Traffic Engineering Extensions to OSPF Version 3",
           RFC 5329, DOI 10.17487/RFC5329, September 2008,
           <https://www.rfc-editor.org/info/rfc5329>.

[RFC5786]  Aggarwal, R. and K. Kompella, "Advertising a Router's
           Local Addresses in OSPF Traffic Engineering (TE)
           Extensions", RFC 5786, DOI 10.17487/RFC5786, March 2010,
           <https://www.rfc-editor.org/info/rfc5786>.

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

7.2. Informative References

[RFC2328]  Moy, J., "OSPF Version 2", STD 54, RFC 2328,
           DOI 10.17487/RFC2328, April 1998,
           <https://www.rfc-editor.org/info/rfc2328>.

[RFC3906]  Shen, N. and H. Smit, "Calculating Interior Gateway
           Protocol (IGP) Routes Over Traffic Engineering Tunnels",
           RFC 3906, DOI 10.17487/RFC3906, October 2004,
           <https://www.rfc-editor.org/info/rfc3906>.

[RFC4461]  Yasukawa, S., Ed., "Signaling Requirements for Point-to-
           Multipoint Traffic-Engineered MPLS Label Switched Paths
           (LSPs)", RFC 4461, DOI 10.17487/RFC4461, April 2006,
           <https://www.rfc-editor.org/info/rfc4461>.

[RFC5340]  Coltun, R., Ferguson, D., Moy, J., and A. Lindem, "OSPF
           for IPv6", RFC 5340, DOI 10.17487/RFC5340, July 2008,
           <https://www.rfc-editor.org/info/rfc5340>.

[RFC5838]  Lindem, A., Ed., Mirtorabi, S., Roy, A., Barnes, M., and
           R. Aggarwal, "Support of Address Families in OSPFv3",
           RFC 5838, DOI 10.17487/RFC5838, April 2010,
           <https://www.rfc-editor.org/info/rfc5838>.

[RFC6827]  Malis, A., Ed., Lindem, A., Ed., and D. Papadimitriou,
           Ed., "Automatically Switched Optical Network (ASON)
           Routing for OSPFv2 Protocols", RFC 6827,
           DOI 10.17487/RFC6827, January 2013,
           <https://www.rfc-editor.org/info/rfc6827>.

Acknowledgements ๐Ÿซถ

The authors would like to thank Peter Psenak and Eric Osborne for early discussions, and Acee Lindem for discussing compatibility with ASON extensions. ๐Ÿ™Œ Also, Eric Vyncke, Ben Kaduk, and Roman Danyliw provided useful comments. ๐Ÿ’–

We would also like to thank the authors of RFC 5786 for laying down the foundation for this work. ๐Ÿงฑโœจ

Authors' Addresses ๐Ÿ’Œ

Anton Smirnov
Cisco Systems, Inc.
De Kleetlaan 6a
1831 Diegem
Belgium

Email: as@cisco.com


Alvaro Retana
Futurewei Technologies, Inc.
2330 Central Expressway
Santa Clara, CA 95050
United States of America

Email: alvaro.retana@futurewei.com


Michael Barnes

Email: michael_barnes@usa.net
๐Ÿ“ฆ where this page comes from