BGP 的选路和属性

Posted 小茗,你好

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了BGP 的选路和属性相关的知识,希望对你有一定的参考价值。

目录

一、BGP的选路

二、属性

1、Preference_Value

2、本地优先级

3、as-path 

4、起源属性---条目的产生方式 

5、MED---多出口的鉴别属性 

三、BGP的社团属性 –BGP的扩展属性  


一、BGP的选路

1、比较前提,多条BGP路由目标相同,且均可优(下一跳可达、同步关闭),具有相同的优先级(管理距离):

(1)优选Preference_Value值最高的路由(私有属性,仅本地有效)。

不传递  权限最高属性    可以干涉EBGP/IBGP选路

(2)优选本地优先级(Local_Preference)最高的路由。

IBGP邻居关系间传递    只能,最常干涉IBGP关系的选

(3)优选手动聚合>自动聚合>network>import>从对等体学到的。

(4)优选AS_Path短的路由。

EBGP/IBGP关系均可被干涉,但只能在EBGP邻居间修改;

(5)起源类型IGP>EGP>Incomplete。

起源属性 i优于e优于?; 可在控制层面任意接口修改;

(6)对于来自同一AS的路由,优选MED值小的。

默认为0,宣告或重发布(关闭自动汇总)路由时携带本地到达目标的cost

2、最常用于干涉EBGP选路的属性:

(1)优选从EBGP学来的路由(EBGP>IBGP)。

(2)优选AS内部IGP的Metric最小的路由。

(3)优选Cluster_List最短的路由。

(4)优选Orginator_ID最小的路由。

(5)优选Router_ID最小的路由器发布的路由

(6)优选具有较小IP地址的邻居学来的路由。

二、属性

华为和cisco均存在6种基本属性   第一种均为私有属性

1、Preference_Value

华为设备的私有属性:

传播范围 默认值大优或小优
不传播   0    

首先将R1的环回网段 1.1.1.0/24 宣告到BGP中,在R4上查看BGP表:

可以看到R4是通过上边 R2 学到BGP 路由。

如果要通过R3 学习BGP路由,可通过修改属性实现:

策略一:  全局操作

[r4-bgp]pe 3.3.3.3   preferred-value  1      本地从邻居2.2.2.2处学习到的所有路由优先值修改为1

查看:

缺点:如果R1还宣告其他网段,会将所有的网段路由通过R3传给R4。因为R4会将所有从R1学到的路由权重值都会赋值为指定的值 1。

负载分担:访问不同的目标网段时,让流量进入不同链路来进行通讯;将所有链路利用起来,而不是仅只用唯一链路通讯;

策略二:使用前缀抓取需要修改属性的网段

[r4]ip ip-prefix w permit 1.1.2.0 24

定制策略来进行修改,一定关注是否需要空表来允许其他路由通过

[r4]route-policy w permit node  10

[r4-route-policy]if-match ip-prefix w

[r4-route-policy]apply preferred-value 1

[r4-route-policy]q

[r4]route-policy w permit node 20

然后在协议中针对某个邻居调用

[r4]bgp 2

[r4-bgp]peer 2.2.2.2 route-policy w import    因为该属性为私有不传递属性,故调用时,只能在控制层面的入向调用,来影响本地的BGP生成。

2、本地优先级

传播范围默认值  大或小优
IBGP邻居关系间 100 大

第一个公有属性,也是最常用于干涉IBGP选路

策略一:全局修改

[r3-bgp]default local-preference  101     本地所有传输到IBGP的路由条目,其中本地优先级修改为101;

在R4上查看:

策略二:使用本地优先级实现负载分担

[r3]ip ip-prefix p permit 1.1.2.0 24

[r3]route-policy p permit node  10

[r3-route-policy]if-match ip-prefix p

[r3-route-policy]apply  local-preference 101

[r3-route-policy]q

[r3]route-policy p permit node 20

[r3-route-policy]q



[r3]bgp 2

[r3-bgp]pe 4.4.4.4 route-policy p export  调用时在控制层面的出或入向均可,但必须为IBGP邻居关系;

查看:可以看到只对抓取的路由修改了优先级

3、as-path 

优选经过AS数量较少路径,该属性的自动添加是在EBGP邻居关系间进行。

EBGP 水平分割:路由信息在传递的过程中将记录所有经过的 AS编号,接收到的路由中若出现了本地的 AS编号将拒绝接收。

利用AS-path属性来干涉选路,认为的添加path中的数字,只能在EBGP邻居间去配置。由于path属性是防环属性,故只能人为的添加,不能减少。既可用于干涉EBGP关系选路,也可用于干涉IBGP选路。

在R2上抓取 1.1.2.0/24 来干涉选路:

[r2]ip ip-prefix as permit 1.1.2.0 24

[r2]route-policy as permit node 10

[r2-route-policy]if-match ip-prefix as

[r2-route-policy]apply as-path 1 1 1 additive

[r2-route-policy]q

[r2]route-policy as permit node  20


[r2]bgp 2

[r2-bgp]pe 12.1.1.1 route-policy as import 

注:可以在控制层面的入或出方向调用,但只能在ebgp邻居间操作;可干涉ebgp、ibgp关系选路。

在R2上查看BGP表,已添加 path 数字:

在R4上查看:

切记:as-path 属性又用于EBGP的水平分割,若人为添加的as号,在网络后端实际存在,将导致这些路由无法进入这些AS;解决方案:反复添加已经经过的AS编号;

4、起源属性---条目的产生方式 

network:宣告本地路由表中的任意路由  i

import:将本地通过其他协议学习的路由重发布到BGP协议中  ?

egp:早期的ebg协议学习的路由重发布到BGP协议中      e

 该属性的修改可以在整个控制层面流量经过的任意接口修改;

抓取 1.1.2.0/24 路由,通过修改起源属性来干涉选路:

[r2]ip ip-prefix o permit 1.1.2.0 24

[r2]route-policy o permit node 10

[r2-route-policy]if-match ip-prefix o

[r2-route-policy]apply origin egp 2  此处配置的AS为对端邻居的AS号

[r2]route-policy o permit node 20

[r2-route-policy]q

[r2]bgp 2 

[r2-bgp]pe 4.4.4.4 route-policy o export

在R4上查看:

5、MED---多出口的鉴别属性 

BGP协议默认不存在cost;MED就是人为的利用路由器优选路径的规则—先比较管理距离(华为为优先级),若一直再比较度量值(华为为cost)

  BGP协议在特定条件下携带本地到达目标的cost值;本地宣告(重发布)自己路由表中的路由后,将其传递给本地的ebgp邻居,将携带cost值;对于其他AS的设备学习到从同一个as传递过来的路由,优选MED最小的路径;

管理员可以在控制层面传递路由的过程中,手工修改MED;最常用于干涉ebgp选路;常常用于AS1干涉AS2对AS1的选路。

[r1]ip ip-prefix med permit 1.1.2.0 24

 [r1]route-policy med permit node 10

[r1-route-policy]if-match ip-prefix med

[r1-route-policy]apply cost 10

[r1-route-policy]q

r1]route-policy med permit node  20

[r1-route-policy]q

[r1]bgp 1

[r1-bgp]pe 12.1.1.2 route-policy med export

在R4上查看:

由于实际工程中,管理员只能在一个AS中配置,故无法通过查看BGP表来判断选路结果,可以通过扩展ping来解决

[r1]ping -r  -a 1.1.1.1 3.3.3.3

三、BGP的社团属性 –BGP的扩展属性  

默认大多数厂商的产品在BGP协议中不携带社团属性

例:控制传播范围的社团属性

以上图中的三种社团属性来做演示:

no-advertise:接收到的条目中若存在该社团属性,将不再传递该路由

no-export:接收到的条目若存在该社团属性,将不传递给下一个AS

no-export-subconfed:接收到的条目若存在该社团属性,将不传递给下一个小AS

[r1]route-policy com permit node 10

[r1-route-policy]apply community no-advertise  针对所有的流量修改属性

[r1]bgp 1

[r1-bgp]peer 12.1.1.2 route-policy com export

默认华为设备也不传递社团属性,故使用社团属性时,必须定义传递性

[r1-bgp]peer 12.1.1.2 advertise-community   逐跳行为,每台设备均需开启传递性

后边两个社团属性的配置过程均一致。

若网络没有小AS,仅存在大AS时no-export和no-export-subconfed作用一致

以上是关于BGP 的选路和属性的主要内容,如果未能解决你的问题,请参考以下文章

BGP的选路

BGP选路原则

华为路由器——BGP路由技术详解

华为路由器之BGP路由技术总结及配置命令

BGP反射器联盟属性选路

华为路由器之BGP路由技术总结及配置命令