zoukankan      html  css  js  c++  java
  • bgp路由协议(2)ebgp/ibgp+13条选路原则

    一、ebgp和ibgp

    1、ebgp(external border gateway protocol):外部边界网关协议,AS之间建立的bgp邻居关系

    2、ibgp(internal  border gateway protocol):内部bgp协议,AS内部之间建立的bgp邻居关系

      (1)IBGP路由器必须以全网状结构相连,以防止路由环路。如果使用了路由反射器或者路由联盟,则IBGP网状结构可能遭遇收敛问题,会导致路由黑洞问题。

    3、两者的区别

    (1)路由环路的避免措施不一样。

      IBGP规定:ibgp speaker不允许把一个IBGP邻居学习到的前缀去传递给其它的IBGP邻居,因此IBGP要求逻辑全连接。

      EBGP:ebgp对路由环路的避免是通过as_path属性来实现的

    (2)使用的bgp属性不同。如:ibgp可以传递local_pore(本地优先性);ebgp不行。

    (3)ibgp有同步的要求,而ebgp没有同步的要求。

    (4)ibgp不需要ibgp邻居之间有物理连接,只需要逻辑连接即可;

       ebgp一般情况下都要求ebgp邻居之间存在物理连接。

    4、路由通告的传递

    (1)如何将一个AS学到的路由通告给另外一个AS,要视过渡AS内部的情况而定。

    (2)规则

      a,bgp路由器会把从ebgp对端学到的路由通告给所有bgp邻居,包括ibgp邻居和ebgp邻居。

      b,从ibgp邻居处学到的路由是否通告给自己ebgp对端,这就要视本AS内的egp和igp路由表是否同步而定,而是否需要同步——就要看本AS内的“过渡”路由器之间有没有全互联ibgp,如果是全互联的ibgp,就不需要同步。

    二,十三条路由的选路原则

    前提:每条路由都是最优的,也就是下一条可达,以及同步关闭

    序号 名称 介绍
    1 weight值 最高有weight优先,默认是0
    2 local preference 本地优先级高的优先
    3 next hop 起源本路由器上的路由
    4 as path as-path最短的优先
    5 origin 最小的起源代码
    6 MED 最低的med
    7 EBGP>IBGP ebgp:20;ibgp:200/255
    8 度量值最小的IGP 通过最近bgp邻居的路由
    9 EBGP邻居建立时间 最老的egbp邻居学到的路由
    10 最小的BGP route ID 更低的route-id
    11 max-path是否配置 如果配置了,就负载均衡
    12 cluster-list短 始发路由器ID相同,选择cluster-list短的(每经过一个RR(路由反射器),cluster-list会加上这个RR的cluster-id)
    13 neighbor配置小 优选来自于最低的邻居地址的路径,是bgp的neighbor配置中的地址

    1、weight值(权重值)

    (1)优选有最大weight的路由(0---65535),weight是Cisco私有的参数,路由器配置了weight在本地有效。

    (2)缺省情况下,通过本路由器宣告、重分布或者汇总的路由的weight为32768,从bgp邻居学习到的路由的weight为0

    (3)只在本地有用,影响本路由的选路。

    (4)修改方法(在本路由器的入方向上做)

      a,neighbor xxx weight xxx (从此xxx邻居学到的所有的路由都加)

      b,router-map xxx permit 10 set weight xxx

    2、local-preference(本地优先级)

    (1)通过第一条选路原则不能选出最优bgp条目的情况下,优选有最大local preference值得bgp条目。

    (2)local preference值只可以在ibgp邻居之间传递,在ebgp邻居之间不能传递(不能在ebgp的出方向上做,因为只在本AS内生效)

    (3)对于从ebgp邻居学习到的bgp条目,local preference缺省值为100(show IP bgp中看到是空,其实也是100;show ip bgp xxx看明细的时候可以看见路由的local-preference),这个值可以通过命令bgp default local-preference修改

    (4)修改方法

      a,bgp default local-preference xxx //修改后,对ibgp学来的路由不起作用,只对ebgp传来的和自己产生的路由起作用。

      b,route-map xxx permit 10 set local-preference xxx

      c,不能在ebgp邻居关系的出方向做修改

    3、起源本路由器上的路由

      优选从本路由器始发的路由:包括本地network配置的重分布,或者在igp表中已经有一些需要被配置路由聚合的地址。

    4、AS--PATH

      若前三条选路不能选出最优bgp条目的情况下,优选as path长度短的路由条目

      修改as path长度只能在ebgp邻居关系之间进行,ibgp邻居关系是不可以的

    (1)as-path只可以在ebgp邻居关系的out方向和in方向去修改:

      a,out方向:加在本来as号的前面/右边

      b,in方向:加在本来as号的后面/左边

    (2)last-as表示在离这个路由器最近的as号,重复加次数

      route-map xxx permit 10

      match ip address 1

      set as-path prepend last as xx(xx表示加的次数)

    (3)入/出方向的时候,as-path prepend与last-as同时使用,last-as先,as-path prepend后

       聚合   聚合后的{  }内的as算一个。

       联邦   联盟内的( )内的as一个都不算。

       neighbor xxx remove-private-as删除私有as号,起源于本as无效,在出方向做。

       bgp best path as-path ignore     // 跳过as-path选路原则

    5、起源代码origin

      前四条选路原则不能选出最优bgp条目,优选最低起源类型的bgp路由

      origin的顺序是igp优先egp优先incomplete(egp现在已不用)

    (1)类型

      i-----igp,network xxx :通过network,aggregate方式产生的bgp路由的起源属性

      e-----egp:现在已不使用

      ?-----重分发:通过重分布产生的bgp路由的起源属性是incomplete

    (2)origin在ebgp/ibgp的in和out方向都可以做。

    6、MED值

      前五条选路原则都不能选出最优bgp条目

    (1)用途:在两个相邻as之间有多个bgp连接的情况下,MED值用于影响从相邻as到本as的路由选择(用于影响邻居as到本as的流量从哪个接口进来)

    (2)MED的生成

      a,本地network方式生成的bgp条目,会带上igp的metric,(同时也会带上路由的下一跳,开启汇总后会被取消)会传给所有邻居。

      b,如果从ebgp邻居学习到的bgp条目的metric值传递给其它ibgp邻居,但不传给ebgp

        -------------------------------a,b表示MED值只传递一次ebgp邻居--------------

      c,若ibgp邻居学习到一条bgp条目的metric为0或者其它值,缺省不会传给ebgp邻居,会显示为空

      d,汇总方式生成的bgp条目,metric值为空

      e,重分布方式生成的bgp条目,metric值为igp的cost】metric、hop,如果开启自动汇总会被清楚

      f,缺省情况下,空的metric当0看待

    (3)优选最小MED值的路由(范围0到4,294,9671295)

      a,只在通过两条路径得到第一个AS(对等体)是同一个AS时才进行MED比较(as序列号中第一个as号码一致,才比较MED),任何子自治域的联盟系统都会被忽略(从不同联邦学到的路由都会比较MED)

      b,如果路由器上配置了bgp always-compare-med,在全部路径进行med比较(全体as都同时启用这个功能,否则有可能会发生路由环路)

      c,若路由器上配置了bgp best path med confed,将进行med比较(所有包括/.AS_CONFED_SEQUENCE的路径下),默认不比较

      d,如果接收到的路径没有分配med值,则将此路径分配为0,除非路由器上配置了bgp best path med missing-as-worst,将被看作MED值为4,294,967,295的路由将在注入到路由选择表之前被改为4,294,967,294。

    7、ebgp > ebgp:ebgp>联盟ebgp>ibgp

    8、最近的bgp邻居

      指的去往bgp邻居用的igp路由的metric值,对ebgp,igbp邻居都会有效。

    9、old最长的ebgp路由(存在时间最长的优先)

    (1)可以把路由摆动的影响减到最小,因为新接收到的路径不会取代老的。

    (2)使用bgp best path compare router id 可以关闭此步骤

    (3)若路由器的标志一样,此步骤可以被屏蔽,说明路由器正在从自己那里接受路由

    (4)如果当前没有最有路由器,此步骤可以被屏蔽。当提供某个路径的邻居路由器宕机,就会发生丢失

    10、lowest router id (最小的ibgp邻居route-id)

      在有RR(路由反射器)的情况下不比邻居的route-id,比起原id起始者表示将代替route-id在路径选择过程中起作用。

      

  • 相关阅读:
    libZPlay 音频编码解码器库
    C# PropertyGrid控件
    .netGDI+(转)
    (转)JITComplier、NGen.exe及.NET Native
    c# 特性/属性(Attribute) 以及使用反射查看自定义特性
    Fluent NHibernate系列文章
    Hibernate工作原理
    Orchard核心机制
    NHibernate和 FluentNHibernate
    极限编程之TDD
  • 原文地址:https://www.cnblogs.com/yun2177856901/p/13788217.html
Copyright © 2011-2022 走看看