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 spoke的ibgp(会话数为N-1), 然后关闭所有bgp 路由器的同步.
  
  问题:
  
  此方案可以使bgp 路由器传递ibgp 路由到ebgp, 并保证bgp 路由的连通性.但是对物理拓扑有很大的限制(要求是星型拓扑)
  
  2. 路由反射器解决方案
  AS内部的所有 路由器都运行bgp,在AS内部部署 路由反射器,构建hub and spoke的ibgp(会话数为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网络就具有更好的灵活性和扩展性.