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