rfc9339.original | rfc9339.txt | |||
---|---|---|---|---|
Link State Routing K. Talaulikar, Ed. | Internet Engineering Task Force (IETF) K. Talaulikar, Ed. | |||
Internet-Draft P. Psenak | Request for Comments: 9339 P. Psenak | |||
Intended status: Standards Track Cisco Systems, Inc. | Category: Standards Track Cisco Systems, Inc. | |||
Expires: 13 April 2023 H. Johnston | ISSN: 2070-1721 H. Johnston | |||
AT&T Labs | AT&T Labs | |||
10 October 2022 | December 2022 | |||
OSPF Reverse Metric | OSPF Reverse Metric | |||
draft-ietf-lsr-ospf-reverse-metric-13 | ||||
Abstract | Abstract | |||
This document specifies the extensions to OSPF that enable a router | This document specifies the extensions to OSPF that enable a router | |||
to use link-local signaling to signal the metric that receiving OSPF | to use Link-Local Signaling (LLS) to signal the metric that receiving | |||
neighbor(s) should use for a link to the signaling router. The | OSPF neighbor(s) should use for a link to the signaling router. When | |||
signaling of this reverse metric, to be used on the link to the | used on the link to the signaling router, the signaling of this | |||
signaling router, allows a router to influence the amount of traffic | reverse metric (RM) allows a router to influence the amount of | |||
flowing towards itself and in certain use cases enables routers to | traffic flowing towards itself. In certain use cases, this enables | |||
maintain symmetric metrics on both sides of a link between them. | routers to maintain symmetric metrics on both sides of a link between | |||
them. | ||||
Status of This Memo | Status of This Memo | |||
This Internet-Draft is submitted in full conformance with the | This is an Internet Standards Track document. | |||
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 | This document is a product of the Internet Engineering Task Force | |||
and may be updated, replaced, or obsoleted by other documents at any | (IETF). It represents the consensus of the IETF community. It has | |||
time. It is inappropriate to use Internet-Drafts as reference | received public review and has been approved for publication by the | |||
material or to cite them other than as "work in progress." | Internet Engineering Steering Group (IESG). Further information on | |||
Internet Standards is available in Section 2 of RFC 7841. | ||||
This Internet-Draft will expire on 13 April 2023. | 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/rfc9339. | ||||
Copyright Notice | Copyright Notice | |||
Copyright (c) 2022 IETF Trust and the persons identified as the | Copyright (c) 2022 IETF Trust and the persons identified as the | |||
document authors. All rights reserved. | document authors. All rights reserved. | |||
This document is subject to BCP 78 and the IETF Trust's Legal | This document is subject to BCP 78 and the IETF Trust's Legal | |||
Provisions Relating to IETF Documents (https://trustee.ietf.org/ | Provisions Relating to IETF Documents | |||
license-info) in effect on the date of publication of this document. | (https://trustee.ietf.org/license-info) in effect on the date of | |||
Please review these documents carefully, as they describe your rights | publication of this document. Please review these documents | |||
and restrictions with respect to this document. Code Components | carefully, as they describe your rights and restrictions with respect | |||
extracted from this document must include Revised BSD License text as | to this document. Code Components extracted from this document must | |||
described in Section 4.e of the Trust Legal Provisions and are | include Revised BSD License text as described in Section 4.e of the | |||
provided without warranty as described in the Revised BSD License. | Trust Legal Provisions and are provided without warranty as described | |||
in the Revised BSD License. | ||||
Table of Contents | Table of Contents | |||
1. Introduction . . . . . . . . . . . . . . . . . . . . . . . . 2 | 1. Introduction | |||
1.1. Requirements Language . . . . . . . . . . . . . . . . . . 3 | 1.1. Requirements Language | |||
2. Use Cases . . . . . . . . . . . . . . . . . . . . . . . . . . 3 | 2. Use Cases | |||
2.1. Link Maintenance . . . . . . . . . . . . . . . . . . . . 4 | 2.1. Link Maintenance | |||
2.2. Adaptive Metric Signaling . . . . . . . . . . . . . . . . 4 | 2.2. Adaptive Metric Signaling | |||
3. Solution . . . . . . . . . . . . . . . . . . . . . . . . . . 5 | 3. Solution | |||
4. LLS Reverse Metric TLV . . . . . . . . . . . . . . . . . . . 5 | 4. LLS Reverse Metric TLV | |||
5. LLS Reverse TE Metric TLV . . . . . . . . . . . . . . . . . . 6 | 5. LLS Reverse TE Metric TLV | |||
6. Procedures . . . . . . . . . . . . . . . . . . . . . . . . . 7 | 6. Procedures | |||
7. Operational Guidelines . . . . . . . . . . . . . . . . . . . 9 | 7. Operational Guidelines | |||
8. Backward Compatibility . . . . . . . . . . . . . . . . . . . 10 | 8. Backward Compatibility | |||
9. IANA Considerations . . . . . . . . . . . . . . . . . . . . . 10 | 9. IANA Considerations | |||
10. Security Considerations . . . . . . . . . . . . . . . . . . . 10 | 10. Security Considerations | |||
11. Acknowledgements . . . . . . . . . . . . . . . . . . . . . . 11 | 11. References | |||
12. References . . . . . . . . . . . . . . . . . . . . . . . . . 11 | 11.1. Normative References | |||
12.1. Normative References . . . . . . . . . . . . . . . . . . 11 | 11.2. Informative References | |||
12.2. Informative References . . . . . . . . . . . . . . . . . 12 | Acknowledgements | |||
Authors' Addresses . . . . . . . . . . . . . . . . . . . . . . . 13 | Authors' Addresses | |||
1. Introduction | 1. Introduction | |||
A router running the Open Shortest Path First (OSPFv2) [RFC2328] or | A router running the OSPFv2 [RFC2328] or OSPFv3 [RFC5340] routing | |||
OSPFv3 [RFC5340] routing protocols originates a Router-LSA (Link- | protocols originates a Router-LSA (Link State Advertisement) that | |||
State Advertisement) that describes all its links to its neighbors | describes all its links to its neighbors and includes a metric that | |||
and includes a metric that indicates its "cost" to reach the neighbor | indicates its "cost" to reach the neighbor over that link. Consider | |||
over that link. Consider two routers R1 and R2 that are connected | two routers, R1 and R2, that are connected via a link. In the | |||
via a link. The metric for this link in the direction R1->R2 is | direction R1->R2, the metric for this link is configured on R1. In | |||
configured on R1 and in the direction R2->R1 is configured on R2. | the direction R2->R1, the metric for this link is configured on R2. | |||
Thus, the configuration on R1 influences the traffic that it forwards | Thus, the configuration on R1 influences the traffic that it forwards | |||
towards R2 but does not influence the traffic that it may receive | towards R2, but does not influence the traffic that it may receive | |||
from R2 on that same link. | from R2 on that same link. | |||
This document describes certain use cases where a router is required | This document describes certain use cases where a router is required | |||
to signal what we call the "reverse metric" (RM) to its neighbor to | to signal what we call the "reverse metric" (RM) to its neighbor to | |||
adjust the routing metric in the inbound direction. When R1 signals | adjust the routing metric in the inbound direction. When R1 signals | |||
its reverse metric on its link to R2, then R2 advertises this value | its RM on its link to R2, R2 advertises this value as its metric to | |||
as its metric to R1 in its Router-LSA instead of its locally | R1 in its Router-LSA instead of its locally configured value. Once | |||
configured value. Once this information is part of the topology, | this information is part of the topology, all other routers do their | |||
then all other routers do their computation using this value which | computation using this value. This may result in the desired change | |||
may result in the desired change in the traffic distribution that R1 | in the traffic distribution that R1 wanted to achieve towards itself | |||
wanted to achieve towards itself over the link from R2. | over the link from R2. | |||
This document describes extensions to OSPF Link-Local Signaling (LLS) | This document describes extensions to OSPF LLS [RFC5613] to signal | |||
[RFC5613] to signal OSPF reverse metrics. Section 4 specifies the | OSPF RMs. Section 4 specifies the LLS Reverse Metric TLV and | |||
LLS Reverse Metric TLV and Section 5 specifies the LLS Reverse TE | Section 5 specifies the LLS Reverse TE Metric TLV. The related | |||
Metric TLV. The related procedures are specified in Section 6. | procedures are specified in Section 6. | |||
1.1. Requirements Language | 1.1. Requirements Language | |||
The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | |||
"SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | |||
"OPTIONAL" in this document are to be interpreted as described in BCP | "OPTIONAL" in this document are to be interpreted as described in | |||
14 [RFC2119] [RFC8174] when, and only when, they appear in all | BCP 14 [RFC2119] [RFC8174] when, and only when, they appear in all | |||
capitals, as shown here. | capitals, as shown here. | |||
2. Use Cases | 2. Use Cases | |||
This section describes certain use cases that the OSPF reverse metric | This section describes certain use cases that are addressed by the | |||
helps address. The usage of the OSPF reverse metric need not be | OSPF RM. The usage of the OSPF RM need not be limited to these | |||
limited to these cases; it is intended to be a generic mechanism. | cases; it is intended to be a generic mechanism. | |||
Core Network | Core Network | |||
^ ^ | ^ ^ | |||
| | | | | | |||
V v | V v | |||
+----------+ +----------+ | +----------+ +----------+ | |||
| AGGR1 | | AGGR2 | | | AGGR1 | | AGGR2 | | |||
+----------+ +----------+ | +----------+ +----------+ | |||
^ ^ ^ ^ | ^ ^ ^ ^ | |||
| | | | | | | | | | |||
| +-----------+ | | | +-----------+ | | |||
| | | | | | | | | | |||
| +--------+ | | | | +--------+ | | | |||
v v v v | v v v v | |||
+-----------+ +-----------+ | +-----------+ +-----------+ | |||
| R1 | | RN | | | R1 | | RN | | |||
| Router | ... | Router | | | Router | ... | Router | | |||
+-----------+ +-----------+ | +-----------+ +-----------+ | |||
Figure 1: Reference Dual Hub and Spoke Topology | Figure 1: Reference Dual Hub-and-Spoke Topology | |||
Consider a deployment scenario where, as shown in Figure 1, routers | Consider a deployment scenario, such as the one shown in Figure 1, | |||
R1 through RN are dual-home connected to AGGR1 and AGGR2 that are | where routers R1 through RN are dual-home connected to AGGR1 and | |||
aggregating their traffic towards a core network. | AGGR2 that are aggregating their traffic towards a core network. | |||
2.1. Link Maintenance | 2.1. Link Maintenance | |||
Before network maintenance events are performed on individual links, | Before network maintenance events are performed on individual links, | |||
operators substantially increase (to maximum value) the OSPF metric | operators substantially increase (to maximum value) the OSPF metric | |||
simultaneously on both routers attached to the same link. In doing | simultaneously on both routers attached to the same link. In doing | |||
so, the routers generate new Router LSAs that are flooded throughout | so, the routers generate new Router LSAs that are flooded throughout | |||
the network and cause all routers to shift traffic onto alternate | the network and cause all routers to shift traffic onto alternate | |||
paths (where available) with limited disruption (depending on the | paths (where available) with limited disruption (depending on the | |||
network topology) to in-flight communications by applications or end- | network topology) to in-flight communications by applications or end | |||
users. When performed successfully, this allows the operator to | users. When performed successfully, this allows the operator to | |||
perform disruptive augmentation, fault diagnosis, or repairs on a | perform disruptive augmentation, fault diagnosis, or repairs on a | |||
link in a production network. | link in a production network. | |||
In deployments such as a hub and spoke topology as shown in Figure 1, | In deployments such as a hub-and-spoke topology (as shown in | |||
it is quite common to have routers with several hundred interfaces | Figure 1), it is quite common to have routers with several hundred | |||
and individual interfaces that move anywhere from several hundred | interfaces and individual interfaces that move anywhere from several | |||
gigabits/second to terabits/second of traffic. The challenge in such | hundred gigabits to terabits per second of traffic. The challenge in | |||
conditions is that the operator must accurately identify the same | such conditions is that the operator must accurately identify the | |||
point-to-point link on two separate devices to increase (and | same point-to-point (P2P) link on two separate devices to increase | |||
afterward decrease) the OSPF metric appropriately and to do so in a | (and afterward decrease) the OSPF metric appropriately and to do so | |||
coordinated manner. When considering maintenance for PE-CE links | in a coordinated manner. When considering maintenance for PE-CE | |||
when many CE routers connect to a PE router, an additional challenge | links when many Customer Edge (CE) routers connect to a Provider Edge | |||
related to coordinating access to the CE routers may arise when the | (PE) router, an additional challenge related to coordinating access | |||
CEs are not managed by the provider. | to the CE routers may arise when the CEs are not managed by the | |||
provider. | ||||
The OSPF reverse metric mechanism helps address these challenges. | The OSPF RM mechanism helps address these challenges. The operator | |||
The operator can set the link on one of the routers (generally the | can set the link on one of the routers (generally the hub, like AGGR1 | |||
hub like AGGR1 or a PE) to a "maintenance mode". This causes the | or a PE) to a "maintenance mode". This causes the router to | |||
router to advertise the maximum metric for that link and to signal | advertise the maximum metric for that link and to signal its neighbor | |||
its neighbor on the same link to advertise maximum metric via the | on the same link to advertise maximum metric via the reverse metric | |||
reverse metric signaling mechanism. Once the link maintenance is | signaling mechanism. Once the link maintenance is completed and the | |||
completed and the "maintenance mode" is turned off, the router | "maintenance mode" is turned off, the router returns to using its | |||
returns to using its provisioned metric for the link and stops the | provisioned metric for the link and stops the signaling of RM on that | |||
signaling of reverse metric on that link resulting in its neighbor | link, resulting in its neighbor also reverting to its provisioned | |||
also reverting to its provisioned metric for that link. | metric for that link. | |||
2.2. Adaptive Metric Signaling | 2.2. Adaptive Metric Signaling | |||
In Figure 1 above, consider that at some point in time T, AGGR1 loses | In Figure 1, consider that at some point in time (T), AGGR1 loses | |||
some of its capacity towards the core. This may result in a | some of its capacity towards the core. This may result in a | |||
congestion issue towards the core on AGGR1 that it needs to mitigate | congestion issue towards the core on AGGR1 that it needs to mitigate | |||
by redirecting some of its traffic load to transit via AGGR2 which is | by redirecting some of its traffic load to transit via AGGR2, which | |||
not experiencing a similar issue. Altering its link metric towards | is not experiencing a similar issue. Altering its link metric | |||
the R1-RN routers would influence the traffic from the core towards | towards the R1-RN routers would influence the traffic from the core | |||
R1-RN but not the other way around as desired. | towards R1-RN, but not the other way around as desired. | |||
In such a scenario, the AGGR1 router could signal an incremental OSPF | In such a scenario, the AGGR1 router could signal an incremental OSPF | |||
reverse metric to some or all the R1-RN routers. When the R1-RN | RM to some or all the R1-RN routers. When the R1-RN routers add this | |||
routers add this signaled reverse metric offset to the provisioned | signaled RM offset to the provisioned metric on their links towards | |||
metric on their links towards AGGR1, then the path via AGGR2 becomes | AGGR1, the path via AGGR2 becomes a better path. This causes traffic | |||
a better path causing traffic towards the core to be diverted away | towards the core to be diverted away from AGGR1. Note that the RM | |||
from AGGR1. Note that the reverse metric mechanism allows such | mechanism allows such adaptive metric changes to be applied on the | |||
adaptive metric changes to be applied on the AGGR1 as opposed to | AGGR1 as opposed to being provisioned on a possibly large number of | |||
being provisioned on a possibly large number of R1-RN routers. | R1-RN routers. | |||
The reverse metric mechanism may be similarly applied between spine | The RM mechanism may be similarly applied between spine and leaf | |||
and leaf nodes in a Clos network [CLOS] topology deployment. | nodes in a Clos network [CLOS] topology deployment. | |||
3. Solution | 3. Solution | |||
To address the use cases described earlier and to allow an OSPF | To address the use cases described earlier and to allow an OSPF | |||
router to indicate its reverse metric for a specific link to its | router to indicate its RM for a specific link to its neighbor(s), | |||
neighbor(s), this document proposes to extend OSPF link-local | this document proposes to extend OSPF link-local signaling to signal | |||
signaling to signal the Reverse Metric TLV in OSPF Hello packets. | the Reverse Metric TLV in OSPF Hello packets. This ensures that the | |||
This ensures that the RM signaling is scoped only to each specific | RM signaling is scoped only to a specific link. The router continues | |||
link individually. The router continues to include the Reverse | to include the Reverse Metric TLV in its Hello packets on the link | |||
Metric TLV in its Hello packets on the link for as long as it needs | for as long as it needs its neighbor to use that metric value towards | |||
its neighbor to use that metric value towards itself. Further | itself. Further details of the procedures involved are specified in | |||
details of the procedures involved are specified in Section 6. | Section 6. | |||
The reverse metric mechanism specified in this document applies only | The RM mechanism specified in this document applies only to P2P, | |||
for point-to-point, point-to-multipoint, and hybrid broadcast point- | Point-to-Multipoint (P2MP), and hybrid-broadcast-P2MP ([RFC6845]) | |||
to-multipoint ( [RFC6845]) links. It is not applicable for broadcast | links. It is not applicable for broadcast or Non-Broadcast Multi- | |||
or non-broadcast-multi-access (NBMA) links since the same objective | Access (NBMA) links since the same objective is achieved there using | |||
is achieved there using the OSPF Two-Part Metric mechanism [RFC8042] | the OSPF Two-Part Metric mechanism [RFC8042] for OSPFv2. The OSPFv3 | |||
for OSPFv2. The OSPFv3 solution for broadcast or NBMA links is | solution for broadcast or NBMA links is outside the scope of this | |||
outside the scope of this document. | document. | |||
4. LLS Reverse Metric TLV | 4. LLS Reverse Metric TLV | |||
The Reverse Metric TLV is a new LLS TLV. It has following format: | The Reverse Metric TLV is a new LLS TLV. It has following format: | |||
0 1 2 3 | 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 | 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 | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| MTID | Flags |O|H| Reverse Metric | | | MTID | Flags |O|H| Reverse Metric | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | ||||
Figure 2: Reverse Metric TLV | Figure 2: Reverse Metric TLV | |||
Type: 19 | where: | |||
Length: 4 octets | Type: 19 | |||
MTID : the multi-topology identifier of the link ([RFC4915]) | Length: 4 octets | |||
Flags: 1 octet, the following flags are defined currently and the | MTID: The multi-topology identifier of the link ([RFC4915]). | |||
rest MUST be set to 0 on transmission and ignored on reception. | ||||
* H (0x1) : Indicates that the neighbor should use the value only | Flags: 1 octet. The following flags are defined currently and the | |||
if it is higher than its provisioned metric value for the link. | rest MUST be set to 0 on transmission and ignored on reception: | |||
* O (0x2) : Indicates that the reverse metric value provided is | H (0x1): Indicates that the neighbor should use the value only if | |||
an offset that is to be added to the provisioned metric. | it is higher than its provisioned metric value for the link. | |||
Reverse Metric: unsigned integer of 2 octets that carries the | O (0x2): Indicates that the RM value provided is an offset that | |||
value or offset of reverse metric to replace or be added to the | is to be added to the provisioned metric. | |||
provisioned link metric. | ||||
Reverse Metric: Unsigned integer of 2 octets that carries the value | ||||
or offset of RM to replace or be added to the provisioned link | ||||
metric. | ||||
5. LLS Reverse TE Metric TLV | 5. LLS Reverse TE Metric TLV | |||
The Reverse TE Metric TLV is a new LLS TLV. It has the following | The Reverse TE Metric TLV is a new LLS TLV. It has the following | |||
format: | format: | |||
0 1 2 3 | 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 | 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 | Length | | | Type | Length | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Flags |O|H| RESERVED | | | Flags |O|H| RESERVED | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| Reverse TE Metric | | | Reverse TE Metric | | |||
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
where: | ||||
Figure 3: Reverse TE Metric TLV | Figure 3: Reverse TE Metric TLV | |||
Type: 20 | where: | |||
Length: 4 octets | Type: 20 | |||
Flags: 1 octet, the following flags are defined currently and the | Length: 4 octets | |||
rest MUST be set to 0 on transmission and ignored on reception. | ||||
* H (0x1) : Indicates that the neighbor should use the value only | Flags: 1 octet. The following flags are defined currently and the | |||
if it is higher than its provisioned TE metric value for the | rest MUST be set to 0 on transmission and ignored on reception: | |||
link. | ||||
* O (0x2) : Indicates that the reverse TE metric value provided | H (0x1): Indicates that the neighbor should use the value only if | |||
is an offset that is to be added to the provisioned TE metric. | it is higher than its provisioned TE metric value for the link. | |||
RESERVED: 24-bit field. MUST be set to 0 on transmission and MUST | O (0x2): Indicates that the reverse TE metric value provided is | |||
an offset that is to be added to the provisioned TE metric. | ||||
RESERVED: 24-bit field. MUST be set to 0 on transmission and MUST | ||||
be ignored on receipt. | be ignored on receipt. | |||
Reverse TE Metric: unsigned integer of 4 octets that carries the | Reverse TE Metric: Unsigned integer of 4 octets that carries the | |||
value or offset of reverse traffic engineering metric to replace | value or offset of reverse traffic engineering metric to replace | |||
or to be added to the provisioned TE metric of the link. | or to be added to the provisioned TE metric of the link. | |||
6. Procedures | 6. Procedures | |||
When a router needs to signal an RM value that its neighbor(s) should | When a router needs to signal an RM value that its neighbor(s) should | |||
use for a link towards the router, it includes the Reverse Metric TLV | use for a link towards the router, it includes the Reverse Metric TLV | |||
in the LLS block of its Hello packets sent on that link and continues | in the LLS block of its Hello packets sent on that link and continues | |||
to include this TLV for as long as it needs its neighbor to use this | to include this TLV for as long as the router needs its neighbor to | |||
value. The mechanisms used to determine the value to be used for the | use this value. The mechanisms used to determine the value to be | |||
RM is specific to the implementation and use case and is outside the | used for the RM is specific to the implementation and use case, and | |||
scope of this document. For example, the RM value may be derived | is outside the scope of this document. For example, the RM value may | |||
based on the router's link bandwidth with respect to a reference | be derived based on the router's link bandwidth with respect to a | |||
bandwidth. | reference bandwidth. | |||
A router receiving a Hello packet from its neighbor that contains the | A router receiving a Hello packet from its neighbor that contains the | |||
Reverse Metric TLV on a link MUST use the RM value to derive the | Reverse Metric TLV on a link MUST use the RM value to derive the | |||
metric for the link to the advertising router in its Router-LSA when | metric for the link to the advertising router in its Router-LSA when | |||
the reverse metric feature is enabled (refer Section 7 for details on | the RM feature is enabled (refer to Section 7 for details on | |||
enablement of RM). When the O flag is set, the metric value to be | enablement of RM). When the O flag is set, the metric value to be | |||
advertised is derived by adding the value in the TLV to the | advertised is derived by adding the value in the TLV to the | |||
provisioned metric for the link. The metric value 0xffff (maximum | provisioned metric for the link. The metric value 0xffff (maximum | |||
interface cost) is advertised when the sum exceeds the maximum | interface cost) is advertised when the sum exceeds the maximum | |||
interface cost. When the O flag is clear, the metric value to be | interface cost. When the O flag is clear, the metric value to be | |||
advertised is copied directly from the value in the TLV. When the H | advertised is copied directly from the value in the TLV. When the H | |||
flag is set and the O flag is clear, the metric value to be | flag is set and the O flag is clear, the metric value to be | |||
advertised is copied directly from the value in the TLV only when the | advertised is copied directly from the value in the TLV only when the | |||
RM value signaled is higher than the provisioned metric for the link. | RM value signaled is higher than the provisioned metric for the link. | |||
The H and O flags are mutually exclusive and the H flag is ignored | The H and O flags are mutually exclusive; the H flag is ignored when | |||
when the O flag is set. | the O flag is set. | |||
A router stops including the Reverse Metric TLV in its Hello packets | A router stops including the Reverse Metric TLV in its Hello packets | |||
when it needs its neighbors to go back to using their own provisioned | when it needs its neighbors to go back to using their own provisioned | |||
metric values. When this happens, a router that had modified its | metric values. When this happens, a router that has modified its | |||
metric in response to receiving a Reverse Metric TLV from its | metric in response to receiving a Reverse Metric TLV from its | |||
neighbor MUST revert to using its provisioned metric value. | neighbor MUST revert to using its provisioned metric value. | |||
In certain scenarios, two or more routers may start the RM signaling | In certain scenarios, two or more routers may start the RM signaling | |||
on the same link. This could create collision scenarios. The | on the same link. This could create collision scenarios. The | |||
following guidelines are RECOMMENDED for adoption to ensure that | following guidelines are RECOMMENDED for adoption to ensure that | |||
there is no instability in the network due to churn in their metric | there is no instability in the network due to churn in their metric | |||
caused by the signaling of RM: | caused by the signaling of RM: | |||
* The RM value that is signaled by a router to its neighbor should | * The RM value that is signaled by a router to its neighbor should | |||
not be derived from the reverse metric being signaled by any of | not be derived from the RM being signaled by any of its neighbors | |||
its neighbors on any of its links. | on any of its links. | |||
* The RM value that is signaled by a router should not be derived | * The RM value that is signaled by a router to its neighbor should | |||
from its metric which has been modified on account of an RM | not be derived from the RM being signaled by any of its neighbors | |||
signaled from any of its neighbors on any of its links. RM | on any of its links. RM signaling from other routers can affect | |||
signaling from other routers can affect the router's metric | the router's metric advertised in its Router-LSA. When deriving | |||
advertised in its Router-LSA. When deriving the RM values that a | the RM values that a router signals to its neighbors, it should | |||
router signals to its neighbors, it should use its provisioned | use its provisioned local metric values not influenced by any RM | |||
local metric values not influenced by any RM signaling. | signaling. | |||
Based on these guidelines, a router would not start, stop, or change | Based on these guidelines, a router would not start, stop, or change | |||
its RM metric signaling based on the RM metric signaling initiated by | its RM signaling based on the RM signaling initiated by some other | |||
some other routers. Based on the local configuration policy, each | routers. Based on the local configuration policy, each router would | |||
router would end up accepting the RM value signaled by its neighbor | end up accepting the RM value signaled by its neighbor and there | |||
and there would be no churn of metrics on the link or the network on | would be no churn of metrics on the link or the network on account of | |||
account of RM signaling. | RM signaling. | |||
In certain use cases when symmetrical metrics are desired (e.g., when | In certain use cases when symmetrical metrics are desired (e.g., when | |||
metrics are derived based on link bandwidth), the RM signaling can be | metrics are derived based on link bandwidth), the RM signaling can be | |||
enabled on routers on either end of a link. In other use cases (as | enabled on routers on either end of a link. In other use cases (as | |||
described in Section 2.1), RM signaling may need to be enabled only | described in Section 2.1), RM signaling may need to be enabled only | |||
on the router at one end of a link. | on the router at one end of a link. | |||
When using multi-topology routing with OSPF [RFC4915], a router MAY | When using multi-topology routing with OSPF [RFC4915], a router MAY | |||
include multiple instances of the Reverse Metric TLV in the LLS block | include multiple instances of the Reverse Metric TLV in the LLS block | |||
of its Hello packet - one for each of the topologies for which it | of its Hello packet (one for each of the topologies for which it | |||
desires to signal the reverse metric. A router MUST NOT include more | desires to signal the RM). A router MUST NOT include more than one | |||
than one instance of this TLV per MTID. If more than a single | instance of this TLV per MTID. If more than a single instance of | |||
instance of this TLV per MTID is present, the receiving router MUST | this TLV per MTID is present, the receiving router MUST only use the | |||
only use the value from the first instance and ignore the others. | value from the first instance and ignore the others. | |||
In certain scenarios, the OSPF router may also require the | In certain scenarios, the OSPF router may also require the | |||
modification of the TE metric being advertised by its neighbor router | modification of the TE metric being advertised by its neighbor router | |||
towards itself in the inbound direction. The Reverse TE Metric TLV, | towards itself in the inbound direction. Using similar procedures to | |||
using similar procedures to those described above, MAY be used to | those described above, the Reverse TE Metric TLV MAY be used to | |||
signal the reverse TE metric for router links. The neighbor MUST use | signal the reverse TE metric for router links. The neighbor MUST use | |||
the reverse TE metric value to derive the TE metric advertised in the | the reverse TE metric value to derive the TE metric advertised in the | |||
TE Metric sub-TLV of the Link TLV in its TE Opaque LSA [RFC3630] when | TE Metric sub-TLV of the Link TLV in its TE Opaque LSA [RFC3630] when | |||
the reverse metric feature is enabled (refer Section 7 for details on | the reverse metric feature is enabled (refer Section 7 for details on | |||
enablement of RM). The rules for doing so are analogous to those | enablement of RM). The rules for doing so are analogous to those | |||
given above for the Router-LSA. | given above for the Router-LSA. | |||
7. Operational Guidelines | 7. Operational Guidelines | |||
The signaled reverse metric does not alter the OSPF metric parameters | The signaled RM does not alter the OSPF metric parameters stored in a | |||
stored in a receiving router's persistent provisioning database. | receiving router's persistent provisioning database. | |||
Routers that receive a reverse metric advertisement SHOULD log an | Routers that receive a RM advertisement SHOULD log an event to notify | |||
event to notify system administration. This will assist in rapidly | system administration. This will assist in rapidly identifying the | |||
identifying the node in the network that is advertising an OSPF | node in the network that is advertising an OSPF metric or TE metric | |||
metric or TE metric different from that which is configured locally | different from what is configured locally on the device. | |||
on the device. | ||||
When the link TE metric is raised to the maximum value, either due to | When the link TE metric is raised to the maximum value, either due to | |||
the reverse metric mechanism or by explicit user configuration, this | the RM mechanism or by explicit user configuration, this SHOULD | |||
SHOULD immediately trigger the CSPF (Constrained Shortest Path First) | immediately trigger the CSPF (Constrained Shortest Path First) | |||
recalculation to move the TE traffic away from that link. | recalculation to move the TE traffic away from that link. | |||
An implementation MUST NOT signal reverse metric to neighbors by | An implementation MUST NOT signal RM to neighbors by default and MUST | |||
default and MUST provide a configuration option to enable the | provide a configuration option to enable the signaling of RM on | |||
signaling of reverse metric on specific links. An implementation | specific links. An implementation MUST NOT accept the RM from its | |||
MUST NOT accept the RM from its neighbors by default. An | neighbors by default. An implementation MAY provide configuration to | |||
implementation MAY provide configuration to accept the RM globally on | accept the RM globally on the device, or per area, but an | |||
the device, or per area, but an implementation MUST support | implementation MUST support configuration to enable/disable | |||
configuration to enable/disable acceptance of the RM from neighbors | acceptance of the RM from neighbors on specific links. This is to | |||
on specific links. This is to safeguard against inadvertent use of | safeguard against inadvertent use of RM. | |||
RM. | ||||
For the use case in Section 2.1, it is RECOMMENDED that the network | For the use case in Section 2.1, it is RECOMMENDED that the network | |||
operator limits the period of enablement of the reverse metric | operator limit the period of enablement of the reverse metric | |||
mechanism to be only the duration of a network maintenance window. | mechanism to be only the duration of a network maintenance window. | |||
[I-D.ietf-ospf-yang] specifies the base OSPF YANG model. The | [RFC9129] specifies the base OSPF YANG data model. The required | |||
required configuration and operational elements for this feature are | configuration and operational elements for this feature are expected | |||
expected to be introduced as an augmentation to this base OSPF YANG | to be introduced as an augmentation to this base OSPF YANG data | |||
model. | model. | |||
8. Backward Compatibility | 8. Backward Compatibility | |||
The signaling specified in this document happens at a link-local | The signaling specified in this document happens at a link-local | |||
level between routers on that link. A router that does not support | level between routers on that link. A router that does not support | |||
this specification would ignore the Reverse Metric and Reverse TE | this specification would ignore the Reverse Metric and Reverse TE | |||
Metric LLS TLVs and not update its metric(s) in the other LSAs. As a | Metric LLS TLVs and not update its metric(s) in the other LSAs. As a | |||
result, the behavior would be the same as prior to this | result, the behavior would be the same as prior to this | |||
specification. Therefore, there are no backward compatibility | specification. Therefore, there are no backward compatibility | |||
related issues or considerations that need to be taken care of when | related issues or considerations that need to be taken care of when | |||
implementing this specification. | implementing this specification. | |||
9. IANA Considerations | 9. IANA Considerations | |||
This document allocates code points from the "Link Local Signalling | IANA has registered code points from the "Link Local Signalling TLV | |||
TLV Identifiers" registry in the "Open Shortest Path First (OSPF) | Identifiers (LLS Types)" registry in the "Open Shortest Path First | |||
Link Local Signalling (LLS) - Type/Length/Value Identifiers (TLV)" | (OSPF) Link Local Signalling (LLS) - Type/Length/Value Identifiers | |||
registry group for the TLVs introduced. | (TLV)" registry group for the TLVs introduced in this document as | |||
follows: | ||||
IANA is requested to make permanent the following code points that | ||||
have been assigned via early allocation | ||||
o 19 - Reverse Metric TLV | * 19 - Reverse Metric TLV | |||
o 20 - Reverse TE Metric TLV | * 20 - Reverse TE Metric TLV | |||
10. Security Considerations | 10. Security Considerations | |||
The security considerations for "OSPF Link-Local Signaling" [RFC5613] | The security considerations for "OSPF Link-Local Signaling" [RFC5613] | |||
also apply to the extension described in this document. The usage of | also apply to the extension described in this document. The purpose | |||
the reverse metric TLVs is to alter the metrics used by routers on | of using the reverse metric TLVs is to alter the metrics used by | |||
the link and influence the flow and routing of traffic over the | routers on the link and influence the flow and routing of traffic | |||
network. Hence, modification of the Reverse Metric and Reverse TE | over the network. Hence, modification of the Reverse Metric and | |||
Metric TLVs may result in misrouting of traffic. If authentication | Reverse TE Metric TLVs may result in traffic being misrouted. If | |||
is being used in the OSPFv2 routing domain [RFC5709][RFC7474], then | authentication is being used in the OSPFv2 routing domain | |||
the Cryptographic Authentication TLV [RFC5613] MUST also be used to | [RFC5709][RFC7474], then the Cryptographic Authentication TLV | |||
protect the contents of the LLS block. | [RFC5613] MUST also be used to protect the contents of the LLS block. | |||
A router that is misbehaving or misconfigured, may end up signaling | A router that is misbehaving or misconfigured may end up signaling | |||
varying values of reverse metrics or toggle the state of reverse | varying values of RMs or toggle the state of RM. This can result in | |||
metric. This can result in a neighbor router having to frequently | a neighbor router having to frequently update its Router LSA, causing | |||
update its Router LSA causing network churn and instability despite | network churn and instability despite existing OSPF protocol | |||
existing OSPF protocol mechanisms (e.g., MinLSInterval, and | mechanisms (e.g., MinLSInterval, and [RFC8405]). It is RECOMMENDED | |||
[RFC8405]). It is RECOMMENDED that implementations support the | that implementations support the detection of frequent changes in RM | |||
detection of frequent changes in reverse metric signaling and ignore | signaling and ignore the RM (i.e., revert to using their provisioned | |||
the reverse metric (i.e., revert to using their provisioned metric | metric value) during such conditions. | |||
value) during such conditions. | ||||
The reception of malformed LLS TLVs or sub-TLVs SHOULD be logged, but | The reception of malformed LLS TLVs or sub-TLVs SHOULD be logged, but | |||
such logging MUST be rate-limited to prevent denial-of-service (DoS) | such logging MUST be rate-limited to prevent Denial of Service (DoS) | |||
attacks. | attacks. | |||
11. Acknowledgements | 11. References | |||
The authors would like to thanks Jay Karthik for his contributions to | ||||
the use cases and the review of the solution. | ||||
The authors would like to thank Les Ginsberg, Aijun Wang, Gyan | ||||
Mishra, Matthew Bocci, Thomas Fossati, and Steve Hanna for their | ||||
review and feedback on this document. The authors would also like to | ||||
thank Acee Lindem for this detailed shepherd's review and comments on | ||||
this document. The authors would also like to thank John Scudder for | ||||
his detailed AD review and suggestions to improve this document. | ||||
The document leverages the concept of Reverse Metric for IS-IS, its | ||||
related use cases, and applicability aspects from [RFC8500]. | ||||
12. References | ||||
12.1. Normative References | 11.1. Normative References | |||
[RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | [RFC2119] Bradner, S., "Key words for use in RFCs to Indicate | |||
Requirement Levels", BCP 14, RFC 2119, | Requirement Levels", BCP 14, RFC 2119, | |||
DOI 10.17487/RFC2119, March 1997, | DOI 10.17487/RFC2119, March 1997, | |||
<https://www.rfc-editor.org/info/rfc2119>. | <https://www.rfc-editor.org/info/rfc2119>. | |||
[RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, | [RFC2328] Moy, J., "OSPF Version 2", STD 54, RFC 2328, | |||
DOI 10.17487/RFC2328, April 1998, | DOI 10.17487/RFC2328, April 1998, | |||
<https://www.rfc-editor.org/info/rfc2328>. | <https://www.rfc-editor.org/info/rfc2328>. | |||
skipping to change at page 12, line 9 ¶ | skipping to change at line 487 ¶ | |||
[RFC5613] Zinin, A., Roy, A., Nguyen, L., Friedman, B., and D. | [RFC5613] Zinin, A., Roy, A., Nguyen, L., Friedman, B., and D. | |||
Yeung, "OSPF Link-Local Signaling", RFC 5613, | Yeung, "OSPF Link-Local Signaling", RFC 5613, | |||
DOI 10.17487/RFC5613, August 2009, | DOI 10.17487/RFC5613, August 2009, | |||
<https://www.rfc-editor.org/info/rfc5613>. | <https://www.rfc-editor.org/info/rfc5613>. | |||
[RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | [RFC8174] Leiba, B., "Ambiguity of Uppercase vs Lowercase in RFC | |||
2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | 2119 Key Words", BCP 14, RFC 8174, DOI 10.17487/RFC8174, | |||
May 2017, <https://www.rfc-editor.org/info/rfc8174>. | May 2017, <https://www.rfc-editor.org/info/rfc8174>. | |||
12.2. Informative References | 11.2. Informative References | |||
[CLOS] Clos, C., "A Study of Non-Blocking Switching Networks: | ||||
Bell System Technical Journal Vol. 32(2)", March 1953. | ||||
[I-D.ietf-ospf-yang] | [CLOS] Clos, C., "A study of non-blocking switching networks", | |||
Yeung, D., Qu, Y., Zhang, J., Chen, I., and A. Lindem, | The Bell System Technical Journal, Vol. 32, Issue 2, | |||
"YANG Data Model for OSPF Protocol", Work in Progress, | DOI 10.1002/j.1538-7305.1953.tb01433.x, March 1953, | |||
Internet-Draft, draft-ietf-ospf-yang-29, 17 October 2019, | <https://doi.org/10.1002/j.1538-7305.1953.tb01433.x>. | |||
<https://www.ietf.org/archive/id/draft-ietf-ospf-yang- | ||||
29.txt>. | ||||
[RFC4915] Psenak, P., Mirtorabi, S., Roy, A., Nguyen, L., and P. | [RFC4915] Psenak, P., Mirtorabi, S., Roy, A., Nguyen, L., and P. | |||
Pillay-Esnault, "Multi-Topology (MT) Routing in OSPF", | Pillay-Esnault, "Multi-Topology (MT) Routing in OSPF", | |||
RFC 4915, DOI 10.17487/RFC4915, June 2007, | RFC 4915, DOI 10.17487/RFC4915, June 2007, | |||
<https://www.rfc-editor.org/info/rfc4915>. | <https://www.rfc-editor.org/info/rfc4915>. | |||
[RFC5709] Bhatia, M., Manral, V., Fanto, M., White, R., Barnes, M., | [RFC5709] Bhatia, M., Manral, V., Fanto, M., White, R., Barnes, M., | |||
Li, T., and R. Atkinson, "OSPFv2 HMAC-SHA Cryptographic | Li, T., and R. Atkinson, "OSPFv2 HMAC-SHA Cryptographic | |||
Authentication", RFC 5709, DOI 10.17487/RFC5709, October | Authentication", RFC 5709, DOI 10.17487/RFC5709, October | |||
2009, <https://www.rfc-editor.org/info/rfc5709>. | 2009, <https://www.rfc-editor.org/info/rfc5709>. | |||
skipping to change at page 13, line 9 ¶ | skipping to change at line 528 ¶ | |||
[RFC8405] Decraene, B., Litkowski, S., Gredler, H., Lindem, A., | [RFC8405] Decraene, B., Litkowski, S., Gredler, H., Lindem, A., | |||
Francois, P., and C. Bowers, "Shortest Path First (SPF) | Francois, P., and C. Bowers, "Shortest Path First (SPF) | |||
Back-Off Delay Algorithm for Link-State IGPs", RFC 8405, | Back-Off Delay Algorithm for Link-State IGPs", RFC 8405, | |||
DOI 10.17487/RFC8405, June 2018, | DOI 10.17487/RFC8405, June 2018, | |||
<https://www.rfc-editor.org/info/rfc8405>. | <https://www.rfc-editor.org/info/rfc8405>. | |||
[RFC8500] Shen, N., Amante, S., and M. Abrahamsson, "IS-IS Routing | [RFC8500] Shen, N., Amante, S., and M. Abrahamsson, "IS-IS Routing | |||
with Reverse Metric", RFC 8500, DOI 10.17487/RFC8500, | with Reverse Metric", RFC 8500, DOI 10.17487/RFC8500, | |||
February 2019, <https://www.rfc-editor.org/info/rfc8500>. | February 2019, <https://www.rfc-editor.org/info/rfc8500>. | |||
[RFC9129] Yeung, D., Qu, Y., Zhang, Z., Chen, I., and A. Lindem, | ||||
"YANG Data Model for the OSPF Protocol", RFC 9129, | ||||
DOI 10.17487/RFC9129, October 2022, | ||||
<https://www.rfc-editor.org/info/rfc9129>. | ||||
Acknowledgements | ||||
The authors would like to thank: | ||||
* Jay Karthik for his contributions to the use cases and the review | ||||
of the solution. | ||||
* Les Ginsberg, Aijun Wang, Gyan Mishra, Matthew Bocci, Thomas | ||||
Fossati, and Steve Hanna for their review and feedback. | ||||
* Acee Lindem for a detailed shepherd's review and comments. | ||||
* John Scudder for his detailed AD review and suggestions for | ||||
improvement. | ||||
The document leverages the concept of RM for IS-IS, its related use | ||||
cases, and applicability aspects from [RFC8500]. | ||||
Authors' Addresses | Authors' Addresses | |||
Ketan Talaulikar (editor) | Ketan Talaulikar (editor) | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
India | India | |||
Email: ketant.ietf@gmail.com | Email: ketant.ietf@gmail.com | |||
Peter Psenak | Peter Psenak | |||
Cisco Systems, Inc. | Cisco Systems, Inc. | |||
Apollo Business Center | Apollo Business Center | |||
Mlynske nivy 43 | Mlynske nivy 43 | |||
821 09 Bratislava | 821 09 Bratislava | |||
Slovakia | Slovakia | |||
Email: ppsenak@cisco.com | Email: ppsenak@cisco.com | |||
Hugh Johnston | Hugh Johnston | |||
AT&T Labs | AT&T Labs | |||
United States of America | United States of America | |||
Email: hugh_johnston@labs.att.com | Email: hugh.johnston@att.com | |||
End of changes. 69 change blocks. | ||||
261 lines changed or deleted | 257 lines changed or added | |||
This html diff was produced by rfcdiff 1.48. |