BGP常用属性介绍

BGP选路时会产生的问题

在这里插入图片描述
如图,AS 7中有一个100.0.0.0/24的用户网段,通过BGP发布给各个AS,各个AS都能学到100.0.0.0/24的路由,但是路由在传递过程中存在两个主要的问题:
①:AS3可以从AS4与AS 6两个AS收到100.0.0.0/24的路由,但AS 3与AS4之间的链路带宽较大,有哪些方法可以影响AS 3选择AS4访问100.0.0.0/24的网段?
②:AS1,AS 2与AS 3之间存在拓扑上的环路,因此数据包在传递的过程中可能出现环路,怎么解决类似的环路问题?
下面来介绍BGP的选路属性以及相应的功能。

BGP的丰富属性

在这里插入图片描述
下面逐个进行介绍:
**公认:**每一台BGP路由器都要认识这个属性。
**必遵:**在路由传递的时候必须会带上这些属性。
**任意:**可以携带,也可以不携带这些属性。
**公认必遵:**所有的BGP路由器都要认识这些报文,并且在发送过程中都要携带这些属性。
**公认必遵:**所有的BGP路由器都要认识这些报文,并且在发送过程中可以携带也可以不携带这些属性。
**可选:**可以识别,也可以不进行识别。
**过渡:**如果我收到一个我不认识的数据包,虽然我不识别这个属性,但是可以帮你传递给下一个设备。
**可选过渡:**我可以识别,也可以不识别,但是我不识别的时候,也会会传递这条信息。
**可选非过渡:**我可以识别,也可以不识别,但是我不识别的时候,不会传递这条信息。

Origin(起源属性)

在这里插入图片描述
Origin属性定义路径信息的来源,标记一条路由是怎么成为BGP路由的。
可以看到在RTD上连接了200.0.0.0/24网段的信息,然后RTB和RTC分别以network和import的方式通告给了RTA。
在RTA的BGP表中可以看到,有200i和200?。首先信息是从AS200发出的,所以在Path是携带200,然后i代表是network方式进行通告的,?代表是通过import方式进行引入的。

AS-Path(AS路径)

在这里插入图片描述
当路由信息从本AS发出后,会携带本地的AS号。
Q:AS 1内的RTA能够从RTB与RTC收到100.0.0.0/24的路由,RTA如何进行自动优选?
A:假设有两条路,从RTE->RTB->RTA,RTE->RTD->RTC->RTA。
当100.0.0.0/24路由信息从RTE到达RTB时,在RTB会显示的AS-Path有AS4,再传递给RTA时,这条路由信息中的AS-Path就会加上自己的AS-Path,最终到达RTA时该路由信息的AS-Path显示有AS4,AS2.
当100.0.0.0/24路由信息从RTE到RTD时,AS-Path属性会带有AS4的信息,继续传递给RTC,在RTC中该路由信息的AS-Path属性会携带AS4,AS5,最终传递给RTA后会带有AS4,AS5,AS3三个路径记录。
最终RTA优选AS-Path短的路径,也就是RTE->RTB->RTA。
Q:RTA->RTB->RTC之间在拓扑上存在环路,RTB->RTC->RTD->RTE之间在拓扑上也存在环路,因此BGP在路由传递的过程中也可能存在路由环路,BGP如何防止环路呢?
A:很简单,因为AS-Path时公认必遵属性,所以在发送时必须携带该属性,在接收时必须识别该内容。如果收到的路由信息中,含有自身的AS号,那就直接拒收,也就防止了环路的产生。

Next_hop(下一跳属性)

在这里插入图片描述
Q:RTA将100.0.0.0/24的网段发布给RTB时,Next_hop的IP地址是多少?
A:IBGP邻居传递路由,下一跳属性是建立邻居的地址。即,如果RTA跟RTB建立邻居的地址是1.1.1.1,那么传递给RTB的100.0.0.0/24网段信息中的下一跳地址就是1.1.1.1 。
Q:RTB将100.0.0.0/24的网段发布给RTC时,Next_hop的IP地址是多少?
A:EBGP邻居传递信息,下一跳属性就是建立邻居的地址。(一般是出接口的物理接口地址)
Q:RTA从RTB学到RTC发布的200.0.0.0/24的网段时,Next_hop的IP地址是多少?
A:从EBGP邻居学习到的路由信息传递给IBGP邻居时,下一跳属性不变,即仍然是RTB的出接口地址。一般需要使用next-hop-local命令进行更改。

Local_Preference(本地优先级)

在这里插入图片描述
Local_Pref属性仅在IBGP邻居之间有效,不通告给其他AS。它表明路由器的BGP优先级,用于判断流量离开AS时的最佳路由。
本地优先级数值默认是100,越大越优先,如果此时RTA要去往RTD,它有两条路可以走,分别是RTB和RTC。现在RTC再向RTA通告路由信息的时候把本地优先级设置为了150,因为此时本地优先级比RTB默认通告的100要大,所以RTA会选择走RTC去往RTD。

Med值

在这里插入图片描述
MED(Multi-Exit-Discriminator)属性仅在相邻两个AS之间传递,收到此属性的AS不会再将其通告给任何其他第三方AS,用于判断流量进入AS时的最佳路由。
现在AS200内的设备要去访问AS300内6.6.6.6,现在有两个设备可以选择,分别是RTD和RTE。MED的默认值为0,越小越好,可以理解为开销值。现在RTD通告出去6.6.6.6时保持MED默认值0,RTE通告出去6.6.6.6修改MED值为10,因为MED值越小越好,所以AS200内的设备去访问6.6.6.6会选择RTD这台设备。

Community(团体属性)

在这里插入图片描述
①限定路由的传播范围。
②打标记,便于对符合相同条件的路由进行统一处理。

第一条是的很少,第二条用于打标记用的多,可以限制传播范围。

BGP路由聚合

BGP在AS之间传递路由信息,随着AS数量的增多,单个AS规模的扩大,BGP路由表将变得十分庞大,因此带来如下两类问题:
存储路由表将占用大量的内存资源,传输和处理路由信息需要消耗大量的带宽资源;
如果传输的路由条目出现频繁的更新和撤销,对网络的稳定性会造成影响。
类似于其他协议的聚合,通过聚合减少表中条目,提升转发速度,节省资源消耗等。

BGP路由聚合的必要性

在这里插入图片描述
如图所示,AS 100内有4个用户网段,AS 200内有4个用户网段。AS 300连接了一个Client AS,该AS内的路由器比较低端,处理能力较低,因此既希望能访问AS 100与AS 200内的网段,又不希望接收过多的明细路由,如何解决该问题?
一台超高性能的设备可以从根本上解决问题,但是本着节省为主的观念,可以使用BGP路由聚合功能。

BGP路由聚合——静态

在这里插入图片描述
AS 100内有4个用户网段,RTA通过路由聚合屏蔽明细路由,只将一条聚合后的路由10.1.8.0/22发布给AS 200内的RTB。
因为聚合之后的条目的在路由表中已经没有了,由于BGP通告路由的话,必须时本地IP路由表中存在的条目才会进行通告,所以可以写一条指向NULL0的静态路由,然后在进行宣告即可。最终在RTB的BGP表中就是聚合后的路由了。

BGP路由聚合方法——自动聚合

在这里插入图片描述
自动聚合是有限制的,必须是对引入进BGP的路由条目才能进行自动聚合,即是针对于BGP中的import route进行自动聚合。(图中的router-policy 都可以忽略不管)

BGP路由聚合方法——手动聚合

在这里插入图片描述
再手动聚合之中,跟自动聚合类似,也是需要先引入直连路由,然后针对直连路由进行手动聚合,命令不同而已。(图中的router-policy可以不管)

BGP路由带来的问题——潜在环路

在这里插入图片描述
图中AS200的路由在收到AS100和AS300发过去的路由之后,聚合成10.1.0.0/16的路由,然后发送给AS400,此时路由会失去AS-Path属性,然后AS400再把10.1.0.0/16的路由发送给AS300,这样就相当于AS300又收到了自身发送出去的路由,然后就会有潜在环路的危险。
解决方案:
问题的关键就在发送聚合路由的时候,把自身的AS-Path属性给丢失了,以至于AS-Path属性不能实现防环的机制,所以解决问题的关键就在于AS200向外进行发送的时候,添加上AS-Path属性,即AS100与AS300,然后再发送给AS400。随后当AS400再次发送给AS300的时候,AS300发现路由信息中含有自身的AS-Path,于是就不会再接收这条路由信息,也就防止了环路的产生。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

小刘不忙!

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值