在线客服



服务时间

09:00-21:00

您所在的位置 首页 > 新闻资讯 > 企业新闻

企业新闻

NEWS

HCIE华为数通实验室|1.6 BGP 手动汇总(地址聚合)

发布时间:2017-12-07 新闻来源:  作者:YESLAB
实验目标
掌握 BGP 的手动汇总及各种特性地址聚合中参数“as-set”的含义
地址聚合中参数“detail-suppressed”的含义地址聚合中参数“suppress-policy”的含义地址聚合中参数“origin-policy”的含义
地址聚合中参数“attribute-policy”的含义此实验后面几个步骤比较难,可以不做。
实验拓扑

数通实验室|1.6 BGP 手动汇总(地址聚合)


实验步骤
建立好AR1 与 AR2 之间的 IBGP 邻居关系。AR2 与 AR3 的 EBGP 邻居关系。
在AR3上宣告三条路由进BGP(100.1.1.1/32,100.1.2.1/32,100.1.3.1/32),关闭所有 BGP 的自动汇总。
这三条起源于AR3 上的路由条目会通过 BGP 被 AR1,AR2 都学到。
此时我们在AR1,AR2,AR3 上都会看到以下三条路由。以下是看 AR2 的 BGP 表项。

以下是看 AR2 的 BGP 表项。


步骤 1:
我们可以去任何一个路由器做BGP 的地址聚合(汇总)不一定非要在起源路由器上做。这里我们选择在 AR2 上来做汇总。
在R2 上:

这里我们选择在 AR2 上来做汇总。

去查看 BGP 表:

去查看 BGP 表:


//以上红色部分表明产生了新的 BGP 路由,再去AR1 上查看 BGP 表

//以上红色部分表明产生了新的 BGP 路由,再去AR1 上查看 BGP 表

步骤 2:
我们发现,AR1 不仅收到了AR2 新产生的那条汇总路由,同时也依然学到了以前的明细路由。如果我们想让在汇总后能抑制明细,就必须加上关键字:detail-suppressed,此关键字的意思是抑制所有包含在内的明细路由。
在R2 上:

在R2 上:


再去 AR1上看 BGP表:

再去 AR1上看 BGP表:

发现只能看到一条明细了。

步骤 3:
此部分就有点麻烦了,请慢慢理解。
有的时候,我们想让某条明细路由传出去,某些路由被抑制,这也是可以实现的。
这就要用到另一个关键字:suppress-policy,此关键字的意思是选择性的抑制某些路由。    
比如在此实验中,我们想让100.1.3.1/32 这条路由依然被 AR1 学到,另外两条被抑制。首先用 route-policy 匹配上我们想抑制的路由:
在R2 上:

在R2 上:


然后到 BGP 里用关键字 suppress-policy 调用这条 route-policy 

然后到 BGP 里用关键字 suppress-policy 调用这条 route-policy


去 AR1 上看 BGP 路由表:
以上表示,在AR1 上,被我们匹配出来的路由己经被抑制了。没有匹配的不会被抑制。

去 AR1 上看 BGP 路由表:


步骤 4
再去 AR3 上查看一下 BGP 表:

再去 AR3 上查看一下 BGP 表:


以上表示:我们看到一个不好的现象,AR2上汇总的路由竟然又传回了这几条明细的起源地AR3。
这是因为汇总后的路由会丢失明细的一些属性。如果我们想让汇总后的路由依然保留明细的属性,就必须加上关键字:as-set
在AR2上:

在AR2上:


加上以后再去 AR3 上看现象:

加上以后再去 AR3 上看现象:


//以上表示我们发现 AR3 没有再收到这条汇总了,再去AR1 上看一下还在不在。

//以上表示这条汇总依然收到,并且可以发现后面带上了200 的 AS-Path,这在开始是没有的, 是因为我们在 AR2上加上 as-set 这个关键字后把明细的属性值带了下来。这也是 AR3 不再收这条路由的原因——从 EBGP 邻居收到一条路由带有本 AS-Path,将不再收(EBGP防环原则)。

步骤 5:
接下来的部分更难理解,需要更多耐心。
origin-policy --起源策略,指的是当 route-policy 里匹配的路由(注意,此路由必须是被包含在汇总路由里的明细路由)在 BGP 表存在时,汇总路由才能生成;如果使用 as-set 参数,汇总路由只继承 route-policy 里面匹配路由的属性按照上面的理论介绍,来设计本实验为:用origin-policy 去匹配 100.1.1.1/32 这条路由,当这条路由存在的时候,就会产生汇总的路由。然后去AR3 上去掉此条路由,那么汇总就会消失。先 undo 掉刚才的配置,完成步骤 5 的实验:
在AR2 上:

在AR2 上:


1:写前缀列表去匹配此条路由:

写前缀列表去匹配此条路由:


2:用 route-policy 去调用:

用 route-policy 去调用:

3:再到汇总命令里面去调用这条route-policy:

再到汇总命令里面去调用这条route-policy:

4:去查看BGP 表项: 

去查看BGP 表项:

//以上表示汇总己经成功,产生了汇总的路由。
5:去 AR3 上取消通告 100.1.1.1/32这条路由:

去 AR3 上取消通告 100.1.1.1/32这条路由:

6:再去AR2 上看现象: 

再去AR2 上看现象:


//以上表示实验结果和预想的一样。明细和汇总都一起消失了。  
恢复配置:

恢复配置:


步骤 6:
有的时候,我们汇总后还要特意的加上一些属性值,这也是可以的。这就要用到attribute- policy 关键字。 
比如在此实验中,我们想再给汇总后的路由加上一个100:100 的 community 值,并且要求原来明细路由的 community 还必须保留。此时可以配置 attribute-policy,实际上attribute-policy是一个 route-policy。
在 AR2 上:

在 AR2 上:


然后去调用即可:

然后去调用即可:


再去查看结果:

再去查看结果:

//我们可以看到有新加的100:100 了。
同时也看到了汇总后产生的 BGP 可传递属性 Aggregator。Aggregator 属性包括两个部分, 一个是 Aggregator 表示产生汇总的 AS,AggregatorID 表示产生汇总的路由器 router-id。这样我们就把汇总的实验做完了。

相关阅读:
开篇:BGP概要
实验 1.1 建立基本的 BGP 邻居关系
实验 1.2 路由信息的通告
实验 1.3 理解同步及解决路由黑洞
验 1.4 用 group 的方法建立邻居关系
实验1.5 BGP 的自动汇总