BGP路径选择-AS_Path(学习笔记+实验验证)

本文详细介绍了BGP协议中的AS_Path属性如何影响路径选择,包括原理概述、实验练习和通过修改AS_Path属性控制BGP选路的方法。通过具体实验,展示了AS_Path属性在BGP选路中的作用及如何通过策略修改AS_Path来实现路径控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一,原理概述

  • 当一台BGP路由器存在多条去往同一目标网络的BGP路由时,BGP协议会比较这些BGP路由的属性,来确定去往目标网络的最优BGP路由。先比较Preferred Value(路由信息首选值),然后Local Preference(本地优先级),再是路由生成方式,若比较这几个还是无法确定最有路由,则使用AS_Path属性比较。
  • AS_Path属性顺序的记录了某条BGP路由所经过的AS信息。
  • BGP路由器在向EBGP对等体通告路由时,会在该路由的AS_Path属性的最左端添加本地自制系统的AS编号。BGP在比较了AS_Path属性后,会优选AS_Path长度最短的那条路由。如果AS_Path的长度相等,则BGP会对下一属性Origin进行比较。
  • AS_Path还可以用来防止AS之间的路由环路。当路由器从EBGP邻居收到BGP路由时,如果该路由的AS_Path中包含了自己的AS编号,则该路由将会被直接丢弃。
  • 类似于其他BGP路由属性,AS_Path属性也是可以被手动修改的。

实验注意事项:

  1. BGP邻居关系状态为Established表示已建立
  2. AS_PATH是指BGP路由在传输的路径中所经历的AS的列表,是BGP中一个非常重要的公认必遵属性
  3. BGP不会接受AS_PATH属性中包含本AS Number的路由,从而避免了产生环路
  4. AS_PATH越短的路径越优先

二,实验练习(对着书做的)

(一)实验目的

  • 理解AS_Path 的概念
  • 通过AS_Path的选路机制
  • 修改AS_Path属性的方法

(二)实验内容

在这里插入图片描述

(三)实验拓扑

在这里插入图片描述

步骤

1,基本配置
2,配置BGP路由信息
[R1]bgp 100
[R1-bgp]peer 10.0.13.3 as-number 300
[R1-bgp]peer 10.0.15.5 as-number 500
[R1-bgp]network 10.0.1.1 32
[r2]bgp 200
[r2-bgp]peer 10.0.26.6 as-number 500
[r2-bgp]peer 10.0.24.4 as-number 400
[r2-bgp]network 10.0.2.2 32
[R3]bgp 300
[R3-bgp]peer 10.0.34.4 as-number 400
[R3-bgp]peer 10.0.13.1 as-number 100
[R4]bgp 400
[R4-bgp]peer 10.0.34.3 as-number 300
[R4-bgp]peer 10.0.24.2 as-number 200
[R5]bgp 500
[R5-bgp]peer 10.0.15.1 as-number 100
[R5-bgp]peer 10.0.56.6 as-number 500
[R5-bgp]peer 10.0.56.6 next-hop-local
[R6]bgp 500
[R6-bgp]peer 10.0.26.2 as-number 200
[R6-bgp]peer 10.0.56.5 as-number 500
[R6-bgp]peer 10.0.56.5 next-hop-local

配置后,查看R1,R2,R3,R4,R5,R6的BGP邻居关系
在这里插入图片描述
可以看到:

  • R1与R3和R5建立了EBGP(不同AS间邻居为EBGP)邻居关系。
3,观察AS_Path属性对BGP选路的影响

在R1上 查看BGP路由表,观察10.0.1.1/32访问10.0.2.2/32的选路情况。
在这里插入图片描述
可以看到:

  • R1去往R2的路径(10.0.15.5和10.0.13.3)优选下一跳为10.0.15.5(R5)的路由。
  • 两条路由的PrefVal为0,LocPrf为空,均不是本地生成的路由,但他们的AS_Path属性不同。
  • 下一跳为R5的AS_Path属性为500 200,所以长度为2;下一跳为R3的AS_Path属性为300 400 200,所以长度为3;于是选择了AS_Path长度小的(下一跳为R5的路由)。
    在R1上使用Tracert命令验证10.0.1.1/32到10.0.2.2/32的路径
    在这里插入图片描述

可以看到:

  • 10.0.1.1/32到10.0.2.2/32的路径确实是通过R5和R6的。

在R2上查看BGP路由表
在这里插入图片描述
与来时一样,优选路径(10.0.26.6和10.0.24.4)AS_Path小的R6的路径
使用tracert命令验证10.0.2.2/32到10.0.1.1/32的路径
在这里插入图片描述
与来时一样反着经过R6和R5

4,修改AS_Path属性控制BGP选路

现在假定R5和R6负载太重,希望用户网络10.0.1.1/32到10.0.2.2/32之间优先使用经过R3和R4的路径。
为了实现需求,直接的做法是在R1上拒绝接收来自 AS500 的关于10.0.2.2/32的路由信息,以及在R2上拒收来自 AS500 的关于10.0.1.1/32的路由信息。
但是这样R1和R2的BGP路由表中将不再有经由 AS500 去往对方的路由信息,当R3和R4的链路发生故障时,两个用户网络的通信就会中断。

  • 为此,可以采用修改AS_Path的方法来更好的实现需求。

使用Route-Policy对R1接收的来自 AS500 的关于10.0.2.2/32的路由信息中的AS_Path属性进行修改。

[R1]ip ip-prefix as_path permit 10.0.2.2 32
[R1]route-policy as_path permit node 10
[R1-route-policy]if-match ip-prefix as_path
[R1-route-policy]apply as-path 500 500 additive 
[R1-route-policy]route-policy as_path permit node 20
[R1-route-policy]bgp 100
[R1-bgp]peer 10.0.15.5 route-policy as_path import

配置完成后,在R1上查看BGP路由表
在这里插入图片描述
可以看到:

-现在R1优选了下一跳为10.0.13.3,即通过R3的路径,原因是现在经由R5的 路由的AS_Path属性变为500 500 500 200,长度为4。

在R1 上使用tracert命令验证从10.0.1.1/32到10.0.2.2/32的路径
在这里插入图片描述
可以看到:

  • 从10.0.1.1/32去往10.0.2.2/32的报文选用了经由R3,R4的路径。

在R2上使用tracert命令验证从10.0.1.1/32去往10.0.2.2/32的报文所经过的路径。
在这里插入图片描述
可以看到:

  • 10.0.2.2/32到10.0.1.1/32的路径依旧使经由AS500 的路径。

在R2上修改 AS500 的关于10.0.1.1/32的路由信息的AS_path属性。

[r2]ip ip-prefix as_path permit 10.0.1.1 32
[r2]route-policy as_path permit node 10
[r2-route-policy]if-match ip-prefix as_path
[r2-route-policy]apply as-path 300 500 500 100 overwrite 
Warning: The AS-Path lists of routes to which this route-policy is applied will 
be overwritten. Continue? [Y/N]y

在这里插入图片描述
创建路由策略的后续索引节点允许未被匹配的路由能够正常被接收。

[r2]route-policy as_path permit node 20

在R2的BGP视图下调用路由策略

[r2-bgp]peer 10.0.26.6 route-policy as_path import 

配置后,在R2上观察BGP路由表
在这里插入图片描述
可以看到:

  • 在R2去往10.0.1.1/32网络时,选用的是下一跳为10.0.4.4,经由R3,R4。经由R6的路由的AS_path属性已被修改为300 500 500 100,长度为4.

注意:选用 overwrite 关键字,路由策略会使用配置的AS编号序列替换原有的AS_path属性。
在R1上使用 Tracert 命令验证从10.0.1.1/32去往 10.0.2.2/32的报文所经过的路径。
在这里插入图片描述
可以看到:

  • 从10.0.1.1到10.0.2.2的路径为R3和R4的路径。

在R2上使用tracert命令验证从10.0.2.2/32到10.0.1.1/32的路径
在这里插入图片描述
可以看到:

  • 从R2到R1的路径经由了R4和R3。

至此,在10.0.1.1/32到10.0.2.2/32之间进行通信时,往返路径均经过了R3和R4,实现了所需的路径控制,同时也实现了路径的冗余备份。

评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值