<?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-00"
     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="22" month="February" year="2021"/>

    <area>RTG Area</area>

    <workgroup>IDR Working Group</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 RD1 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. 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><figure>
          <artwork align="center"><![CDATA[
 +---------------------------+           +--------------------------+
 |                           |           |                          |
 |                           |           |                          |
 |   +---------+             |           |            +---------+   |
 |   |   PE1   |             |           |            |   PE3   |   |
 |   +---------+             |           |            +---------+   |
 | VPN1(RD1,RT1)\            |           |           / VPN1(RD1,RT1)|
 | VPN2(RD2,RT2)  \+---------+  MP-EBGP  +---------+/  VPN2(RD2,RT2)|
 |                 |         |           |         |                |
 |                 |  ASBR1  |-----------|  ASBR2  |                |
 |                 |         |           |         |                |
 |                 +---------+           +---------+                |
 |                /          |           |         \                |
 |   +---------+/            |           |           \+---------+   |
 |   |   PE2   |             |           |            |   PE4   |   |
 |   +---------+             |           |            +---------+   |
 | VPN1(RD1,RT1)             |           |           VPN2(RD2,RT2)  |
 |           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>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(RD1,RT1) \              / VPN2(RD2,RT2)|
 |  VPN2(RD2,RT2)  \+---------+ /               |
 |                 |         |                  |
 |                 |   RR    |                  |
 |                 |         |                  |
 |                 +---------+ \                |
 |                /              \              |
 |   +---------+/                 +---------+   |
 |   |   PE2   |                  |   PE3   |   |
 |   +---------+                  +---------+   |
 |  VPN1(RD1,RT1)              VPN1(RD1,RT1)    |
 |              AS 100         VPN2(RD2,RT2)    |
 +----------------------------------------------+

 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   |                               |
 |      +--------+                               |
 |          |                                    |
 |          |                                    |
 |          |                                    |
 |          |                                    |
 |          |                                    |
 |      +--------+  VRF1 RT-import: RT1 RT3(RD3) |
 |      |   PE   |  VRF2 RT-import: RT2 RT3(RD3) |
 |      +--------+  VRF3 RT-import: RT3(RD3)     |
 |                  VRF4 RT-import: RT4          |
 |                                               |
 |                     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>b) For RR and 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>c) The trigger and removal of such control message should avoid the
      possible flapping of excessive VPN routes advertisement.</t>

      <t>d) The excessive VPN routes should be identified in fine-granular
      manner.</t>

      <t>e) Control of the excessive VPN routes should not affect the existing
      VPN services on the affected PE.</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 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>
