说明:该笔记作用于 BGP 的路由策略中的路由汇总讲解于应用,其携带命令参考
参考视频:红茶三杯
前置
路由策略知识点总共包含如下:
BGP 路由汇总
正则表达式
通过 community 操控路由
Prefix-list 前缀列表
distribute-list 分发列表
Route-map
条件通告
ORF
以上加粗为新知识
BGP 自动汇总
我们在 RIP 和 EIGRP 中会观察到,二者都会开启路由自动汇总的功能,那么该功能只要开启,IGP 路由就会自动去汇总路由,但是在 BGP 中却不是这样。
1:若 R1 开启 auto-summary,并使用重发布直连的方式引入 1.1.1.0/24,则该子网会被汇总
2:若 R1 开启 auto-summary,且使用 network 1.1.1.0 mask 255.255.255.0,该路由仍以明细更新
3:若 R1 开启 auto-summary,且 network 1.0.0.0 mask 255.0.0.0 ,则该子网会被汇总
第三个宣告方式为有类宣告
总结:BGP 自动汇总 auto-summary ,只汇总重发布引入的路由,以及使用 network 命令有类宣告方式引入的路由,Cisco 默认关闭自动汇总
BGP 手工汇总 ?
该汇总特性是 BGP 的一大特点
我们可以看到,手工汇总基本由 aggregate 属性来完成
其后面仍然有许多的关键字,可见手工汇总,也是一大 BGP 亮点
topo 图参考
1:默认手工汇总
Router(config)# aggregate-address 192.168.0.0 255.255.255.0
该手工汇总操作于 R3
命令执行结果
!! R3 结果 !! 在 R3 上操作该命令后,可以观察到,R3 本地生成一条汇总,同时传递给 R4,'明细也同时传递' R4#show ip bgp BGP table version is 10, local router ID is 30.1.1.2 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path *> 192.168.0.0/16 30.1.1.1 0 0 300 i *> 192.168.1.0 30.1.1.1 0 300 100 i *> 192.168.2.0 30.1.1.1 0 300 100 i *> 192.168.3.0 30.1.1.1 0 300 200 i *> 192.168.4.0 30.1.1.1 0 300 200 i
2:summary-only 关键字 ?
Router(config)# aggregate-address 192.168.0.0 255.255.255.0 summary-only
如果键入该关键字,则抑制本地明细路由,发布该相关汇总路由
命令执行结果
!! 该命令操作于 R3 !! 在 R3 上可以看到,该其他相关明细路由被抑制,汇总被发布 R3#show ip bgp BGP table version is 16, local router ID is 30.1.1.1 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path '*> 192.168.0.0/16 0.0.0.0 32768 i' s> 192.168.1.0 10.1.1.1 0 0 100 i s> 192.168.2.0 10.1.1.1 0 0 100 i s> 192.168.3.0 20.1.1.1 0 0 200 i s> 192.168.4.0 20.1.1.1 0 0 200 i ------------------------------------------------------------------------------------- !! 观察 R4 ,就只传递一条汇总路由给予 R4,减少了路由条目 R4#show ip bgp BGP table version is 16, local router ID is 30.1.1.2 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path '*> 192.168.0.0/16 30.1.1.1 0 0 300' ------------------------------------------------------------------------------------- !! '再观察明细,可以发现该汇总路由的 AS 与 AS IP,以及 AS-path 为 300,丢失 AS-path 100' R4#show ip bgp 192.168.0.0 BGP routing table entry for 192.168.0.0/16, version 12 Paths: (1 available, best #1, table Default-IP-Routing-Table) Not advertised to any peer 300, (aggregated by 300 30.1.1.1) 30.1.1.1 from 30.1.1.1 (30.1.1.1) Origin IGP, metric 0, localpref 100, valid, external, atomic-aggregate, best
但是如果这样操作汇总路由,也会存在一些隐患,会使得该汇总路由丢失一些 AS-path 路径属性,若 R4 与 R1 成立 EBGP Peer 关系,则会造成 R1 的本地路由环路
3:summary-only as-set ?
如果键入该 as-set 关键字,则会发布一条携带 AS-set 的无序 as-path,使得该手工汇总路由,携带一些公认必遵属性,并且不丢失重要属性去传递
!! 操作在 R3 上 R3(config-router)#aggregate-address 192.168.0.0 255.255.0.0 summary-only as-set ------------------------------------------------------------------------------------- !! 观察 R4 路由表变化 R4#show ip bgp BGP table version is 17, local router ID is 30.1.1.2 Status codes: s suppressed, d damped, h history, * valid, > best, i - internal, r RIB-failure, S Stale Origin codes: i - IGP, e - EGP, ? - incomplete Network Next Hop Metric LocPrf Weight Path '*> 192.168.0.0/16 30.1.1.1 0 0 300 {100,200} i'
其他参考:
4:suppress-map
通过上面的理解,我们使用 summary-only,抑制了所有的明细
同时使用了 AS-set 关键字来防止丢失 AS-path 必遵属性
那么如果我想要抑制特定的明细,同时放行汇总和一些我们想要的明细,该如何去做呢?
这个时候,就使用到了一个 route-map 相关参数 suppress [抑制] 来关联 aggregate [汇总合]
1:该参数与我们所使用的 route-map 完全相反
2:该参数被我该 route-map 所 Permit 匹配的路由将会被抑制,而被 deny 将被放行
注意点:在使用该参数时,设置 route-map 的时候只能 match 不能 set
参考图如下:
5:unsuppress-map
如果你希望给部分的 BGP 邻居,只传递汇总路由,同时对另外一部分特定的 BGP 邻居,我传递汇总路由和明细
即针对特定邻居取消抑制 suppress
参考图如下:
6:advertise-map
advertise 宣告,告知
该告知策略,可以通告来排除一些被禁止传播的属性,使得该路由可传递
假设在 R1 上我们携带了一个 community 可选传递值为no-advertise
注:关于 community 的 no-advertise 值,如果携带该参数,则将不会再传播给任何 BGP 邻居,包括 IBGP 邻居以及联邦的 IBGP 邻居
如果该路由更新给 R3 的时候设置了 AS-set 关键字,R3 将不会再传播给任何 BGP 邻居,因为 R3 会因为 AS-set 关键字去继承该 community 属性
别忘了,我们这里仍然属于手工汇总属性讲解中
所以如果我们在 R3 上使用手工汇总,则会继承该明细 community 值,那么它将不会传播任何 BGP 邻居
1:该汇总路由只会继承该两条明细路由的属性
2:只要该两条明细,有一条存活,那么该汇总路由就一直存在,除非两条都 down,汇总路由才会消失
参考图如下:
7:attribute-map ?
该参数理解比较简单,attribute-map 是直接操作汇总路由的属性
参考图如下: