BGP选路之AS-PATH

原理概述

当一台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属性也是可以被手动修改的。

实验目的

理解AS_Path属性的概念

理解通过AS_Path属性进行选路的机制掌握修改AS_Path属性的方法

实验内容

本实验模拟了一个运营商网络场景,所有路由器都运行 BGP协议,R1 的 Loopback 0 接口用来模拟某一个用户网络10.0.1.1/32,R2的Loopback 0接口用来模拟另一个用户网络10.0.2.2/32。两个用户网络需要进行互相通信,但由于AS 500 转发的流量太多,所以运营商要求10.0.1.1/32与10.0.2.2/32之间的通信只能使用经由 R3、R4 的路径;如果这条路径发生了故障,才能使用经由AS 500的路径。

复制代码
1、基本配置
R1:
sys
sysname R1
int loop 0 
ip add 10.0.1.1 32
int g0/0/1
ip add 10.0.15.1 24
int g0/0/0
ip add 10.0.13.1 24
q
bgp 100
 peer 10.0.13.3 as-number 300
 peer 10.0.15.5 as-number 500
 #
 ipv4-family unicast
  undo synchronization
  network 10.0.1.1 255.255.255.255
  peer 10.0.13.3 enable
  peer 10.0.15.5 enable


R2:
sys
sysname R2
int loop 0
ip add 10.0.2.2 32
int g0/0/1
ip add 10.0.26.2 24
int g0/0/0
ip add 10.0.24.2 24
q
bgp 200
 peer 10.0.24.4 as-number 400
 peer 10.0.26.6 as-number 500
 #
 ipv4-family unicast
  undo synchronization
  network 10.0.2.2 255.255.255.255
  peer 10.0.24.4 enable
  peer 10.0.26.6 enable


R3:
sys
sysname R3
int g0/0/0
ip add 10.0.13.3 24
int g0/0/1
ip add 10.0.34.3 24
q
bgp 300
 peer 10.0.13.1 as-number 100
 peer 10.0.34.4 as-number 400
 #
 ipv4-family unicast
  undo synchronization
  peer 10.0.13.1 enable
  peer 10.0.34.4 enable


R4:
sys
sysname R4
int g0/0/0
ip add 10.0.24.4 24
int g0/0/1
ip add 10.0.34.4 24
q
bgp 400
 peer 10.0.24.2 as-number 200
 peer 10.0.34.3 as-number 300
 #
 ipv4-family unicast
  undo synchronization
  peer 10.0.24.2 enable
  peer 10.0.34.3 enable


R5:
sys
sysname R5
int g0/0/1
ip add 10.0.15.5 24
int g0/0/0
ip add 10.0.56.5 24
q
bgp 500
 peer 10.0.15.1 as-number 100
 peer 10.0.56.6 as-number 500
 #
 ipv4-family unicast
  undo synchronization
  peer 10.0.15.1 enable
  peer 10.0.56.6 enable
  peer 10.0.56.6 next-hop-local


R6:
sys
sysname R6
int g0/0/0
ip add 10.0.56.6 24
int g0/0/1
ip add 10.0.26.6 24
q
bgp 500
 peer 10.0.26.2 as-number 200
 peer 10.0.56.5 as-number 500
 #
 ipv4-family unicast
  undo synchronization
  peer 10.0.26.2 enable
  peer 10.0.56.5 enable
  peer 10.0.56.5 next-hop-local

可以看到,R1的 BGP路由表中存在两条去往10.0.2.2/32的路由,下一跳分别为R5(10.0.15.5)和R3(10.0.13.3),但是优选的是下一跳为R5的路由。这两条路由的 PrefVal值均为0,LocPrf属性均为空,均不是本地生成的路由,但它们的 AS_Path属性不同。观察发现,下一跳为R5的路由的AS_Path属性为500 200,所以长度为2,而下一跳为R3的路由的AS_Path属性为300 400 200,所以长度为3,于是,R1最终选择了下一跳为R5的路由,因为它的AS_Path长度较小。

现在,假定R5和R6的流量负担太重,希望用户网络10.0.1.1/32与10.0.2.2/32之间的通信优先选用经由R3和R4的路径。

为了实现这个需求,最直接的做法是在Rl上拒绝接收来自AS 500的关于10.0.2.2/32的路由信息,以及在R2上拒绝接收来自AS 500的关于10.0.1.1/32的路由信息。但是,如此一来,R1和R2的BGP路由表中将不再有经由AS 500去往对方的路由信息,当经由R3和R4之间的链路发生故障时,两个用户网络的通信就会中断。为此,可以采用修改AS_Path的方法来更好地实现上述需求。

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

复制代码
bgp 100
 peer 10.0.15.5 route-policy as import
#
route-policy as permit node 10
 if-match ip-prefix as
 apply as-path 500 500 additive
#
route-policy as permit node 20
#
ip ip-prefix as index 10 permit 10.0.2.2 32

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

可以看到,从10.0.2.2/32去往10.0.1.1/32的报文依旧选用的是经由AS 500的路径。为了实现从10.0.2.2/32去往10.0.1.1/32的报文同样选用经由R4、R3的路径,可以在R2上修改来自AS 500的关于10.0.1.1/32的路由信息的AS_Path 属性。

复制代码
bgp 200
 peer 10.0.26.6 route-policy as import
#
route-policy as permit node 10
 if-match ip-prefix as
 apply as-path 300 500 500 100 overwrite 
#
route-policy as permit node 20
#
ip ip-prefix as index 10 permit 10.0.1.1 32

可以看到,现在R2去往10.0.1.1/32网络时,选用的是下一跳为10.0.24.4,即经由R4和R3的路径。经由R6的路由的AS_Path属性已被修改为300 500 500 100,长度为4。注意,选用overwrite关键字,路由策略会使用配置的AS编号序列替换原有的AS_Path属性。

相关推荐
搬码临时工9 小时前
如何通过外网访问内网?哪个方案比较好用?跨网远程连接网络知识早知道
网络·智能路由器
hgdlip2 天前
重启路由器ip不变怎么回事?原因分析与解决方法
网络协议·tcp/ip·智能路由器
孤寂大仙v2 天前
【计算机网络】NAT、代理服务器、内网穿透、内网打洞、局域网中交换机
网络·计算机网络·智能路由器
一只小松许️3 天前
UDP包大小与丢包率的关系:原理分析与优化实践
网络协议·udp·智能路由器
领世达检测V133529092493 天前
「EN 18031」访问控制机制(ACM - 1):智能路由器的安全守卫
网络·智能路由器
SZ1701102313 天前
默认网关 -- 负责转发数据包到其他网络的设备(通常是路由器)
网络·智能路由器
搬码临时工3 天前
什么是内网映射?如何将内网ip映射到外网访问?
运维·服务器·网络·网络协议·tcp/ip·智能路由器
搬码临时工4 天前
如何将内网的IP地址映射到外网?详细方法与步骤解析
服务器·网络·tcp/ip·智能路由器·电脑·远程工作
思科小白白4 天前
网络地址转换
网络·智能路由器
TeleostNaCl5 天前
OpenWrt 搭建 samba 服务器的方法并解决 Windows 不允许访问匿名服务器的方法
运维·服务器·windows·经验分享·智能路由器