| rfc8770xml2.original.xml | rfc8770.xml | |||
|---|---|---|---|---|
| <?xml version='1.0' encoding='utf-8'?> | <?xml version='1.0' encoding='utf-8'?> | |||
| <!DOCTYPE rfc SYSTEM "rfc2629.dtd" [ | <!DOCTYPE rfc SYSTEM "rfc2629-xhtml.ent"> | |||
| <!ENTITY RFC2119 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | <rfc xmlns:xi="http://www.w3.org/2001/XInclude" submissionType="IETF" | |||
| C.2119.xml"> | consensus="true" docName="draft-ietf-ospf-ospfv2-hbit-12" number="8770" cat | |||
| <!ENTITY RFC2328 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | egory="std" updates="6987" ipr="trust200902" obsoletes="" xml:lang="en" sortRefs | |||
| C.2328.xml"> | ="true" symRefs="true" tocInclude="true" version="3"> | |||
| <!ENTITY RFC6987 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | <!-- xml2rfc v2v3 conversion 2.39.0 --> | |||
| C.6987.xml"> | <!-- Generated by id2xml 1.5.0 on 2020-02-12T16:52:09Z --> | |||
| <!ENTITY RFC7770 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | <front> | |||
| C.7770.xml"> | <title>Host Router Support for OSPFv2</title> | |||
| <!ENTITY RFC8174 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | <seriesInfo name="RFC" value="8770"/> | |||
| C.8174.xml"> | <author fullname="Keyur Patel" initials="K." surname="Patel"> | |||
| <!ENTITY I-D.ietf-idr-bgp-optimal-route-reflection SYSTEM "https://xml2rfc.ietf. | <organization>Arrcus</organization> | |||
| org/public/rfc/bibxml3/reference.I-D.draft-ietf-idr-bgp-optimal-route-reflection | <address> | |||
| -19.xml"> | <email>keyur@arrcus.com</email> | |||
| <!ENTITY RFC3101 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | </address> | |||
| C.3101.xml"> | </author> | |||
| <!ENTITY RFC5340 SYSTEM "https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RF | <author fullname="Padma Pillay-Esnault" initials="P." surname="Pillay-Esnaul | |||
| C.5340.xml"> | t"> | |||
| ]> | <organization>PPE Consulting</organization> | |||
| <rfc submissionType="IETF" docName="draft-ietf-ospf-ospfv2-hbit-12" category="st | <address> | |||
| d" updates="6987" ipr="trust200902"> | <email>padma.ietf@gmail.com</email> | |||
| <!-- Generated by id2xml 1.5.0 on 2020-02-12T16:52:09Z --> | </address> | |||
| <?rfc compact="yes"?> | </author> | |||
| <?rfc text-list-symbols="o*+-"?> | <author fullname="Manish Bhardwaj" initials="M." surname="Bhardwaj"> | |||
| <?rfc subcompact="no"?> | <organization>Cisco Systems</organization> | |||
| <?rfc sortrefs="yes"?> | <address> | |||
| <?rfc symrefs="yes"?> | <postal> | |||
| <?rfc strict="yes"?> | <street>170 W. Tasman Drive</street> | |||
| <?rfc toc="yes"?> | <city>San Jose</city> | |||
| <front> | <region>CA</region> | |||
| <title>Host Router Support for OSPFv2</title> | <code>95134</code> | |||
| <author fullname="Keyur Patel" initials="K." surname="Patel"> | <country>United States of America</country> | |||
| <organization>Arrcus</organization> | </postal> | |||
| <address><email>keyur@arrcus.com</email> | <email>manbhard@cisco.com</email> | |||
| </address> | </address> | |||
| </author> | </author> | |||
| <author fullname="Serpil Bayraktar" initials="S." surname="Bayraktar"> | ||||
| <author fullname="Padma Pillay-Esnault" initials="P." surname="Pillay-Esn | <organization>Cisco Systems</organization> | |||
| ault"> | <address> | |||
| <organization>PPE Consulting</organization> | <postal> | |||
| <address><email>padma.ietf@gmail.com</email> | <street>170 W. Tasman Drive</street> | |||
| </address> | <city>San Jose</city> | |||
| </author> | <region>CA</region> | |||
| <code>95134</code> | ||||
| <author fullname="Manish Bhardwaj" initials="M." surname="Bhardwaj"> | <country>United States of America</country> | |||
| <organization>Cisco Systems</organization> | </postal> | |||
| <address><postal><street>170 W. Tasman Drive</street> | <email>serpil@cisco.com</email> | |||
| <street>San Jose, CA 95134</street> | </address> | |||
| <street>USA</street> | </author> | |||
| </postal> | <date month="April" year="2020"/> | |||
| <email>manbhard@cisco.com</email> | ||||
| </address> | ||||
| </author> | ||||
| <author fullname="Serpil Bayraktar" initials="S." surname="Bayraktar"> | <keyword>non-transit</keyword> | |||
| <organization>Cisco Systems</organization> | ||||
| <address><postal><street>170 W. Tasman Drive</street> | ||||
| <street>San Jose, CA 95134</street> | ||||
| <street>USA</street> | ||||
| </postal> | ||||
| <email>serpil@cisco.com</email> | ||||
| </address> | ||||
| </author> | ||||
| <date day="18" month="December" year="2019"/> | <abstract> | |||
| <workgroup>OSPF</workgroup> | <t> | |||
| <abstract><t> | ||||
| The Open Shortest Path First Version 2 (OSPFv2) protocol does not | The Open Shortest Path First Version 2 (OSPFv2) protocol does not | |||
| have a mechanism for a node to repel transit traffic if it is on the | have a mechanism for a node to repel transit traffic if it is on the | |||
| shortest path. This document defines a bit (Host-bit) that enables a | shortest path. This document defines a bit called the Host-bit (H-bit). This | |||
| router to advertise that it is a non-transit router. It also | bit enables a | |||
| router to advertise that it is a non-transit router. This document also | ||||
| describes the changes needed to support the H-bit in the domain. In | describes the changes needed to support the H-bit in the domain. In | |||
| addition, this document updates RFC 6987 to advertise type-2 External | addition, this document updates RFC 6987 to advertise Type 2 External | |||
| and Not-So-Stubby-Area (NSSA) Link State Advertisements (LSAs) with a | and Not-So-Stubby Area (NSSA) Link State Advertisements (LSAs) | |||
| high cost in order to repel traffic effectively.</t> | (RFC 3101) with a high cost in order to repel traffic effectively.</t> | |||
| </abstract> | ||||
| </abstract> | </front> | |||
| </front> | <middle> | |||
| <section anchor="sect-1" numbered="true" toc="default"> | ||||
| <middle> | <name>Introduction</name> | |||
| <section title="Introduction" anchor="sect-1"><t> | <t> | |||
| The OSPFv2 protocol specifies a Shortest Path First (SPF) algorithm | The OSPFv2 protocol specifies a Shortest Path First (SPF) algorithm | |||
| that identifies transit vertices based on their adjacencies. | that identifies transit vertices based on their adjacencies. | |||
| Therefore, OSPFv2 does not have a mechanism to prevent traffic | Therefore, OSPFv2 does not have a mechanism to prevent traffic | |||
| transiting a participating node if it is a transit vertex in the only | transiting a participating node if it is a transit vertex in the only | |||
| existing or shortest path to the destination. The use of metrics to | existing or shortest path to the destination. The use of metrics to | |||
| make the node undesirable can help to repel traffic only if an | make the node undesirable can help to repel traffic only if an | |||
| alternative better route exists.</t> | alternative better route exists.</t> | |||
| <t> | ||||
| <t> | ||||
| A mechanism to move traffic away from the shortest path is | A mechanism to move traffic away from the shortest path is | |||
| particularly useful for a number of use cases:</t> | particularly useful for a number of use cases:</t> | |||
| <ol spacing="normal" type="1"> | ||||
| <t><list style="numbers"><t>To gracefully isolate a router to avoid black | <li>Graceful isolation of a router, to avoid blackhole scenarios when | |||
| hole scenarios when | there is a reload and possible long reconvergence times.</li> | |||
| there is a reload and possible long reconvergence times.</t> | <li>Closet switches that are not usually used for transit traffic but ne | |||
| ed | ||||
| <t>Closet Switches are usually not used for transit traffic but need | to participate in the topology.</li> | |||
| to participate in the topology.</t> | <li>Overloaded routers that could use such a capability to temporarily | |||
| repel traffic until they stabilize.</li> | ||||
| <t>Overloaded routers could use such a capability to temporarily | <li>BGP route reflectors, known as virtual Route Reflectors, | |||
| repel traffic until they stabilize.</t> | ||||
| <t>BGP Route reflectors known as virtual Route Reflectors (vRRs), | ||||
| that are not in the forwarding path but are in central locations | that are not in the forwarding path but are in central locations | |||
| such as data centers. Such Route Reflectors typically are used | such as data centers. Such route reflectors are typically used | |||
| for route distribution and are not capable of forwarding transit | for route distribution and are not capable of forwarding transit | |||
| traffic. However, they need to learn the OSPF topology to | traffic. However, they need to learn the OSPF topology to | |||
| perform SPF computation for optimal routes and reachability | perform SPF computation for optimal routes and reachability | |||
| resolution for its clients | resolution for their clients | |||
| <xref target="I-D.ietf-idr-bgp-optimal-route-reflection"/>.</t> | <xref target="BGP-ORR" format="default"/>.</li> | |||
| </ol> | ||||
| </list> | <t> | |||
| </t> | This document describes the functionality provided by the Host-bit (H-bit); | |||
| this functionality prevents other OSPFv2 routers from using the host router b | ||||
| <t> | y excluding | |||
| This document describes the Host-bit (H-bit) functionality that | ||||
| prevents other OSPFv2 routers from using the host router by excluding | ||||
| it in path calculations for transit traffic in OSPFv2 routing | it in path calculations for transit traffic in OSPFv2 routing | |||
| domains. If the H-bit is set then the calculation of the shortest- | domains. If the H-bit is set, then the calculation of the | |||
| path tree for an area, as described in section 16.1 of <xref target="RFC2328" | shortest-path tree for an area, as described in <xref target="RFC2328" sectio | |||
| />, is | nFormat="of" section="16.1"/>, is | |||
| modified by including a check to verify that transit vertices DO NOT | modified by including a check to verify that transit vertices DO NOT | |||
| have the H-bit set (see <xref target="sect-4"/>). Furthermore, in order to r | have the H-bit set (see <xref target="sect-4" format="default"/>). Furthermo | |||
| epel | re, in order to repel | |||
| traffic effectively, <xref target="RFC6987"/> is updated so that type-2 Exter | traffic effectively, this document updates <xref target="RFC6987" | |||
| nal and | format="default"/> so that Type 2 External and Not-So-Stubby Area (NSSA) | |||
| NSSA LSAs are advertised with a high cost (see <xref target="sect-6"/>). Ope | Link State Advertisements (LSAs) <xref target="RFC3101"/> | |||
| n | are advertised with a high cost (see <xref target="sect-6" format="default"/> | |||
| Shortest Path First Version 3 defines an option bit for router-LSAs | ). OSPFv3 <xref target="RFC5340"/> defines an | |||
| known as the R-bit in <xref target="RFC5340"/> to support a similar functiona | option bit, known as the R-bit, for router-LSAs; the H-bit supports similar f | |||
| lity.</t> | unctionality.</t> | |||
| </section> | ||||
| </section> | <section anchor="sect-2" numbered="true" toc="default"> | |||
| <name>Requirements Language</name> | ||||
| <section title="Requirements Language" anchor="sect-2"><t> | <t>The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>", | |||
| The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT", | "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>", | |||
| "SHOULD", "SHOULD NOT", "RECOMMENDED", "NOT RECOMMENDED", "MAY", and | "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>", | |||
| "OPTIONAL" in this document are to be interpreted as described in BCP | "<bcp14>SHOULD NOT</bcp14>", | |||
| 14 <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only when, the | "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>", | |||
| y appear in all | "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document | |||
| capitals, as shown here.</t> | are to be interpreted as described in BCP 14 | |||
| <xref target="RFC2119"/> <xref target="RFC8174"/> when, and only | ||||
| </section> | when, they appear in all capitals, as shown here.</t> | |||
| </section> | ||||
| <section title="Host-bit Support" anchor="sect-3"><t> | <section anchor="sect-3" numbered="true" toc="default"> | |||
| This document defines a new router-LSA bit known as the Host Bit or | <name>Host-Bit Support</name> | |||
| <t> | ||||
| This document defines a new router-LSA bit, known as the Host-bit or | ||||
| the H-bit. An OSPFv2 router advertising a router-LSA with the H-bit | the H-bit. An OSPFv2 router advertising a router-LSA with the H-bit | |||
| set indicates that it MUST NOT be used as a transit router (see | set indicates that it <bcp14>MUST NOT</bcp14> be used as a transit router (se | |||
| <xref target="sect-4"/>) by other OSPFv2 routers in the area supporting the | e | |||
| functionality.</t> | <xref target="sect-4" format="default"/>) by other OSPFv2 routers in the | |||
| area that support the H-bit functionality.</t> | ||||
| <t> | <t> | |||
| If the H-bit is not set then backwards compatibility is achieved as | If the H-bit is not set, then backward compatibility is achieved, as | |||
| the behavior will be the same as in <xref target="RFC2328"/>.</t> | the behavior will be the same as in <xref target="RFC2328" format="default"/> | |||
| .</t> | ||||
| <figure title="OSPF Router-LSA" anchor="ure-ospf-router-lsa"><artwork><![ | <figure anchor="ure-ospf-router-lsa"> | |||
| CDATA[ | <name>OSPF Router-LSA</name> | |||
| 0 1 2 3 | <artwork name="" type="" align="left" alt=""><![CDATA[ | |||
| 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 | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | 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 | |||
| | LS age | Options | 1 | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | LS age | Options | 1 | | |||
| | Link State ID | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Link State ID | | |||
| | Advertising Router | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Advertising Router | | |||
| | LS sequence number | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | LS sequence number | | |||
| | LS checksum | length | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | LS checksum | length | | |||
| |H|0|0|N|W|V|E|B| 0 | # links | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |H|0|0|N|W|V|E|B| 0 | # links | | |||
| | Link ID | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Link ID | | |||
| | Link Data | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Link Data | | |||
| | Type | # TOS | metric | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Type | # TOS | metric | | |||
| | ... | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | ... | | |||
| | TOS | 0 | TOS metric | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | TOS | 0 | TOS metric | | |||
| | Link ID | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Link ID | | |||
| | Link Data | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | | Link Data | | |||
| | ... | | +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ | |||
| ]]></artwork> | | ... |]]></artwork> | |||
| </figure> | </figure> | |||
| <t><list style="hanging" hangIndent="-1"><t hangText="Bit H is the high-o | ||||
| rder bit of the OSPF flags as shown below."> | ||||
| <vspace blankLines="0"/> | ||||
| </t> | ||||
| </list> | ||||
| </t> | ||||
| <figure title="OSPF Router-LSA Option bits" anchor="ure-ospf-router-lsa-o | <t>Bit H is the high-order bit of the OSPF flags, as shown below.</t> | |||
| ption-bits"><artwork><![CDATA[ | <figure anchor="ure-ospf-router-lsa-option-bits"> | |||
| <name>OSPF Router-LSA Option Bits</name> | ||||
| <artwork name="" type="" align="left" alt=""><![CDATA[ | ||||
| 0 1 2 3 4 5 6 7 | 0 1 2 3 4 5 6 7 | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+ | |||
| |H|0|0|N|W|V|E|B| | |H|0|0|N|W|V|E|B| | |||
| +-+-+-+-+-+-+-+-+ | +-+-+-+-+-+-+-+-+]]></artwork> | |||
| ]]></artwork> | </figure> | |||
| </figure> | <t> | |||
| <t> | When the H-bit is set, the OSPFv2 router is a host (non-transit) | |||
| When the H-bit is set, the OSPFv2 router is a Host (non-transit) | ||||
| router and is incapable of forwarding transit traffic. In this mode, | router and is incapable of forwarding transit traffic. In this mode, | |||
| the other OSPFv2 routers in the area MUST NOT use the host router for | the other OSPFv2 routers in the area <bcp14>MUST NOT</bcp14> use the host rou | |||
| transit traffic, but may send traffic to its local destinations.</t> | ter for | |||
| transit traffic but may send traffic to its local destinations.</t> | ||||
| <t> | <t> | |||
| An OSPFv2 router originating a router-LSA with the H-bit set MUST | An OSPFv2 router originating a router-LSA with the H-bit set <bcp14>MUST</bcp | |||
| 14> | ||||
| advertise all its non-stub links with a link cost of MaxLinkMetric | advertise all its non-stub links with a link cost of MaxLinkMetric | |||
| <xref target="RFC6987"/>.</t> | <xref target="RFC6987" format="default"/>.</t> | |||
| <t> | ||||
| <t> | When the H-bit is set, an Area Border Router (ABR) <bcp14>MUST</bcp14> advert | |||
| When the H-bit is set, an Area Border Router (ABR) MUST advertise the | ise the | |||
| same H-bit setting in its self-originated router-LSAs for all | same H-bit setting in its self-originated router-LSAs for all | |||
| attached areas. The consistency of the setting will prevent inter- | attached areas. The consistency of the setting will prevent | |||
| area traffic transiting through the router by suppressing | inter&nbhy;area traffic transiting through the router by suppressing | |||
| advertisement of prefixes from other routers in the area in its | advertisements of prefixes from other routers in the area in its | |||
| summary LSAs. Only IPv4 prefixes associated with its local | summary-LSAs. Only IPv4 prefixes associated with its local | |||
| interfaces MUST be advertised in summary-LSAs to provide reachability | interfaces <bcp14>MUST</bcp14> be advertised in summary-LSAs to provide reach | |||
| ability | ||||
| to end hosts attached to a router with the H-bit set.</t> | to end hosts attached to a router with the H-bit set.</t> | |||
| <t> | ||||
| <t> | When the H-bit is set, the host router cannot act as an Autonomous System | |||
| When the H-bit is set the host router cannot act as an AS Boundary | Border Router (ASBR). Indeed, ASBRs are transit routers to prefixes that are | |||
| Router (ASBR). Indeed, ASBR are transit routers to prefixes that are | ||||
| typically imported through redistribution of prefixes from other | typically imported through redistribution of prefixes from other | |||
| routing protocols. Therefore, non-local IPv4 prefixes, e.g., those | routing protocols. Therefore, non-local IPv4 prefixes, e.g., those | |||
| imported from other routing protocols, SHOULD NOT be advertised in | imported from other routing protocols, <bcp14>SHOULD NOT</bcp14> be advertise d in | |||
| AS-external-LSAs if the H-bit is set. Some use cases, such as an | AS-external-LSAs if the H-bit is set. Some use cases, such as an | |||
| overloaded router or a router being gracefully isolated, may benefit | overloaded router or a router being gracefully isolated, may benefit | |||
| from continued advertisement of non-local prefixes. In these cases, | from continued advertisements of non-local prefixes. In these cases, | |||
| the type 2-metric in AS-external-LSAs MUST be set to LSInfinity to | the Type 2 metric in AS-external-LSAs <bcp14>MUST</bcp14> be set to | |||
| repel traffic.(see Section 6 of this document).</t> | LSInfinity <xref target="RFC2328"/> to | |||
| repel traffic (see <xref target="sect-6"/> of this document).</t> | ||||
| </section> | </section> | |||
| <section anchor="sect-4" numbered="true" toc="default"> | ||||
| <section title="SPF Modifications" anchor="sect-4"><t> | <name>SPF Modifications</name> | |||
| The SPF calculation described in section 16.1 <xref target="RFC2328"/> will b | <t> | |||
| e | The SPF calculation described in <xref target="RFC2328" sectionFormat="of" | |||
| section="16.1"/> is | ||||
| modified to ensure that the routers originating router-LSAs with the | modified to ensure that the routers originating router-LSAs with the | |||
| H-bit set will not be used for transit traffic. The Step 2 is | H-bit set will not be used for transit traffic. Step (2) is | |||
| modified to include a check on H-bit as shown below. (Please note | modified to include a check on the H-bit, as shown below. (Please note | |||
| all the sub-procedures of Step 2 remain unchanged and not included in | that all of the sub-procedures of Step (2) remain unchanged and are not inclu | |||
| ded in | ||||
| the excerpt below.)</t> | the excerpt below.)</t> | |||
| <ul empty="true" spacing="normal"> | ||||
| <t><list style="empty" hangIndent="13"> | <li> | |||
| <t><list style="hanging" hangIndent="3"><t hangText="2) Call the vertex j | <dl newline="false" spacing="normal" indent="5"> | |||
| ust added to the"> | <dt>(2)</dt><dd>Call the vertex just added to the | |||
| <vspace blankLines="0"/> | tree "vertex V". Examine the LSA | |||
| tree vertex V. Examine the LSA | associated with vertex V. This is | |||
| associated with vertex V. This is | a lookup in Area A's link state | |||
| a lookup in the Area A's link state | database based on the Vertex ID. If | |||
| database based on the Vertex ID. If | this is a router-LSA, and the H-bit | |||
| this is a router-LSA, and the H-bit | of the router-LSA is set, and | |||
| of the router-LSA is set, and | vertex V is not the root, then the | |||
| vertex V is not the root, then the | router should not be used for transit | |||
| router should not be used for transit | and Step (3) should be executed | |||
| and step (3) should be executed | immediately. If this is a router-LSA | |||
| immediately. If this is a router-LSA, | and bit V of the router-LSA (see | |||
| and bit V of the router-LSA (see | Appendix A.4.2) is set, set Area A's | |||
| Section A.4.2) is set, set Area A's | TransitCapability to TRUE. In any case, | |||
| TransitCapability to TRUE. In any case, | each link described by the LSA gives | |||
| each link described by the LSA gives | the cost to an adjacent vertex. For | |||
| the cost to an adjacent vertex. For | each described link (say it joins | |||
| each described link, (say it joins | vertex V to vertex W):</dd> | |||
| vertex V to vertex W): | </dl> | |||
| </t> | </li> | |||
| </ul> | ||||
| </list> | </section> | |||
| </t> | <section anchor="sect-5" numbered="true" toc="default"> | |||
| <name>Autodiscovery and Backward Compatibility</name> | ||||
| </list> | <t> | |||
| </t> | ||||
| </section> | ||||
| <section title="Auto Discovery and Backward Compatibility" anchor="sect-5 | ||||
| "><t> | ||||
| To reduce the possibility of any routing loops due to partial | To reduce the possibility of any routing loops due to partial | |||
| deployment, this document defines an OSPF Router Information (RI) LSA | deployment, this document defines an OSPF Router Information (RI) LSA | |||
| <xref target="RFC7770"/> capability. The RI LSA MUST be area-scoped. Bit:</ | capability bit <xref target="RFC7770" format="default"/>. See | |||
| t> | <xref target="sect-7"/> (<xref target="tab-2"/>). | |||
| </t> | ||||
| <t><list style="empty" hangIndent="7"> | ||||
| <t><list style="hanging" hangIndent="-1"><t hangText="Bit"> | ||||
| Capabilities | ||||
| <vspace blankLines="0"/> | ||||
| <list style="empty"><t> 7 Host Router Support capability | ||||
| </t> | ||||
| </list> | ||||
| </t> | ||||
| </list> | ||||
| </t> | ||||
| </list> | ||||
| </t> | ||||
| <t><list hangIndent="7" style="hanging"><t> | ||||
| Table 1: OSPF Router Information LSA Capabilities</t> | ||||
| </list> | ||||
| </t> | ||||
| <t> | <t>The RI LSA <bcp14>MUST</bcp14> be area-scoped.</t> | |||
| Auto Discovery via announcement of the Host Router Support Capability | <t> | |||
| Autodiscovery via announcement of the OSPF Host Router capability | ||||
| (<xref target="sect-7"/>) | ||||
| ensures that the H-bit functionality and its associated SPF changes | ensures that the H-bit functionality and its associated SPF changes | |||
| MUST only take effect if all the routers in a given OSPF area support | <bcp14>MUST</bcp14> only take effect if all the routers in a given OSPF area support | |||
| this functionality.</t> | this functionality.</t> | |||
| <t> | ||||
| <t> | ||||
| In normal operation, it is possible that the RI LSA will fail to | In normal operation, it is possible that the RI LSA will fail to | |||
| reach all routers in an area in a timely manner. For example, if a | reach all routers in an area in a timely manner. For example, if a | |||
| new router without H-bit support joins an area that previously had | new router without H-bit support joins an area that previously had | |||
| only H-bit capable routers with H-bit set then it may take some time | only H-bit-capable routers with the H-bit set, then it may take some time | |||
| for the RI to propagate to all routers. While it is propagating, the | for the RI LSA to propagate to all routers. While it is propagating, the | |||
| routers in the area will gradually detect the presence of a router | routers in the area will gradually detect the presence of a router | |||
| not supporting the capability and revert back to normal SPF | that does not support the capability and will revert back to the normal SPF | |||
| calculation. During the propagation time, the area as a whole is | calculation. During the propagation time, the area as a whole is | |||
| unsure of the status of the new router, and that can cause temporary | unsure of the status of the new router; this type of situation can cause temp orary | |||
| transient loops.</t> | transient loops.</t> | |||
| <t> | ||||
| <t> | ||||
| The following recommendations will mitigate transient routing loops:</t> | The following recommendations will mitigate transient routing loops:</t> | |||
| <ul spacing="normal"> | ||||
| <t><list style="symbols"><t>Implementations are RECOMMENDED to provide a | <li>Implementations are <bcp14>RECOMMENDED</bcp14> to provide a configur | |||
| configuration | ation | |||
| parameter to manually override enforcement of the H-bit | parameter to manually override enforcement of the H-bit | |||
| functionality in partial deployments where the topology guarantees | functionality in partial deployments where the topology guarantees | |||
| that OSPFv2 routers not supporting the H-bit do not compute routes | that OSPFv2 routers not supporting the H-bit do not compute routes | |||
| resulting in routing loops.</t> | resulting in routing loops.</li> | |||
| <li>All routers with the H-bit set <bcp14>MUST</bcp14> advertise all of | ||||
| <t>All routers with the H-bit set MUST advertise all of the router's | the router's | |||
| non-stub links with a metric equal to MaxLinkMetric <xref target="RFC6987" | non-stub links with a metric equal to MaxLinkMetric <xref target="RFC6987" | |||
| /> in | format="default"/> in | |||
| its LSAs in order to avoid OSPFv2 (unless last resort) routers not | its LSAs in order to prevent OSPFv2 routers (unless a last-resort path) | |||
| supporting the H-bit from attempting to use it for transit | that do not support the H-bit from attempting to use the non-stub links fo | |||
| traffic.</t> | r transit | |||
| traffic.</li> | ||||
| <t>All routers supporting the H-Bit MUST check the RI LSAs of all | <li>All routers supporting the H-bit <bcp14>MUST</bcp14> check the RI LS | |||
| nodes in the area to verify that all nodes support the H-Bit | As of all | |||
| before actively using the H-Bit feature. If any router does not | nodes in the area to verify that all nodes support the H-bit | |||
| advertise the Host Router Support capability then the SPF | before actively using the H-bit feature. If any router does not | |||
| Modifications (<xref target="sect-4"/>) MUST NOT be used in the area.</t> | advertise the OSPF Host Router capability (<xref target="sect-7"/>), then | |||
| the SPF | ||||
| </list> | modifications described in <xref target="sect-4" format="default"/> <bcp14 | |||
| </t> | >MUST NOT</bcp14> be used in the area.</li> | |||
| </ul> | ||||
| </section> | </section> | |||
| <section anchor="sect-6" numbered="true" toc="default"> | ||||
| <section title="OSPF AS-External-LSAs/NSSA LSAs with Type 2 Metrics" anch | <name>OSPF AS-External-LSAs / NSSA-LSAs with Type 2 Metrics</name> | |||
| or="sect-6"><t> | <t> | |||
| When calculating the path to a prefix in an OSPF AS-External-LSA or | When calculating the path to a prefix in an OSPF AS-external-LSA or | |||
| NSSA-LSA <xref target="RFC3101"/> with a Type-2 metric, the advertised Type-2 | NSSA-LSA <xref target="RFC3101" format="default"/> with a Type 2 metric, | |||
| metric | the advertised Type 2 metric | |||
| is taken as more significant than the OSPF intra-area or inter-area | is taken as more significant than the OSPF intra-area or inter-area | |||
| path. Hence, advertising the links with MaxLinkMetric as specified | path. Hence, advertising the links with MaxLinkMetric as specified | |||
| in <xref target="RFC6987"/> does not discourage transit traffic when calculat | in <xref target="RFC6987" format="default"/> does not discourage transit | |||
| ing AS | traffic when calculating AS-external or NSSA routes with Type 2 metrics. | |||
| external or NSSA routes with Type-2 metrics.</t> | </t> | |||
| <t> | ||||
| <t> | Consequently, this document updates <xref target="RFC6987" format="default"/> | |||
| Consequently, <xref target="RFC6987"/> is updated so that the Type-2 metric i | so that the Type 2 metric in any | |||
| n any | self-originated AS-external-LSAs or NSSA-LSAs is advertised as | |||
| self-originated AS-External-LSAs or NSSA-LSAs is advertised as | LSInfinity-1 <xref target="RFC2328" format="default"/>. | |||
| LSInfinity-1 <xref target="RFC2328"/>. If the H-bit is set, then the Type-2 | If the H-bit is set, then the Type 2 metric | |||
| metric | <bcp14>MUST</bcp14> be set to LSInfinity.</t> | |||
| MUST be set to LSInfinity.</t> | </section> | |||
| <section anchor="sect-7" numbered="true" toc="default"> | ||||
| </section> | <name>IANA Considerations</name> | |||
| <t> | ||||
| <section title="IANA Considerations" anchor="sect-7"><t> | IANA has registered the following value in the | |||
| This document requests the IANA to assign the 0x80 value to the Host- | "OSPFv2 Router Properties Registry".</t> | |||
| Bit (H-bit)in the OSPFv2 Router Properties Registry</t> | ||||
| <t><list style="empty" hangIndent="7"> | ||||
| <t><list style="hanging" hangIndent="-1"><t hangText="Value"> | ||||
| Description Reference | ||||
| <vspace blankLines="0"/> | ||||
| </t> | ||||
| <t hangText="0x80"> | ||||
| Host (H-bit) This Document | ||||
| <vspace blankLines="0"/> | ||||
| </t> | ||||
| </list> | ||||
| </t> | ||||
| </list> | ||||
| </t> | ||||
| <t> | ||||
| This document requests the IANA to assign the Bit Number value of 7 | ||||
| to the Host Router Support Capability in the OSPF Router | ||||
| Informational Capability Bits Registry.</t> | ||||
| <t><list style="empty" hangIndent="7"> | ||||
| <t><list style="hanging" hangIndent="3"><t hangText="Bit Number"> | ||||
| Capability Name Reference | ||||
| <vspace blankLines="1"/> | ||||
| 7 OSPF Host Router This Document | ||||
| </t> | ||||
| </list> | <table anchor="tab-1"> | |||
| </t> | <name>H-Bit</name> | |||
| <thead> | ||||
| <tr> | ||||
| <th>Value</th> | ||||
| <th>Description</th> | ||||
| <th>Reference</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td>0x80</td> | ||||
| <td>Host (H-bit)</td> | ||||
| <td>RFC 8770</td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| </list> | <t> | |||
| </t> | IANA has registered the following in the "OSPF Router | |||
| Informational Capability Bits" registry.</t> | ||||
| </section> | <table anchor="tab-2"> | |||
| <name>OSPF Host Router Capability Bit</name> | ||||
| <thead> | ||||
| <tr> | ||||
| <th>Bit Number</th> | ||||
| <th>Capability Name</th> | ||||
| <th>Reference</th> | ||||
| </tr> | ||||
| </thead> | ||||
| <tbody> | ||||
| <tr> | ||||
| <td align="center">7</td> | ||||
| <td>OSPF Host Router</td> | ||||
| <td>RFC 8770</td> | ||||
| </tr> | ||||
| </tbody> | ||||
| </table> | ||||
| <section title="Security Considerations" anchor="sect-8"><t> | </section> | |||
| This document introduces the H-bit which is a capability that | <section anchor="sect-8" numbered="true" toc="default"> | |||
| <name>Security Considerations</name> | ||||
| <t> | ||||
| This document introduces the H-bit, which is a capability feature that | ||||
| restricts the use of a router for transit, while only its local | restricts the use of a router for transit, while only its local | |||
| destinations are reachable. This is a subset of the operations of a | destinations are reachable. This is a subset of the operations of a | |||
| normal router and therefore should not introduce new security | normal router and therefore should not introduce new security | |||
| considerations beyond those already known in OSPFv2 <xref target="RFC2328"/>. | considerations beyond those already known in OSPFv2 <xref target="RFC2328" fo | |||
| The | rmat="default"/>. The | |||
| feature introduces the advertising of a host router capability | feature introduces the advertisement of host router capability | |||
| information to all OSPFv2 routers in an area. This information can | information to all OSPFv2 routers in an area. This information can | |||
| be leveraged for discovery and verification that all routers in the | be leveraged for discovery and verification that all routers in the | |||
| area support the capability before the feature is turned on. In the | area support the capability before the feature is turned on. In the | |||
| event that a rogue or buggy router advertises incorrectly its | event that a rogue or buggy router incorrectly advertises its | |||
| capability the possible cases are:</t> | capability, possible scenarios are as follows:</t> | |||
| <ul spacing="normal"> | ||||
| <t><list style="symbols"><t>The router does not have the capability but s | <li>The router does not have the capability but sends the H-bit set in | |||
| ends the H-Bit set in | its LSAs. In this case, a routing loop is possible. | |||
| its LSAs: In this case, there is a possibility of a routing loop. | However, this is mitigated by the fact that this router should be | |||
| However this is mitigated by the fact that this router should be | ||||
| avoided anyway. Moreover, the link metrics cost (MaxLinkMetric) | avoided anyway. Moreover, the link metrics cost (MaxLinkMetric) | |||
| of this router will mitigate this situation. In any case, a | of this router will mitigate this situation. In any case, a | |||
| router advertising the H-bit capability without its links cost | router advertising the H-bit capability without its link metrics cost | |||
| equal to MaxLinkMetric may be an indicator that this is a rogue | equal to MaxLinkMetric could be a rogue | |||
| router and should be avoided.</t> | router and should be avoided.</li> | |||
| <li>The router has the capability but sends the H-bit clear in its | ||||
| <t>The router has the capability but sends the H-Bit clear in its | LSAs. In this case, the router merely prevents the support of other | |||
| LSAs: In this case, the router merely prevents support of other | H-bit routers in the area and prevents all the routers from running the mo | |||
| H-bit routers in the area and all the routers to run the modified | dified | |||
| SPF. The impact is also mitigated as other H-Bit routers in the | SPF. Any impacts are also mitigated in this scenario, as other H-bit rout | |||
| area also advertise MaxLinkMetric cost so they will still be | ers in the | |||
| avoided unless they are the last resort path.</t> | area also advertise the MaxLinkMetric cost, so they will still be | |||
| avoided unless they are the last&nbhy;resort path.</li> | ||||
| <t>The rogue router is on the only transit path for some destinations | <li>The rogue router is on the only transit path for some destinations | |||
| and sends the H-Bit set (for no good/valid reason) in its LSAs and | and sends the H-bit set (for no good/valid reason) in its LSAs, and | |||
| effectively partition the network. This case is indistinguishable | effectively partitions the network. This case is indistinguishable | |||
| from the normal case where the operator may consciously decide to | from the normal case where an operator may consciously decide to | |||
| set the H-bit to perform maintenance on a router that is on the | set the H-bit to perform maintenance on a router that is on the | |||
| only transit path. The OSPF protocol will continue to function | only transit path. The OSPF protocol will continue to function | |||
| within the partitioned domains.</t> | within the partitioned domains.</li> | |||
| </ul> | ||||
| </list> | </section> | |||
| </t> | </middle> | |||
| <back> | ||||
| </section> | <references> | |||
| <name>References</name> | ||||
| <section title="Acknowledgements" anchor="sect-9"><t> | <references> | |||
| The authors would like to acknowledge Hasmit Grover for discovery of | <name>Normative References</name> | |||
| the limitation in <xref target="RFC6987"/>, Acee Lindem, Abhay Roy, David War | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2119. | |||
| d, | xml"/> | |||
| Burjiz Pithawala, and Michael Barnes for their comments.</t> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.2328. | |||
| xml"/> | ||||
| </section> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.6987. | |||
| xml"/> | ||||
| </middle> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.7770. | |||
| xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.8174. | ||||
| xml"/> | ||||
| </references> | ||||
| <references> | ||||
| <name>Informative References</name> | ||||
| <back> | <!-- draft-ietf-idr-bgp-optimal-route-reflection (I-D Exists) --> | |||
| <references title="Normative References"> | <!-- Repository file missing "editor" entry, so have to do "long way" --> | |||
| &RFC2119; | <reference anchor="BGP-ORR" | |||
| &RFC2328; | target="https://tools.ietf.org/html/draft-ietf-idr-bgp-optimal-route-reflection- | |||
| &RFC6987; | 20"> | |||
| &RFC7770; | <front> | |||
| &RFC8174; | <title>BGP Optimal Route Reflection (BGP-ORR)</title> | |||
| </references> | <seriesInfo name="Work in Progress, Internet-Draft," value="draft-ie | |||
| <references title="Informative References"> | tf-idr-bgp-optimal-route-reflection-20"/> | |||
| &I-D.ietf-idr-bgp-optimal-route-reflection; | <author initials="R" surname="Raszuk" fullname="Robert Raszuk" role= | |||
| &RFC3101; | "editor"> | |||
| &RFC5340; | <organization/> | |||
| </references> | </author> | |||
| </back> | <author initials="C" surname="Cassar" fullname="Christian Cassar"> | |||
| <organization/> | ||||
| </author> | ||||
| <author initials="E" surname="Aman" fullname="Erik Aman"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="B" surname="Decraene" fullname="Bruno Decraene"> | ||||
| <organization/> | ||||
| </author> | ||||
| <author initials="K" surname="Wang" fullname="Kevin Wang"> | ||||
| <organization/> | ||||
| </author> | ||||
| <date month="January" day="8" year="2020"/> | ||||
| </front> | ||||
| </reference> | ||||
| </rfc> | <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.3101. | |||
| xml"/> | ||||
| <xi:include href="https://xml2rfc.ietf.org/public/rfc/bibxml/reference.RFC.5340. | ||||
| xml"/> | ||||
| </references> | ||||
| </references> | ||||
| <section anchor="acknowledgements" numbered="false" toc="default"> | ||||
| <name>Acknowledgements</name> | ||||
| <t> | ||||
| The authors would like to acknowledge <contact fullname="Hasmit Grover"/> for | ||||
| discovering | ||||
| the limitation in <xref target="RFC6987" format="default"/>, and <contact | ||||
| fullname="Acee Lindem"/>, <contact fullname="Abhay Roy"/>, <contact | ||||
| fullname="David Ward"/>, <contact fullname="Burjiz Pithawala"/>, and <contact | ||||
| fullname="Michael Barnes"/> for their comments.</t> | ||||
| </section> | ||||
| </back> | ||||
| </rfc> | ||||
| End of changes. 43 change blocks. | ||||
| 419 lines changed or deleted | 398 lines changed or added | |||
This html diff was produced by rfcdiff 1.45. The latest version is available from http://tools.ietf.org/tools/rfcdiff/ | ||||