一、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在路径选择过程中起作用。