BGP路由的引入

与IGP协议不同,BGP协议本身不发现路由,因此需要将其他路由发布到BGP路由中。BGP引入路由时支持Import和Network两种方式:

  • Import方式是按协议类型,将RIP、OSPF、ISIS等协议的路由引入到BGP路由表中。为了保证引入的IGP路由的有效性,Import方式还可以引入静态路由和直连路由。
  • Network方式是逐条将IP路由表中已经存在的路由引入到BGP路由表中,比Import方式更精确。需要注意的是network命令用来发布精确匹配的路由。也就是说,指定的目的地址和前缀长度必须与本地IP路由表中对应的表项完全一致,路由才能正确发布。

 路由聚合

路由聚合是将多条路由合并的机制,它通过只向对等体发送聚合后的路由而不发送所有的具体路由的方法,减小路由表的规模。并且被聚合的路由如果发生路由振荡,也不再对网络造成影响,从而提高了网络的稳定性。

BGP在IPv4网络中支持自动聚合和手动聚合两种方式,而IPv6网络中仅支持手动聚合方式。

自动聚合

BGP的自动聚合是针对外部引进的路由进行有类的聚合,但不能对network方式注入的路由进行自动聚合。在BGP进程中使用命令summary automatic命令实现。缺省情况下,自动聚合未启用。

例如:将外部引入的路由 172.16.1.0/24、172.16.2.0/24 172.16.3.0/24进行自动聚合,配置summary automatic后,路由被聚合为B类的地址172.16.0.0/16。并且只向对等体发布聚合路由,减少路由发布的数量。

自动聚合必须在引入路由的设备上操作,其他设备配置自动聚合命令不生效。

# 对引入的路由进行自动聚合配置示例:

[HUAWEI] bgp 100
[HUAWEI-bgp] ipv4-family unicast
[HUAWEI-bgp-af-ipv4] summary automatic

手动聚合

通过aggregate命令进行手动聚合,手动聚合可以针对外部引入的路由和通过 network 方式通告的路由实现,并且在任何地方都可以实现,即使明细路由不是来自于本AS,因此部署比较灵活。

命令格式:

aggregate ipv4-address { mask | mask-length } [ as-set | attribute-policy route-policy-name1 | detail-suppressed | origin-policy route-policy-name2 | suppress-policy route-policy-name3 ] 
aggregate ipv6-address prefix-length [ as-set | attribute-policy route-policy-name1 | detail-suppressed | origin-policy route-policy-name2 | suppress-policy route-policy-name3 ]

aggregate命令可以在BGP路由表中创建一条聚合记录。

  • 通过设置关键字as-set,可创建一条聚合路由,该路由的自治系统AS路径包含了具体路由的AS路径信息。若需聚合较多AS路径时,请慎用此关键字,因为当具体路由的变化较频繁时,会导致路由振荡。
  • 通过设置关键字detail-suppressed可以抑制该聚合路由所包含的所有具体路由,只发布该聚合路由。生成的聚合路由带Atomic-aggregate属性,并且不能携带原具体路由的团体属性。
  • 通过设置关键字suppress-policy能产生聚合路由,但抑制指定路由的通告。可以用route-policy的if-match子句有选择地抑制一些具体路由,即匹配该策略的路由将被抑制,但其它未通过策略的具体路由仍被通告。也可以通过peer route-policy命令,配置不希望发布给对等体的策略达到相同效果。
  • 使用关键字origin-policy仅在匹配route-policy时才生成聚合路由。
  • 关键字attribute-policy可设置聚合路由的属性。如果在策略中使用命令apply as-path配置了AS_Path属性,且设置了关键字as-set,则策略中的AS_Path不会生效。通过peer route-policy命令也可以完成同样的工作。

# 创建一条聚合记录。该路由发布的路径为一个包含所有聚合路径信息的AS集合段。

[HUAWEI] bgp 100
[HUAWEI-bgp] ipv4-family unicast
[HUAWEI-bgp-af-ipv4] aggregate 172.16.0.0 255.255.0.0 as-set