Subject: ops-dir input on routing protocol abuse

From: Alex Zinin <[email-masked]>
Date: Tue, 8 Jul 2003 11:10:55 -0700

Folks,

 FYI below. Quite consistent with what we've discussed.
 I'll find some time today to summarize our discussion
 on the rtg-dir list.

-- 
Alex
http://www.psg.com/~zinin/

 General analysis:

  1. BGP is part of the Internet's critical infrastructure,
     whose failures would severely affect the operations of
     the Internet.

  2. Overloading of BGP increases the likelihood of problems
     appearing in the original protocol and the Internet
     routing system, because of the following potential reasons:

       a. Increasing size of the code
       
       b. Increasing complexity of the code
       
       c. Increasing memory and BW requirements
       
       d. Interference between the original BGP code and it's
          "applications" due to implementation flaws. At a minimum in
          terms of memory usage and CPU utilization, and more direct
          if code is reused.)

       e. Interference between the Internet BGP routing system and
          other BGP-application specific distributed systems

  3. It is not clear that the above problems will appear for sure,
     however, given the importance of BGP for the Internet, the burden
     of proof that they will not should be on the proponents of the
     new BGP applications.

 Recommendations:

  1. Changes made to the Internet-critical protocols such as BGP
     should not be taken lightly. The following conditions should
     be met before changes are accepted:

       a. Reason for a change should be carefully described
          and agreed upon. Specifically, if the application
          is not obviously routing-related, justification should
          be provided as to why a particular routing protocol
          is the right choice.

       b. Operational impacts should be characterized, with
          the analysis of potential failure modes and their
          mitigation

       c. Changes to the deployment scenarios should be identified
          and analyzed to see how protocol characteristics may be
          affected

     Ideally, changes should not be admitted to the protocol unless
     it has been proven that they will do no harm to the existing
     Internet infrastructure, as opposed to a lack of proof that
     they will do harm.

  2. In the particular situation with non-routing application of BGP
     as used for VPN membership discovery and L2 VPN signaling, a
     careful analysis should be performed to see if BGP protocol
     framework is the best fit for the problems that need to be
     solved.

  3. If the conclusion is that the BGP framework is a good fit for
     these problems, the recommendation is to clearly separate
     BGP as used today for Internet routing from the BGP framework
     used for non-routing functions. This should be done by
     instantiating a new protocol, that would inherit the BGP
     functions most interesting for introduced functionality, yet
     would have its own name, transport protocol ports, and would
     explicitly not interoperate with what is known as BGP today.

---

From: Jeffrey Haas <[email-masked]>
Date: Wed, 9 Jul 2003 14:43:19 -0400

>  I'll find some time today to summarize our discussion

What they said. :-)

>      explicitly not interoperate with what is known as BGP today.

There is one gotcha here.

The reason why BGP is so tempting, even after satisfying the other 
constraints is that it immediately addresses "how do I make <foo>
inter-domain".  The answer is, start with it that way.

In almost all cases where some amount of <foo> needs to be 
inter-related with the inter-domain routing information, some
hook, either opaque and implementation-specific, or part of a
protocol extension will need to be done.  The further apart in
the protocols this is done, the more fussiness is needed to make
an implementation do the work.

This will always leave us walking the edge of a razor.

-- 
Jeff Haas 
NextHop Technologies

---

From: Alex Zinin <[email-masked]>
Date: Wed, 9 Jul 2003 19:59:12 -0700

Jeff,

> inter-domain".  The answer is, start with it that way.

Sorry, what do you mean in your last sentence?

> This will always leave us walking the edge of a razor.

OK, I guess what I am hearing is one of the points that Mike Shand
brought--about the potential need of synchronization between routing
and non-routing info (TE, for example), in which case putting it all
in the RP makes it much easier. Is this what you mean?

Alex

---

From: Jeffrey Haas <[email-masked]>
Date: Thu, 10 Jul 2003 09:43:27 -0400

> Sorry, what do you mean in your last sentence?

To clarify, if you are going to do <foo> on an inter-domain basis,
use an inter-domain protocol.  Currently, that means BGP.

> in the RP makes it much easier. Is this what you mean?

Aside from changing "RP" to "BGP", basically yes.

-- 
Jeff Haas 
NextHop Technologies