Skip to content
字数
1654 字
阅读时间
7 分钟

BGP路由优选

BGP路由优选规则

1.优选Preferred-Value属性值最大的路由

修改Preferred-Value属性值的配置

[AR1]bgp 200
[AR1-bgp]peer 10.0.3.3 preferred-value 100

2.优选Local_Preference属性值最大的路由

NOTE

只在AS内部有效,应用于iBGP的邻居关系之间

修改Local_Preferenced的配置

ip ip-prefix local-pref index 10 permit 10.0.45.0 24
route-policy local-pref permit node 10
	if-match ip-prefix local-pref
	apply local-preference 200
	quit
route-policy local-pref permit node 20
	quit
quit
bgp 200
	peer 10.0.1.1 route-policy local-pref export

3.本地始发的路由优先级

本地始发的BGP路由优选与从其他对等体学习到的路由,本地始发的路由优先级:优选手动聚合>自动聚合>network>import>从对等体学到的

4.优选AS-Path属性值最短的路由

5.优选Origin属性最优的路由

Origin属性值按优先级从高到低的排列是:IGP、EGP及Incomplete

6.优选MED属性值最小的路由

修改MED值的配置

ip ip-prefix med index 10 permit 10.0.45.0 24
route-policy med permit node 10
	if-match ip-prefix med
	apply cost 20
	quit
route-policy mde premit node 20
	quit
bgp 200
	peer 10.0.1.1 route-policy med export
	compare-different-as-med

7.优选从EBGP对等体学来的路由

EBGP的路由优先级高于IBGP路由

8.优选到Next-Hop的IGP度量值最小的路由

以上八条均满足,则在全局路由表中会形成等价路由,需要通过命令设置等价路由数量,但等价路由在BGP路由表中仍然会继续优选

9.优选Cluster_List最短的路由

10.优选Route-ID值最小的设备通告的路由

11.优选具有最小IP地址的对等体宣告的路由

实验实现的方式

1.匹配流量。ACL或前缀列表(通常需要匹配子网掩码的场景中使用)

2.配置路由策略

3.应用于对等体

BGP的反射

场景来源于BGP的通告规则三:来源于iBGP的路由不能再发送给iBGP的邻居。但是又需要让AS内部全覆盖BGP的路由,则可以通过iBGP邻居的全互联和BGP反射两种方式解决

传递:通过邻居关系完成,传递过程中有可能改变BGP的某些属性

反射:通过反射器完成,反射过程不会改变BGP的任何属性

反射器(RR)

客户端(C):反射获取的路由

非客户端(NoneC):传递获取的路由

反射规则

(1)反射器的路由来源于EBGP邻居,则会反射给所有的客户端,并且传递给所有的非客户(非客户和反射器有iBGP邻居关系)

(2)反射器的路由来源于iBGP邻居(非客户端),则会反射给所有的客户端,非客户端不反射

(3)反射器的路由来源于iBGP邻居(客户端),则会反射给所有的客户端和非客户端

(4)反射器的路由来源于EBGP,传递给下一跳的iBGP邻居,无论是非客户端还是客户端,只反射给客户端

Originator_ID 和 Cluster_List 在BGP中的作用

在BGP(边界网关协议)的反射场景中,为了避免路由环路和增强网络的稳定性,使用了Originator_ID和Cluster_List这两个字段,它们在反射器和多簇环境中具有非常重要的作用。

Originator_ID:单簇防环

Originator_ID 是用来防止路由环路的一种机制,通常用于BGP Route Reflector(RR,路由反射器)环境下。其主要作用是防止路由在单一簇内形成环路。

Originator_ID是一个路由器的Route ID(通常是该路由器的BGP标识符),这个ID会在BGP路由被反射时进行记录。

在BGP的路由反射场景中,当一个路由器向其BGP邻居反射路由时,路由会带上Originator_ID。每经过一次路由器,都会在路由上附加一个Originator_ID,以便追踪路由的来源。

防止环路:

当路由被反射到另一个路由器时,接收路由的路由器会查看这个路由的Originator_ID,并将其与自身的Route_ID进行比较。

如果发现Originator_ID和接收路由器的Route_ID相同,说明该路由已经经过该路由器,路由就会被拒绝,避免形成环路。

如果Originator_ID与接收路由器的Route_ID不一致,接收路由器会接受该路由,继续进行路由反射。

这种机制确保了在BGP路由反射环境中,同一个簇内的路由器不会通过反射机制相互转发路由,从而避免环路问题。

Originator_ID 示例

假设有如下网络拓扑,其中Router A是BGP路由反射器,Router B和Router C是其客户端。

Router B向Router A发送一个BGP路由,路由中带有Router B的Originator_ID(即Router B的Route-ID)。

Router A再将该路由反射到Router C。

当Router C收到该路由时,它会检查该路由的Originator_ID,如果Originator_ID是Router B的Route-ID(而Router C是Router B的邻居),Router C会拒绝该路由,因为它知道该路由已经来自Router B,避免路由环路。

Cluster_List:多簇防环

Cluster_List是用于BGP路由反射中的多簇防环机制,它与AS_Path类似,记录了路由经过的簇(Cluster)信息。该字段有助于防止路由在多个BGP反射器之间形成环路。

Cluster_List 是一个包含多个Cluster_ID的列表,每个Cluster_ID代表一个BGP反射器簇的ID。每经过一个BGP反射器簇,该簇的ID就会被添加到Cluster_List中。

每个BGP路由反射器都有一个唯一的Cluster_ID。当路由被反射时,路由反射器会把自己的Cluster_ID添加到路由的Cluster_List中。

当路由再次被反射时,接收该路由的路由器会检查路由的Cluster_List,如果发现自己的Cluster_ID已经在Cluster_List中,就会拒绝接受该路由,从而避免环路的发生。

如果Cluster_List中没有当前路由器的Cluster_ID,接收路由的路由器会继续转发该路由。 通过这种方式,BGP反射器能够避免跨簇的路由环路问题。

贡献者

The avatar of contributor named as lishu620 lishu620

文件历史

撰写