BGP 的选路和属性
Posted 小茗,你好
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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 的选路和属性的主要内容,如果未能解决你的问题,请参考以下文章