分享

如何理解BGP同步规则

 qweertt4747 2017-03-01
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宝典》


全网状下,一个AS里的所有路由器均通过IBGP知道了如何到达目的地,此时如果不关闭同步的话则必须将BGP重发布到IGP中,而在实际环境下,将所有的BGP路由发布到IGP中不是一个好办法,它很可能导致一个路由器崩溃。所以一般在全互联情况下我们可以安全关闭同步。

 

如果不是全互联结构,则必须将BGP发布到IGP中以实现同步。


    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多