BGP的路由聚合
自动聚合 --- 1,自动聚合只能针对重发布的路由信息生效
--- 2,自动聚合只能聚合到主类 --- 会形成巨大的路由黑洞 --- 所以,华为设备默认关闭了自动聚合
使用路由策略进行重发布 1,使用前缀列表抓取流量
[r1]ip ip-prefix aa permit 172.16.0.0 16 greater-equal 24 less-equal 24 --- 仅抓取前16位固定
且掩码长度位24位的路由信息
2,配置路由策略
[r1]route-policy bb permit node 10
Info: New Sequence of this List.
[r1-route-policy]if-match ip-prefix aa----匹配路由
3,在重发布中调用
[r1-bgp]import-route direct route-policy bb
[r1-bgp]summary automatic --- 开启自动聚合
Info: Automatic summarization is valid only for the routes imported through the import-route command.自动聚合只对使用import-route命令引入的路由有效。
*> 172.16.0.0 127.0.0.1 0 ? ---- 通过聚合发布的路由信息,下一跳为127.0.0.1 ,其效果将自动在本地路由表中添加一条空接口路由。
s - suppressed --- 抑制 --- 被抑制的路由信息将不再传递。
手工聚合
[r1-bgp]aggregate 172.16.0.0 22 --- 手工聚合的命令
*> 172.16.0.0/22 127.0.0.1 0 ? --- 手工聚合后,产生的汇总网段携
带子网掩码,可以进行精确汇总,并且,下一跳也是127.0.0.1,则也将自动生成一条指向汇总的空接口路由。
手工聚合的缺点:
1,手工聚合生成聚合路由后,不会抑制明细路由,起不到减少路由条目的效果;
2,在进行聚合后,聚合路由将不携带明细路由的路径属性,尤其是AS_PATH,则将可能导致环路的产生。
1,[r4-bgp]aggregate 172.16.0.0 22 detail-suppressed --- 聚合的同时抑制所有明细路由
通过suppress-policy(抑制策略)来实现部分明细路由的抑制。 --- 因为抑制策略具备抑制能力,所以,可以将所有抓取放通的流量进行抑制。
1,抓流量
[r4]ip ip-prefix aa permit 172.16.1.0 24
2,配置路由策略
[r4]route-policy bb permit node 10
Info: New Sequence of this List.
[r4-route-policy]if-match ip-prefix aa
3,使用抑制策略调用路由策略
[r4-bgp]aggregate 172.16.0.0 22 suppress-policy bb
2,BGP为了解决这个问题,专门设计了一个AS_SET的关键字,如果激活了AS_SET,则 BGP的汇总路由中将携带明细路由的AS_PATH属性。
[r4-bgp]aggregate 172.16.0.0 22 detail-suppressed as-set
*> 172.16.0.0/22 127.0.0.1 0 {1 4}?
注意:如果明细路由来自不同的AS中,并且,在同一个AS内进行聚合,则聚合后如果激活了AS_SET,AS_PATH属性中将所有明细的AS号都携带,并且使用大括号括起来。在进行防环时,括号内的AS都将不能回传,但在进行选路时,则整个大括号将被看作是一个整体。
因为,聚合路由存在属性缺失的情况,所以,BGP专门设计了以下两个属性 ---
ATOMIC_AGGREGATE,AGGREGATOR
ATOMIC_AGGREGATE --- 一个预警属性。 --- 只有在抑制了所有明细的情况下才会出现。
AGGREGATOR --- 其内容为完成聚合操作者所在的AS号和其RID。
[r4]display bgp routing-table 172.16.0.0 --- 查看路由的详细信息
路由反射器
Router Reflector --- RR --- 我们可以将BGP路由器配置成为路由反射器,而被配置成为路由反射器的设备在一定条件下,将可以反射学到的IBGP路由信息,以此来打破IBGP水平分割带来的通信障碍。
所谓条件,就是我们在指定路由反射器的同时,需要指定他的一个或者多个IBGP对等体成
为他的客户(其余的称为非客户),RR和客户之间构成的系统,我们称为反射簇
(Cluster),每一个反射簇都将使用RR的RID作为自己的簇ID进行区分。
路由反射器的反射规则
1,如果路由反射器从自己客户处学习到一条路由信息,则他将把该路由信息反射给自己所有的客户以及非客户。
2,如果RR从自己的非客户处学习到一条路由信息,则他将把该路由信息反射给自己所有的客户。
"非非不传"
3,当路由器执行路由反射时,他只将自己使用的最优的BGP路由进行反射。
因为路由反射器打破了IBGP水平分割,而IBGP水平分割规则其目的是为了防止路由信息回传出现环路,所以,打破后可能出现环路,则需要想办法防止环路的出现。 ----- 为了防止环路的出现,引入两个属性 ---- Originator_ID(起源者ID),cluster_list(簇列表)
Originator_ID --- 起源者ID为反射的这条路由信息的始发者的RID,当路由信息经过RR反射后,反射出去的路由信息中将包含这个属性。如果RR收到的路由信息中已经存在O_ID,则将不会去修改这个ID。
当一台设备收到一条路由信息,其中起源者ID是自身的RID,则将不去接收这条路由信息,防止路由回传,形成环路。
如果在一个AS内部,存在多次反射的话,那么,一定存在多个反射簇,则每个RR在反射路由信息的时候,都需要将自己本地的簇ID添加到簇列表属性当中。当收到一条路由信息中包含本地簇ID,则将拒绝接受,防止路由回传,造成环路。
注意:以上两个属性,都是针对IBGP对等体之间防环使用,在传递给EBGP对等体时,是不需要携带的。
[r3-bgp]peer 2.2.2.2 reflect-client
[r4-bgp]display bgp routing-table 1.1.1.0
BGP local router ID : 4.4.4.4
Local AS number : 2
Paths: 1 available, 1 best, 1 select
BGP routing table entry information of 1.1.1.0/24:
From: 3.3.3.3 (3.3.3.3)
Route Duration: 00h01m18s
Relay IP Nexthop: 34.0.0.1
Relay IP Out-Interface: GigabitEthernet0/0/0
Original nexthop: 2.2.2.2
Qos information : 0x0
AS-path 1, origin igp, MED 0, localpref 100, pref-val 0, valid, internal, best, select, active, pre 255, IGP cost 2
Originator: 2.2.2.2 Cluster list: 3.3.3.3
Advertised to such 1 peers: 45.0.0.2
O_ID与粗簇列表属性传递时不会传给EBGP对等体
联邦在大的AS中重新规划小的AS,小的AS之间去建立联邦的EBGP对等体关系,以此来打破 IBGP水平分割的限制。(注意:联邦的EBGP对等体关系是一种特殊的存在,仅遵循EBGP 对等体的传递特性,但是,也需要遵守AS-BY-AS规则。)因为联邦的出现也将打破IBGP水平分割,可能造成路由回传,出现环路。所以,联邦的 EBGP之间也需要防环,其使用方法还是使用AS_PATH属性来防环。因为,这个防环也只是针对AS内部进行防环,所以,联邦成员的AS号将使用小括号括起来。之后,在发送到其他AS时将不携带。
[r2]bgp 64512 --- 联邦成员设备启动BGP进程时,使用小号来启动
[r2-bgp]router-id 2.2.2.2
[r2-bgp]confederation id 2 --- 告知设备其所处的大的AS为AS 2。
[r2-bgp]peer 3.3.3.3 as-number 64512 --- 联邦内部建立IBGP对等体使用小号建邻
r2-bgp]peer 3.3.3.3 connect-interface LoopBack 0
[r3-bgp]confederation peer-as 64513 --- 告知需要建立联邦的EBGP对等体设备所在的AS 号 --- 只需要在联邦的EBGP对等体关系上执行即可。
[r3-bgp]peer 4.4.4.4 ebgp-max-hop
[r5-bgp]Peer 56.0.0.2 as 3
[r6-bgp]Peer 56.0.0.1 as 2