【实验环境】
C3640-IK9O3S-M Version 12.4(10)
【实验目的】
验证BGP的路由聚合
【实验拓扑】
【实验描述】
1、在R2上使用手工创建聚合静态路由并宣告静态路由实现BGP路由聚合
2、在R2上使用BGP路由聚合命令aggregate-address实现实现BGP路由聚合
3、在R1上使用BGP路由聚合命令aggregate-address实现实现BGP路由聚合
4、在R1上结合使用suppress-map实现部分BGP路由集合
【实验步骤】
1、R1基本配置
!
interface Serial0/0
ip address 12.0.0.1 255.255.255.0
serial restart-delay 0
clock rate 64000
!
router bgp 1
no synchronization
bgp router-id 1.1.1.1
neighbor 12.0.0.2 remote-as 2
no auto-summary
!
2、R2基本配置
!
interface Loopback0
ip address 200.1.16.1 255.255.255.0
!
interface Loopback1
ip address 200.1.17.1 255.255.255.0
!
interface Loopback2
ip address 200.1.18.1 255.255.255.0
!
interface Loopback3
ip address 200.1.19.1 255.255.255.0
!
interface Serial0/0
ip address 12.0.0.2 255.255.255.0
!
router bgp 2
no synchronization
bgp router-id 2.2.2.2
neighbor 12.0.0.1 remote-as 1
no auto-summary
!
3、在R2上使用手工创建聚合静态路由并宣告静态路由实现BGP路由聚合
该方法只能使用在产生明细路由的路由器R2上,并且无需在R2上通告明细路由,首先创建一条指向NULL0接口的汇总静态路由:
R2(config)#ip route 200.1.16.0 255.255.252.0 Null0
接着将汇总的静态路由从BGP发布出去
R2(config)#router bgp 2
R2(config-router)#network 200.1.16.0 mask 255.255.252.0
此时在R1上就可以看到汇总路由了
R1#sh ip bgp
BGP table version is 2, local router ID is 1.1.1.1
Network Next Hop Metric LocPrf Weight Path
*> 200.1.16.0/22 12.0.0.2 0 0 2 i
4、清除3的配置,在R2上使用BGP路由聚合命令aggregate-address实现实现BGP路由聚合
R2(config)#no ip route 200.1.16.0 255.255.252.0 null 0
R2(config)#router bgp 2
R2(config-router)#no network 200.1.16.0 mask 255.255.252.0
需要先将明细路由通告进BGP:
R2(config)#router bgp 2
R2(config-router)#network 200.1.16.0
R2(config-router)#network 200.1.17.0
R2(config-router)#network 200.1.18.0
R2(config-router)#network 200.1.19.0
不带mask参数,默认为网络号的主类子网掩码
使用aggregate-address宣告聚合路由:
R2(config)#router bgp 2
R2(config-router)#aggregate-address 200.1.16.0 255.255.252.0 summary-only
summary-only参数表示只宣告聚合路由,抑制明细路由
在R2上查看BGP路由表,明细路由被抑制:
R2#sh ip bgp
BGP table version is 12, local router ID is 2.2.2.2
Network Next Hop Metric LocPrf Weight Path
s> 200.1.16.0 0.0.0.0 0 32768 i
*> 200.1.16.0/22 0.0.0.0 32768 i
s> 200.1.17.0 0.0.0.0 0 32768 i
s> 200.1.18.0 0.0.0.0 0 32768 i
s> 200.1.19.0 0.0.0.0 0 32768 i
在R1上查看BGP路由表,只有一条聚合路由:
R1#sh ip bgp
BGP table version is 4, local router ID is 1.1.1.1
Network Next Hop Metric LocPrf Weight Path
*> 200.1.16.0/22 12.0.0.2 0 0 2 i
5、保留明细路由,清除R2上的聚合路由配置,在R1上使用BGP路由聚合命令aggregate-address实现实现BGP路由聚合
R2(config)#router bgp 2
R2(config-router)#no aggregate-address 200.1.16.0 255.255.252.0 summary-only
在R1上执行路由汇总命令:
R1(config)#router bgp 1
R1(config-router)#aggregate-address 200.1.16.0 255.255.252.0 summary-only
在R1上查看BGP路由表:
R1#sh ip bgp
BGP table version is 14, local router ID is 1.1.1.1
Network Next Hop Metric LocPrf Weight Path
s> 200.1.16.0 12.0.0.2 0 0 2 i
*> 200.1.16.0/22 0.0.0.0 32768 i
s> 200.1.17.0 12.0.0.2 0 0 2 i
s> 200.1.18.0 12.0.0.2 0 0 2 i
s> 200.1.19.0 12.0.0.2 0 0 2 i
在R2上查看BGP路由表:
R2#sh ip bgp
BGP table version is 18, local router ID is 2.2.2.2
Network Next Hop Metric LocPrf Weight Path
*> 200.1.16.0 0.0.0.0 0 32768 i
*> 200.1.16.0/22 12.0.0.1 0 0 1 i
*> 200.1.17.0 0.0.0.0 0 32768 i
*> 200.1.18.0 0.0.0.0 0 32768 i
*> 200.1.19.0 0.0.0.0 0 32768 i
问题:R1的汇总路由Path属性为空,由于EBGP的水平分割是基于Path属性的,因此该路由条目不满足水平分割,将会回传给R2,所以在R2上可以看到Next Hop值为R1的汇总路由。如果明细路由中的某一条down掉,将有可能导致一些带宽流量的浪费。因此我们需要在aggregate-address命令后加多另外一个参数as-set,这个参数会将明细路由中的一些属性保留给汇总路由,其中包括了as-path属性。
R1(config)#router bgp 1
R1(config-router)#no aggregate-address 200.1.16.0 255.255.252.0 summary-only
R1(config-router)#aggregate-address 200.1.16.0 255.255.252.0 summary-only as-set
重新在R1上查看BGP路由表:
R1#sh ip bgp
BGP table version is 20, local router ID is 1.1.1.1
Network Next Hop Metric LocPrf Weight Path
s> 200.1.16.0 12.0.0.2 0 0 2 i
*> 200.1.16.0/22 0.0.0.0 100 32768 2 i
s> 200.1.17.0 12.0.0.2 0 0 2 i
s> 200.1.18.0 12.0.0.2 0 0 2 i
s> 200.1.19.0 12.0.0.2 0 0 2 i
重新在R2上查看BGP路由表:
R2#sh ip bgp
BGP table version is 19, local router ID is 2.2.2.2
Network Next Hop Metric LocPrf Weight Path
*> 200.1.16.0 0.0.0.0 0 32768 i
*> 200.1.17.0 0.0.0.0 0 32768 i
*> 200.1.18.0 0.0.0.0 0 32768 i
*> 200.1.19.0 0.0.0.0 0 32768 i
EBGP水平分割起作用了,R2上不会出现回传的聚合路由
6、清除R1上的聚合路由配置,结合使用suppress-map实现部分BGP路由聚合。需求为抑制200.1.18.0/24和200.1.19.0/24网段,其他网段及聚合路由显示。
R1(config)#router bgp 1
R1(config-router)#no aggregate-address 200.1.16.0 255.255.252.0 summary-only as-set
使用前缀列表抓取路由条目:
R1(config)#ip prefix-list 10 permit 200.1.18.0/23 ge 24 le 24
创建route-map处理路由条目
R1(config)#route-map SU permit 10
R1(config-route-map)#match ip address prefix-list 10
R1(config-route-map)#exit
使用suppress-map创建聚合路由
R1(config)#router bgp 1
R1(config-router)#aggregate-address 200.1.16.0 255.255.252.0 suppress-map SU as-set
硬清除BGP路由表
R1#clear ip bgp *
在R1上查看BGP路由表:
R1#sh ip bgp
BGP table version is 8, local router ID is 1.1.1.1
Network Next Hop Metric LocPrf Weight Path
*> 200.1.16.0 12.0.0.2 0 0 2 i
*> 200.1.16.0/22 0.0.0.0 100 32768 2 i
*> 200.1.17.0 12.0.0.2 0 0 2 i
s> 200.1.18.0 12.0.0.2 0 0 2 i
s> 200.1.19.0 12.0.0.2 0 0 2 i
可以发现18、19两个网段被抑制,其余网段best