实验拓扑:
实验规划:
r1,r2,r3,r4分别属于as100,as200,as300,as400 ,r3分别与r1,r2,r4建立了ebgp邻居关系,r1,r2上分别有2个子接口(模拟网段)。
r1:
f0/0:13.0.0.1/24
l1:172.16.1.1/24
l2:172.16.2.1/24
r2:
f0/0:23.0.0.2/24
l1:172.16.10.1/24
l2:172.15.11.1/24
r3
f1/0:13.0.0.3/24
f0/0:23.0.0.3/24
f0/1:34.0.0.3/24
r4
f0/0:34.0.0.4/24
进行基本配置,建立ebgp邻居关系
r1
router bgp 100
neighbor 13.0.0.3 remote-as 300
r2
router bgp 200
neighbor 23.0.0.3 remote-as 300
router bgp 300
neighbor 13.0.0.1 remote-as 100
neighbor 23.0.0.2 remote-as 200
neighbor 34.0.0.4 remote-as 400
router bgp 400
neighbor 34.0.0.3 remote-as 300
基本配置完成
bgp auto-summary属性,用3种方法来演示
(1)开启auto-summary ,并且宣告172.16.1.0/24这条网段
r1(config)#no int l2
r1(config)#router bgp 100
r1(config-router)#auto-summary
r1(config-router)#network 172.16.1.0 mask 255.255.255.0
在r3上观察
可以发现,虽然开启了自动汇总,但是r3学习到的仍然是一条明细路由。
(2)开启auto-summary,并且宣告172.16.0.0/16这条网段。
r1(config-router)#network 172.16.0.0 mask 255.255.0.0
可以发现,r3学习到的是一条汇总路由了。
(3)在r1上以重发布的方式,宣布l1这条直连,不用network的方式
r1(config-router)#redistribute connected metric 1
学习到的是一条汇总路由
可以做出小总结:
bgp的自动汇总,只会汇总重发布引入的路由,以及使用network命令有类宣告方式引入的路由。注意,自动汇总是默认关闭的。
bgp的手动汇总简要分析(summary-only / as-set )
在r1 bgp上network 172.16.1.0/24和172.16.2.0/24这2条路由(不开自动汇总)
network 172.16.1.0 mask 255.255.255.0
network 172.16.2.0 mask 255.255.255.0
r3,r4都可以学习到
在r3上汇总这2条路由,可以使用aggregate-address的方式(这里不讨论null0路由)
aggregate-address 172.16.0.0 255.255.0.0
可以发现,已经多出了一条汇总路由,同时会将这条汇总路由发给r4。
summary-only
如果r3上想只发送这条汇总,不发送明细,可以
r3(config)#router bgp 300
r3(config-router)#aggregate-address 172.16.0.0 255.255.0.0 summary-only
这时候可以上r4再看一下
明细路由消失了,只剩下一条汇总路由,并且,始发者不是r1,而变成了r3。
as-set
使用bgp的手动汇总,新生成的汇总路由,会丢失被汇总的明细路由的很多属性,以as-path属性为例,r3在发布汇总路由之后,此路由始发者为r3,而不是r1,所以,这条汇总路由同样会被r1学习到,并且还是最优路由。
这时候,就会产生安全隐患了,因为丢失了as-path属性,有可能会出现环路问题。
可以用as-set这条命令,来继承明细路由的部分属性
r3(config-router)#aggregate-address 172.16.0.0 255.255.0.0 summary-only as-set
这时候,在r4和r1上观察出现了哪些变化
可以发现,汇总路由的始发者不是r3了,而是还原成了as100中的r1。
汇总路由消失了,避免了环路问题。