BGP的各种属性验证分析

BGP的属性

BGP属性分类(四类):

公认必遵(Well-known mandatory)公认强制

所有BGP路由器都可以识别,且必须存在于Update消息中。如果缺少这种属性,路由信息就会出错。

origin
as_path
next hop

公认任意(Well-known discretionary)公认非强制

所有BGP路由器都可以识别,但不要求必须存在于Update消息中,可以根据具体情况来决定是否添加到Update消息中。

Local-Preference
Atomic-Aggregate(as-set)原子聚合//标识汇总路由
MP Reach NLRI

可选过渡(Optional transitive)

BGP的路由器可以选择是否在Update消息中携带这种路由属性。接收的路由器如果不识别这种属性,可以转发个邻居路由器,邻居路由器可能会识别并使用到这种属性。

Aggreagator//聚合者,标识聚合路由的来源AS和聚合者。通告汇总设备的Router-ID。
Community
Extended-Communities

可选非过渡(Optional non-transitive)

BGP路由器可以选择是否在Update消息中携带这种属性。在整个路由发布的路径上,如果部分路由器不能识别该属性,可能会导致该属性无法发挥效用。因此接收的路由器如果不识别这种属性,将丢弃这种属性,不必在转发给邻居路由器。

MED(cost)
Originator-ID//标识路由的来源设备
Cluster-List//防止路由的反射回路

BGP选路规则

当到达同一目的地存在多条路由时,BGP依照如下策略顺序进行路由选择:

  1. 如果此路由的下一跳不可达,忽略此路由。
  2. 优选协议首选值(PrefVal)最高的路由。
  3. 优选本地优先级(Local_Pref)最高的路由。
  4. 优选本地生成的路由。
  5. 优选AS路径最短的路由。
  6. 比较Origin属性,依稀选Origin类型为IGP、EGP、Incomplete的路由。
  7. 优选MED值最小的路由。
  8. 优选从EBGP邻居学来的路由(EBGP路由优先级高于IBGP路由)
  9. 优选到下一跳IGP Metric较小的路由。
  10. 优选Cluster_List最短的路由。
  11. 优选Router ID最小的路由器发布的路由。
  12. 比较对等体的IP address,优选从具有较小IP地址的对等体学来的路由。

1.Origin 起源属性,表示BGP路由来源。

  • i 表示在bgp宣告的路由,network(可以把路由表任何路由宣告进bgp)
  • ?表示从外部重发布进来的路由,import可以把路由表路由重发布进bgp
  • E 表示从EGP重发布进来,但是EGP淘汰了

在这里插入图片描述
起源还有选路的功效,i>e>?

2.as-path 路径属性,该属性表示路由经过的AS路径

有三种用途:

  • 查看路由经过的AS路径的顺序(左边为最近经过的AS号)
  • 防环,bgp不接收携带有自己AS号的路由用来防止AS之间路由环路
  • 选路,bgp会选择AS-path短的路由为最优路由
    as-overridee命令可以把路由中对方邻居的AS号改为自己的AS号,从而让对方接受含有对方AS号
    的路由
    allowas-in 命令可以把对方路由中含有自己AS号的路由过滤掉,从而接受对方含有自己AS号的
    路由
    fake-as 命令可以修改自己通告出去的AS号

有一个用法:去往目的地两条路径

3. next-hop 下一跳属性,该属性表示路由的下一跳

  • ebgp邻居在传递路由时会修改该属性为自己的更新源地址

  • ibgp邻居在传递路由时不会修改该属性,但是可以使用next-hop-local来修改该属性为自己的
    更新源地址

  • 本地路由下一跳是127.0.0.1

4. local-preference 本地优先级,这个属性用于选路,优选本地优先级大的路由

用法:用于本地AS去往其他AS的出口路由器的选择,特别强调该属性是本AS的路由器去影响本AS内的IBGP路由器,该属性侧重影响内部AS的选路

案列:
在这里插入图片描述
正常建立bgp邻居之后,宣告完路由,查看R2和R3的bgp路由表

在这里插入图片描述
在这里插入图片描述
现在写策略,在R3的入接口抓取R4的路由,修改local-preference为200(缺省为100,大的优),使得AS100内部去往4.4.4.4/24都走R3

#
ip ip-prefix 10 index 10 permit 4.4.4.0 24
#
#
route-policy Local_pre permit node 10
 if-match ip-prefix 10
 apply local-preference 200
#
route-policy Local_pre permit node 20
#
bgp100
  peer 34.1.1.2 route-policy Local_pre import

修改之后,查看R2和R3的bgp路由表
在这里插入图片描述
在这里插入图片描述
可以发现,去4.4.4.4/24的Local preference值已经变为200,选路也走R3

在R2上测试一下:
在这里插入图片描述
注意该属性在EBGP之间不能传递所以不能在RTD上使用上述route-policy调用在EBGP邻居的export方向。 但是在RTC上可以用于IBGP的export方向。

联盟之间可以用该属性

5. MED 用于选路的属性,但是和local-preference不一样的是该属性更像是开销值,用于影响对方

AS到本地AS的选路。该属性适合对EBGP邻居施加选路影响(local-preference做不到)。

在这里插入图片描述

修改前:
在这里插入图片描述
R2上配置:

#
ip ip-prefix 10 index 10 permit 1.1.1.0 24
#
route-policy MED permit node 10
 if-match ip-prefix 10
 apply cost 10
#
route-policy MED permit node 20
#
bgp100
 peer 24.1.1.2 route-policy MED export
#

修改后:可以看到med生效
在这里插入图片描述

*注意,该属性默认只能用于俩个AS之间的选路,也就是说如下图默认MED不适用
AS2和AS3之间MED不会影响到
如果要让上述MED生效需要如下命令:

[R4-bgp] compare-different-as-med

在这里插入图片描述
如果不敲以上命令,那么用AS-PATH属性完成选路。
在这里插入图片描述

ip ip-prefix 10 index 10 permit 10.1.1.0 24 
ip ip-prefix 20 index 10 permit 20.1.1.0 24 
route-policy local-p permit node 10 
	if-match ip-prefix 10 
apply local-preference 90 
#
route-policy local-p permit node 20 
#
route-policy as-path permit node 10
	if-match ip-prefix 20 apply as-path 400 additive 
#
route-policy as-path permit node 20 
bgp 400 
peer 10.1.35.2 route-policy local-p import 
peer 10.1.35.2 route-policy as-path export

6、BGP 团体属性–Community

BGP的Community属性的两个作用:

  • 限定路由的传播范围
  • 打标记,便于对符合相同条件的路由进行统一处理

Community属性分为两类∶一类是公认团体属性,另一类是扩展的团体属性。

公认团体属性分为4类∶

  • Internet∶缺省属性,所有路由都属于Internet,此属性的路由可以通告给所有BGP 邻居;
  • No.Export∶收到此属性的路由后,不将该路由发布到其他AS。如下图,RTB上希望 10.1.11.0/24的路由发布给AS12之后,不再发布给其他AS,则可将10.111.0/24的 Community属性设置为No_Export;
  • No_Advertise∶收到此属性的路由后,不将该路由通告给任何其他的BGP邻居。如图,RTB上希望只将10.1.11.0/24的路由发布给RTC,并且不再通告给任何其他的BGP邻居,则可将10.1.11.0/24的Community属性设置为No_Advertise;。
  • No_Export_Subconfed∶在联盟中使用,这里不做介绍。

扩展的团体属性用一组4字节为单位的列表来表示,路由器中扩展的团体属性格式为aa:nn或团体号;

aa∶nn中,a通常为AS编号,nn是管理员定义的团体属性标识;

团体号范围为0-4294967295,在RFC1997中,0-65535与4294901760-4294967295为
预留值,

在这里插入图片描述
如图所示,AS10内有10.1.10.0/24的用户网段,AS 11内有101.11.0/24的用户网段。为了区分用户网段,AS 10内的10.1.10.0/24设置了10∶12的Community,AS 11的 10.1.11.0/24设置了11∶12的Community,通过BGP发送给AS 12后,AS 12希望汇总后屏蔽掉明细路由再发送给AS 13,并且希望AS13收到路由后不再传递给其他AS,如何实现?

解决方法∶

在RTC上设置Community-filter,匹配Community为10∶12和11∶12的路由,再设置 route-policy匹配Community-filter,将两条路由聚合成10.1.10.0/23的路由并调用 route-policy。

在RTC上设置route-policy,设置团体属性为no-export,在RTC通告给RTD的 export方向调用该route-policy。

配置如下:

RTA

#
sysname RTA
#
interface Ethernet0/0/0
 ip address 12.1.1.1 255.255.255.0
#
interface LoopBack0
 ip address 10.1.10.1 255.255.255.0
#
bgp 10
 router-id 1.1.1.1
 peer 12.1.1.2 as-number 12
 #
 ipv4-family unicast
  undo synchronization
  network 10.1.10.0 255.255.255.0 route-policy community
  peer 12.1.1.2 enable
  peer 12.1.1.2 advertise-community
#
route-policy community permit node 10
 apply community 10:12
#
route-policy community permit node 20
#

RTB

#
sysname RTB
#
interface Ethernet0/0/0
 ip address 23.1.1.1 255.255.255.0
#
interface LoopBack0
 ip address 10.1.11.1 255.255.255.0
#
bgp 11
 router-id 2.2.2.2
 peer 23.1.1.2 as-number 12
 #
 ipv4-family unicast
  undo synchronization
  network 10.1.11.0 255.255.255.0 route-policy community
  peer 23.1.1.2 enable
  peer 23.1.1.2 advertise-community
#
route-policy community permit node 10
 apply community 11:12
#
route-policy community permit node 20
#

RTC

#
sysname RTC
#
interface Ethernet0/0/0
 ip address 12.1.1.2 255.255.255.0
#
interface Ethernet0/0/1
 ip address 23.1.1.2 255.255.255.0
#
interface GigabitEthernet0/0/0
 ip address 34.1.1.1 255.255.255.0
#
bgp 12
 router-id 3.3.3.3
 peer 12.1.1.1 as-number 10
 peer 23.1.1.1 as-number 11
 peer 34.1.1.2 as-number 13
 #
 ipv4-family unicast
  undo synchronization
  aggregate 10.1.10.0 255.255.254.0 detail-suppressed suppress-policy agg
  peer 12.1.1.1 enable
  peer 23.1.1.1 enable
  peer 34.1.1.2 enable
  peer 34.1.1.2 route-policy no-export export
  peer 34.1.1.2 advertise-community
#
route-policy no-export permit node 10
 apply community no-export
#
route-policy no-export permit node 20
#
route-policy agg permit node 10
 if-match community-filter 100
#
route-policy agg permit node 20
#
ip community-filter 100 permit 1.:12
#

RTD

#
bgp 13
 router-id 4.4.4.4
 peer 34.1.1.1 as-number 12
 peer 45.1.1.2 as-number 14
 #
 ipv4-family unicast
  undo synchronization
  peer 34.1.1.1 enable
  peer 45.1.1.2 enable
#

R5

#
bgp 14
 router-id 5.5.5.5
 peer 45.1.1.1 as-number 13
 #
 ipv4-family unicast
  undo synchronization
  peer 45.1.1.1 enable
#

看下各个路由器的BGP路由表
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

R5是用来验证一下RTC传到RTD上的社团属性是否生效,R5bgp路由表为空,说明社团属性在RTD上生效

7、Preference_Value对选路的影响(自己有多个接口,可以选择走其中的一个)

Preference_Value是BGP的私有属性(华为私有属性),Preference_Value相当于BGP选路规则中Weight值,仅在本地路由器生效。Preference_Value值越大,越优先。

在这里插入图片描述
如图所示,AS 200内有一个200.0.0.0/24的用户网段,AS 100内的管理员希望通过高带宽链路访问AS 200内的200.0.0.0/24网段,并希望在RTA上的策略只能影响自己的选路,不能影响其他设备,如何实现 ?

解决办法∶

在RTA上设置ip-prefix匹配200.0.0.0/24的路由,再设置route-policy调用该ip- prefix,并设置Preference_Value为100,将策略应用在对RTC发布路由的 import方向。

8、聚合方式对选路的影响

手动聚合>自动聚合

在使用路由聚合时需要注意,自动聚合只能对引入的BGP路由进行聚合,手动聚合可以对存在于BGP路由表中的路由进行聚合。

如果BGP路由表中既有引入的路由又有network宣告的路由时,只能采用手动聚合。

9、EBGP邻居的路由优于IBGP邻居的路由

在这里插入图片描述
根据选路原则,RTA会优选从EBGP邻居学习来的路由。

10、AS内部IGP Metric对BGP选路的影响

在这里插入图片描述
如图所示,AS 200内有一个200.0.0.0/24的用户网段,通过EBGP发布给RTB与RTC, RTB与RTC通过IBGP将路由发布给RTA。AS 100内的管理员希望通过高带宽链路访问AS 200内的200.0.0.0/24网段,RTA上该如何实现?

将RTA与RTB所连接口的OSPF Cost值调为100,RTA则将选择RTA->RTC->RTD的
路径访问200.0.0.0/24网段∶原因是RTA访问200.0.0.0/24时,到Next_hop 10.1.34.4的Cost(2)小于到 Next_hop 10.1.24.4 (101)的Cost。

11、Router-ID与IP地址对BGP选路的影响

在这里插入图片描述
如图所示,AS 200内有一个200.0.0.0/24的用户网段,通过EBGP发布给RTB和RTC,RTB和RTC通过IBGP将路由发布给RTA。RTA和RTB之间通过2条链路相连,RTA会如何优选?

RTA会选择下一跳为10.1.12.2作为下一跳访问200.0.0.0/24的网段∶
RTA选择RTA->RTB->RTD的路径访问200.0.0.0/24网段,原因是RTB的Router-ID比RTC小,BGP优选Router-ID较小的路由器发布的路由 ;

RTA选择下一跳为10.1.12.2地址所在的接口为出接口,原因是BGP优选IP地址较小的邻居学来的路由。

12、Originator_ID属性、Cluster_List属性(用于路由反射器的防环)

Originator_ID属性

  • 该属性为可选非过渡;·
  • 用于集群内的防环;
  • 由路由反射器(RR)产生,携带了本地AS内该路由发送者的RouterID。

Cluster_List属性

  • 该属性为可选非过渡;
  • 用于集群间的防环;
  • 由每个路由反射器(RR)产生,记录反射路由经过的集群。

Originator ID由RR产生,使用的Router ID的值标识路由的发送者,用于防止集群内产生路由环路。

  • 当一条路由第一次被RR反射的时候,RR将Originator ID属性加入这条路由,标识这条路由的发起设备。如果一条路由中已经存在了Originator_ID属性,则RR将不会创建新的Originator_ID属性。
  • 当设备接收到这条路由的时候,将比较收到的Originator ID和本地的RouterID,如果两个 ID相同 ,则不接收此路由。

路由反射器和它的客户机组成一个集群(Cluster)。在一个AS内,每个路由反射器使用唯一的 Cluster ID作为集群标识。

  • 为了防止集群间产生路由环路,路由反射器使用Cluster_List属性,记录路由经过的所有集 群的Cluster ID。
  • 当RR在它的客户机之间或客户机与非客户机之间反射路由时,RR会把本地ClusterID添加到Cluster_List的前面。如果Cluster_List为空,RR就创建一个。
  • 当RR接收到一条更新路由时,RR会检查Cluster_List。如果Cluster_List中已经有本地Cluster_ID,丢弃该路由;如果没有本地Cluster_ID,将其加入ClusterList,然后反射该更新路由。

13、BGP路由聚合

BGP路由聚合概述

BGP在AS之间传递路由信息,随着AS数量的增多,单个AS规模的扩大,BGP路由表将变得十分庞大,因此带来如下两类问题 ∶

  1. 存储路由表将占用大量的内存资源,传输和处理路由信息需要消耗大量的带宽资源;。
  2. 如果传输的路由条目出现频繁的更新和撤销,对网络的稳定性会造成影响。

BGP路由聚合的必要性

在这里插入图片描述
如图所示,AS 100内有4个用户网段,AS 200内有4个用户网段。AS 300连接了一个Client AS,该AS内的路由器比较低端,处理能力较低,因此既希望能访问AS 100与AS 200内的网段,又不希望接收过多的明细路由,因此,通过路由聚合来节省内存和带宽资源,减少路由震荡带来的影响。

BGP路由聚合方法

静态

在这里插入图片描述
BGP路由聚合方法–自动聚合

在这里插入图片描述

自动聚合只对引入BGP的路由进行聚合,聚合到自然网段后发送给邻居。

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

在这里插入图片描述

手动聚合对BGP本地路由表里存在的路由进行聚合,并且能指定聚合路由的掩码。

BGP路由聚合带来的问题–潜在环路(聚合路由会丢掉原明细路由的AS_Path属性)

问题:
在这里插入图片描述
解决:
在这里插入图片描述
为了解决BGP路由聚合带来的问题,设置了两个AS_Path属性∶

  • Atomic-Aggregate∶公认任意属性,用于警告下游路由器出现了信息丢失,如图所 示,AS 200内设置了路由聚合的路由器在聚合后发生了路径丢失的现象,此时该路由器通过Update报文携带该属性通知自己的邻居发生了路径丢失。
  • Aggregator∶可选过度属性,该属性包含发起聚合的路由器的AS号和Router-ID,表明发生聚合的位置。

AS_Path属性有两种类型∶

  • AS_Sequence∶ 表示AS_Path内的AS号是一个有序的列表。
  • AS_Set ∶表示AS_Path内的AS号是一个无序的列表。

AS_Path本身是一个有序的列表,因为AS_Path每经过一个AS都会将AS号添加到AS_Path中,并且按经过的顺序从左到右排列。

  • 如图所示,AS 400向AS 300通告聚合路由时,AS_Path属性(大括号的除外)表示 该聚合路由依次经过了AS 200和AS 400。

当发生聚合后,如果需要聚合路由携带所有明细路由经过的AS号来防止环路,则在配置聚合的命令后添加as-set参数。

  • 如图所示,AS 200内发生了聚合并配置了as-set参数,则聚合路由会将明细路由的
    AS_Path信息用一个AS-Set集表示(放在中括号里的AS号信息,该集合的AS号没有先后顺序),携带在聚合路由后用以防止环路。

路由聚合解决了两类问题,一是减轻了设备传输和计算路由所需资源的负担,二是隐藏了具体的路由信息,减少了路由震荡的影响。但是路由聚合后,AS_Path属性丢失,存在产生环路的风险。

如果路由聚合后携带所有明细路由经过的AS信息,当明细路由发生频繁震荡时,聚合路由也可能受其影响频繁刷新。

因此,聚合路由是否携带丢失的AS_Path信息,需要设计者综合考虑网络环境。

  • 9
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值