<?xml version='1.0' encoding='utf-8'?>
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" version="3" category="std" consensus="true" docName="draft-ietf-ospf-ospfv2-hbit-12" indexInclude="true" ipr="trust200902" number="8770" prepTime="2020-04-09T10:08:36" scripts="Common,Latin" sortRefs="true" submissionType="IETF" symRefs="true" tocDepth="3" tocInclude="true" updates="6987" xml:lang="en">
  <link href="https://datatracker.ietf.org/doc/draft-ietf-ospf-ospfv2-hbit-12" rel="prev"/>
  <link href="https://dx.doi.org/10.17487/rfc8770" rel="alternate"/>
  <link href="urn:issn:2070-1721" rel="alternate"/>
  <front>
    <title>Host Router Support for OSPFv2</title>
    <seriesInfo name="RFC" value="8770" stream="IETF"/>
    <author fullname="Keyur Patel" initials="K." surname="Patel">
      <organization showOnFrontPage="true">Arrcus</organization>
      <address>
        <email>keyur@arrcus.com</email>
      </address>
    </author>
    <author fullname="Padma Pillay-Esnault" initials="P." surname="Pillay-Esnault">
      <organization showOnFrontPage="true">PPE Consulting</organization>
      <address>
        <email>padma.ietf@gmail.com</email>
      </address>
    </author>
    <author fullname="Manish Bhardwaj" initials="M." surname="Bhardwaj">
      <organization showOnFrontPage="true">Cisco Systems</organization>
      <address>
        <postal>
          <street>170 W. Tasman Drive</street>
          <city>San Jose</city>
          <region>CA</region>
          <code>95134</code>
          <country>United States of America</country>
        </postal>
        <email>manbhard@cisco.com</email>
      </address>
    </author>
    <author fullname="Serpil Bayraktar" initials="S." surname="Bayraktar">
      <organization showOnFrontPage="true">Cisco Systems</organization>
      <address>
        <postal>
          <street>170 W. Tasman Drive</street>
          <city>San Jose</city>
          <region>CA</region>
          <code>95134</code>
          <country>United States of America</country>
        </postal>
        <email>serpil@cisco.com</email>
      </address>
    </author>
    <date month="04" year="2020"/>
    <keyword>non-transit</keyword>
    <abstract pn="section-abstract">
      <t pn="section-abstract-1">
   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
   shortest path.  This document defines a bit called the Host-bit (H-bit). This 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
   addition, this document updates RFC 6987 to advertise Type 2 External
   and Not-So-Stubby Area (NSSA) Link State Advertisements (LSAs) 
   (RFC 3101) with a high cost in order to repel traffic effectively.</t>
    </abstract>
    <boilerplate>
      <section anchor="status-of-memo" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.1">
        <name slugifiedName="name-status-of-this-memo">Status of This Memo</name>
        <t pn="section-boilerplate.1-1">
            This is an Internet Standards Track document.
        </t>
        <t pn="section-boilerplate.1-2">
            This document is a product of the Internet Engineering Task Force
            (IETF).  It represents the consensus of the IETF community.  It has
            received public review and has been approved for publication by
            the Internet Engineering Steering Group (IESG).  Further
            information on Internet Standards is available in Section 2 of 
            RFC 7841.
        </t>
        <t pn="section-boilerplate.1-3">
            Information about the current status of this document, any
            errata, and how to provide feedback on it may be obtained at
            <eref target="https://www.rfc-editor.org/info/rfc8770" brackets="none"/>.
        </t>
      </section>
      <section anchor="copyright" numbered="false" removeInRFC="false" toc="exclude" pn="section-boilerplate.2">
        <name slugifiedName="name-copyright-notice">Copyright Notice</name>
        <t pn="section-boilerplate.2-1">
            Copyright (c) 2020 IETF Trust and the persons identified as the
            document authors. All rights reserved.
        </t>
        <t pn="section-boilerplate.2-2">
            This document is subject to BCP 78 and the IETF Trust's Legal
            Provisions Relating to IETF Documents
            (<eref target="https://trustee.ietf.org/license-info" brackets="none"/>) in effect on the date of
            publication of this document. Please review these documents
            carefully, as they describe your rights and restrictions with
            respect to this document. Code Components extracted from this
            document must include Simplified BSD License text as described in
            Section 4.e of the Trust Legal Provisions and are provided without
            warranty as described in the Simplified BSD License.
        </t>
      </section>
    </boilerplate>
    <toc>
      <section anchor="toc" numbered="false" removeInRFC="false" toc="exclude" pn="section-toc.1">
        <name slugifiedName="name-table-of-contents">Table of Contents</name>
        <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1">
          <li pn="section-toc.1-1.1">
            <t keepWithNext="true" pn="section-toc.1-1.1.1"><xref derivedContent="1" format="counter" sectionFormat="of" target="section-1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-introduction">Introduction</xref></t>
          </li>
          <li pn="section-toc.1-1.2">
            <t keepWithNext="true" pn="section-toc.1-1.2.1"><xref derivedContent="2" format="counter" sectionFormat="of" target="section-2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-requirements-language">Requirements Language</xref></t>
          </li>
          <li pn="section-toc.1-1.3">
            <t keepWithNext="true" pn="section-toc.1-1.3.1"><xref derivedContent="3" format="counter" sectionFormat="of" target="section-3"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-host-bit-support">Host-Bit Support</xref></t>
          </li>
          <li pn="section-toc.1-1.4">
            <t keepWithNext="true" pn="section-toc.1-1.4.1"><xref derivedContent="4" format="counter" sectionFormat="of" target="section-4"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-spf-modifications">SPF Modifications</xref></t>
          </li>
          <li pn="section-toc.1-1.5">
            <t keepWithNext="true" pn="section-toc.1-1.5.1"><xref derivedContent="5" format="counter" sectionFormat="of" target="section-5"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-autodiscovery-and-backward-">Autodiscovery and Backward Compatibility</xref></t>
          </li>
          <li pn="section-toc.1-1.6">
            <t keepWithNext="true" pn="section-toc.1-1.6.1"><xref derivedContent="6" format="counter" sectionFormat="of" target="section-6"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-ospf-as-external-lsas-nssa-">OSPF AS-External-LSAs / NSSA-LSAs with Type 2 Metrics</xref></t>
          </li>
          <li pn="section-toc.1-1.7">
            <t keepWithNext="true" pn="section-toc.1-1.7.1"><xref derivedContent="7" format="counter" sectionFormat="of" target="section-7"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-iana-considerations">IANA Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.8">
            <t keepWithNext="true" pn="section-toc.1-1.8.1"><xref derivedContent="8" format="counter" sectionFormat="of" target="section-8"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-security-considerations">Security Considerations</xref></t>
          </li>
          <li pn="section-toc.1-1.9">
            <t keepWithNext="true" pn="section-toc.1-1.9.1"><xref derivedContent="9" format="counter" sectionFormat="of" target="section-9"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-references">References</xref></t>
            <ul bare="true" empty="true" indent="2" spacing="compact" pn="section-toc.1-1.9.2">
              <li pn="section-toc.1-1.9.2.1">
                <t keepWithNext="true" pn="section-toc.1-1.9.2.1.1"><xref derivedContent="9.1" format="counter" sectionFormat="of" target="section-9.1"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-normative-references">Normative References</xref></t>
              </li>
              <li pn="section-toc.1-1.9.2.2">
                <t keepWithNext="true" pn="section-toc.1-1.9.2.2.1"><xref derivedContent="9.2" format="counter" sectionFormat="of" target="section-9.2"/>.  <xref derivedContent="" format="title" sectionFormat="of" target="name-informative-references">Informative References</xref></t>
              </li>
            </ul>
          </li>
          <li pn="section-toc.1-1.10">
            <t keepWithNext="true" pn="section-toc.1-1.10.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.a"/><xref derivedContent="" format="title" sectionFormat="of" target="name-acknowledgements">Acknowledgements</xref></t>
          </li>
          <li pn="section-toc.1-1.11">
            <t keepWithNext="true" pn="section-toc.1-1.11.1"><xref derivedContent="" format="none" sectionFormat="of" target="section-appendix.b"/><xref derivedContent="" format="title" sectionFormat="of" target="name-authors-addresses">Authors' Addresses</xref></t>
          </li>
        </ul>
      </section>
    </toc>
  </front>
  <middle>
    <section anchor="sect-1" numbered="true" toc="include" removeInRFC="false" pn="section-1">
      <name slugifiedName="name-introduction">Introduction</name>
      <t pn="section-1-1">
   The OSPFv2 protocol specifies a Shortest Path First (SPF) algorithm
   that identifies transit vertices based on their adjacencies.
   Therefore, OSPFv2 does not have a mechanism to prevent traffic
   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
   make the node undesirable can help to repel traffic only if an
   alternative better route exists.</t>
      <t pn="section-1-2">
   A mechanism to move traffic away from the shortest path is
   particularly useful for a number of use cases:</t>
      <ol spacing="normal" type="1" start="1" pn="section-1-3">
        <li pn="section-1-3.1" derivedCounter="1.">Graceful isolation of a router, to avoid blackhole scenarios when
       there is a reload and possible long reconvergence times.</li>
        <li pn="section-1-3.2" derivedCounter="2.">Closet switches that are not usually used for transit traffic but need
       to participate in the topology.</li>
        <li pn="section-1-3.3" derivedCounter="3.">Overloaded routers that could use such a capability to temporarily
       repel traffic until they stabilize.</li>
        <li pn="section-1-3.4" derivedCounter="4.">BGP route reflectors, known as virtual Route Reflectors,
       that are not in the forwarding path but are in central locations
       such as data centers.  Such route reflectors are typically used
       for route distribution and are not capable of forwarding transit
       traffic.  However, they need to learn the OSPF topology to
       perform SPF computation for optimal routes and reachability
       resolution for their clients
       <xref target="BGP-ORR" format="default" sectionFormat="of" derivedContent="BGP-ORR"/>.</li>
      </ol>
      <t pn="section-1-4">
   This document describes the functionality provided by the Host-bit (H-bit);
   this functionality prevents other OSPFv2 routers from using the host router by excluding
   it in path calculations for transit traffic in OSPFv2 routing
   domains.  If the H-bit is set, then the calculation of the
   shortest-path tree for an area, as described in <xref target="RFC2328" sectionFormat="of" section="16.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc2328#section-16.1" derivedContent="RFC2328"/>, is
   modified by including a check to verify that transit vertices DO NOT
   have the H-bit set (see <xref target="sect-4" format="default" sectionFormat="of" derivedContent="Section 4"/>).  Furthermore, in order to repel
   traffic effectively, this document updates <xref target="RFC6987" format="default" sectionFormat="of" derivedContent="RFC6987"/> so that Type 2 External and Not-So-Stubby Area (NSSA)
   Link State Advertisements (LSAs) <xref target="RFC3101" format="default" sectionFormat="of" derivedContent="RFC3101"/>
   are advertised with a high cost (see <xref target="sect-6" format="default" sectionFormat="of" derivedContent="Section 6"/>).  OSPFv3 <xref target="RFC5340" format="default" sectionFormat="of" derivedContent="RFC5340"/> defines an
   option bit, known as the R-bit, for router-LSAs; the H-bit supports similar functionality.</t>
    </section>
    <section anchor="sect-2" numbered="true" toc="include" removeInRFC="false" pn="section-2">
      <name slugifiedName="name-requirements-language">Requirements Language</name>
      <t pn="section-2-1">The key words "<bcp14>MUST</bcp14>", "<bcp14>MUST NOT</bcp14>",
       "<bcp14>REQUIRED</bcp14>", "<bcp14>SHALL</bcp14>",
       "<bcp14>SHALL NOT</bcp14>", "<bcp14>SHOULD</bcp14>",
       "<bcp14>SHOULD NOT</bcp14>",
       "<bcp14>RECOMMENDED</bcp14>", "<bcp14>NOT RECOMMENDED</bcp14>",
       "<bcp14>MAY</bcp14>", and "<bcp14>OPTIONAL</bcp14>" in this document
       are to be interpreted as described in BCP 14
       <xref target="RFC2119" format="default" sectionFormat="of" derivedContent="RFC2119"/> <xref target="RFC8174" format="default" sectionFormat="of" derivedContent="RFC8174"/> when, and only
       when, they appear in all capitals, as shown here.</t>
    </section>
    <section anchor="sect-3" numbered="true" toc="include" removeInRFC="false" pn="section-3">
      <name slugifiedName="name-host-bit-support">Host-Bit Support</name>
      <t pn="section-3-1">
   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
   set indicates that it <bcp14>MUST NOT</bcp14> be used as a transit router (see
   <xref target="sect-4" format="default" sectionFormat="of" derivedContent="Section 4"/>) by other OSPFv2 routers in the
   area that support the H-bit functionality.</t>
      <t pn="section-3-2">
   If the H-bit is not set, then backward compatibility is achieved, as
   the behavior will be the same as in <xref target="RFC2328" format="default" sectionFormat="of" derivedContent="RFC2328"/>.</t>
      <figure anchor="ure-ospf-router-lsa" align="left" suppress-title="false" pn="figure-1">
        <name slugifiedName="name-ospf-router-lsa">OSPF Router-LSA</name>
        <artwork name="" type="" align="left" alt="" pn="section-3-3.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       |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                        Link State ID                          |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                     Advertising Router                        |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                     LS sequence number                        |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |         LS checksum           |             length            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |H|0|0|N|W|V|E|B|        0      |            # links            |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                          Link ID                              |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                         Link Data                             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |     Type      |     # TOS     |            metric             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                              ...                              |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |      TOS      |        0      |          TOS metric           |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                          Link ID                              |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                         Link Data                             |
  +-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+
  |                              ...                              |</artwork>
      </figure>
      <t pn="section-3-4">Bit H is the high-order bit of the OSPF flags, as shown below.</t>
      <figure anchor="ure-ospf-router-lsa-option-bits" align="left" suppress-title="false" pn="figure-2">
        <name slugifiedName="name-ospf-router-lsa-option-bits">OSPF Router-LSA Option Bits</name>
        <artwork name="" type="" align="left" alt="" pn="section-3-5.1">
                            0 1 2 3 4 5 6 7
                            +-+-+-+-+-+-+-+-+
                            |H|0|0|N|W|V|E|B|
                            +-+-+-+-+-+-+-+-+</artwork>
      </figure>
      <t pn="section-3-6">
   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,
   the other OSPFv2 routers in the area <bcp14>MUST NOT</bcp14> use the host router for
   transit traffic but may send traffic to its local destinations.</t>
      <t pn="section-3-7">
   An OSPFv2 router originating a router-LSA with the H-bit set <bcp14>MUST</bcp14>
   advertise all its non-stub links with a link cost of MaxLinkMetric
   <xref target="RFC6987" format="default" sectionFormat="of" derivedContent="RFC6987"/>.</t>
      <t pn="section-3-8">
   When the H-bit is set, an Area Border Router (ABR) <bcp14>MUST</bcp14> advertise the
   same H-bit setting in its self-originated router-LSAs for all
   attached areas.  The consistency of the setting will prevent
   inter‑area traffic transiting through the router by suppressing
   advertisements of prefixes from other routers in the area in its
   summary-LSAs.  Only IPv4 prefixes associated with its local
   interfaces <bcp14>MUST</bcp14> be advertised in summary-LSAs to provide reachability
   to end hosts attached to a router with the H-bit set.</t>
      <t pn="section-3-9">
   When the H-bit is set, the host router cannot act as an Autonomous System
   Border Router (ASBR).  Indeed, ASBRs are transit routers to prefixes that are
   typically imported through redistribution of prefixes from other
   routing protocols.  Therefore, non-local IPv4 prefixes, e.g., those
   imported from other routing protocols, <bcp14>SHOULD NOT</bcp14> be advertised in
   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
   from continued advertisements of non-local prefixes.  In these cases,
   the Type 2 metric in AS-external-LSAs <bcp14>MUST</bcp14> be set to
   LSInfinity <xref target="RFC2328" format="default" sectionFormat="of" derivedContent="RFC2328"/> to
   repel traffic (see <xref target="sect-6" format="default" sectionFormat="of" derivedContent="Section 6"/> of this document).</t>
    </section>
    <section anchor="sect-4" numbered="true" toc="include" removeInRFC="false" pn="section-4">
      <name slugifiedName="name-spf-modifications">SPF Modifications</name>
      <t pn="section-4-1">
   The SPF calculation described in <xref target="RFC2328" sectionFormat="of" section="16.1" format="default" derivedLink="https://rfc-editor.org/rfc/rfc2328#section-16.1" derivedContent="RFC2328"/> is
   modified to ensure that the routers originating router-LSAs with the
   H-bit set will not be used for transit traffic.  Step (2) is
   modified to include a check on the H-bit, as shown below.  (Please note
   that all of the sub-procedures of Step (2) remain unchanged and are not included in
   the excerpt below.)</t>
      <ul empty="true" spacing="normal" bare="false" pn="section-4-2">
        <li pn="section-4-2.1">
          <dl newline="false" spacing="normal" indent="5" pn="section-4-2.1.1">
            <dt pn="section-4-2.1.1.1">(2)</dt>
            <dd pn="section-4-2.1.1.2">Call the vertex just added to the
            tree "vertex V".  Examine the LSA
            associated with vertex V.  This is
            a lookup in Area A's link state
            database based on the Vertex ID. If
            this is a router-LSA, and the H-bit
            of the router-LSA is set, and
            vertex V is not the root, then the
            router should not be used for transit
            and Step (3) should be executed
            immediately. If this is a router-LSA
            and bit V of the router-LSA (see
            Appendix A.4.2) is set, set Area A's
            TransitCapability to TRUE. In any case,
            each link described by the LSA gives
            the cost to an adjacent vertex.  For
            each described link (say it joins
            vertex V to vertex W):</dd>
          </dl>
        </li>
      </ul>
    </section>
    <section anchor="sect-5" numbered="true" toc="include" removeInRFC="false" pn="section-5">
      <name slugifiedName="name-autodiscovery-and-backward-">Autodiscovery and Backward Compatibility</name>
      <t pn="section-5-1">
   To reduce the possibility of any routing loops due to partial
   deployment, this document defines an OSPF Router Information (RI) LSA
   capability bit <xref target="RFC7770" format="default" sectionFormat="of" derivedContent="RFC7770"/>.  See
   <xref target="sect-7" format="default" sectionFormat="of" derivedContent="Section 7"/> (<xref target="tab-2" format="default" sectionFormat="of" derivedContent="Table 2"/>).
      </t>
      <t pn="section-5-2">The RI LSA <bcp14>MUST</bcp14> be area-scoped.</t>
      <t pn="section-5-3">
   Autodiscovery via announcement of the OSPF Host Router capability
   (<xref target="sect-7" format="default" sectionFormat="of" derivedContent="Section 7"/>)
   ensures that the H-bit functionality and its associated SPF changes
   <bcp14>MUST</bcp14> only take effect if all the routers in a given OSPF area support
   this functionality.</t>
      <t pn="section-5-4">
   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
   new router without H-bit support joins an area that previously had
   only H-bit-capable routers with the H-bit set, then it may take some time
   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
   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
   unsure of the status of the new router; this type of situation can cause temporary
   transient loops.</t>
      <t pn="section-5-5">
   The following recommendations will mitigate transient routing loops:</t>
      <ul spacing="normal" bare="false" empty="false" pn="section-5-6">
        <li pn="section-5-6.1">Implementations are <bcp14>RECOMMENDED</bcp14> to provide a configuration
      parameter to manually override enforcement of the H-bit
      functionality in partial deployments where the topology guarantees
      that OSPFv2 routers not supporting the H-bit do not compute routes
      resulting in routing loops.</li>
        <li pn="section-5-6.2">All routers with the H-bit set <bcp14>MUST</bcp14> advertise all of the router's
      non-stub links with a metric equal to MaxLinkMetric <xref target="RFC6987" format="default" sectionFormat="of" derivedContent="RFC6987"/> in
      its LSAs in order to prevent OSPFv2 routers (unless a last-resort path)
      that do not support the H-bit from attempting to use the non-stub links for transit
      traffic.</li>
        <li pn="section-5-6.3">All routers supporting the H-bit <bcp14>MUST</bcp14> check the RI LSAs of all
      nodes in the area to verify that all nodes support the H-bit
      before actively using the H-bit feature.  If any router does not
      advertise the OSPF Host Router capability (<xref target="sect-7" format="default" sectionFormat="of" derivedContent="Section 7"/>), then the SPF
      modifications described in <xref target="sect-4" format="default" sectionFormat="of" derivedContent="Section 4"/> <bcp14>MUST NOT</bcp14> be used in the area.</li>
      </ul>
    </section>
    <section anchor="sect-6" numbered="true" toc="include" removeInRFC="false" pn="section-6">
      <name slugifiedName="name-ospf-as-external-lsas-nssa-">OSPF AS-External-LSAs / NSSA-LSAs with Type 2 Metrics</name>
      <t pn="section-6-1">
   When calculating the path to a prefix in an OSPF AS-external-LSA or
   NSSA-LSA <xref target="RFC3101" format="default" sectionFormat="of" derivedContent="RFC3101"/> with a Type 2 metric, the advertised Type 2 metric
   is taken as more significant than the OSPF intra-area or inter-area
   path.  Hence, advertising the links with MaxLinkMetric as specified
   in <xref target="RFC6987" format="default" sectionFormat="of" derivedContent="RFC6987"/> does not discourage transit
   traffic when calculating AS-external or NSSA routes with Type 2 metrics.</t>
      <t pn="section-6-2">
   Consequently, this document updates <xref target="RFC6987" format="default" sectionFormat="of" derivedContent="RFC6987"/> so that the Type 2 metric in any
   self-originated AS-external-LSAs or NSSA-LSAs is advertised as
   LSInfinity-1 <xref target="RFC2328" format="default" sectionFormat="of" derivedContent="RFC2328"/>.
  If the H-bit is set, then the Type 2 metric
   <bcp14>MUST</bcp14> be set to LSInfinity.</t>
    </section>
    <section anchor="sect-7" numbered="true" toc="include" removeInRFC="false" pn="section-7">
      <name slugifiedName="name-iana-considerations">IANA Considerations</name>
      <t pn="section-7-1">
   IANA has registered the following value in the 
   "OSPFv2 Router Properties Registry".</t>
      <table anchor="tab-1" align="center" pn="table-1">
        <name slugifiedName="name-h-bit">H-Bit</name>
        <thead>
          <tr>
            <th align="left" colspan="1" rowspan="1">Value</th>
            <th align="left" colspan="1" rowspan="1">Description</th>
            <th align="left" colspan="1" rowspan="1">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="left" colspan="1" rowspan="1">0x80</td>
            <td align="left" colspan="1" rowspan="1">Host (H-bit)</td>
            <td align="left" colspan="1" rowspan="1">RFC 8770</td>
          </tr>
        </tbody>
      </table>
      <t pn="section-7-3">
   IANA has registered the following in the "OSPF Router
   Informational Capability Bits" registry.</t>
      <table anchor="tab-2" align="center" pn="table-2">
        <name slugifiedName="name-ospf-host-router-capability">OSPF Host Router Capability Bit</name>
        <thead>
          <tr>
            <th align="left" colspan="1" rowspan="1">Bit Number</th>
            <th align="left" colspan="1" rowspan="1">Capability Name</th>
            <th align="left" colspan="1" rowspan="1">Reference</th>
          </tr>
        </thead>
        <tbody>
          <tr>
            <td align="center" colspan="1" rowspan="1">7</td>
            <td align="left" colspan="1" rowspan="1">OSPF Host Router</td>
            <td align="left" colspan="1" rowspan="1">RFC 8770</td>
          </tr>
        </tbody>
      </table>
    </section>
    <section anchor="sect-8" numbered="true" toc="include" removeInRFC="false" pn="section-8">
      <name slugifiedName="name-security-considerations">Security Considerations</name>
      <t pn="section-8-1">
   This document introduces the H-bit, which is a capability feature that
   restricts the use of a router for transit, while only its local
   destinations are reachable.  This is a subset of the operations of a
   normal router and therefore should not introduce new security
   considerations beyond those already known in OSPFv2 <xref target="RFC2328" format="default" sectionFormat="of" derivedContent="RFC2328"/>.  The
   feature introduces the advertisement of host router capability
   information to all OSPFv2 routers in an area.  This information can
   be leveraged for discovery and verification that all routers in the
   area support the capability before the feature is turned on.  In the
   event that a rogue or buggy router incorrectly advertises its
   capability, possible scenarios are as follows:</t>
      <ul spacing="normal" bare="false" empty="false" pn="section-8-2">
        <li pn="section-8-2.1">The router does not have the capability but sends the H-bit set in
      its LSAs. In this case, a routing loop is possible.
      However, this is mitigated by the fact that this router should be
      avoided anyway.  Moreover, the link metrics cost (MaxLinkMetric)
      of this router will mitigate this situation.  In any case, a
      router advertising the H-bit capability without its link metrics cost
      equal to MaxLinkMetric could be a rogue
      router and should be avoided.</li>
        <li pn="section-8-2.2">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
      H-bit routers in the area and prevents all the routers from running the modified
      SPF.  Any impacts are also mitigated in this scenario, as other H-bit routers in the
      area also advertise the MaxLinkMetric cost, so they will still be
      avoided unless they are the last‑resort path.</li>
        <li pn="section-8-2.3">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
      effectively partitions the network.  This case is indistinguishable
      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
      only transit path.  The OSPF protocol will continue to function
      within the partitioned domains.</li>
      </ul>
    </section>
  </middle>
  <back>
    <references pn="section-9">
      <name slugifiedName="name-references">References</name>
      <references pn="section-9.1">
        <name slugifiedName="name-normative-references">Normative References</name>
        <reference anchor="RFC2119" target="https://www.rfc-editor.org/info/rfc2119" quoteTitle="true" derivedAnchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author initials="S." surname="Bradner" fullname="S. Bradner">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="1997" month="March"/>
            <abstract>
              <t>In many standards track documents several words are used to signify the requirements in the specification.  These words are often capitalized. This document defines these words as they should be interpreted in IETF documents.  This document specifies an Internet Best Current Practices for the Internet Community, and requests discussion and suggestions for improvements.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="2119"/>
          <seriesInfo name="DOI" value="10.17487/RFC2119"/>
        </reference>
        <reference anchor="RFC2328" target="https://www.rfc-editor.org/info/rfc2328" quoteTitle="true" derivedAnchor="RFC2328">
          <front>
            <title>OSPF Version 2</title>
            <author initials="J." surname="Moy" fullname="J. Moy">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="1998" month="April"/>
            <abstract>
              <t>This memo documents version 2 of the OSPF protocol.  OSPF is a link- state routing protocol.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="STD" value="54"/>
          <seriesInfo name="RFC" value="2328"/>
          <seriesInfo name="DOI" value="10.17487/RFC2328"/>
        </reference>
        <reference anchor="RFC6987" target="https://www.rfc-editor.org/info/rfc6987" quoteTitle="true" derivedAnchor="RFC6987">
          <front>
            <title>OSPF Stub Router Advertisement</title>
            <author initials="A." surname="Retana" fullname="A. Retana">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="L." surname="Nguyen" fullname="L. Nguyen">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Zinin" fullname="A. Zinin">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="White" fullname="R. White">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="McPherson" fullname="D. McPherson">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2013" month="September"/>
            <abstract>
              <t>This document describes a backward-compatible technique that may be used by OSPF (Open Shortest Path First) implementations to advertise a router's unavailability to forward transit traffic or to lower the preference level for the paths through such a router.</t>
              <t>This document obsoletes RFC 3137.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="6987"/>
          <seriesInfo name="DOI" value="10.17487/RFC6987"/>
        </reference>
        <reference anchor="RFC7770" target="https://www.rfc-editor.org/info/rfc7770" quoteTitle="true" derivedAnchor="RFC7770">
          <front>
            <title>Extensions to OSPF for Advertising Optional Router Capabilities</title>
            <author initials="A." surname="Lindem" fullname="A. Lindem" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="N." surname="Shen" fullname="N. Shen">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="JP." surname="Vasseur" fullname="JP. Vasseur">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="R." surname="Aggarwal" fullname="R. Aggarwal">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="S." surname="Shaffer" fullname="S. Shaffer">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2016" month="February"/>
            <abstract>
              <t>It is useful for routers in an OSPFv2 or OSPFv3 routing domain to know the capabilities of their neighbors and other routers in the routing domain.  This document proposes extensions to OSPFv2 and OSPFv3 for advertising optional router capabilities.  The Router Information (RI) Link State Advertisement (LSA) is defined for this purpose.  In OSPFv2, the RI LSA will be implemented with an Opaque LSA type ID.  In OSPFv3, the RI LSA will be implemented with a unique LSA type function code.  In both protocols, the RI LSA can be advertised at any of the defined flooding scopes (link, area, or autonomous system (AS)).  This document obsoletes RFC 4970 by providing a revised specification that includes support for advertisement of multiple instances of the RI LSA and a TLV for functional capabilities.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="7770"/>
          <seriesInfo name="DOI" value="10.17487/RFC7770"/>
        </reference>
        <reference anchor="RFC8174" target="https://www.rfc-editor.org/info/rfc8174" quoteTitle="true" derivedAnchor="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author initials="B." surname="Leiba" fullname="B. Leiba">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2017" month="May"/>
            <abstract>
              <t>RFC 2119 specifies common key words that may be used in protocol  specifications.  This document aims to reduce the ambiguity by clarifying that only UPPERCASE usage of the key words have the  defined special meanings.</t>
            </abstract>
          </front>
          <seriesInfo name="BCP" value="14"/>
          <seriesInfo name="RFC" value="8174"/>
          <seriesInfo name="DOI" value="10.17487/RFC8174"/>
        </reference>
      </references>
      <references pn="section-9.2">
        <name slugifiedName="name-informative-references">Informative References</name>
        <reference anchor="BGP-ORR" target="https://tools.ietf.org/html/draft-ietf-idr-bgp-optimal-route-reflection-20" quoteTitle="true" derivedAnchor="BGP-ORR">
          <front>
            <title>BGP Optimal Route Reflection (BGP-ORR)</title>
            <seriesInfo name="Work in Progress, Internet-Draft," value="draft-ietf-idr-bgp-optimal-route-reflection-20"/>
            <author initials="R" surname="Raszuk" fullname="Robert Raszuk" role="editor">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="C" surname="Cassar" fullname="Christian Cassar">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="E" surname="Aman" fullname="Erik Aman">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="B" surname="Decraene" fullname="Bruno Decraene">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="K" surname="Wang" fullname="Kevin Wang">
              <organization showOnFrontPage="true"/>
            </author>
            <date month="January" day="8" year="2020"/>
          </front>
        </reference>
        <reference anchor="RFC3101" target="https://www.rfc-editor.org/info/rfc3101" quoteTitle="true" derivedAnchor="RFC3101">
          <front>
            <title>The OSPF Not-So-Stubby Area (NSSA) Option</title>
            <author initials="P." surname="Murphy" fullname="P. Murphy">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2003" month="January"/>
            <abstract>
              <t>This memo documents an optional type of Open Shortest Path First (OSPF) area that is somewhat humorously referred to as a "not-so-stubby" area (or NSSA).  NSSAs are similar to the existing OSPF stub area configuration option but have the additional capability of importing AS external routes in a limited fashion. The OSPF NSSA Option was originally defined in RFC 1587.  The functional differences between this memo and RFC 1587 are explained in Appendix F. All differences, while expanding capability, are backward-compatible in nature.  Implementations of this memo and of RFC 1587 will interoperate. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="3101"/>
          <seriesInfo name="DOI" value="10.17487/RFC3101"/>
        </reference>
        <reference anchor="RFC5340" target="https://www.rfc-editor.org/info/rfc5340" quoteTitle="true" derivedAnchor="RFC5340">
          <front>
            <title>OSPF for IPv6</title>
            <author initials="R." surname="Coltun" fullname="R. Coltun">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="D." surname="Ferguson" fullname="D. Ferguson">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="J." surname="Moy" fullname="J. Moy">
              <organization showOnFrontPage="true"/>
            </author>
            <author initials="A." surname="Lindem" fullname="A. Lindem">
              <organization showOnFrontPage="true"/>
            </author>
            <date year="2008" month="July"/>
            <abstract>
              <t>This document describes the modifications to OSPF to support version 6 of the Internet Protocol (IPv6).  The fundamental mechanisms of OSPF (flooding, Designated Router (DR) election, area support, Short Path First (SPF) calculations, etc.) remain unchanged.  However, some changes have been necessary, either due to changes in protocol semantics between IPv4 and IPv6, or simply to handle the increased address size of IPv6.  These modifications will necessitate incrementing the protocol version from version 2 to version 3.  OSPF for IPv6 is also referred to as OSPF version 3 (OSPFv3).</t>
              <t>Changes between OSPF for IPv4, OSPF Version 2, and OSPF for IPv6 as described herein include the following.  Addressing semantics have been removed from OSPF packets and the basic Link State Advertisements (LSAs).  New LSAs have been created to carry IPv6 addresses and prefixes.  OSPF now runs on a per-link basis rather than on a per-IP-subnet basis.  Flooding scope for LSAs has been generalized.  Authentication has been removed from the OSPF protocol and instead relies on IPv6's Authentication Header and Encapsulating Security Payload (ESP).</t>
              <t>Even with larger IPv6 addresses, most packets in OSPF for IPv6 are almost as compact as those in OSPF for IPv4.  Most fields and packet- size limitations present in OSPF for IPv4 have been relaxed.  In addition, option handling has been made more flexible.</t>
              <t>All of OSPF for IPv4's optional capabilities, including demand circuit support and Not-So-Stubby Areas (NSSAs), are also supported in OSPF for IPv6.  [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5340"/>
          <seriesInfo name="DOI" value="10.17487/RFC5340"/>
        </reference>
      </references>
    </references>
    <section anchor="acknowledgements" numbered="false" toc="include" removeInRFC="false" pn="section-appendix.a">
      <name slugifiedName="name-acknowledgements">Acknowledgements</name>
      <t pn="section-appendix.a-1">
   The authors would like to acknowledge <contact fullname="Hasmit Grover"/> for discovering
   the limitation in <xref target="RFC6987" format="default" sectionFormat="of" derivedContent="RFC6987"/>, 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>
    <section anchor="authors-addresses" numbered="false" removeInRFC="false" toc="include" pn="section-appendix.b">
      <name slugifiedName="name-authors-addresses">Authors' Addresses</name>
      <author fullname="Keyur Patel" initials="K." surname="Patel">
        <organization showOnFrontPage="true">Arrcus</organization>
        <address>
          <email>keyur@arrcus.com</email>
        </address>
      </author>
      <author fullname="Padma Pillay-Esnault" initials="P." surname="Pillay-Esnault">
        <organization showOnFrontPage="true">PPE Consulting</organization>
        <address>
          <email>padma.ietf@gmail.com</email>
        </address>
      </author>
      <author fullname="Manish Bhardwaj" initials="M." surname="Bhardwaj">
        <organization showOnFrontPage="true">Cisco Systems</organization>
        <address>
          <postal>
            <street>170 W. Tasman Drive</street>
            <city>San Jose</city>
            <region>CA</region>
            <code>95134</code>
            <country>United States of America</country>
          </postal>
          <email>manbhard@cisco.com</email>
        </address>
      </author>
      <author fullname="Serpil Bayraktar" initials="S." surname="Bayraktar">
        <organization showOnFrontPage="true">Cisco Systems</organization>
        <address>
          <postal>
            <street>170 W. Tasman Drive</street>
            <city>San Jose</city>
            <region>CA</region>
            <code>95134</code>
            <country>United States of America</country>
          </postal>
          <email>serpil@cisco.com</email>
        </address>
      </author>
    </section>
  </back>
</rfc>
