<?xml version="1.0" encoding="US-ASCII"?>
<!-- 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) -->
<?rfc strict="yes" ?>
<!-- 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 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" docName="draft-xu-bess-virtual-subnet-rib-reduction-01"
     ipr="trust200902">
  <front>
    <title abbrev="RIB Reduction in Virtual Subnet">RIB Reduction in Virtual
    Subnet</title>

    <author fullname="Xiaohu Xu" initials="X.X." surname="Xu">
      <organization>Huawei</organization>

      <address>
        <!--
       <postal>
         <street></street>
-->

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

        <!--
         <city>Soham</city>

         <region></region>

         <code></code>

         <country>UK</country>
       </postal>

       <phone>+44 7889 488 335</phone>
-->

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

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

    <author fullname="Susan Hares" initials="S.H." surname="Hares">
      <organization>Individual</organization>

      <address>
        <!--
       <postal>
         <street></street>
-->

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

        <!--
         <city>Soham</city>

         <region></region>

         <code></code>

         <country>UK</country>
       </postal>

       <phone>+44 7889 488 335</phone>
-->

        <email>shares@ndzh.com</email>

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

    <author fullname="Yongbing Fan" initials="Y.F." surname="Fan">
      <organization>China Telecom</organization>

      <address>
        <!--
       <postal>
         <street></street>
-->

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

        <!--
         <city>Soham</city>

         <region></region>

         <code></code>

         <country>UK</country>
       </postal>

       <phone>+44 7889 488 335</phone>
-->

        <email>fanyb@gsta.com</email>

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

    <author fullname="Christian Jacquenet" initials="C.J." surname="Jacquenet">
      <organization>Orange</organization>

      <address>
        <!--
       <postal>
         <street></street>
-->

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

        <!--
         <city>Soham</city>

         <region></region>

         <code></code>

         <country>UK</country>
       </postal>

       <phone>+44 7889 488 335</phone>
-->

        <email>christian.jacquenet@orange.com</email>

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

    <author fullname="Truman Boyes" initials="T.B." surname="Boyes">
      <organization>Bloomberg LP</organization>

      <address>
        <!--
       <postal>
         <street></street>
-->

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

        <!--
         <city>Soham</city>

         <region></region>

         <code></code>

         <country>UK</country>
       </postal>

       <phone>+44 7889 488 335</phone>
-->

        <email>tboyes@bloomberg.net</email>

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

    <author fullname="Brendan Fee" initials="B.F." surname="Fee">
      <organization>Extreme Networks</organization>

      <address>
        <!--
       <postal>
         <street></street>
-->

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

        <!--
         <city>Soham</city>

         <region></region>

         <code></code>

         <country>UK</country>
       </postal>

       <phone>+44 7889 488 335</phone>
-->

        <email>bfee@enterasys.com</email>

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

    <!--

-->

    <date year="2015"/>

    <abstract>
      <t>Virtual Subnet is a BGP/MPLS IP VPN-based subnet extension solution
      which is intended for building Layer3 network virtualization overlays
      within and/or across data centers. This document describes a mechanism
      for reducing the RIB size of PE routers in the Virtual Subnet
      context.</t>
    </abstract>
  </front>

  <middle>
    <section title="Introduction">
      <t>Virtual Subnet <xref target="I-D.ietf-bess-virtual-subnet"/> is a
      BGP/MPLS IP VPN <xref target="RFC4364"/> -based subnet extension
      solution which is intended for building Layer3 network virtualization
      overlays within and/or across data centers. In the Virtual Subnet
      context, since CE host routes of a given VPN instance need to be
      exchanged among PE routers participating in that VPN instance, the
      resulting routing table size of PE routers may become a big concern,
      especially in large-scale data center environment where they may need to
      install a huge amount of host routes into their routing tables.</t>

      <t><xref target="I-D.ietf-bess-virtual-subnet-fib-reduction"/> describes
      a method to reduce the FIB size of PE routers without any change to the
      RIB and the routing table. This FIB reduction approach is applicable in
      the case where the control plane of PE routers still needs to maintain
      all host routes of the attached VPN instances for some reason (e.g., to
      support multicast VPN service). In the case where the control plane of
      PE routers doesn't need to maintain all host routes of the attached VPN
      instances, the RIB size of PE routers can be reduced as well which would
      be beneficial for CPU and memory resource saving purpose. This document
      proposes a very simple RIB reduction mechanism. The basic idea of this
      mechanism is: remote host routes are learnt by PE routers on demand by
      using the L3VPN Address Prefix ORF as described in <xref
      target="I-D.xu-bess-l3vpn-prefix-orf"/>.</t>

      <section title="Requirements Language">
        <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">RFC 2119</xref>.</t>
      </section>
    </section>

    <section anchor="Abbreviations_Terminology" title="Terminology">
      <t>This memo makes use of the terms defined in <xref
      target="RFC4364"/>.</t>
    </section>

    <section anchor="dd" title="Solution Description">
      <t><figure align="center" title="Figure 1: RIB Reduction Example">
          <artwork><![CDATA[                                 +------+
                          +------+  RR  +------+
    +-----------------+   |      +------+      |   +-----------------+
    |VPN_A:10.1.1.1/24|   |                    |   |VPN_A:10.1.1.1/24|
    |              \  |   |                    |   |  /              |
    |  +------+     \++---+-+                +-+---++/     +------+  |
    |  |Host A+------+ PE-1 |                | PE-2 +------+Host B|  |
    |  +------+\     ++-+-+-+                +-+-+-++     /+------+  |
    |   10.1.1.2/24   | | |                    | | |    10.1.1.3/24  |
    |                 | | |                    | | |                 |
    |     DC West     | | |  IP/MPLS Backbone  | | |      DC East    |
    +-----------------+ | |                    | | +-----------------+
                        | +--------------------+ |
                        |                        |
VRF_A :                 V                VRF_A : V
+-------------+---------+--------+      +-------------+---------+--------+
|   Prefix    | Nexthop |Protocol|      |   Prefix    | Nexthop |Protocol|
+-------------+---------+--------+      +-------------+---------+--------+
|10.1.1.1/32  |127.0.0.1| Direct |      |10.1.1.1/32  |127.0.0.1| Direct |
+-------------+---------+--------+      +-------------+---------+--------+
|10.1.1.2/32  |10.1.1.2 | Direct |      |10.1.1.3/32  |10.1.1.3 | Direct |
+-------------+---------+--------+      +-------------+---------+--------+
|10.1.1.0/25  |    RR   |  IBGP  |      |10.1.1.0/25  |    RR   |  IBGP  |
+-------------+---------+--------+      +-------------+---------+--------+
|10.1.1.128/25|    RR   |  IBGP  |      |10.1.1.128/25|    RR   |  IBGP  |
+-------------+---------+--------+      +-------------+---------+--------+
|10.1.1.0/24  |10.1.1.1 | Direct |      |10.1.1.0/24  |10.1.1.1 | Direct |
+-------------+---------+--------+      +-------------+---------+--------+
]]></artwork>
        </figure></t>

      <t>To reduce the RIB size of PE routers in the Virtual Subnet context,
      the L3VPN Address Prefix ORF mechanism is used to realize on-demand
      route announcement. Take the VPN instance as shown in Figure 1 as an
      example, the RIB reduction procedures are described as follows:</t>

      <t><list style="numbers">
          <t>PE routers as RR clients advertise host routes for their local CE
          hosts to the RR by using Rout Target (RT) ORF <xref
          target="RFC4364"/> (i.e., the RR is configured to advertise route
          refresh messages containing a RT-ORF entry corresponding to that VPN
          instance) or Route Target (RT) Constrain <xref target="RFC4684"/>
          (i.e., the RR is configured to advertise update messages containing
          RT membership information corresponding to that VPN instance). Those
          PE routers belonging to that VPN instance which don't want to
          receive remote CE host routes of that VPN instance would notify the
          RR not to advertise any host route to them by using the L3VPN
          Address Prefix ORF mechanism (i.e., only requesting L3VPN routes
          with prefix length less than 32 (in the VPNv4 case) or 128 (in the
          VPNv6 case)).</t>

          <t>Meanwhile, the RR is configured with static routes for more
          specific subnets (e.g., 10.1.1.0/25 and 10.1.1.128/25) corresponding
          to the extended subnet (e.g., 10.1.1.0/24) with next-hop being
          pointed to Null0 and then redistributes these routes to BGP. In the
          case where the RR is not available for transferring L3VPN traffic
          between PE routers for some reason (e.g., the RR is running on a
          server), a particular PE router other than the RR could be selected
          to advertise the above more specific subnet routes as long as that
          PE router has learnt all remote host routes belonging to that VPN
          instance.</t>

          <t>Upon receiving a packet destined for a remote CE host from a
          local CE host, if there is no host route for that remote CE host in
          the FIB, the ingress PE router will forward the packet to the RR
          according to the longest-matching subnet routes learnt from the RR,
          which in turn forwards the packet to the relevant egress PE router
          according to the host route learnt from that egress PE router. As
          such, the RIB size of PE routers can be greatly reduced at the cost
          of path stretch.</t>

          <t>In order to forward packets destined for that remote CE host
          directly to the corresponding egress PE router without any potential
          path stretch penalty, ingress PE routers could perform on-demand
          route learning of remote host routes by using one of the following
          options:<list style="letters">
              <t>Upon receiving an ARP request or Neighbor Solicitation (NS)
              message from a local CE host, if there is no CE host route for
              that target host in its RIB yetthe ingress PE router would
              request the corresponding CE host route for the target host from
              its RR by using the L3VPN Address Prefix ORF mechanism.</t>

              <t>Upon receiving a packet whose longest-matching FIB entry is a
              particular more specific subnet routes (e.g., 10.1.1.0/25 and
              10.1.1.128/25) learnt from the RR, a copy of this packet would
              be sent to the control plane while this original packet is
              forwarded as normal. The above copy sent to the control plane
              would trigger a route pull for that destination CE host. To
              provide robust protection against DoS attacks on the control
              plane, rate-limiting of the above packets sent to the control
              plane MUST be enabled.</t>
            </list></t>

          <t>RIB entries of remote CE host routes would expire if they have
          not been used for forwarding for a certain period of time. Once the
          expiration time for a given RIB entry is approaching, the PE router
          would notify its RR to remove the corresponding L3VPN Address Prefix
          ORF entry for that CE host route by using the L3VPN Address Prefix
          ORF mechanism.</t>
        </list></t>
    </section>

    <!---->

    <section anchor="Acknowledgements" title="Acknowledgements">
      <t>TBD.</t>

      <!---->
    </section>

    <section anchor="IANA" title="IANA Considerations">
      <t>There is no requirement for any IANA action.</t>

      <!---->
    </section>

    <section anchor="Security" title="Security Considerations">
      <t>This document doesn't introduce additional security risk to BGP/MPLS
      IP VPN, nor does it provide any additional security feature for BGP/MPLS
      IP VPN.</t>

      <!---->
    </section>
  </middle>

  <back>
    <references title="Normative References">
      &RFC2119;

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

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

      <?rfc include="reference.I-D.ietf-bess-virtual-subnet"?>

      <?rfc include="reference.I-D.xu-bess-l3vpn-prefix-orf"?>

      <!---->
    </references>

    <references title="Informative References">
      <!---->

      <?rfc include="reference.I-D.ietf-bess-virtual-subnet-fib-reduction"?>
    </references>
  </back>
</rfc>
