BGP的属性及其作用

一、介绍

BGP(边界网关路由协议):无类别的路径矢量EGP协议,用于AS与AS间进行路由条目共享(AS–自治系统,标准AS号长度为16位–0~65535,其中1-64511为公有,64512 -65535为私有,扩展AS号长度 32位–约42亿)。

二、设计特性(追求)

1、可靠性:
(1)BGP协议虽然像距离矢量协议一样仅传递路由条目,但更新量依然很大,故为了避免对设备资源的占用选择了增量更新–仅触发、无周期;
(2)需要保障所有的路由传递到位—可靠(因此BGP协议基于TCP工作(179端口,故BGP协议中所有的数据包均需要在TCP会话建立后,基于TCP的会话来进行传输及可靠性的保障),TCP的三次握手条件使得TCP只能基于单播工作,同时BGP需要非直连建邻);
(3)BGP基于IGP之上,先IGP使BGP设备间IP可达,然后BGP才能基于TCP建立非直连邻居关系;
2、可控性–建邻、路由宣告、选路控制(干涉选路);BGP协议不是路由的产生者,仅为搬运者,且AS间正常应该存在大量的链路来保障稳定性;故BGP协议传递的路由条目很难默认最佳选路;需要管理员对路由进行大量的策略来干涉选路;
3、AS-BY-AS–以一个AS为一跳,将一个AS看成一个整体;

三、特点

(1)无类别路径矢量 --距离矢量的升级版(AS–BY–AS);
(2)使用单播更新来发送所有信息,基于TCP 179端口工作;
(3)增量更新–仅触发无周期;
(4)具有丰富的属性来取代IGP中度量进行选路–多个参数控制协议;
(5)可以在进项和出项对流量实施强大的策略–可控性;
(6)默认不被用于负载均衡–通过各种选路规则仅仅产生一条最佳路径;
(7)BGP支持认证和聚合(汇总)。

四、工作过程

(1)管理员定义邻居的ip地址,前提要求对邻居ip可达(IGP可达);
(2)启动BGP协议后,先目标端口为179进行TCP的三次握手来建立TCP的会话;
(3)会话建立后,收发open报文来建立邻居关系,生成邻居表;
(4)邻居关系建立后,邻居间使用update 共享路由条目,在收发了路由信息后,本地生成BGP表,BGP表中装载本地发出及接收到的所有路由条目;
(5)路由器将BGP表中的最优路径(不一定是最佳选路,仅为BGP参数最佳)加载于路由表中,之后收敛完成,仅keeplive周期保活即可;

BGP数据包

名称 作用
Open 仅负责邻居关系的建立,正常进收发一次即可,携带route-id,hold time 默认3min
Keeplive 保活–周期1min查询邻居关系是否存在,实际保活TCP会话
Update 携带路由条目,目标网络号+各种属性
Notification 出现错误数据时收发

结构突变:
1.新增网段 – BGP更新源设备(BGP更新源设备并不一定直连断开或新增网段的设备,而是第一台将该路由发布到BGP协议中的路由器)将使用update来告知本地所有的邻居;
2.断开网段 – BGP更新源设备将使用update来告知本地所有的邻居;
3.无法沟通 – 3min hold time到时时断开邻居关系和TCP会话,之后删除从该邻居处学习到的所有信息。

五、基本属性

1.

名称 传播范围 默认值 大优或小优
Preference_Value(华为设备的私有属性) 不传播 0 大优

全局操作(没有传递性,只能本地修改):
[r3-bgp]pe 2.2.2.2 preferred-value 1 //本地从邻居2.2.2.2处学习到的所有路由优先值修改为1;

负载分担(只能本地控制层面入向调用来影响本地的BGP生成,因为该属性不传递):
访问不同的目标网段时,让流量进入不同链路来进行通讯;将所有链路利用起来,而不是仅只用唯一链路通讯;

使用前缀抓取需要修改属性的网段
[r3]ip ip-prefix w permit 1.1.1.0 24
定制策略来进行修改,一定关注是否需要空表来允许其他路由通过
[r3]route-policy w permit node 10
[r3-route-policy]if-match ip-prefix w
[r3-route-policy]apply preferred-value 1
[r3-route-policy]q
[r3]route-policy w permit node 20
[r3-route-policy]q
再在协议中针对某个邻居调用
[r3]bgp 2
[r3-bgp]peer 2.2.2.2 route-policy w import //因为该属性为私有不传递属性,故调用时,只能在控制层面的入向调用,来影响本地的BGP生成;

2.

名称 传播范围 默认值 大优或小优
local-preference(本地优先级,最常用于干涉IBGP选路) IBGP邻居关系间 100 大优

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

使用本地优先级实现负载分担:
[r2]ip ip-prefix p permit 1.1.1.0 24
[r2]route-policy p permit node 10
[r2-route-policy]if-match ip-prefix p
[r2-route-policy]apply local-preference 101
[r2-route-policy]q
[r2]route-policy p permit node 20
[r2-route-policy]q
[r2]bgp 2
[r2-bgp]pe 3.3.3.3 route-policy p export 调用时在控制层面的出或入向均可,但必须为IBGP邻居关系
3.as-path(记录路由经过的AS,可以防环(水平分割)):
优选经过AS数量较少路径;该属性的自动添加只能在EBGP邻居关系间进行
[r4]ip ip-prefix as permit 1.1.1.0 24
[r4]route-policy as permit node 10
[r4-route-policy]if-match ip-prefix as
[r4-route-policy]apply as-path 3 4 5 additive
[r4-route-policy]q
[r4]route-policy as permit node 20
[r4-route-policy]q

[r4]bgp 2
[r4-bgp]pe 14.1.1.1 route-policy as import
注:
(1)可以在控制层面的入或出方向调用(出向调用 x 3 4 5 x为实际经过的AS号;最前端号码为最新经过的AS号;入向调用 3 4 5 x),但只能在ebgp邻居间操作;可干涉ebgp、ibgp关系选路;
(2)as-path 属性又用于EBGP的水平分割,若人为添加的AS号,在网络后端实际存在,将导致这些路由无法进入这些AS;解决方案:反复添加已经经过的AS编号。

4.origin(起源属性):
条目的产生方式,该属性的修改可以在整个控制层面流量经过的任意接口修改。
i–IGP, e–EGP, ?–import
使用i表示管理员network宣告本地路由表中的任意路由;
使用?表示将本地通过其他协议学习的路由重发布到BGP协议中;
使用e表示将EGP协议学习的路由重发布到BGP协议中。

[r4]ip ip-prefix o permit 1.1.1.0 24
[r4]route-policy o permit node 10
[r4-route-policy]if-match ip-prefix o
[r4-route-policy]apply origin egp 2 //此处配置的AS为对端邻居的AS号
[r4]route-policy o permit node 20
[r4-route-policy]q
[r4]bgp 2
[r4-bgp]pe 3.3.3.3 route-policy o export

5.MDE metric(多出口鉴别属性–最常用于干涉EBGP选路):
BGP协议默认不存在cost;MED就是人为的利用路由器优选路径的规则–先比较管理距离(华为为优先级),若一致再比较度量值(华为为cost)。

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

管理员可以在控制层面传递路由的过程中,手工修改MDE;
[r1]ip ip-prefix med permit 1.1.1.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 14.1.1.2 route-policy med export

实际工程中,管理员只能在一个AS中配置,所以无法通过查看BGP表来判断选路结果,可以通过扩展ping来解决:
[r1]ping -r -a 1.1.1.1 3.3.3.3

6.BGP的社团属性–BGP的扩展属性:默认大多数厂商的产品在BGP协议中不携带社团属性
控制传播范围的社团属性:
[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

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

若网络没有小AS,仅存在大AS时no-export和no-export-subconfed作用一致。
注:
默认华为设备也不传递社团属性,故使用社团属性时,必须定义传递性。
[r1-bgp]peer 12.1.1.2 advertise-community //逐跳行为,每台设备均需开启传递性

猜你喜欢

转载自blog.csdn.net/qq_43928088/article/details/106768475