<?xml version="1.0" encoding="US-ASCII"?>
 <!-- xml2rfcv2 -->
<!-- This template is for creating an Internet Draft using xml2rfc,
     which is available here: http://xml.resource.org. -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!-- One method to get references from the online citation libraries.
     There has to be one entity for each item to be referenced. 
     An alternate method (rfc include) is described in the references. -->
<!ENTITY RFC2119 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
<!ENTITY RFC2629 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2629.xml">
<!ENTITY RFC3552 SYSTEM "http://xml.resource.org/public/rfc/bibxml/reference.RFC.3552.xml">
<!ENTITY I-D.narten-iana-considerations-rfc2434bis SYSTEM "http://xml.resource.org/public/rfc/bibxml3/reference.I-D.narten-iana-considerations-rfc2434bis.xml">
]>
<?xml-stylesheet type='text/xsl' href='rfc2629.xslt' ?>
<!-- used by XSLT processors -->
<!-- For a complete list and description of processing instructions (PIs), 
     please see http://xml.resource.org/authoring/README.html. -->
<!-- Below are generally applicable Processing Instructions (PIs) that most I-Ds might want to use.
     (Here they are set differently than their defaults in xml2rfc v1.32) -->
<!-- give errors regarding ID-nits and DTD validation -->
<!-- control the table of contents (ToC) -->
<?rfc toc="yes"?>
<!-- generate a ToC -->
<?rfc tocdepth="4"?>
<!-- the number of levels of subsections in ToC. default: 3 -->
<!-- control references -->
<?rfc rfcedstyle="yes"?>
<?rfc symrefs="yes"?>
<!-- use symbolic references tags, i.e, [RFC2119] instead of [1] -->
<?rfc sortrefs="yes" ?>
<!-- sort the reference entries alphabetically -->
<!-- control vertical white space 
     (using these PIs as follows is recommended by the RFC Editor) -->
<?rfc compact="yes" ?>
<!-- do not start each main section on a new page -->
<?rfc subcompact="no" ?>
<!-- keep one blank line between list items -->
<!-- end of list of popular I-D processing instructions -->
<rfc category="info" number="6987" ipr="trust200902"
     obsoletes="3137" submissionType="IETF" consensus="yes" xml:lang="en">
  <!-- category values: std, bcp, info, exp, and historic
     ipr values: full3667, noModification3667, noDerivatives3667
     you can add the attributes updates="NNNN" and obsoletes="NNNN" 
     they will automatically be output with "(if approved)" -->

  <!-- ***** FRONT MATTER ***** -->

  <front>
    <!-- The abbreviated title is used in the page header - it is only necessary if the 
         full title is longer than 39 characters -->

    <title abbrev="OSPF Stub Router Advertisement">OSPF Stub Router
    Advertisement</title>

    <!-- add 'role="editor"' below for the editors if appropriate -->

    <!-- Another author who claims to be an editor -->

    <author fullname="Alvaro Retana" initials="A." surname="Retana">
      <organization>Cisco Systems, Inc.</organization>

      <address>
        <postal>
          <street>7025 Kit Creek Rd.</street>

          <!-- Reorder these if your country does things differently -->

          <city>Research Triangle Park</city>

          <region>NC</region>

          <code>27709</code>

          <country>USA</country>
        </postal>

        <email>aretana@cisco.com</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>

    <author fullname="Liem Nguyen" initials="L." surname="Nguyen">
      <organization>Cisco Systems, Inc.</organization>

      <address>
        <postal>
          <street>3750 Cisco Way</street>

          <!-- Reorder these if your country does things differently -->

          <city>San Jose</city>

          <region>CA</region>

          <code>95134</code>

          <country>USA</country>
        </postal>

        <email>lhnguyen@cisco.com</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>

    <author fullname="Alex Zinin" initials="A." surname="Zinin">
      <organization>Cinarra Systems</organization>

      <address>
        <postal>
          <street/>

          <!-- Reorder these if your country does things differently -->

          <city>Menlo Park</city>

          <region>CA</region>

          <code/>

          <country>USA</country>
        </postal>

        <email>alex.zinin@gmail.com</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>

    <author fullname="Russ White" initials="R." surname="White">
      <organization></organization>

      <address>
        <postal>
          <street>1500 N. Greenville Avenue</street>
          <street>Suite 1100</street>

          <!-- Reorder these if your country does things differently -->

          <city>Richardson</city>

          <region>TX</region>

          <code>75081</code>

          <country>USA</country>
        </postal>

        <email>Russ.White@vce.com</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>

    <author fullname="Danny McPherson" initials="D." surname="McPherson">
      <organization>Verisign, Inc.</organization>

      <address>
        <postal>
          <street>12061 Bluemont Way</street>

          <!-- Reorder these if your country does things differently -->

          <city>Reston</city>

          <region>VA</region>

          <code>20190</code>

          <country>USA</country>
        </postal>

        <email>dmcpherson@verisign.com</email>

        <!-- uri and facsimile elements may also be added -->
      </address>
    </author>

    <date month="July" year="2013"/>

    <!-- If the month and year are both specified and are the current ones, xml2rfc will fill 
         in the current day for you. If only the current year is specified, xml2rfc will fill 
	 in the current day and month for you. If the year is not the current one, it is 
	 necessary to specify at least a month (xml2rfc assumes day="1" if not specified for the 
	 purpose of calculating the expiry date).  With drafts it is normally sufficient to 
	 specify just the year. -->

    <!-- Meta-data Declarations -->

    <area>Routing</area>

    <workgroup>Network Working Group</workgroup>

    <!-- WG name at the upperleft corner of the doc,
         IETF is fine for individual submissions.  
	 If this element is not present, the default is "Network Working Group",
         which is used by the RFC Editor as a nod to the history of the IETF. -->

    <keyword>ospf stub</keyword>

    <!-- Keywords will be incorporated into HTML output
         files in a meta tag but they have no effect on text or nroff
         output. If you submit your draft to the RFC Editor, the
         keywords will be used for the search engine. -->

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

  <middle>
    <section title="Introduction" toc="default">
      <t>In some situations, it may be advantageous to inform routers in a
      network not to use a specific router as a transit point but to still route
      to it. Possible situations include the following:</t>

      <t><list style="symbols">
          <t>The router is in a critical condition (for example, has a very high
          CPU load or does not have enough memory to store all Link State
          Advertisements (LSAs) or build the routing table).</t>

          <t>Graceful introduction and removal of the router to/from the
          network.</t>

          <t>Other (administrative or traffic engineering) reasons.</t>
        </list></t>

      <t>Note that the solution introduced in this document does not remove
      the router from the topology view of the network (as could be done by
      just flushing that router's router-LSA) but discourages other routers
      from using it for transit routing, while still routing packets to the
      router's own IP addresses, i.e., the router is announced as a stub.</t>

      <t>It must be emphasized that the solution provides real benefits in
      networks designed with at least some level of redundancy, so that traffic
      can be routed around the stub router. Otherwise, traffic destined for
      the networks and reachable through such a stub router may still be routed
      through it.</t>
    </section>

    <section anchor="solution" title="Solutions" toc="default">
      <t>The solution introduced in this document solves two challenges
      associated with the outlined problem. In the description below, router X
      is the router announcing itself as a stub. The challenges are
</t>

      <t><list style="format %d)">
          <t>Making other routers prefer routes around router X while
          performing the Dijkstra calculation.</t>

          <t>Allowing other routers to reach IP prefixes directly connected to
          router X.</t>
        </list></t>

      <t>Note that it would be easy to address issue 1) alone by just flushing
      router X's router-LSA from the domain. However, it does not solve
      problem 2), since other routers will not be able to use links to router
      X in Dijkstra (no back link), and because router X will not have links
      to its neighbors.</t>

      <t>To address both problems, router X announces its router-LSA to the
      neighbors with the cost of all non-stub links (links of the types other
      than 3) being set to MaxLinkMetric (defined in <xref
      target="maxlinkmetric"/>).
</t>

      <t>The solution above applies to both <xref format="default"
      pageno="false" target="RFC2328">OSPFv2</xref> and <xref format="default"
      pageno="false" target="RFC5340">OSPFv3</xref>.</t>

      <section title="OSPFv3-Only Solution" toc="default">
        <t><xref format="default" pageno="false"
        target="RFC5340">OSPFv3</xref> introduces additional options to
        provide similar control of the forwarding topology; the R-bit provides
        an indication of whether a router is active and should be used for
        transit traffic.</t>

        <t>It is left to network operators to decide which technique to use in
        their network. See <xref target="deploy"/> for more details.</t>
      </section>
    </section>

    <section anchor="maxlinkmetric" title="Maximum Link Metric" toc="default">
      <t><xref format="default" pageno="false" target="solution"/> refers to
      the cost of all non-stub links as MaxLinkMetric, which is a new fixed
      architectural value introduced in this document.</t>


      <t><list style="hanging">
          <t hangText="MaxLinkMetric"><vspace blankLines="0"/>The metric value
          indicating that a router-LSA link (see <xref target="solution"/>)
          should not be used for transit traffic. It is defined to be the 16-bit
          binary value of all ones: 0xffff.
</t>
        </list></t>
    </section>

    <section anchor="deploy" title="Deployment Considerations" toc="default">
      <t>When using MaxLinkMetric, some inconsistency may be seen if the
      network is constructed of routers that perform an intra-area Dijkstra
      calculation as specified in <xref format="default" pageno="false"
      target="RFC1247"/> (discarding link records in router-LSAs that have a
      MaxLinkMetric cost value) and routers that perform it as specified in
      <xref format="default" pageno="false" target="RFC1583"/> and higher (do
      not treat links with MaxLinkMetric cost as unreachable). Note that this
      inconsistency will not lead to routing loops, because if there are some
      alternate paths in the network, both types of routers will agree on
      using them rather than the path through the stub router. If the path
      through the stub router is the only one, the routers of the first type
      will not use the stub router for transit (which is the desired
      behavior), while the routers of the second type will still use this
      path.</t>

      <t>On the other hand, clearing the R-bit will consistently result in the
      router not being used for transit.</t>

      <t>The use of MaxLinkMetric or the R-bit in a network depends on the
      objectives of the operator. One of the possible considerations for
      selecting one or the other is in the desired behavior if the path
      through the stub router is the only one available. Using MaxLinkMetric
      allows for that path to be used while the R-bit doesn't.</t>
    </section>

    <!-- This PI places the pagebreak correctly (before the section title) in the text output. -->

    <?rfc needLines="8" ?>

    <section title="Security Considerations" toc="default">
      <t>The technique described in this document does not introduce any new
      security issues into the OSPF protocol.</t>
    </section>

    <section title="Acknowledgements" toc="default">
      <t>The authors of this document do not make any claims on the
      originality of the ideas described. Among other people, we would like to
      acknowledge Henk Smit for being part of one of the initial discussions
      around this topic.</t>

      <t>We would like to thank Shishio Tsuchiya, Gunter Van de Velde,
      Tomohiro Yamagata, Faraz Shamim, and Acee Lindem who provided significant
      input for the latest draft version of this document. Dave Cridland and
Tom Yu also provided valuable comments.</t>
    </section>

    <!-- Possibly a 'Contributors' section ... -->
  </middle>

  <!--  *****BACK MATTER ***** -->

  <back>
    <!-- References split into informative and normative -->

    <!-- There are 2 ways to insert reference entries from the citation libraries:
     1. define an ENTITY at the top, and use "ampersand character"RFC2629; here (as shown)
     2. simply use a PI "less than character"?rfc include="reference.RFC.2119.xml"?> here
        (for I-Ds: include="reference.I-D.narten-iana-considerations-rfc2434bis.xml")

     Both are cited textually in the same manner: by using xref elements.
     If you use the PI option, xml2rfc will, by default, try to find included files in the same
     directory as the including file. You can also define the XML_LIBRARY environment variable
     with a value containing a set of directories to search.  These can be either in the local
     filing system or remote ones accessed by http (http://domain/dir/... ).-->

    <references title="Normative References">

      <?rfc include="reference.RFC.2328.xml"?>

      <?rfc include="reference.RFC.5340.xml"?>

    </references>

    <references title="Informative References">
      <!-- Here we use entities that we defined at the beginning. -->

      <!-- A reference written by by an organization not a person. -->

      <?rfc include="reference.RFC.1247.xml"?>

      <?rfc include="reference.RFC.1583.xml"?>

      <?rfc include='reference.RFC.3137.xml'?>
    </references>

    <!-- Change Log

v00 2006-03-15  EBD   Initial version

v01 2006-04-03  EBD   Moved PI location back to position 1 -
                      v3.1 of XMLmind is better with them at this location.
v02 2007-03-07  AH    removed extraneous nested_list attribute,
                      other minor corrections
v03 2007-03-09  EBD   Added comments on null IANA sections and fixed heading capitalization.
                      Modified comments around figure to reflect non-implementation of
                      figure indent control.  Put in reference using anchor="DOMINATION".
                      Fixed up the date specification comments to reflect current truth.
v04 2007-03-09 AH     Major changes: shortened discussion of PIs,
                      added discussion of rfc include.
v05 2007-03-10 EBD    Added preamble to C program example to tell about ABNF and alternative 
                      images. Removed meta-characters from comments (causes problems).  -->

    <section title="Changes from RFC 3137">
      <t>This document obsoletes <xref target="RFC3137"/>.</t>

      <t>In addition to editorial updates, this document defines a new
      architectural constant (MaxLinkMetric in <xref target="maxlinkmetric"/>)
      to eliminate any confusion about the interpretation of LSInfinity. It
      also incorporates and explains the use of the <xref
      target="RFC5340">R-bit</xref> as a solution to the problem addressed in
      the text.</t>
    </section>
  </back>
</rfc>
