BGP选路原则详解----------------许久不玩BGP,来一波回忆杀。

总览

1.优选有最大 Weight 的路由 (范围 0 65,535)

A:weight 是 CISCO 私有的参数,路由器配置了权重后在本地有效。自身产生的默认为 32768,学习过来的默认为 0

 

2.优选有最大 LOCAL_PREF 值的路由(范围 0 4,294,967,295).

 

3.优选从本路由器始发的路由(包括本地 network 配置的重分布,或者在 IGP 表中已经有一

些需要被配置路由聚合的地址,在 BGP 中用 Aggregate 命令配置的路由聚合,)

 

4.优选有最短 AS_PATH 的路由

               A.如果配置了 Bgp bestpath as-path ignore,则这个步骤被忽略

             B.一个 AS 路径集被当作一个 AS,无论在这个集合中有多少 AS。

               C.AS 路径长度中没有包括 AS_CONFED_SEQUENCE。

 

5.根据 Origin 属性.优选具有最低起源类型的路由(IGP>EGP>Incomplete

 

6.优选最小 MED 值的路由(范围 0 4,294,967,295).

   A.只有在通过两条路径得到第一个 AS(对等体)是同一个 AS 时才进行 MED 比较;任何子自治域的联盟系统都会被忽略。也就是说,只有在 AS 序列号中第一个 AS 号码一致时,才进行 MED 比较;任何联盟 AS 序 列号(AS_CONFED_SEQUENCE)都会被忽略。

   B.如果路由器上配置了 bgp always—compare—med ,在全部的路径进行 MED 比较。但是这需要全体 AS 都同时启用这个功能,否则有可能发生路由环路。

                                              C .如果路由器上配置了 bgp bestpath med confed ,将对所有只包括

AS_CONFED_SEQUENCE 的路径进行 MED 比较(即路径是起源于本地联盟)。

  D.如果接收到的路径没有分配 MED 值,则将此路径分配为 0,除非路由器上配置了 bestpath med missing—is—worst,将被看作 MED 值为 4,294,967,295 的路由将在注入到 BGP 路由选择表之前被改为 4,294,967,294。

  E.BGP 明确的 MED 值 9(详见本章后面的"BGP 明确的 MED"段落)也可以影响此步骤。

   

7.外部路由 EBGP 优先于联盟(confederation)外部路由优于内部路由 IBGP(优选 E-BGP 路由)

  注意,路径中包括 AS_CONFEND_SEQUENCE 属性对联盟只有在本地有效,因此被看作是内部路径。无法区别外部联盟和内部联盟。

 对联邦 BGP 使用 route-map 添加 AS,是保存在 AS_CONFEND_SEQUENCE 中,不计算 AS 长度

   

8. 优选能通过最近的 IGP邻居到达的路径(优选对 BGP下一跳具有最低 IGP度量值的路径);

   

9.如果在路由器上配置了 maximum—paths N,而且从同一个对等体自治域/子自治域接收到多条外部/外部联盟的路径,则最多可以将 N 条最近接收到的路径加入到 IP 路由选择表中。这可以使得 eBGP 在多条路径上进行负载分担。目前 N 所代表的最大数目是 6;当没有启用此功能时,缺省数值是 1。在输入了 show ip bgp x.x.x.x 后系统输出信息中可以看到最早接收到的路径被标记为最优路径,在将这条最优路径转发到内部对等体之前,需要执行与

next_hop_self 作用相同的功能。

   

10.如果是 external 的路由,优选最老的路由(最先被学习到的路由).

  A.此步骤可以将路由摆动的影响减到最小,因为新接收到的路径不会取代老的,即使这条新接收的路径是通过下面提及到的额外路径选择标准来进行选择的。这使得只在 iBGP 路径下应用额外的选择步骤更有意义。

  B.此步骤可以被 bgp bestpath compare_routerid 命令语句所关闭。

  C.如果路由器标志是一样的,此步骤可以被屏蔽,因为这说明路由器正在从自己那里接收路由。

  D.如果当前没有最优路由器,此步骤可以被屏蔽。当提供某个路径的对等体路由器宕机,就会发生丢失 当前最优路径的情况。

   

11.如果在同一时间学习到多条到同一目的地的路由,优选最小BGP-router-ID的路由,注意,如果一个路径包括路由反射器属性,起始者标识将代替路由器标识在路径选择过程中起作用。

   

12.如果路由从路由反射器上学习到 ,优选最小 Cluster-ID(BGP_ID of the route reflector)长度的路由,而且它运行客户机和其他反射器族中的 RR/Clients 之间做对等连接,在这种情况下,路由器必须知道 BGP 协议中的 RR 的具体配置。

   

13.优选具有最低对等体地址接收到的路径。这个地址是在 BGP 对等体上配置并使用的地

址,这个地址是本地对等体路由器在其上配置 TCP 邻居并与远端对等体建立连接时地址

 

Weight

Cisco 私有

作用范围是本路由器(不传递),该值即不会被包含在 update 消息中,也不会传递给任何 BGP 邻居

范围 0-65535

从邻居学习到路由默认为 0

 

本地 network 产生的路由 weight 32768 本地重发布的直连接口路由、静态路由

本地汇总产生的 BGP 路由 weight 32768

 

越大越优先

 

Neighbor IP weight X

Neighbor IP filter-list X weight XXX

这个针对所有从邻居学习到路由,也可以利用 route-map 来针对某条路由修改由于该属性作用范围为本路由器,所以只能在路由学习的 in 方向修改

Local Preference

只影响离开 AS 域的业务量(大的优先)

只能在 IBGP Peer 之间传递,如果 EBGP Peer 之间收到的路由的路径中携带了 Local Preference

则会触发 Notifacation 报文,造成会话中断(抓包确认 EBGP 邻居之间的 Update 报文没有该字段信息)但是可以在 AS 边界路由器上使用 In 方向的策略

BGP 路由器在向其 EBGP 邻居发送路由更新时,不能携带 LP 属性,对方收到该 EBGP 路由的 LP 值为空(没有这个字段),但是它会在本地为这条路由赋一个默认值,也就是 100,然后再传递给自己的 IBGP 邻居

Bgp default local-preference X    //修改始发于本地的路由的默认 LP 值(包含自身宣告和重分布的,同时从 EBGP 邻居学习到的路由由于没有 LP,所以会添加该 LP 值传递给 IBGP 邻居,对 IBGP 邻居发送过来包含了 LP 的这个不会更改)本地起源

由于本地起源的路由一般 weight 为 32768,在 Cisco 路由器上,第三条选路选择一般没有什么作用,但是在非思科设备,如果同时从 IBGP 邻居学习到一条路由,那么如果自身也产生同样的一条路由条目则优选这条自身产生

AS Path 长度

在以上三个皆不能选择出一条较优的情况下,那么根据 AS Path 长度,较短的优先起源类型

IGP 优先于 EGP 优先于 Incomplete

MED

默认情况下,只比较来自同一邻居 AS 的 BGP 路由的 MED 值,就是说如果同一个目的地的两条路有来自不同的 AS,则不进行 MED 值得比较,MED 只是在直接相连的 AS 之间影响业务量,而不会跨 AS 传递(MED 信息只会传递给直连的 AS 邻居,在跨越了一个 AS 后,不携带这个属性)

MED 设置方法

  1. 将 IGP 路由引入 BGP 时关联 Route-map 进行设置
  2. 将 BGP Peer 应用 IN/out 方向的 Route-map 进行设置
  3. 非 Route-map 方式:使用 network 或 redistribute 方式将 IGP 路由引入 BGP 时,MED 将继承 IGP 路由的

Metric(直连路由以及静态路由的 Metric 为 0)

                 使用 aggregate-address 方式引入路由,则 MED 为空                                                              

比较原则及配置注意事项

  1. 本地在将一条 BGP 路由通告给 EBGP Peer 时,是否携带 MED 值,需要根据以下条件进行判断         如果该 BGP 路由是本地始发的(network 或者 redistribute),则携带 MED 值发送给 EBGP

Peer(如果 MED 为空,则设置为 0)

         如果该 BGP 路由是从其他 BGP Peer(该处指的是 IBGP 或者 EBGP 邻居)学习过来的,那么将该路由通告给 EBGP Peer 时不携带 MED,换句话说就是 MED 不会被传出本 AS

  1. 本地在将一条 BGP 路由通告给 IBGP Peer 时,一定会携带 MED

如果接收或产生的路由的 MED 为空,那么向 IBGP Peer 通告时,将 MED 设置为 0 配置命令

Bgp always-compare-med

默认情况下只比较来自同一个 AS 的路由的 MED,如果想比较来自不同 AS 的 MED,则要配置此命令

Bgp bestpath med missing-as-worst

如果某路由MED 属性丢失一般的做法就是给MED 默认配置为0,但是如果配置了这条命令,则如果收到没有 MED 值的路由,则将该路由的 MED 设置为最大值

Set metric-type internal

用在 route-map 中,当匹配某些条目,且使用该 set 命令后,将 route-map 应用在某个邻居,

则想这些邻居更新这些路由时,BGP 的 MED 属性将会继承这些路由在本地 IGP 的 metric

Bgp best med confed

配置这条命令,再选路时,路由器只比较所有带有 AS_CONFED_DEQ 属性的路由条目,此类命令用于联邦路由器,同时 weight 和 LP 比 MED 具有更高的优先级

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值