BGP:06 手动汇总路由

相对于自动路由聚合来讲,手动路由聚合具有更高的灵活性和可控性。
手动路由聚合时,可以手动控制聚合路由的掩码长度,修改聚合路由属性等。

这是实验拓扑,物理接口建立 IBGP , EBGP 邻居

有两种方法:
1.配置一条静态路由,然后network 命令进行通告
2.使用aggregate命令进行聚合。

 

基本配置:

R1:
sys
sysname R1
int loop 0
ip add 1.1.1.1 24
int g0/0/0
ip add 192.168.12.1 24
int g0/0/1
ip add 192.168.13.1 24
q
R2:
sys
sysname R2
int loop 0
ip add 2.2.2.2 24
int g0/0/0
ip add 192.168.12.2 24
int g0/0/1
ip add 192.168.24.2 24
q
R3:
sys
sysname R3
int loop 0
ip add 3.3.3.3 24
int g0/0/1
ip add 192.168.13.3 24
int g0/0/0
ip add 192.168.34.3 24
int g0/0/2
ip add 192.168.35.3 24
q
R4:
sys
sysname R4
int loop 0
ip add 4.4.4.4 24
int g0/0/1
ip add 192.168.24.4 24
int g0/0/0
ip add 192.168.34.4 24
int g0/0/2
ip add 192.168.46.4 24
q
R5:
sys
sysname R5
int loop 0
ip add 5.5.5.5 24
int loop 1
ip add 172.16.1.1 24
int loop 2
ip add 172.16.2.1 24
int loop 3
ip add 172.16.3.1 24
int loop 4
ip add 172.16.4.1 24
int loop 5
ip add 172.16.5.1 24
int loop 6
ip add 172.16.6.1 24
int loop 7
ip add 172.16.7.1 24
int g0/0/0
ip add 192.168.56.5 24
int g0/0/1
ip add 192.168.35.5 24
q
R6:
sys
sysname R6
int loop 0
ip add 6.6.6.6 24
int loop 1
ip add 192.168.1.1 24
int loop 2
ip add 192.168.2.1 24
int loop 3
ip add 192.168.3.1 24
int loop 4
ip add 192.168.4.1 24
int loop 5
ip add 192.168.5.1 24
int loop 6
ip add 192.168.6.1 24
int loop 7
ip add 192.168.7.1 24
int g0/0/0
ip add 192.168.56.6 24
int g0/0/1
ip add 192.168.46.6 24
q

配置BGP 路由协议:

使用直连物理接口建立邻居,R5 R6 的环回口在网络中使用network通告到BGP进程中

R1:
bgp 100
router-id 1.1.1.1
peer 192.168.12.2 as-number 200
peer 192.168.13.3 as-number 300
q
R2:
bgp 200
router-id 2.2.2.2
peer 192.168.12.1 as-number 100
peer 192.168.24.4 as-number 300
q
R3:
bgp 300
router-id 3.3.3.3
peer 192.168.13.1 as-number 100
peer 192.168.34.4 as-number 300
peer 192.168.34.4 next-hop-local
peer 192.168.35.5 as-number 400
q
R4:
bgp 300
router-id 4.4.4.4
peer 192.168.24.2 as-number 200
peer 192.168.34.3 as-number 300
peer 192.168.34.3 next-hop-local
peer 192.168.46.6 as-number 400
q
R5:
bgp 400
router-id 5.5.5.5
peer 192.168.35.3 as-number 300
peer 192.168.56.6 as-number 400
peer 192.168.56.6 next-hop-local
network 172.16.1.0 24
network 172.16.2.0 24
network 172.16.3.0 24
network 172.16.4.0 24
network 172.16.5.0 24
network 172.16.6.0 24
network 172.16.7.0 24
q
R6:
bgp 400
router-id 6.6.6.6
peer 192.168.46.4 as-number 300
peer 192.168.56.5 as-number 400
peer 192.168.56.5 next-hop-local
network 192.168.1.0 24
network 192.168.2.0 24
network 192.168.3.0 24
network 192.168.4.0 24
network 192.168.5.0 24
network 192.168.6.0 24
network 192.168.7.0 24
q

配置完成后,查看相互间的邻居关系都 要建立成功

R1上接收到BGP 协议的明细路由

在R5上使用ping测试R5 的环回口与R6的环回口之间的连通性

配置BGP 路由聚合:

R6上配置静态路由,然后使用network通告出去(第一种聚合方法)

R6:
ip route-static 192.168.0.0 21 NULL 0

bgp 400
network 192.168.0.0 21
q

静态路由指向NULL0的目的是防止网络中产生环路,这条静态路由仅仅是用来通告的

R5上使用aggregate(第二种聚合方法)

R5:
bgp 400
aggregate 172.16.0.0 255.255.248.0
q

可以写 21 ,也可以写255.255.248.0 ,建议写成 255.255.248.0

使用aggregate命令进行聚合,要求BGP路由表中至少有一条属于聚合后的路由的子网路由,否则聚合不会生效。

R1的BGP 路由表包含了聚合后的路由,但同时也有明细路由。

控制路由聚合,R5 R6的方法有所不同:

若想抑制明细路由,则需要配合route-policy 来实现对明细路由的抑制。如果抑制明细路由的数量比较多时,配置工作量就会比较多,而且维护起来不太方便,这种方法的扩展性和可维护性比较差。

R6:
ip ip-prefix noad permit 192.168.1.0 24
ip ip-prefix noad permit 192.168.2.0 24
ip ip-prefix noad permit 192.168.3.0 24
ip ip-prefix noad permit 192.168.4.0 24
ip ip-prefix noad permit 192.168.5.0 24
ip ip-prefix noad permit 192.168.6.0 24
ip ip-prefix noad permit 192.168.7.0 24
ip ip-prefix noad permit 172.16.1.0 24
ip ip-prefix noad permit 172.16.2.0 24
ip ip-prefix noad permit 172.16.3.0 24
ip ip-prefix noad permit 172.16.4.0 24
ip ip-prefix noad permit 172.16.5.0 24
ip ip-prefix noad permit 172.16.6.0 24
ip ip-prefix noad permit 172.16.7.0 24

route-policy no-ad permit node 1
if-match ip-prefix noad
apply community no-advertise
 
route-policy no-ad permit node 2

bgp 400
peer 192.168.46.4 route-policy no-ad export
peer 192.168.46.4 advertise-community

使用前缀列表和route-policy给这些明细路由添加no-advertise的团体属性。
peer X.X.X.X advertise-community 是为了将团体属性传递给对等体,缺省情况下是不传递的。

R5:
ip ip-prefix noad permit 192.168.1.0 24
ip ip-prefix noad permit 192.168.2.0 24
ip ip-prefix noad permit 192.168.3.0 24
ip ip-prefix noad permit 192.168.4.0 24
ip ip-prefix noad permit 192.168.5.0 24
ip ip-prefix noad permit 192.168.6.0 24
ip ip-prefix noad permit 192.168.7.0 24
ip ip-prefix noad permit 172.16.1.0 24
ip ip-prefix noad permit 172.16.2.0 24
ip ip-prefix noad permit 172.16.3.0 24
ip ip-prefix noad permit 172.16.4.0 24
ip ip-prefix noad permit 172.16.5.0 24
ip ip-prefix noad permit 172.16.6.0 24
ip ip-prefix noad permit 172.16.7.0 24

route-policy no-ad permit node 1
if-match ip-prefix noad
apply community no-advertise 

route-policy no-ad permit node 2

bgp 400
peer 192.168.35.3 route-policy no-ad export
peer 192.168.35.3 advertise-community

配置完成后,在R1 上查看一下,只有聚合路由,没有明细

R3有聚合也有明细

detail-suppressed 抑制明细,as-set 加上原有的as-path:

还可以利用aggregate 命令结合detail-suppressed来实现对明细路由的抑制,只将聚合后的路由发送出去。
R5 R6 都采用 aggregate 方式来聚合路由

R6:
undo ip route-static 192.168.0.0 21 NULL 0

bgp 400
undo network 192.168.0.0 21
aggregate 192.168.0.0 21 detail-suppressed
q
R5:
bgp 400
aggregate 172.16.0.0 21 detail-suppressed

R5上只利用aggregate 聚合 172.16.0.0 网段的,所以detail-suppressed抑制的是 172.16.0.0

suppress-policy 抑制部分明细:

suppress-policy 抑制部分明细,抑制 172.16.2.0、 172.16.4.0、 172.16.6.0

R5:
ip ip-prefix sup permit 172.16.2.0 24
ip ip-prefix sup permit 172.16.4.0 24
ip ip-prefix sup permit 172.16.6.0 24

route-policy sup permit node 10
if-match ip-prefix sup

bgp 400
undo peer 192.168.35.3 route-policy noad export
aggregate 172.16.0.0 21 suppress-policy sup

配置完成后,在R3 上查看一下

attribute-policy可以修改聚合后的路由属性:

R5通告的是属性没有经过任何修改的路由,其聚合路由的 Origin 属性是 i。现在通过 attribute-policy 将聚合路由的属性修改成 Incomplete ,在BGP 路由表中显示为 ?

R5:
route-policy att permit node 10
apply origin incomplete

bgp 400
aggregate 172.16.0.0 21 attribute-policy att suppress-policy sup

可以加 suppress-policy sup,也可以不加

配置完成后,在R3 上查看一下

origin-policy:

如果希望汇总路由的产生,只以某条或某些特定的明细路由为触发条件
如 R5 的BGP 路由表中存在有 172.16.1.0/24 的路由时,才触发其产生汇总路由,172.16.0.0/21 ,而当明细路由172.16.1.0/24 丢失,则 R5 不再通告该条汇总路由,那么就需要使用origin-policy 关键字了。

R5:
ip ip-prefix or permit  172.16.1.0 24

route-policy or permit node 10
if-match ip-prefix or

bgp 400
aggregate  172.16.0.0 21 origin-policy or

配置完成后, R3 的路由中还是有汇总路由 172.16.0.0 /21 的

 

在R5 上把 int loo1 删除掉,没有了 172.16.1.0/24,在R3 上也没有汇总路由了

R5:
undo int loo1

在R3 上查看 BGP 路由表,可以看到没有172.16.1.0,也没有汇总的路由
 

as-set:

为了避免路由聚合可能引起的路由环路,BGP设计了AS_Set属性。AS_Set属性是一种无序的AS_Path属性,标明聚合路由所经过的AS号。当聚合路由重新进入AS_Set属性中列出的任何一个AS时,BGP将会检测到自己的AS号在聚合路由的AS_Set属性中,于是会丢弃该聚合路由,从而避免了路由环路的形成。

在上面的拓扑基础上进行修改

R5:

undo bgp 400  
Y

int g0/0/2
ip add 192.168.57.5 24
q

bgp 400
router-id 5.5.5.5
peer 192.168.56.6 as-n 500
peer 192.168.57.7 as-n 600
peer 192.168.35.3 as-n 300
q
R6:
int loo1
ip add 172.16.1.1 24
int loo2
ip add 172.16.2.1 24
int loo3
ip add 172.16.3.1 24
int loo4
ip add 172.16.4.1 24
q

und bgp 400
Y

bgp 500
router-id 6.6.6.6
peer 192.168.56.5 as-n 400
net 172.16.1.0 24
net 172.16.2.0 24
net 172.16.3.0 24
net 172.16.4.0 24
q
R7:
sys
sysname R7
int loop 0
ip add 7.7.7.7 24
int loo1
ip add 172.16.5.1 24
int loo2
ip add 172.16.6.1 24
int loo3
ip add 172.16.7.1 24
int g0/0/0
ip add 192.168.57.7 24
q

bgp 600
router-id 7.7.7.7
peer 192.168.57.5 as-n 400
net 172.16.5.0 24
net 172.16.6.0 24
net 172.16.7.0 24
q

在没有汇总之前,R3 看到的是明细路由

在R5上进行路由汇总,并把明细抑制

R5:
bgp 400
aggregate 172.16.0.0 21 detail-suppressed

R3 看到的是汇总路由,只有一个as 400的,而原始的 500,600 没有显示出来,存在环路的风险

如果在汇总的时候加上 as-set,则会继承明细路由的路径属性

R5:
bgp 400
aggregate 172.16.0.0 21 detail-suppressed as-set

  • 19
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值