<?xml version="1.0" encoding="utf-8"?>
<!-- 
     draft-rfcxml-general-template-standard-00
  
     This template includes examples of the most commonly used features of RFCXML with comments 
     explaining how to customise them. This template can be quickly turned into an I-D by editing 
     the examples provided. Look for [REPLACE], [REPLACE/DELETE], [CHECK] and edit accordingly.
     Note - 'DELETE' means delete the element or attribute, not just the contents.
     
     Documentation is at https://authors.ietf.org/en/templates-and-schemas
-->
<?xml-model href="rfc7991bis.rnc"?>  <!-- Required for schema validation and schema-aware editing -->
<!-- <?xml-stylesheet type="text/xsl" href="rfc2629.xslt" ?> -->
<!-- This third-party XSLT can be enabled for direct transformations in XML processors, including most browsers -->


<!DOCTYPE rfc [
  <!ENTITY nbsp    "&#160;">
  <!ENTITY zwsp   "&#8203;">
  <!ENTITY nbhy   "&#8209;">
  <!ENTITY wj     "&#8288;">
]>
<!-- If further character entities are required then they should be added to the DOCTYPE above.
     Use of an external entity file is not recommended. -->

<rfc
  xmlns:xi="http://www.w3.org/2001/XInclude"
  category="info"
  docName="draft-bgp-flex-00"
  ipr="trust200902"
  obsoletes=""
  updates=""
  submissionType="IETF"
  xml:lang="en"
  version="3">
<!-- [REPLACE] 
       * docName with name of your draft
     [CHECK] 
       * category should be one of std, bcp, info, exp, historic
       * ipr should be one of trust200902, noModificationTrust200902, noDerivativesTrust200902, pre5378Trust200902
       * updates can be an RFC number as NNNN
       * obsoletes can be an RFC number as NNNN 
-->

  <front>
    <title abbrev="Abbreviated Title">BGP FLEX</title>
    <!--  [REPLACE/DELETE] abbrev. The abbreviated title is required if the full title is longer than 39 characters -->

    <seriesInfo name="draft-bgp-flex" value="draft-bgp-flex-00"/>
   
    <author fullname="ZOUNDI Bonaventure" initials="ZB" role="editor" surname="ZOUNDI">
      <!-- [CHECK]
             * initials should not include an initial for the surname
             * role="editor" is optional -->
    <!-- Can have more than one author -->
      
    <!-- all of the following elements are optional -->
 
      <address>
        <postal>
          <!-- Reorder these if your country does things differently -->
         
          <city>Abidjan</city>
          <region>Lagunes</region>
          <code>225</code>
          <country>CI</country>
          <!-- Uses two letter country code -->
        </postal>        
        <phone>+2250586757570</phone>
        <email>zoundibona@yahoo.fr</email>  
        <!-- Can have more than one <email> element -->
        
      </address>
    </author>
   
    <date year="2026"/>
    <!-- On draft subbmission:
         * If only the current year is specified, the current day and month will be used.
         * If the month and year are both specified and are the current ones, the current day will
           be used
         * If the year is not the current one, it is necessary to specify at least a month and day="1" will be used.
    -->

    <area>General</area>
    <workgroup>Internet Engineering Task Force</workgroup>
    <!-- "Internet Engineering Task Force" is fine for individual submissions.  If this element is 
          not present, the default is "Network Working Group", which is used by the RFC Editor as 
          a nod to the history of the RFC Series. -->

    <keyword>BGP</keyword>
    <keyword>Internet Exchange</keyword>
    <keyword>Internet</keyword>
    
    <!-- [REPLACE/DELETE]. Multiple allowed.  Keywords are incorporated into HTML output files for 
         use by search engines. -->

    <abstract>
      <t>
      
   The Border Gateway Protocol (BGP) is a very important protocol in the
   Internet to exchange routing information between network domains. <br/>
   BGP populates the routing table with valid routes, sometimes the routes populated
   by BGP are not the best choices specially when a ISP provides IP Transit service
   to an other ISP, and the two ISP are peering at an Internet Exchange Point. <br/>

   </t>

    <t>
   Let us assume that ISP A provides IP Transit to ISP B, and the two are peering at an Internet Exchange Point.<br/>
   The return traffic from Internet to ISP B via ISP A will be routed over the Internet Exchange Point 
   instead of the IP Transit link between the two ISP, because of BGP Local preference 
   which has usually a higher value on Internet Exchange links.  <br/>
   This will lead to an issue because the return traffic IP Transit service is now passing over the  Internet Exchange link. <br/>

   </t>

  
   <t>

   An other issue faced in Internet Exchange Point, is the sub-optimal routing caused by the advertisment
   of the most specific routes over Internet by ISP. <br/>
   Let us assume that ISP A wants to advertise most specific routes to Internet for traffic Engineering, 
   the peers of ISP A at the Internet Exchange Point could also receive the most specific routes over Internet .  <br/>
   This will mean that traffic from the peers of ISP A towards ISP A will now go through Internet because of most specific
   routes which is not suppposed to be the case.<br/>

   </t>

   <t>
   To solve that ISP A will have to send the same specific routes over the Internet Exchange Point which will increase 
   complexity.<br/>
   This document provides aletrnative solutions that can be used to solve the above problems

   
      

  </t>
          
      
    
   
      
      
    </abstract>
 
  </front>

  <middle>
    
    <section>
      <name>Introduction</name>
      <t>
      In the past years BGP has been operating by relying on the same route table 
      for Internet Exchange and Internet prefixes.  <br/>
      As explained above there are issues caused by this BGP behaviour.
     
      </t> 
      <t>
      To solve these issues, we would like to propose protocol based on BGP called BGP Flex.
      BGP Flex will create two different routing tables like VRF concepts. <br/>
      One route table will be populated with prefixes received over Internet Exchange links and the other one 
      with prefixes received over Internet.
      The decision to use a particular route table will depend on some criterias that will be discussed in this document.
      </t>
      
     
    </section>



      <section>
      <name>Terminology</name>
   

         <section>
            <name>Acronyms</name>  

        <ol>

        
         <li> IX : Internet Exchange </li>
         <li> IXP : Internet Exchange Point  </li>
        <li> BLSI : BGP Local Source IP </li>
        <li> BRSI : BGP Remote Source IP </li>
         <li> SIRA : Source IP Router Advertiser </li>
         <li> BRPI : BGP Remote Peer IP  </li>
         <li> CISP : Customer ISP refers the ISP buying service from an other ISP </li>
          <li> SISP : Seller ISP refers to the ISP selling service to customer ISP </li>

        
        </ol>

        </section>
      </section>
    
    <section>
      <name>BGP Flex</name>
      <t>
      
      As explained in the introduction, the routing issues mentionned there can be solved by BGP Flex. <br/>
      BGP Flex is an extension of BGP that will create a dedicated IX route table different from the default routing table.   <br/>
      When BGP will advertise the routes over the IX, these routes will be marked as IX routes 
      on the receiving router and will be inserted into the IX route table. <br/>
       
      The decision to choose a particular routing table will depend on the classification of the packet. <br/>
      This has been explained in the section 5 of this document.

       </t>

       <t>
      

      The fact that IX route table is separated from Internet route table will solve routing issues and the sub-optimal routing
      described in abstract section, because each route table is independant of the other. <br/>
      </t>

      <t>
      In the next section, we will define the key concepts of BGP Flex
      
      
  
      </t>

      
      
  
     
    </section>      

     <section>
        <name>BGP Flex Concepts</name>

        <section>
            <name>BGP Local Source IP (BLSI)</name>

              <t>

              The BLSI refer to the public IP owned by the ISP. <br/>
              These IP are important as they determine how the packet will be routed, the ISP should explicitily define the BLSI on at least one router.

              </t>
      
        </section>


         <section>
            <name>BGP Remote Source IP (BRSI)</name>

             <t>

              In some situations the ISP announces other ISP public IP over the IXP, 
              in this situation, the main ISP needs to declare the other ISP block as BGP Remote Source IP (BRSI). <br/>
              This will make a difference between ISP own blocks and other ISP public IP. <br/>
              
              There are two ways to define the BRSI as stated below : 
               </t>
              <ol>
                <li> Static mode defined locally on the router from the SISP side </li>
                <li> Dynamic mode by receiving via the IP routes from CISP via BGP </li>
               
              </ol>

              <t>
              In the static mode, the BRSI are mapped to CISP BGP ASN. <br/>
              In the dynamic mode, when the SISP receives the routes from CISP, the SISP will flag the received routes as BRSI and maps the routes with CISP BGP ASN. <br/>
             
        
               </t>

               
       
      
         </section>

              
          <section>
            <name>BGP Remote Peer IP (BRPI)</name>

             <t>
            
              These are the IP received from other peers at the IXP.
              
              </t>
      
         </section>



          <section>
            <name>Source IP Router Advertiser (SIRA)</name>

             <t>
              Up to now, we have seen how to define the BLSI and BRSI, but what if they more routers in ISP core backbone ? <br/>
              This is where the Source IP Router Advertiser (SIRA) plays a role, 
              the BLSI and BRSI will be configured on the SIRA which will advertise the BLSI and BRSI to other routers in the ISP core backbone. <br/>
              It is advisable to define at least two nodes as SIRA for redundancy purpose. <br/>

               </t>

                 <t>
              BGP will be extended to support the advertisement of BLSI and BRSI.<br/>
              Note that routes received by SIRA are not used for routing, they are only used to identify the BLSI and BRSI required by BGP Flex for routing. <br/>
            
              
              
              
              </t>
      
         </section>


      
    </section>


    <section>
        <name>Routing mode in BGP Flex</name>

          <t>
            
           In this section, we will discuss how to classify a packet received by a router. <br/>
           For BGP Flex to know how to route the packets, BGP needs to classify the packets. <br/>
           There are two main categories : IX packets and Internet packets. <br/>
           The IX packets refer to the IP packet with source IP from BLSI, BRSI or BRPI described in the BGP Flex concepts section.  <br/>
           Any other packets will be treated as Internet packets. <br/>

           If the packet is classified as IX then IX route table will be checked first,  
           if there is a match the packet is forwarded using the IX routing table otherwise the packet will be routed 
           based on the Internet table .<br/>
           If the packet is not classified as IX then the packet will be routed based on the Internet route table, in this case
           only the Internet routing table is checked.

           </t>

           <t>

           To summarize if the packet is classified as IX packet, the routes tables will be checked following an order (IX routing table first, then Internet rouing table). <br/>
           If the packet is not IX packet it is an Internet packet, in this case only Internet routing table is used.
           
       
    
           </t>

        </section>
    
    <section anchor="IANA">
    <!-- All drafts are required to have an IANA considerations section. See RFC 8126 for a guide.-->
      <name>IANA Considerations</name>
      <t>
      BGP Flex supports both IPv4 and IPV6, it will require two SAFI
      </t>

            <ol>
                <li> specific SAFI to identify the Network Layer Reachability Information (NLRI) exchanged via IX </li>
                <li> specific SAFI to identify the BLSI and BRSI advertised by SIRA  </li>    
         </ol>
       
     
    
    </section>
    
    <section anchor="Security">
      <!-- All drafts are required to have a security considerations section. See RFC 3552 for a guide. -->
      <name>Security Considerations</name>
      <t>BGP Flex is an extension of BGP, so all security considerations for BGP can be applied. <br/>
        It also advisable to apply all best practices at an Internet Exchange Point 
      </t>
    </section>
    
    <!-- NOTE: The Acknowledgements and Contributors sections are at the end of this template -->
  </middle>

  <back>
    <references>
      <name>References</name>
      <references>
        <name>Normative References</name>
        
        <xi:include href="https://bib.ietf.org/public/rfc/bibxml/reference.RFC.4271.xml"/>
        
        <!-- The recommended and simplest way to include a well known reference -->
        
      </references>
 
      
    </references>
    
    

  
    
 
    
 </back>
</rfc>
