如何理解BGP同步规则-

BGP同步(BGP Synchronization)规则要求:
BGP路由器不应该使用或向EBGP邻居通告从IBGP邻居那里学习到的BGP路由信息,除非该路由是本地的或者该路由存在于IGP数据库,即该路由也能从IGP学习到。
    同步规则要求BGP库与IGP库同步。这么做是为了使AS内的所有路由器都能达到同步,确保能够转发其它AS因使用该AS通告的路由而发送到该AS的那些数据。BGP同步规则也保证了整个AS中路由信息的一致性,避免了AS内的路由“黑洞”。
    下面以图8-11所示的网络环境为例说明同步开启时各BGP路由器的状态。


    路由器A和B都运行BGP协议,并形成了IBGP邻居关系。在AS65500中没有运行IGP,路由器A和B上也没有任何静态路由条目。路由器F运行BGP协议,并和路由器B形成了EBGP邻居关系。路由器E运行BGP协议,并和路由器A形成了EBGP邻居关系。路由器A和路由器B共同构成了一条AS65000和AS64500之间的路由信息的转接路径。
    路由器F在BGP进程中通告了网络172.16.0.0,在同步开启时,情况如下:
  • 路由器F在BGP进程中通告网络172.16.0.0;
  • 路由器B从EBGP邻居那里学习到172.16.0.0的路由信息;
  • 路由器B把172.16.0.0的路由信息写入BGP库并且使用它,然后把该路由放置在路由表中;
  • 路由器B向它的IBGP邻居路由器A通告172.16.0.0的路由信息;
  • 路由器A学习到172.16.0.0的路由信息,写入BGP库但并不使用它。因为路由器A并没有从IGP那里学习到该路由信息,即不同步。路由表中也没有到达网络172.16.0.0的路由。
  • 路由器A不把172.16.0.0的路由信息通告给它的EBGP邻居——路由器E。
    BGP同步规则缺省是开启的,可以人工关闭它。但是,只有当转接路径上的所有路由器都运行BGP时,关闭同步功能才是安全的。
依然使用图7-11所示的环境,当同步关闭时,情况如下:
  • 路由器F在BGP进程中通告网络172.16.0.0;
  • 路由器B从EBGP邻居那里学习到172.16.0.0的路由信息;
  • 路由器B把172.16.0.0的路由信息写入BGP库并且使用它,然后把该路由放置在路由表中;
  • 路由器B向它的IBGP邻居路由器A通告172.16.0.0的路由信息;
  • 路由器A学习到172.16.0.0的路由信息,写入BGP库但并不使用它。因为路由器A没有可达的下一跳(路由器F的接口地址)。路由表中没有到达网络172.16.0.0的路由。
  • 路由器A不把172.16.0.0的路由信息通告给它的EBGP邻居——路由器E。
    综上所述,如果让BGP路由器在不违反BGP同步规则的前提下,使用并向EBGP邻居通告从IBGP邻居学习到的路由信息,可以总结为两句话:
  • 同步开启,BGP和IGP必须同步,且有可达的下一跳(运行了IGP的情况下,一般来说就能保证下一跳可达)。
  • 同步关闭,必须有可达的下一跳。

摘自《最新CCNP认证之BSCI宝典》

你可能感兴趣的:(网络)