session 1 BGP路由拆分
与聚合路由相反,将一条路由拆分成多条明细子路由。
bgp inject-map AAA exits-map BBB [copy-attributes]
当BBB里面匹配的路由存在的话,向本地及邻居BGP的转发表里注入AAA中拆分出来的明细路由。
推荐使用前缀列表做AAA和BBB的路由匹配!
路由拆分的三个步骤:拓扑如下,
AS 12,IBGP
1.1.1.1 s0/0------s0/0 2.2.2.2
R1上创建一条路由192.168.0.0/16,可以使用其他接口做地址。
R1上做路由拆分,让R2学到R1的路由及拆分后的子路由
R1上配置:
route-map BBB BBB这个map需要匹配要拆分的主路由和传递的下一跳
match ip address prefix-list 1 匹配要拆分的主路由,prefix-list 1 中抓取主路由
match ip route-source prefix-list 2 匹配该路由的来源,是哪个(邻居)下一跳传给我的路由,即在show ip bgp 中看到的主路由的next-hop下面的ip地址
route-map AAA AAA这个map需要匹配拆分的子路由
set ip address prefix 3 匹配拆分成哪些自路由,prefix-list 3 抓取明细路由
ip prefix-list 1 permit 192.168.0.0/16 抓取主路由
ip prefix-list 2 permit 2.2.2.2/32 抓取要拆分的主路由的更新源ip
ip prefix-list 3 permit 192.168.1.0/24 抓取拆分成的明细路由条路
ip prefix-list 3 permit 192.168.2.0/24
ip prefix-list 3 permit 192.168.3.0/24
bgp inject-map AAA exits-map BBB [copy-attributes] 当BBB里面匹配的路由存在的话,向本地及邻居BGP的转发表里注入AAA中拆分出来的明细路由,copy-attributes参数决定明细路由是否继承主路由的属性。
show ip bgp injected-paths 查看拆分的路由,只能在R1上看到。
在R1和R2的show ip bgp 中可以看到明细路由和主路由。
show ip bgp 192.168.1.0/24可以看到明细路由属性,在R2上看不出该路由是明细路由。
二、BGP的加速收敛
bgp transport path-mtu-discovery BGP开启加速收敛,15.1以上的IOS默认开启
neighbor x.x.x.x transport transport path-mtu-discovery 旧IOS手动开启BGP的加速收敛命令
session 2 BGP负载均衡
使用的是十三条选路原则中的第九条原则:Maximum-Path
一、BGP路由负载均衡条件:
1、前8条选路原则相同
2、Maximum-Path> 1 , IBGP需要Maximum-Path ibgp > 1
3、next-hop不一致
4、ebgp如果穿越了不同的AS,将不会负载均衡,包括不同的联邦小AS(bgp bestpath as-path Multipath-relax 隐藏命令可以允许在不同AS之间形成负载均衡)
二、负载均衡
1、ebgp中负载均衡
R1(config-router)#maximum-paths 2 ebgp路由更改负载路由的条目数,最大16条
2、ibgp中负载均衡
R1(config-router)#maximum-paths ibgp 2 ibgp路由更改负载路由的条目数,最大16条
3、不同AS之间的负载均衡
R1(config-router)#bgp bestpath as-path Multipath-relax 允许在不同AS之间做负载均衡