. 理解 bgp 同步及其基本需求
   1.BGP 同步规则的定义 :
  在 bgp 同步打开的情况下 , 一个 BGP路由 器不会把那些通过 ibgp 邻居学到的 bgp路由 通告给自己的 ebgp 邻居 ; 除非自己的 igb路由 表中存在这些 路由, 才可以向 ebgp路由 器通告
  
   2.BGP 同步规则的目的 :
  防止一个 AS( 不是所有的 路由 器都运行 bgp) 内部出现 路由 黑洞 , 即向外部通告了一个本 AS 不可达的虚假的 路由.
  
   BGP 同步规则的拓扑示意

3.BGP 同步规则的基本需求
  如果一个 AS 内部存在非 bgp路由 , 那么就出现了 bgp igp 的边界 , 需要在边界 路由 器将 bgp路由 发布到 igp , 才能保证 AS 所通告到外部的 bgp路由 AS 内部是连通的 . 实际上是要求 bgp路由 igp路由 的同步 .
  
   4. 满足 BGP 同步规则的基本需求的结果
  如果将 bgp路由 发布到 igp , 由于 bgp路由 主要是来自 AS 外部的 路由( 来自 internet), 那么结果是 igp路由 器要维护数以万计的外部 路由, 路由 器的 cpu memeory 以及 AS 内部的链路带宽的占用将带来巨大的开销 .
  
   5. 结论
  通常 bgp协议 的运行需要关闭同步 .
  
   .bgp 同步的解决方案 1.full mesh ibgp 解决方案
   AS 内部的所有 路由 器都运行 full mesh ibgp, 就可以关闭所有 路由 器的同步而不影响 路由 的通告和连通性 .
  
  问题 :
  
  当 as 内部 路由 器数量很多时 , 需要建立 N*(N-1)/2 ibgp 会话 , 带来过度的系统开销 , 扩展性不好 .
  
   Full-Mesh IBGP 拓扑示意 :
   15 路由 器的 AS, 需要建立 15(15-1)/2=105 ibgp 会话
  2.路由反射器解决方案
  AS内部的所有路由器都运行bgp,AS内部部署路由反射器,构建hub and spokeibgp(会话数为N-1), 然后关闭所有bgp路由器的同步.
  
  问题:
  
  此方案可以使bgp路由器传递ibgp路由ebgp, 并保证bgp路由的连通性.但是对物理拓扑有很大的限制(要求是星型拓扑)
  
  2.路由反射器解决方案
  AS内部的所有路由器都运行bgp,AS内部部署路由反射器,构建hub and spokeibgp(会话数为N-1), 然后关闭所有bgp路由器的同步.
  
  问题:
  
  此方案可以使 bgp路由 器传递 ibgp路由 ebgp, 并保证 bgp路由 的连通性 . 但是对物理拓扑有很大的限制 ( 要求是星型拓扑 )
 3.bgp联盟解决方案:
  AS内部的所有路由器都运行bgp,把一个原始的AS基于网络拓扑划分为若干个sub-AS(又称联盟AS),联盟AS之间的bgp邻居叫做联盟ebgp,不需要full mesh bgp会话;在每个联盟AS内部运full mesh ibgp或者hub and spoke反射器,然后就可以关闭所有路由器的bgp同步功能.
  
  结论:
  
   bgp 联盟结合 路由 反射器的方式较好的解决了 bgp 的同步规则带来的需求 , 是最为有效的解决方案 .
 
 
  .BGP同步规则的总结
  1.在所有的方案中, 既要保证传递bgp路由,还要保证bgp路由的连通性.
  
  2.关闭同步能够实现bgp路由的传递,不一定能保证as内部连通性,除非as内所有路由器都运行bgp才可以保证连通性;否则,仍然需要路由再发布(bgpàigp)
  
  3.最后,as内部一般需要部署igp来维持AS内部网络路径的连通性,以保证as内部的所通告的bgp路由的下一跳的可达性.这样bgp网络就具有更好的灵活性和扩展性.