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