<?xml version='1.0' encoding='utf-8'?>
<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?>
<!-- generated by https://github.com/cabo/kramdown-rfc version 1.7.39 (Ruby 3.2.3) -->
<rfc xmlns:xi="http://www.w3.org/2001/XInclude" ipr="trust200902" docName="draft-rivadeneyra-no-ibgp-full-mesh-00" category="info" submissionType="IETF" xml:lang="en" version="3">
  <!-- xml2rfc v2v3 conversion 3.34.0 -->
  <front>
    <title abbrev="On iBGP Full-Mesh Requirements">On iBGP Full-Mesh Requirements</title>
    <seriesInfo name="Internet-Draft" value="draft-rivadeneyra-no-ibgp-full-mesh-00"/>
    <author initials="J. M." surname="Rivadeneyra" fullname="Jose Maria Rivadeneyra" role="editor">
      <organization>Euskal Herriko Unibertsitatea (University of the Basque Country)</organization>
      <address>
        <postal>
          <street>Ibaetako Campusa</street>
          <code>20018</code>
          <city>Donostia - Gipuzkoa - Basque Country</city>
        </postal>
        <email>jm.rivadeneyra@ehu.eus</email>
      </address>
    </author>
    <date year="2026" month="June" day="15"/>
    <area>Routing</area>
    <workgroup>rtgwg (Routing Area Working Group)</workgroup>
    <keyword>ibgp</keyword>
    <keyword>full-mesh</keyword>
    <keyword>stub-as</keyword>
    <abstract>
      <?line 55?>

<t>A common misconception within the Internet community is that internal BGP (iBGP) strictly requires a full mesh or alternatives such as Route Reflectors. In reality, a full mesh is an architectural design choice driven by route visibility needs, rather than a protocol mandate. This document analyzes the historical origins of this misunderstanding and clarifies the specific scenarios—multihomed stub Autonomous Systems (ASes)— where an iBGP full mesh is unnecessary and operationally undesirable.</t>
    </abstract>
  </front>
  <middle>
    <?line 59?>

<section anchor="introduction">
      <name>Introduction</name>
      <t>It is widely believed that all BGP routers within an Autonomous System (AS) must be connected in a full iBGP mesh, or, when this becomes impractical, that route reflectors or confederations must be used. However, a full mesh is not always necessary, and in some scenarios it may even be undesirable.</t>
      <t>This document explains why the belief that iBGP full mesh is mandatory has become so widespread, and clarify when it is actually necessary to interconnect all BGP routers within an AS — and when it is better not to do so.</t>
      <section anchor="requirements-language">
        <name>Requirements Language</name>
        <t>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"/> <xref target="RFC8174"/> when, and only when, they
appear in all capitals, as shown here.</t>
        <?line -18?>

</section>
    </section>
    <section anchor="origin-of-the-confusion">
      <name>Origin of the Confusion</name>
      <t>Much of the confusion surrounding the supposed requirement for a full iBGP mesh stems from the wording in early, now obsolete, versions of the BGP specification. In the first version of the protocol (<xref target="RFC1105"/>), it was stated:</t>
      <ul empty="true">
        <li>
          <t>"...in order to maintain consistent routing information, these gateways <bcp14>MUST</bcp14> have direct BGP sessions with each other (the BGP sessions should form a complete graph)."</t>
        </li>
      </ul>
      <t>And further:</t>
      <ul empty="true">
        <li>
          <t>“If the BGP UPDATE was received over the INTERNAL link, it is not propagated over any other INTERNAL link. This restriction is due to the fact that all BGP gateways within a single AS form a completely connected graph.”</t>
        </li>
      </ul>
      <t>It is reasonable to assume that the authors focused on transit providers, which, at that time (June 1989), were essentially the only networks deploying BGP. Subsequent versions of the protocol retained similar wording:</t>
      <ul spacing="normal">
        <li>
          <t>In <xref target="RFC1163"/> and <xref target="RFC1267"/>, the first statement was removed, but the second remained largely unchanged.</t>
        </li>
        <li>
          <t>In <xref target="RFC1654"/> and <xref target="RFC1771"/>, the wording evolved, but the idea of a full mesh requirement remained:</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>“When a BGP speaker receives a new route from a BGP speaker in a neighboring autonomous system, it shall advertise that route to all other BGP speakers in its autonomous system by means of an UPDATE message.”</t>
        </li>
      </ul>
      <t>All these historical documents have since been obsoleted by the current standard, <xref target="RFC4271"/>, from which any explicit mandate for a full mesh has been removed. The relevant rule now reads:</t>
      <ul empty="true">
        <li>
          <t>“When a BGP speaker receives an UPDATE message from an internal peer, it <bcp14>SHALL NOT</bcp14> re-distribute that routing information to other internal peers (unless acting as a route reflector).”</t>
        </li>
      </ul>
      <t>Unfortunately, the RFCs defining alternatives to full mesh — route reflection (<xref target="RFC4456"/>) and confederations (<xref target="RFC5065"/>) — still contain legacy wording that can be interpreted as implying such a requirement. For example, <xref target="RFC4456"/> states:</t>
      <ul empty="true">
        <li>
          <t>"Typically, all BGP speakers within a single AS must be fully meshed..."</t>
        </li>
      </ul>
      <t>While this wording reflects common operational practice rather than a protocol constraint, subsequent passages reinforce the perception that a full mesh is mandatory. This is particularly evident in <xref target="RFC5065"/>, which includes statements such as:</t>
      <ul empty="true">
        <li>
          <t>"As originally defined, BGP requires that all BGP speakers within a single AS must be fully meshed."</t>
        </li>
      </ul>
      <ul empty="true">
        <li>
          <t>"[BGP-4] requires BGP speakers in the same autonomous system to establish a full mesh of TCP connections among all speakers for the purpose of exchanging exterior routing information."</t>
        </li>
      </ul>
      <t>These statements, although historically accurate regarding early design assumptions, perpetuate the misconception that a full mesh is a protocol requirement rather than a network design choice.</t>
    </section>
    <section anchor="when-ibgp-full-mesh-or-its-alternatives-is-required">
      <name>When iBGP Full Mesh (or Its Alternatives) Is Required</name>
      <t>In most ASes, multiple border routers maintain eBGP sessions with external peers. The AS must then determine which border router should be used to reach each external destination. While multiple mechanisms exist to achieve this, iBGP is the most common solution.</t>
      <t>However, using iBGP introduces the risk of routing loops within the AS, since BGP’s loop detection mechanism (based on AS_PATH attribute) only works between autonomous systems, not within them.</t>
      <t>That's why, to prevent loops within the AS, BGP prohibits re-advertising routes learned via iBGP to other internal peers. Consequently, a full-mesh will be required between all BGP routers in the AS.  But this operational reasoning relies on a key assumption:</t>
      <ul empty="true">
        <li>
          <t>Every BGP router in the AS is expected to have full visibility of all external routes.</t>
        </li>
      </ul>
      <t>While this assumption is valid for transit providers, it does not necessarily apply to stub ASes or edge ISPs. Therefore, it can be concluded that maintaining an iBGP full-mesh is a requirement only for transit ASes.</t>
    </section>
    <section anchor="when-ibgp-full-mesh-is-not-required">
      <name>When iBGP Full Mesh Is Not Required</name>
      <section anchor="multihomed-stub-as">
        <name>Multihomed Stub AS</name>
        <t>Consider a multihomed stub AS with two border routers (BR1 and BR2), each connected to a different upstream ISP (Figure 1). Internally, the AS consists of three campus networks, each with an internal core router (IR1, IR2, IR3).</t>
        <figure anchor="fig-stub">
          <name>Figure 1: AS stub multihomed without an iBGP full mesh</name>
<artwork type="image/svg"><![CDATA[
<svg width="21cm" height="22cm" viewBox="609 170 408 421" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <g id="Background">
    <text font-size="16.9785" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:700" x="893.4" y="366.96">
      <tspan x="893.4" y="366.96">BR2</tspan>
    </text>
    <g>
      <rect style="fill: #ffffff; fill-opacity: 1; stroke: none" x="721.6" y="181.747" width="49.8" height="26.7287"/>
      <text font-size="22.9616" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="721.6" y="203.06">
        <tspan x="721.6" y="203.06">ISP1</tspan>
      </text>
    </g>
    <text font-size="22.9616" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="609.6" y="407.614">
      <tspan x="609.6" y="407.614">STUB</tspan>
    </text>
    <line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke-dasharray: 2; stroke: #000000" x1="750" y1="230" x2="750.986" y2="343.994"/>
    <line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke-dasharray: 2; stroke: #000000" x1="918" y1="228" x2="916.508" y2="342.194"/>
    <text font-size="14.6078" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="705" y="267">
      <tspan x="705" y="267">Ebgp</tspan>
    </text>
    <text font-size="14.6078" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="927.6" y="269.86">
      <tspan x="927.6" y="269.86">Ebgp</tspan>
    </text>
    <line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="732" y1="379" x2="635" y2="490"/>
    <line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="927" y1="379" x2="987.514" y2="490.576"/>
    <line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="754" y1="384" x2="815" y2="558"/>
    <line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="905" y1="384" x2="834.69" y2="560.01"/>
    <line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="777.444" y1="379.61" x2="971.622" y2="494.314"/>
    <line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="888.478" y1="376.494" x2="671" y2="490"/>
    <rect style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="698" y="172" width="106" height="49" rx="0" ry="0"/>
    <g>
      <rect style="fill: #ffffff; fill-opacity: 1; stroke: none" x="888.813" y="179.434" width="49.8" height="26.7287"/>
      <text font-size="22.9616" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="888.813" y="200.747">
        <tspan x="888.813" y="200.747">ISP2</tspan>
      </text>
    </g>
    <rect style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="861.912" y="172.375" width="106" height="49" rx="0" ry="0"/>
    <text font-size="12.8" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="914.912" y="196.875">
      <tspan x="914.912" y="196.875"></tspan>
    </text>
    <rect style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="882" y="347" width="63" height="29" rx="0" ry="0"/>
    <text font-size="16.9785" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:700" x="731" y="367.26">
      <tspan x="731" y="367.26">BR1</tspan>
    </text>
    <rect style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="719.6" y="347.3" width="63" height="29" rx="0" ry="0"/>
    <text font-size="16.9785" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:700" x="809.6" y="581.56">
      <tspan x="809.6" y="581.56">IR2</tspan>
    </text>
    <rect style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="798.2" y="561.6" width="63" height="29" rx="0" ry="0"/>
    <text font-size="16.9785" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:700" x="634.2" y="513.86">
      <tspan x="634.2" y="513.86">IR1</tspan>
    </text>
    <rect style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="622.8" y="493.9" width="63" height="29" rx="0" ry="0"/>
    <text font-size="16.9785" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:700" x="964.8" y="516.16">
      <tspan x="964.8" y="516.16">IR3</tspan>
    </text>
    <rect style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="953.4" y="496.2" width="63" height="29" rx="0" ry="0"/>
  </g>
</svg>
]]></artwork>
        </figure>
        <t>The figure shows two routers connected by a solid line when there is an iBGP session between them. As can be seen, in STUB there is no full iBGP mesh between all the BGP routers; there is no iBGP session between BR1 and BR2, nor between IRs.</t>
        <t>Are those iBGP sessions necessary?</t>
        <t>In a stub AS that does not provide transit between its upstream providers, inbound traffic entering through one border router must always be forwarded toward internal core routers, never toward the other border router. In the event of an upstream link failure, internal core routers will withdraw the BGP paths associated with the affected BR and shift outbound traffic toward the remaining operational BR. This mechanism renders it unnecessary for border routers to be aware of alternative external BGP paths held by other internal border routers.</t>
        <t>Similarly, outbound traffic flows strictly from internal core routers to border routers, never between internal core routers.</t>
        <t>Consequently, regarding iBGP topology:</t>
        <ul spacing="normal">
          <li>
            <t>Border routers only need to learn internal destinations to export towards ISPs. They do not require visibility into external routes learned by other border routers since transit traffic is prohibited. Thus, an iBGP session between BR1 and BR2 is unnecessary.</t>
          </li>
          <li>
            <t>Internal core routers (IRs) must learn external routes imported by both border routers (BRs). However, they have no operational need to exchange routes with each other; hence, iBGP sessions between IRs are unnecessary.</t>
          </li>
        </ul>
        <t>Furthermore, establishing an iBGP session between BR1 and BR2 noticeably increases the operational risk of accidentally re-advertising external routes, which could inadvertently turn the stub AS into an unintended transit provider.</t>
        <t>This example shows that in multihomed stub ASes, an iBGP full mesh is not strictly necessary and can be operationally detrimental.</t>
      </section>
      <section anchor="edge-isp">
        <name>Edge ISP</name>
        <t>A similar situation can arise in an edge ISP. This is illustrated in Figure 2, which depicts an ISP featuring:</t>
        <ul spacing="normal">
          <li>
            <t>Two upstream connections (Up1, Up2),</t>
          </li>
          <li>
            <t>Three Points of Presence (PoPs) serving downstream customers,</t>
          </li>
          <li>
            <t>One peering router (P) connected to an Internet Exchange Point (IXP).</t>
          </li>
        </ul>
        <figure anchor="fig-edge">
          <name>Figure 2: Edge ISP without an iBGP full mesh</name>
     <artwork type="image/svg+xml">
    <![CDATA[
   <svg width="29cm" height="22cm" viewBox="399 170 570 421" xmlns="http://www.w3.org/2000/svg" xmlns:xlink="http://www.w3.org/1999/xlink">
  <g id="Background">
    <rect style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="861.912" y="173.988" width="106" height="49" rx="0" ry="0"/>
    <rect style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="698" y="172" width="106" height="49" rx="0" ry="0"/>
    <rect style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="684.037" y="513.287" width="63" height="29" rx="0" ry="0"/>
    <rect style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="903.4" y="514.2" width="63" height="29" rx="0" ry="0"/>
    <rect style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="798.2" y="561.6" width="63" height="29" rx="0" ry="0"/>
    <rect style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="882" y="347" width="63" height="29" rx="0" ry="0"/>
    <text font-size="12.8" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="1367.24" y="275.322">
      <tspan x="1367.24" y="275.322"></tspan>
    </text>
    <g>
      <rect style="fill: #ffffff; fill-opacity: 1; stroke: none" x="737.6" y="181.747" width="28.65" height="26.7287"/>
      <text font-size="22.9616" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="737.6" y="203.06">
        <tspan x="737.6" y="203.06">T1</tspan>
      </text>
    </g>
    <text font-size="22.9616" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="650.6" y="381.614">
      <tspan x="650.6" y="381.614">ISP</tspan>
    </text>
    <line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke-dasharray: 2; stroke: #000000" x1="750" y1="230" x2="750.986" y2="343.994"/>
    <line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke-dasharray: 2; stroke: #000000" x1="918" y1="228" x2="916.508" y2="342.194"/>
    <text font-size="14.6078" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="705" y="267">
      <tspan x="705" y="267">Ebgp</tspan>
    </text>
    <text font-size="14.6078" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="927.6" y="269.86">
      <tspan x="927.6" y="269.86">Ebgp</tspan>
    </text>
    <line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="732" y1="379" x2="731" y2="509"/>
    <line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="927" y1="379" x2="927" y2="508"/>
    <line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="753.462" y1="380.237" x2="823.462" y2="555.237"/>
    <line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="908.664" y1="379.069" x2="834.69" y2="560.01"/>
    <line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="777.444" y1="379.61" x2="909" y2="509"/>
    <line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="888.478" y1="376.494" x2="748" y2="508"/>
    <g>
      <rect style="fill: #ffffff; fill-opacity: 1; stroke: none" x="905.775" y="183.087" width="28.65" height="26.7287"/>
      <text font-size="22.9616" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="905.775" y="204.4">
        <tspan x="905.775" y="204.4">T2</tspan>
      </text>
    </g>
    <rect style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="721.75" y="344.075" width="63" height="29" rx="0" ry="0"/>
    <text font-size="16.9785" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:700" x="736.913" y="362.422">
      <tspan x="736.913" y="362.422">Up1</tspan>
    </text>
    <text font-size="16.9785" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:700" x="892.6" y="367.06">
      <tspan x="892.6" y="367.06">Up2</tspan>
    </text>
    <text font-size="16.9785" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:700" x="803.6" y="580.06">
      <tspan x="803.6" y="580.06">PoP2</tspan>
    </text>
    <text font-size="16.9785" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:700" x="689.362" y="533.822">
      <tspan x="689.362" y="533.822">PoP1</tspan>
    </text>
    <text font-size="16.9785" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:700" x="907.6" y="533.56">
      <tspan x="907.6" y="533.56">PoP3</tspan>
    </text>
    <rect style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="621.6" y="411.3" width="63" height="29" rx="0" ry="0"/>
    <text font-size="16.9785" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:700" x="648.1" y="430.8">
      <tspan x="648.1" y="430.8">P</tspan>
    </text>
    <rect style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x="400.6" y="413.3" width="63" height="29" rx="0" ry="0"/>
    <text font-size="16.9785" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:700" x="419.1" y="432.8">
      <tspan x="419.1" y="432.8">IXP</tspan>
    </text>
    <line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="688.608" y1="435.308" x2="718" y2="510"/>
    <line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="691.208" y1="425.608" x2="812" y2="559"/>
    <line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="689" y1="416" x2="898.808" y2="517.908"/>
    <line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="898" y1="529" x2="751.8" y2="529.4"/>
    <line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="723.008" y1="548.508" x2="793" y2="581"/>
    <line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke: #000000" x1="933.608" y1="546.808" x2="864" y2="583"/>
    <line style="fill: none; stroke-opacity: 1; stroke-width: 2; stroke-dasharray: 4; stroke: #000000" x1="620.6" y1="425.8" x2="466" y2="427"/>
    <text font-size="14.6078" style="fill: #000000; fill-opacity: 1; stroke: none;text-anchor:start;font-family:sans-serif;font-style:normal;font-weight:normal" x="510" y="418">
      <tspan x="510" y="418">n x Ebgp</tspan>
    </text>
  </g>
</svg>
    ]]>
  </artwork>
        </figure>
        <t>Such an ISP must conform to the following transit rules:</t>
        <ol spacing="normal" type="1"><li>
            <t>It <bcp14>MUST NOT</bcp14> provide transit between upstream providers.</t>
          </li>
          <li>
            <t>It <bcp14>MUST NOT</bcp14> provide transit between peers and upstream providers (in either direction).</t>
          </li>
          <li>
            <t>It <bcp14>MUST</bcp14> only provide transit to its downstream customers.</t>
          </li>
        </ol>
        <t>Under these constraints, the routing requirements dictate that:</t>
        <ul spacing="normal">
          <li>
            <t>PoP routers must maintain full visibility of routes from upstreams (via Up1/Up2), peering points (via P), and other PoPs.</t>
          </li>
          <li>
            <t>Upstream routers (Up1/Up2) and the peering router (P) only need to learn customer routes via the PoPs, and external routes via eBGP. They do not require visibility into each other's external routes.</t>
          </li>
        </ul>
        <t>Therefore, the optimized iBGP architecture establishes that:</t>
        <ul spacing="normal">
          <li>
            <t>PoP routers maintain iBGP sessions with all other BGP routers in the AS.</t>
          </li>
          <li>
            <t>Up1, Up2, and P maintain iBGP sessions exclusively with the PoP routers, but not among themselves.</t>
          </li>
        </ul>
        <t>This design (see Figure 2) is simpler than a full mesh and reduces operational risk, particularly the risk of unintended transit between upstreams or peers.</t>
        <t>As in the stub AS case, the failure of an upstream or peering link does not require alternative path visibility at the affected border router, because the PoP routers will autonomously stop forwarding traffic toward it once the failure triggers a route withdrawal.</t>
        <t>Note that adopting a design based on Route Reflectors (RRs) can further simplify the iBGP topology, even for relatively small edge ISPs. For example, in the scenario shown in Figure 2, utilizing a central route reflector with iBGP sessions to all other routers in the AS would require only six iBGP sessions. This contrasts with the twelve sessions required by the partial-mesh design and the twenty-one sessions demanded by a traditional full mesh. Furthermore, with an adequate community-based configuration, the same isolation between router groups achieved by removing unnecessary iBGP sessions can be replicated within a route-reflector architecture.</t>
      </section>
    </section>
    <section anchor="operational-considerations">
      <name>Operational Considerations</name>
      <section anchor="applicability-of-ibgp-partial-mesh-design">
        <name>Applicability of iBGP partial-mesh design</name>
        <t>While deploying an iBGP partial mesh is technically feasible in any AS that does not require full route visibility across all internal BGP speakers (i.e., non-transit ASes), its implementation is only recommended for stub ASes. For edge ISPs, although the partial-mesh option is viable and superior to a full mesh, utilizing route reflectors generally remains the best approach.</t>
        <t>The use of an iBGP partial mesh in stub ASes is not a novel technique, but it has rarely been documented (for example, see the case described in Figure 5.21 in <xref target="Zhang-Bartell"/>. Currently, the dominant view in available documentation is that it is unacceptable to have multiple BGP routers in the same AS that are not connected via iBGP, even though it is common practice in stub ASes to forgo iBGP sessions between border routers for security and simplicity reasons.</t>
      </section>
      <section anchor="convergence-behaviour">
        <name>Convergence Behaviour</name>
        <t>In designs where border routers (BRs) do not maintain iBGP sessions between them, internal core routers (IRs) act as the focal points for route visibility and path selection. In such a design, in the event of an upstream failure affecting a specific BR, a transient time lag occurs between the detection of the link failure by the BR and the moment the IRs cease forwarding outbound traffic to that BR. In a traditional full-mesh or RR topology, traffic arriving at the affected BR during this window is dynamically rerouted to alternative BRs via internal iBGP paths. This convergence behavior could be considered an operational advantage of full-mesh or RR architectures over a partial mesh. However:</t>
        <ul spacing="normal">
          <li>
            <t>If a default backup route (as a floating static route) is configured on the affected BR, the behavior aligns with a full-mesh/RR topology;  the BR immediately redirects outbound traffic toward the alternate BR upon losing its upstream link.</t>
          </li>
          <li>
            <t>In any case, the time lag between link failure detection at the BR and route convergence at the IRs is minimal —on the order of milliseconds— rendering it insignificant in most enterprise and edge scenarios.  This is because the BR will immediately send route withdraws to the IRs via iBGP, since the MRAI (Minimum Route Advertisement Interval) for iBGP is 0 seconds by default across modern routing platforms.</t>
          </li>
        </ul>
      </section>
      <section anchor="risk-of-misconfiguration">
        <name>Risk of Misconfiguration</name>
        <t>A main argument in favour of avoiding unnecessary iBGP sessions is the reduction of potential misconfiguration scenarios (e.g. unintended transit). However, topological simplification should be viewed as a complementary defense-in-depth measure, and not as a complete substitute for rigorous routing policy design enforced by well-defined prefix filters and export rules.</t>
      </section>
    </section>
    <section anchor="conclusions">
      <name>Conclusions</name>
      <ul spacing="normal">
        <li>
          <t>iBGP full mesh is not a protocol requirement, but a design choice driven by the need for route visibility and operational considerations.</t>
        </li>
        <li>
          <t>iBGP full mesh is only strictly necessary among routers that must have full visibility of all external routes. This is, in transit ASes.</t>
        </li>
        <li>
          <t>In multihomed stub ASes, deploying an iBGP full mesh violates the KISS principle (<xref target="RFC1958"/>) and introduces unnecessary operational risk.</t>
        </li>
        <li>
          <t>In edge ISPs, an iBGP partial mesh offers a more robust deployment model than a full mesh, though route reflection remains the best practice.</t>
        </li>
        <li>
          <t>The legacy assumption of a mandatory full-mesh design found in several foundational RFCs dates back to an era when transit providers constituted the vast majority of BGP deployments. Given the modern internet landscape, where multihoming and BGP utilization are standard requirements for enterprises, clarifying some RFCs would benefit the community, preventing the perpetuation of this architectural misconception about iBGP full-mesh requirement.</t>
        </li>
      </ul>
    </section>
    <section anchor="IANA">
      <name>IANA Considerations</name>
      <t>This memo includes no request to IANA.</t>
    </section>
    <section anchor="Security">
      <name>Security Considerations</name>
      <t>This document does not modify the underlying security properties of any existing Internet protocol. However, adherence to the Simplicity Principle (<xref target="RFC1958"/>) directly enhances the stability and security of network architectures. Minimizing unnecessary iBGP sessions explicitly reduces the internal configuration surface, thereby mitigating risks associated with human error, such as accidental transit provisioning.</t>
    </section>
  </middle>
  <back>
    <references anchor="sec-combined-references">
      <name>References</name>
      <references anchor="sec-normative-references">
        <name>Normative References</name>
        <reference anchor="RFC2119">
          <front>
            <title>Key words for use in RFCs to Indicate Requirement Levels</title>
            <author fullname="S. Bradner" initials="S." surname="Bradner"/>
            <date month="March" year="1997"/>
            <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="RFC8174">
          <front>
            <title>Ambiguity of Uppercase vs Lowercase in RFC 2119 Key Words</title>
            <author fullname="B. Leiba" initials="B." surname="Leiba"/>
            <date month="May" year="2017"/>
            <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 anchor="sec-informative-references">
        <name>Informative References</name>
        <reference anchor="RFC1105">
          <front>
            <title>Border Gateway Protocol (BGP)</title>
            <author fullname="K. Lougheed" initials="K." surname="Lougheed"/>
            <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
            <date month="June" year="1989"/>
            <abstract>
              <t>This RFC outlines a specific approach for the exchange of network reachability information between Autonomous Systems. Updated by RFCs 1163 and 1164. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1105"/>
          <seriesInfo name="DOI" value="10.17487/RFC1105"/>
        </reference>
        <reference anchor="RFC1163">
          <front>
            <title>Border Gateway Protocol (BGP)</title>
            <author fullname="K. Lougheed" initials="K." surname="Lougheed"/>
            <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
            <date month="June" year="1990"/>
            <abstract>
              <t>This RFC, together with its companion RFC-1164, "Application of the Border Gateway Protocol in the Internet", specify an inter-autonomous system routing protocol for the Internet. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1163"/>
          <seriesInfo name="DOI" value="10.17487/RFC1163"/>
        </reference>
        <reference anchor="RFC1267">
          <front>
            <title>Border Gateway Protocol 3 (BGP-3)</title>
            <author fullname="K. Lougheed" initials="K." surname="Lougheed"/>
            <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
            <date month="October" year="1991"/>
            <abstract>
              <t>This memo, together with its companion document, "Application of the Border Gateway Protocol in the Internet", define an inter-autonomous system routing protocol for the Internet. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1267"/>
          <seriesInfo name="DOI" value="10.17487/RFC1267"/>
        </reference>
        <reference anchor="RFC1654">
          <front>
            <title>A Border Gateway Protocol 4 (BGP-4)</title>
            <author fullname="Y. Rekhter" initials="Y." role="editor" surname="Rekhter"/>
            <author fullname="T. Li" initials="T." role="editor" surname="Li"/>
            <date month="July" year="1994"/>
            <abstract>
              <t>This document defines an inter-autonomous system routing protocol for the Internet. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1654"/>
          <seriesInfo name="DOI" value="10.17487/RFC1654"/>
        </reference>
        <reference anchor="RFC1771">
          <front>
            <title>A Border Gateway Protocol 4 (BGP-4)</title>
            <author fullname="Y. Rekhter" initials="Y." surname="Rekhter"/>
            <author fullname="T. Li" initials="T." surname="Li"/>
            <date month="March" year="1995"/>
            <abstract>
              <t>This document, together with its companion document, "Application of the Border Gateway Protocol in the Internet", define an inter-autonomous system routing protocol for the Internet. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1771"/>
          <seriesInfo name="DOI" value="10.17487/RFC1771"/>
        </reference>
        <reference anchor="RFC1958">
          <front>
            <title>Architectural Principles of the Internet</title>
            <author fullname="B. Carpenter" initials="B." role="editor" surname="Carpenter"/>
            <date month="June" year="1996"/>
            <abstract>
              <t>The Internet and its architecture have grown in evolutionary fashion from modest beginnings, rather than from a Grand Plan. While this process of evolution is one of the main reasons for the technology's success, it nevertheless seems useful to record a snapshot of the current principles of the Internet architecture. This is intended for general guidance and general interest, and is in no way intended to be a formal or invariant reference model. This memo provides information for the Internet community. This memo does not specify an Internet standard of any kind.</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="1958"/>
          <seriesInfo name="DOI" value="10.17487/RFC1958"/>
        </reference>
        <reference anchor="RFC4271">
          <front>
            <title>A Border Gateway Protocol 4 (BGP-4)</title>
            <author fullname="Y. Rekhter" initials="Y." role="editor" surname="Rekhter"/>
            <author fullname="T. Li" initials="T." role="editor" surname="Li"/>
            <author fullname="S. Hares" initials="S." role="editor" surname="Hares"/>
            <date month="January" year="2006"/>
            <abstract>
              <t>This document discusses the Border Gateway Protocol (BGP), which is an inter-Autonomous System routing protocol.</t>
              <t>The primary function of a BGP speaking system is to exchange network reachability information with other BGP systems. This network reachability information includes information on the list of Autonomous Systems (ASes) that reachability information traverses. This information is sufficient for constructing a graph of AS connectivity for this reachability from which routing loops may be pruned, and, at the AS level, some policy decisions may be enforced.</t>
              <t>BGP-4 provides a set of mechanisms for supporting Classless Inter-Domain Routing (CIDR). These mechanisms include support for advertising a set of destinations as an IP prefix, and eliminating the concept of network "class" within BGP. BGP-4 also introduces mechanisms that allow aggregation of routes, including aggregation of AS paths.</t>
              <t>This document obsoletes RFC 1771. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4271"/>
          <seriesInfo name="DOI" value="10.17487/RFC4271"/>
        </reference>
        <reference anchor="RFC4456">
          <front>
            <title>BGP Route Reflection: An Alternative to Full Mesh Internal BGP (IBGP)</title>
            <author fullname="T. Bates" initials="T." surname="Bates"/>
            <author fullname="E. Chen" initials="E." surname="Chen"/>
            <author fullname="R. Chandra" initials="R." surname="Chandra"/>
            <date month="April" year="2006"/>
            <abstract>
              <t>The Border Gateway Protocol (BGP) is an inter-autonomous system routing protocol designed for TCP/IP internets. Typically, all BGP speakers within a single AS must be fully meshed so that any external routing information must be re-distributed to all other routers within that Autonomous System (AS). This represents a serious scaling problem that has been well documented with several alternatives proposed.</t>
              <t>This document describes the use and design of a method known as "route reflection" to alleviate the need for "full mesh" Internal BGP (IBGP).</t>
              <t>This document obsoletes RFC 2796 and RFC 1966. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="4456"/>
          <seriesInfo name="DOI" value="10.17487/RFC4456"/>
        </reference>
        <reference anchor="RFC5065">
          <front>
            <title>Autonomous System Confederations for BGP</title>
            <author fullname="P. Traina" initials="P." surname="Traina"/>
            <author fullname="D. McPherson" initials="D." surname="McPherson"/>
            <author fullname="J. Scudder" initials="J." surname="Scudder"/>
            <date month="August" year="2007"/>
            <abstract>
              <t>The Border Gateway Protocol (BGP) is an inter-autonomous system routing protocol designed for Transmission Control Protocol/Internet Protocol (TCP/IP) networks. BGP requires that all BGP speakers within a single autonomous system (AS) must be fully meshed. This represents a serious scaling problem that has been well documented in a number of proposals.</t>
              <t>This document describes an extension to BGP that may be used to create a confederation of autonomous systems that is represented as a single autonomous system to BGP peers external to the confederation, thereby removing the "full mesh" requirement. The intention of this extension is to aid in policy administration and reduce the management complexity of maintaining a large autonomous system.</t>
              <t>This document obsoletes RFC 3065. [STANDARDS-TRACK]</t>
            </abstract>
          </front>
          <seriesInfo name="RFC" value="5065"/>
          <seriesInfo name="DOI" value="10.17487/RFC5065"/>
        </reference>
        <reference anchor="Zhang-Bartell" target="https://www.oreilly.com/library/view/bgp-design-and/9781587058646/">
          <front>
            <title>BGP Design and Implementation</title>
            <author initials="R." surname="Zhang" fullname="Randy Zhang">
              <organization/>
            </author>
            <author initials="M." surname="Bartell" fullname="Micah Bartell">
              <organization/>
            </author>
            <date/>
          </front>
          <seriesInfo name="Cisco Press, " value="ISBN 9781587058646"/>
        </reference>
      </references>
    </references>
    <?line 244?>

<section numbered="false" anchor="Acknowledgements">
      <name>Acknowledgements</name>
      <t>This document uses extracts from templates written by
<contact fullname="Pekka Savola"/>, <contact fullname="Elwyn Davies"/> and
<contact fullname="Henrik Levkowetz"/>.</t>
    </section>
  </back>
  <!-- ##markdown-source:
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
lfZWvTerW+i8+gW3sIP/BQRTDOOjPQAA

-->

</rfc>
