<?xml version="1.0" encoding="US-ASCII"?>
<!-- edited with XMLSPY v5 rel. 3 U (http://www.xmlspy.com)
     by Daniel M Kohn (private) -->
<!DOCTYPE rfc SYSTEM "rfc2629.dtd" [
<!ENTITY rfc2119 PUBLIC "" "http://xml.resource.org/public/rfc/bibxml/reference.RFC.2119.xml">
]>
<?rfc toc="yes"?>
<?rfc tocompact="yes"?>
<?rfc tocdepth="3"?>
<?rfc tocindent="yes"?>
<?rfc symrefs="yes"?>
<?rfc sortrefs="yes"?>
<?rfc comments="yes"?>
<?rfc inline="yes"?>
<?rfc compact="yes"?>
<?rfc subcompact="no"?>
<rfc category="info" docName="draft-wang-idr-vpn-routes-control-analysis-02"
     ipr="trust200902">
  <front>
    <title abbrev="Analysis of VPN routes control">Analysis of VPN Routes
    Control in Shared BGP Session</title>

    <author fullname="Aijun Wang" initials="A" surname="Wang">
      <organization>China Telecom</organization>

      <address>
        <postal>
          <street>Beiqijia Town, Changping District</street>

          <city>Beijing</city>

          <region>Beijing</region>

          <code>102209</code>

          <country>China</country>
        </postal>

        <email>wangaj3@chinatelecom.cn</email>
      </address>
    </author>

    <author fullname="Wei Wang" initials="W" surname="Wang">
      <organization>China Telecom</organization>

      <address>
        <postal>
          <street>Beiqijia Town, Changping District</street>

          <city>Beijing</city>

          <region>Beijing</region>

          <code>102209</code>

          <country>China</country>
        </postal>

        <email>wangw36@chinatelecom.cn</email>
      </address>
    </author>

    <author fullname="Gyan S. Mishra" initials="G" surname="Mishra">
      <organization>Verizon Inc.</organization>

      <address>
        <postal>
          <street>13101 Columbia Pike</street>

          <city>Silver Spring</city>

          <region/>

          <code>MD 20904</code>

          <country>United States of America</country>
        </postal>

        <phone>301 502-1347</phone>

        <facsimile/>

        <email>gyan.s.mishra@verizon.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Haibo Wang" initials="H" surname="Wang">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>Huawei Building, No.156 Beiqing Rd.</street>

          <city>Beijing</city>

          <region>Beijing</region>

          <code>100095</code>

          <country>China</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>rainsword.wang@huawei.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Shunwan Zhuang" initials="S" surname="Zhuang">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>Huawei Building, No.156 Beiqing Rd.</street>

          <city>Beijing</city>

          <region>Beijing</region>

          <code>100095</code>

          <country>China</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>zhuangshunwan@huawei.com</email>

        <uri/>
      </address>
    </author>

    <author fullname="Jie Dong" initials="J" surname="Dong">
      <organization>Huawei Technologies</organization>

      <address>
        <postal>
          <street>Huawei Building, No.156 Beiqing Rd.</street>

          <city>Beijing</city>

          <region>Beijing</region>

          <code>100095</code>

          <country>China</country>
        </postal>

        <phone/>

        <facsimile/>

        <email>jie.dong@huawei.com</email>

        <uri/>
      </address>
    </author>

    <date day="8" month="March" year="2021"/>

    <area>RTG Area</area>

    <workgroup>IDR Working Group8</workgroup>

    <keyword>RFC</keyword>

    <abstract>
      <t>This draft analyzes some scenarios and the necessaries for VPN routes
      control in the shared BGP session, which can be the used as the base for
      the design of related solutions.</t>
    </abstract>
  </front>

  <middle>
    <section anchor="intro" title="Introduction">
      <t>BGP Maximum Prefix feature <xref target="RFC4486"/> is often used at
      the network boundary to control the number of prefixes to be injected
      into the network. But for some scenarios when the VPN routes from
      several VRFs are advertised via one shared BGP session, there is lack of
      appropriate methods to control the flooding of VPN routes within one VRF
      to overwhelm the process of VPN routes in other VRFs. That is to say,
      the excessive VPN routes advertisement should be controlled individually
      for each VRF in such shared BGP session.</t>

      <t>The following sections analyzes the scenarios that are necessary to
      such mechanism.</t>
    </section>

    <section title="Conventions used in this document">
      <t>The key words "MUST", "MUST NOT", "REQUIRED", "SHALL", "SHALL NOT",
      "SHOULD", "SHOULD NOT", "RECOMMENDED", "MAY", and "OPTIONAL" in this
      document are to be interpreted as described in <xref target="RFC2119"/>
      .</t>
    </section>

    <section title="Terminology">
      <t>The following terms are defined in this draft:<list style="symbols">
          <t>RD: Route Distinguisher, defined in <xref target="RFC4364"/></t>

          <t>RR: Router Reflector, provides a simple solution to the problem
          of IBGP full mesh connection in large-scale IBGP implementation.</t>

          <t>VRF: Virtual Routing Forwarding, a virtual routing table based on
          VPN instance.</t>
        </list></t>
    </section>

    <section title="Inter-AS VPN Option B/AB Scenario">
      <t>For inter-AS VPN deployment option B/AB scenario, as described in
      Figure 1, there is one BGP session between ASBR1 and ASBR2, which is
      used to advertise the VPN routes from VPN1 and VPN2 VRF. Normally the
      operator will deploy the BGP maximum prefixes feature under different
      address families between the ASBR1 and ASBR2, but the threshold must be
      set very high to cope with the situation when all the VRFs in each
      family reach their VPN routes limit simultaneously. In case VPN routes
      in only one of VRF, for example VPN1 in PE3, advertises excess VPN
      routes(with RD set to RD31 and RT import/export set to RT1.
      Configurations on other PEs are similar) into the network, but VPN
      routes advertisement in other VRFs are in normal, the prefix bar set
      between the ASBRs will not take effect. Such excessive VPN routes will
      be advertised into the AS1, to PE1 and PE2 respectively.</t>

      <t>PE1 in this example, provides the services for VPN2 at the same time.
      If it receives the excessive VPN routes for VPN1 from ASBR1, although
      such VPN routes have exceeded the limit within the VRF VPN1, it can't
      break the BGP session with ASBR1 directly, because the VPN prefix limit
      is to prevent a flood from errors or other issues but does not prevent
      the device from being overwhelmed and resources exhausted.</t>

      <t>All it can do is to receive and process the excessive BGP updates
      continuously, parse the excessive VPN routes for VPN1 and drop it,
      extract the VPN routes for VPN2 and install it.</t>

      <t>Doing so can certainly influence the performance of PE1 to serve the
      other VPN services on it, considering that there are hundreds of VRFs
      deployed on it.</t>

      <t>PE1 should have the capability to control the advertisement of
      specified excessive VPN routes from its BGP peer. The ASBR should also
      have such capability.</t>

      <t>The excessive VPN routes may carry just one RT(for example in VPN1 on
      PE3), or carry more than one RTs(for example in VPN2 on PE3). Such
      excessive VPN routes may be imported into one VRF(for example VPN1 on
      PE1) or more than one VRFs(for example both VPN2 and VPN3 import the VPN
      routes with RD32, which has attached RT2 and RT3 together when they are
      advertised)</t>

      <t><figure>
          <artwork align="center"><![CDATA[
 +---------------------------+           +------------------------------+
 |                           |           |                              |
 |                           |           |                              |
 |   +---------+             |           |            +---------+       |
 |   |   PE1   |             |           |            |   PE3   |       |
 |   +---------+             |           |            +---------+       |
 |VPN1(RD11,RT1)\            |           |           /VPN1(RD31,RT1)    |
 |VPN2(RD12,RT2)  \+---------+  MP-EBGP  +---------+/ VPN2(RD32,RT2,RT3)|
 |VPN3(RD3 ,RT3)   |         |           |         |                    |
 |                 |  ASBR1  |-----------|  ASBR2  |                    |
 |                 |         |           |         |                    |
 |                 +---------+           +---------+                    |
 |                /          |           |         \                    |
 |   +---------+/            |           |           \+---------+       |
 |   |   PE2   |             |           |            |   PE4   |       |
 |   +---------+             |           |            +---------+       |
 |VPN1(RD21,RT1)             |           |           VPN2(RD42,RT2)     |
 |VPN2(RD2 ,RT2)             |           |           VPN3(RD3, RT3)     |  
 |           AS1             |           |           AS2                |
 +---------------------------+           +------------------------------+

        Figure 1: The Option B/Option AB cross-domain scenario
]]></artwork>
        </figure></t>
    </section>

    <section title="Inter-AS VPN Option C Scenario">
      <t>For inter-AS VPN deployment option C scenario, as that described in
      Figure 2, there is one BGP session between RR1 and RR2, which is used to
      advertise the VPN routes from all the VRFs that located on the edge
      routers(PE1 and PE2). The BGP maximum prefix bar can't also prevent the
      excessive advertisement of VPN routes in one VRF, and such abnormal
      behavior in one VRF can certainly influence the performances of PEs to
      serve other normal VRFs.</t>

      <t>PE and RR should all have some capabilities to control the specified
      excessive VPN routes to be advertised from its upstream BGP peer.</t>

      <t><figure>
          <artwork><![CDATA[                                    MP-EBGP
                +------------------------------------------+
                |                                          |
   +------------+--------------+              +------------+------------------+
   |        +---+----+         |              |            +----+----+        |
   |    +---+  RR1   +---+     |              |       +----+   RR2   +---+    |
   |    |   +--------+   |     |              |       |    +---------+   |    |
   |    |                |     |              |       |                  |    |
   |    |IBGP        IBGP|     |              |       |IBGP          IBGP|    |
   |    |                |     |              |       |                  |    |
   | +--+---+        +---+--+  |              |   +---+---+           +--+--+ |
   | |  PE1 |        | ASBR1|--|--------------|---| ASBR2 |           | PE2 | |
   | +------+        +------+  |              |   +-------+           +-----+ |
   |           AS1             |              |           AS2                 |
   +---------------------------+              +-------------------------------+

            Figure 2: The Option C cross-domain scenario
]]></artwork>
        </figure></t>
    </section>

    <section title="Intra-AS VPN RR Deployment Scenario">
      <t>For intra-AS VPN deployment, as depicted in Figure 3, if the RR is
      present, the above excess VPN routes advertisement churn can also
      occurs. For example, if PE3 receives excessive VPN routes for VPN1
      VRF(there may be several reasons for this to occur, for example,
      multiple CEs connect to PE3 advertising routes simultaneously causing a
      wave of routes, redistribution from VRF to VRF, or from GRT to VRF on
      PE3 etc.), it will advertise such excessive VPN routes to RR and then to
      PE1. The BGP session between RR and PE3, and the BGP session between RR
      and PE1 can't prevent this to occur.</t>

      <t>The RD in each VPN may be allocated and unique for each VPN on each
      PE(as example VPN1 in Figure 3), or only unique for each VPN(as example
      VPN2 in Figure 3).</t>

      <t>Each VPN may be associated with one or more RTs. The excessive VPN
      routes may have only one RT(for example, the excessive VPN routes from
      PE3 has the RD equal to RD31 and RT is set only to RT1)</t>

      <t>When PE1 in this figure receives such excessive VPN routes, it can
      only process them, among the other normal BGP updates. This can
      certainly influence process of VPN routes for other normal services, the
      consequences on the receiving PE1 may be the one or more of the
      followings:</t>

      <t>a) PE1 can't process a given number of routes in time period X
      leading to dropping of routes</t>

      <t>b) Delayed processing that may result in an incomplete number of
      inputs to the BGP Best Path decision.</t>

      <t>c) L3VPN customers experiencing an incorrect VPN specification for
      some time period Y.</t>

      <t>d) The convergence of control plane processing impacts the traffic
      forwarding</t>

      <t>PE and RR should all have some capabilities to control the specified
      excessive VPN routes to be advertised from its upstream BGP peer.</t>

      <t><figure>
          <artwork align="center"><![CDATA[
 +-----------------------------------------------+
 |   +---------+                  +---------+    |
 |   |   PE1   |                  |   PE4   |    |
 |   +---------+                  +---------+    |
 | VPN1(RD11,RT1) \              / VPN2(RD12,RT2)|
 | VPN2(RD12,RT2)  \+---------+ /                |
 |                 |         |                   |
 |                 |   RR    |                   |
 |                 |         |                   |
 |                 +---------+ \                 |
 |                /              \               |
 |   +---------+/                 +---------+    |
 |   |   PE2   |                  |   PE3   |    |
 |   +---------+                  +---------+    |
 | VPN1(RD21,RT1)              VPN1(RD31,RT1,RT2)|
 |                             VPN2(RD12,RT2)    |
 |                                               |
 |                    AS100                      |
 +-----------------------------------------------+

 Figure 3: Intra-AS VPN RR deployment scenario
]]></artwork>
        </figure></t>
    </section>

    <section title="VPN Routes Shared on one PE">
      <t>The scenarios described above are mainly in device level, that is to
      say, if the receiving PE has some mechanism to control the excess VPN
      routes advertisement from its BGP neighbor, the failure churn effect can
      be controlled then. But there are also situations that the granular
      control should be took place within the receiving PE itself.</t>

      <t>Figure 4 below describes such scenario. There are four VRFs on PE,
      and three of them import the same VPN routes that carry route target
      RT3. Such deployment can occur in the inter-VRF communication scenario.
      If the threshold of VPN route-limit for these VRFs is set different, for
      example, are max-vpn-routes-vrf1, max-vpn-routes-vrf2,
      max-vpn-routes-vrf3, max-vpn-routes-vrf4 respectively, and these values
      have the following order, as
      max-vpn-routes-vrf1&lt;max-vpn-routes-vrf2&lt;
      max-vpn-routes-vrf3&lt;max-vpn-routes-vrf4.</t>

      <t>If the VPN routes that associates with RT3 is overwhelming, the VRF1
      will reach its maximum VPN threshold first. At such stage, the PE device
      can't send the control message to its BGP neighbor on behalf of all the
      VRFs on it, because other VRFs have still the desire to receive such VPN
      routes and have the capacities to store them.</t>

      <t>In such situation, the PE device should have some mechanisms to
      control the distribution of global VPN routes to its individual VRF
      table. Only when all of VRFs on it don't want some VPN routes, then the
      PE device can send the VPN routes filter control message to its BGP
      neighbor (RR in this example).</t>

      <t><figure>
          <artwork><![CDATA[ +-----------------------------------------------+
 |      +--------+                               |
 |      |   RR   |--------------------+          |
 |      +--------+                    |          |
 |          |                         |          |
 |          |                         |          |
 |      +--------+                +---+---+      |
 |      |   PE1  |                |  PE2  |      |
 |      +--------+                +-------+      |          
 |   VPN1(RD21,RT1,RT3)        VPN1(RD21,RT1)    |
 |   VPN2(RD22,RT2)            VPN3(RD23,RT3)    |
 |   VPN3(RD23,RT3)                              |
 |                                               |
 |                     AS 100                    |
 +-----------------------------------------------+

Figure 4: The scenario of several VRFs in a PE import VPN routes carries the same RT
]]></artwork>
        </figure>.</t>
    </section>

    <section title="Requirements for the solutions">
      <t>Based on the above scenarios description, the potential solutions
      should meet the following requirements:</t>

      <t>a) The control message for the specified VPN routes should be
      triggered automatically upon the excessive VPN routes reach its
      limit.</t>

      <t>b) The control message should be sent only out the device when all
      the VRFs on it can't or don't want to process it, or the process of such
      excessive routes has exceed its own capability.</t>

      <t>c) For RR devices, such control message should be only flooded to its
      upstream BGP neighbor when all its clients can't or don't want to
      process it, or the process of such excessive routes has exceed its own
      capability.</t>

      <t>d) For ASBR devices, such control message should be only flooded to
      its upstream BGP neighbor when all its downstream BGP peers can't or
      don't want to process it, or the process of such excessive routes has
      exceed its own capability.</t>

      <t>e) The trigger and removal of such control message should avoid the
      possible flapping of excessive VPN routes advertisement.</t>
    </section>

    <section title="Security Considerations">
      <t>TBD.</t>
    </section>

    <section anchor="section-10" title="IANA Considerations">
      <t>This document requires no IANA considerations.</t>
    </section>

    <section title="Acknowledgement">
      <t>Thanks Robert Raszuk, Jim Uttaro, Jakob Heitz, Shuanglong Chen for
      their valuable comments and discussions of scenarios described in this
      draft.</t>
    </section>
  </middle>

  <back>
    <references title="Normative References">
      <?rfc include="reference.RFC.2119"?>

      <?rfc include="reference.RFC.4364"?>

      <?rfc include="reference.RFC.4486"?>
    </references>
  </back>
</rfc>
