学习新思想,争做新青年,今天学习的是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
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
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
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
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
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
2.配置 BGP 路由协议
基本配置完成后,进行 BGP 协议的配置。
R1
bgp 100
peer 10.0.13.3 as-number 300
peer 10.0.15.5 as-number 500
network 10.0.1.1 255.255.255.255
R2
bgp 200
peer 10.0.24.4 as-number 400
peer 10.0.26.6 as-number 500
network 10.0.2.2 255.255.255.255
R3
bgp 300
peer 10.0.13.1 as-number 100
peer 10.0.34.4 as-number 400
R4
bgp 400
peer 10.0.24.2 as-number 200
peer 10.0.34.3 as-number 300
R5
bgp 500
peer 10.0.15.1 as-number 100
peer 10.0.56.6 as-number 500
peer 10.0.56.6 next-hop-local
R6
bgp 500
peer 10.0.26.2 as-number 200
peer 10.0.56.5 as-number 500
peer 10.0.56.5 next-hop-local
3.观察AS_Path属性对BGP选路的影响
在 R1 上查看 BGP 路由表,观察 10.0.1.1/32 访问 10.0.2.2/32 的选路情况。
在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路由表。
在 R2 上使用 tracert 命令验证从 10.0.2.2/32 去往 10.0.1.1/32 的报文所经过的路径。
可以看到 ,10.0.2.2/32 访问 10.0.1.1/32 时 选用了 经过 R6、R5 的 路径 。
4.修改 AS_Path 属性控制 BGP 选路
现在,假定 R5 和 R6 的流量负担太重,希望用户网络 R1与R2之间的通信优先选用经由 R3 和 R4 的路径。
为了实现这个需求,最直接的做法是在 R1 上拒绝接收来自 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 属性进行修改。
R1
ip ip-prefix as_path-permit 10.0.2.2 32
route-policy as_path permit node 10
if-match ip-prefix as_path
apply as-path 500 500 additive
route-policy as_path permit node 20
bgp 100
peer 10.0.15.5 route-policy as_path import
配置完成后,在R1上查看BGP路由表
在 R1 上使用 tracert 命令验证从 10.0.1.1/32 去往 10.0.2.2/32 的报文所经过的路径为R3、R4。
为了实现从10.0.2.2/32去往10.0.1.1/32的报文同样选用经由R4、R3的路径,可以在R2上修改来自AS 500的关于10.0.1.1/32的路由信息的AS_Path属性
R2
ip ip-prefix as_path permit 10.0.1.1 32
route-policy as_path_permit permit node 10
if-match ip-prefix as_path
apply as-path 500 500 500 500 additive
创建路由策略的后继索引节点允许未被匹配的路由能够正常被接收。
[R2]route-policy as_path_permit permit node 20
在R2的BGP视图下调用路由策略。
[R2-bgp]peer 10.0.26.6 route-policy as_path import
配置完成后,在R2上观察BGP路由表。
在 R2上使用 tracert 命令验证从 10.0.2.2/32 去往 10.0.1.1/32的报文所经过的路径为R3、R4。
配置完毕